From 147454b72d7a4a19fed372fdc4fc95fde34653f1 Mon Sep 17 00:00:00 2001 From: veeso Date: Tue, 26 Nov 2024 16:23:26 +0100 Subject: [PATCH] fix: solidity .8.28 and optimization --- ethereum/contracts/Deferred.sol | 2 +- ethereum/contracts/Ekoke.sol | 2 +- ethereum/contracts/Marketplace.sol | 2 +- ethereum/contracts/RewardPool.sol | 2 +- ethereum/hardhat.config.ts | 10 +- ethereum/package.json | 2 +- ethereum/yarn.lock | 807 +++++------------- integration-tests/src/abi/Deferred.json | 4 +- integration-tests/src/abi/Ekoke.json | 4 +- integration-tests/src/abi/Marketplace.json | 23 +- integration-tests/src/abi/RewardPool.json | 4 +- .../tests/pocket_ic/get_eth_address.rs | 2 +- 12 files changed, 226 insertions(+), 638 deletions(-) diff --git a/ethereum/contracts/Deferred.sol b/ethereum/contracts/Deferred.sol index 6cfec52..401eb81 100644 --- a/ethereum/contracts/Deferred.sol +++ b/ethereum/contracts/Deferred.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.28; import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; diff --git a/ethereum/contracts/Ekoke.sol b/ethereum/contracts/Ekoke.sol index d336213..16dd626 100644 --- a/ethereum/contracts/Ekoke.sol +++ b/ethereum/contracts/Ekoke.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.28; import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; diff --git a/ethereum/contracts/Marketplace.sol b/ethereum/contracts/Marketplace.sol index ccbc0e1..d8f7b1c 100644 --- a/ethereum/contracts/Marketplace.sol +++ b/ethereum/contracts/Marketplace.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.28; import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; diff --git a/ethereum/contracts/RewardPool.sol b/ethereum/contracts/RewardPool.sol index 7dc2d5d..f9948ee 100644 --- a/ethereum/contracts/RewardPool.sol +++ b/ethereum/contracts/RewardPool.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.28; import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; diff --git a/ethereum/hardhat.config.ts b/ethereum/hardhat.config.ts index fd29a4b..6ce7cee 100644 --- a/ethereum/hardhat.config.ts +++ b/ethereum/hardhat.config.ts @@ -13,7 +13,15 @@ const { } = process.env; const config: HardhatUserConfig = { - solidity: "0.8.20", + solidity: { + version: "0.8.28", + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, sourcify: { enabled: true, }, diff --git a/ethereum/package.json b/ethereum/package.json index 2055100..b6e08df 100644 --- a/ethereum/package.json +++ b/ethereum/package.json @@ -37,7 +37,7 @@ "commander": "^12.1.0", "dotenv": "^16.3.1", "ethers": "^6", - "hardhat": "^2.19.4", + "hardhat": "^2", "hardhat-gas-reporter": "^2", "solidity-coverage": "^0.8.5", "ts-node": "^10.9.2", diff --git a/ethereum/yarn.lock b/ethereum/yarn.lock index 7be41a8..eb84741 100644 --- a/ethereum/yarn.lock +++ b/ethereum/yarn.lock @@ -12,42 +12,6 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== -"@chainsafe/as-sha256@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" - integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg== - -"@chainsafe/persistent-merkle-tree@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz#4c9ee80cc57cd3be7208d98c40014ad38f36f7ff" - integrity sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ== - dependencies: - "@chainsafe/as-sha256" "^0.3.1" - -"@chainsafe/persistent-merkle-tree@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz#2b4a62c9489a5739dedd197250d8d2f5427e9f63" - integrity sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw== - dependencies: - "@chainsafe/as-sha256" "^0.3.1" - -"@chainsafe/ssz@^0.10.0": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.10.2.tgz#c782929e1bb25fec66ba72e75934b31fd087579e" - integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== - dependencies: - "@chainsafe/as-sha256" "^0.3.1" - "@chainsafe/persistent-merkle-tree" "^0.5.0" - -"@chainsafe/ssz@^0.9.2": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.9.4.tgz#696a8db46d6975b600f8309ad3a12f7c0e310497" - integrity sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ== - dependencies: - "@chainsafe/as-sha256" "^0.3.1" - "@chainsafe/persistent-merkle-tree" "^0.4.2" - case "^1.6.3" - "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -74,7 +38,7 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -89,7 +53,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -102,7 +66,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -124,7 +88,7 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.1" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": +"@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -135,14 +99,14 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -150,7 +114,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -159,37 +123,21 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" - integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== - dependencies: - "@ethersproject/abi" "^5.7.0" - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -204,44 +152,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" - integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" - integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -249,34 +160,26 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" - integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": +"@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -302,7 +205,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": +"@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -310,7 +213,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -318,7 +221,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -327,7 +230,7 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": +"@ethersproject/signing-key@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== @@ -339,19 +242,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" - integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -360,7 +251,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -375,7 +266,7 @@ "@ethersproject/rlp" "^5.7.0" "@ethersproject/signing-key" "^5.7.0" -"@ethersproject/units@5.7.0", "@ethersproject/units@^5.7.0": +"@ethersproject/units@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== @@ -384,28 +275,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/wallet@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" - integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/json-wallets" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -416,17 +286,6 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" - integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@fastify/busboy@^2.0.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" @@ -545,140 +404,84 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nomicfoundation/ethereumjs-block@5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz#13a7968f5964f1697da941281b7f7943b0465d04" - integrity sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q== - dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-trie" "6.0.2" - "@nomicfoundation/ethereumjs-tx" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - ethereum-cryptography "0.1.3" - ethers "^5.7.1" - -"@nomicfoundation/ethereumjs-blockchain@7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz#45323b673b3d2fab6b5008535340d1b8fea7d446" - integrity sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w== - dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.2" - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-ethash" "3.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-trie" "6.0.2" - "@nomicfoundation/ethereumjs-tx" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - abstract-level "^1.0.3" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - level "^8.0.0" - lru-cache "^5.1.1" - memory-level "^1.0.0" +"@nomicfoundation/edr-darwin-arm64@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.5.tgz#37a31565d7ef42bed9028ac44aed82144de30bd1" + integrity sha512-A9zCCbbNxBpLgjS1kEJSpqxIvGGAX4cYbpDYCU2f3jVqOwaZ/NU761y1SvuCRVpOwhoCXqByN9b7HPpHi0L4hw== -"@nomicfoundation/ethereumjs-common@4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz#a15d1651ca36757588fdaf2a7d381a150662a3c3" - integrity sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg== - dependencies: - "@nomicfoundation/ethereumjs-util" "9.0.2" - crc-32 "^1.2.0" +"@nomicfoundation/edr-darwin-x64@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.5.tgz#3252f6e86397af460b7a480bfe1b889464d75b89" + integrity sha512-x3zBY/v3R0modR5CzlL6qMfFMdgwd6oHrWpTkuuXnPFOX8SU31qq87/230f4szM+ukGK8Hi+mNq7Ro2VF4Fj+w== -"@nomicfoundation/ethereumjs-ethash@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz#da77147f806401ee996bfddfa6487500118addca" - integrity sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg== - dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - abstract-level "^1.0.3" - bigint-crypto-utils "^3.0.23" - ethereum-cryptography "0.1.3" +"@nomicfoundation/edr-linux-arm64-gnu@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.5.tgz#e7dc2934920b6cfabeb5ee7a5e26c8fb0d4964ac" + integrity sha512-HGpB8f1h8ogqPHTyUpyPRKZxUk2lu061g97dOQ/W4CxevI0s/qiw5DB3U3smLvSnBHKOzYS1jkxlMeGN01ky7A== -"@nomicfoundation/ethereumjs-evm@2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz#4c2f4b84c056047102a4fa41c127454e3f0cfcf6" - integrity sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ== - dependencies: - "@ethersproject/providers" "^5.7.1" - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-tx" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" +"@nomicfoundation/edr-linux-arm64-musl@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.5.tgz#00459cd53e9fb7bd5b7e32128b508a6e89079d89" + integrity sha512-ESvJM5Y9XC03fZg9KaQg3Hl+mbx7dsSkTIAndoJS7X2SyakpL9KZpOSYrDk135o8s9P9lYJdPOyiq+Sh+XoCbQ== -"@nomicfoundation/ethereumjs-rlp@5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz#4fee8dc58a53ac6ae87fb1fca7c15dc06c6b5dea" - integrity sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA== +"@nomicfoundation/edr-linux-x64-gnu@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.5.tgz#5c9e4e2655caba48e0196977cba395bbde6fe97d" + integrity sha512-HCM1usyAR1Ew6RYf5AkMYGvHBy64cPA5NMbaeY72r0mpKaH3txiMyydcHibByOGdQ8iFLWpyUdpl1egotw+Tgg== -"@nomicfoundation/ethereumjs-statemanager@2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz#3ba4253b29b1211cafe4f9265fee5a0d780976e0" - integrity sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA== - dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - ethers "^5.7.1" - js-sdsl "^4.1.4" +"@nomicfoundation/edr-linux-x64-musl@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.5.tgz#9c220751b66452dc43a365f380e1e236a0a8c5a9" + integrity sha512-nB2uFRyczhAvWUH7NjCsIO6rHnQrof3xcCe6Mpmnzfl2PYcGyxN7iO4ZMmRcQS7R1Y670VH6+8ZBiRn8k43m7A== -"@nomicfoundation/ethereumjs-trie@6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz#9a6dbd28482dca1bc162d12b3733acab8cd12835" - integrity sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - "@types/readable-stream" "^2.3.13" - ethereum-cryptography "0.1.3" - readable-stream "^3.6.0" +"@nomicfoundation/edr-win32-x64-msvc@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.5.tgz#90d3ac2a6a8a687522bda5ff2e92dd97e68126ea" + integrity sha512-B9QD/4DSSCFtWicO8A3BrsnitO1FPv7axB62wq5Q+qeJ50yJlTmyeGY3cw62gWItdvy2mh3fRM6L1LpnHiB77A== -"@nomicfoundation/ethereumjs-tx@5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz#117813b69c0fdc14dd0446698a64be6df71d7e56" - integrity sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g== - dependencies: - "@chainsafe/ssz" "^0.9.2" - "@ethersproject/providers" "^5.7.2" - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" +"@nomicfoundation/edr@^0.6.4": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.6.5.tgz#b3b1ebcdd0148cfe67cca128e7ebe8092e200359" + integrity sha512-tAqMslLP+/2b2sZP4qe9AuGxG3OkQ5gGgHE4isUuq6dUVjwCRPFhAOhpdFl+OjY5P3yEv3hmq9HjUGRa2VNjng== + dependencies: + "@nomicfoundation/edr-darwin-arm64" "0.6.5" + "@nomicfoundation/edr-darwin-x64" "0.6.5" + "@nomicfoundation/edr-linux-arm64-gnu" "0.6.5" + "@nomicfoundation/edr-linux-arm64-musl" "0.6.5" + "@nomicfoundation/edr-linux-x64-gnu" "0.6.5" + "@nomicfoundation/edr-linux-x64-musl" "0.6.5" + "@nomicfoundation/edr-win32-x64-msvc" "0.6.5" + +"@nomicfoundation/ethereumjs-common@4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" + integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== + dependencies: + "@nomicfoundation/ethereumjs-util" "9.0.4" + +"@nomicfoundation/ethereumjs-rlp@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" + integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== + +"@nomicfoundation/ethereumjs-tx@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" + integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-util@9.0.2": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz#16bdc1bb36f333b8a3559bbb4b17dac805ce904d" - integrity sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ== +"@nomicfoundation/ethereumjs-util@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" + integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== dependencies: - "@chainsafe/ssz" "^0.10.0" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-vm@7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz#3b0852cb3584df0e18c182d0672a3596c9ca95e6" - integrity sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA== - dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.2" - "@nomicfoundation/ethereumjs-blockchain" "7.0.2" - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-evm" "2.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-statemanager" "2.0.2" - "@nomicfoundation/ethereumjs-trie" "6.0.2" - "@nomicfoundation/ethereumjs-tx" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" - "@nomicfoundation/hardhat-chai-matchers@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.3.tgz#f4c074d39b74bd283c99e2c2bf143e3cef51ae18" @@ -1169,14 +972,6 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/readable-stream@^2.3.13": - version "2.3.15" - resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" - integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== - dependencies: - "@types/node" "*" - safe-buffer "~5.1.1" - "@types/secp256k1@^4.0.1": version "4.0.6" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" @@ -1211,19 +1006,6 @@ abitype@1.0.0: resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.0.tgz#237176dace81d90d018bebf3a45cb42f2a2d9e97" integrity sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ== -abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== - dependencies: - buffer "^6.0.3" - catering "^2.1.0" - is-buffer "^2.0.5" - level-supports "^4.0.0" - level-transcoder "^1.0.1" - module-error "^1.0.1" - queue-microtask "^1.2.3" - acorn-walk@^8.1.1: version "8.3.1" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" @@ -1244,11 +1026,6 @@ adm-zip@^0.4.16: resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== - aes-js@4.0.0-beta.5: version "4.0.0-beta.5" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" @@ -1284,6 +1061,13 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -1426,21 +1210,11 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bigint-crypto-utils@^3.0.23: - version "3.3.0" - resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" - integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -1466,6 +1240,20 @@ bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +boxen@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1498,16 +1286,6 @@ brotli-wasm@^2.0.1: resolved "https://registry.yarnpkg.com/brotli-wasm/-/brotli-wasm-2.0.1.tgz#2b3f4dc3db0c3e60d2635c055e6bac4ddf4bd3f5" integrity sha512-+3USgYsC7bzb5yU0/p2HnnynZl0ak0E6uoIm4UW4Aby/8s8HFCq6NCfrrf1E9c3O8OCSzq3oYO1tUVqIi61Nww== -browser-level@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" - integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.1" - module-error "^1.0.2" - run-parallel-limit "^1.1.0" - browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -1551,14 +1329,6 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -1573,21 +1343,11 @@ call-bind@^1.0.2, call-bind@^1.0.4: get-intrinsic "^1.2.1" set-function-length "^1.1.1" -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -case@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" - integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== - -catering@^2.1.0, catering@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" - integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== - cbor@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" @@ -1651,7 +1411,7 @@ check-error@^1.0.2, check-error@^1.0.3: dependencies: get-func-name "^2.0.2" -chokidar@3.5.3, chokidar@^3.4.0: +chokidar@3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1666,6 +1426,13 @@ chokidar@3.5.3, chokidar@^3.4.0: optionalDependencies: fsevents "~2.3.2" +chokidar@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41" + integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== + dependencies: + readdirp "^4.0.1" + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -1679,22 +1446,16 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -classic-level@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" - integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.0" - module-error "^1.0.1" - napi-macros "^2.2.2" - node-gyp-build "^4.3.0" - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cli-table3@^0.6.3: version "0.6.5" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" @@ -1769,16 +1530,16 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" -commander@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== +commander@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1789,7 +1550,7 @@ cookie@^0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -crc-32@^1.2.0, crc-32@^1.2.2: +crc-32@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== @@ -1848,7 +1609,7 @@ death@^1.1.0: resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" integrity sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w== -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: +debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2125,42 +1886,6 @@ ethereumjs-util@^7.1.4: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@^5.7.1: - version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - ethers@^6: version "6.9.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.9.2.tgz#6f4632f62e2350fa8354ff28624027a175ef85a4" @@ -2239,6 +1964,11 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fdir@^6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.2.tgz#ddaa7ce1831b161bc3657bb99cb36e1622702689" + integrity sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ== + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2253,7 +1983,7 @@ find-replace@^3.0.0: dependencies: array-back "^3.0.1" -find-up@5.0.0: +find-up@5.0.0, find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -2261,13 +1991,6 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -2317,17 +2040,6 @@ fp-ts@^1.0.0: resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -2380,11 +2092,6 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2516,7 +2223,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2554,23 +2261,17 @@ hardhat-gas-reporter@^2: sha1 "^1.1.1" viem "2.7.14" -hardhat@^2.19.4: - version "2.19.4" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.4.tgz#5112c30295d8be2e18e55d847373c50483ed1902" - integrity sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ== +hardhat@^2: + version "2.22.16" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.16.tgz#6cf3413f63b14770f863f35452da891ac2bd50cb" + integrity sha512-d52yQZ09u0roL6GlgJSvtknsBtIuj9JrJ/U8VMzr/wue+gO5v2tQayvOX6llerlR57Zw2EOTQjLAt6RpHvjwHA== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/ethereumjs-block" "5.0.2" - "@nomicfoundation/ethereumjs-blockchain" "7.0.2" - "@nomicfoundation/ethereumjs-common" "4.0.2" - "@nomicfoundation/ethereumjs-evm" "2.0.2" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - "@nomicfoundation/ethereumjs-statemanager" "2.0.2" - "@nomicfoundation/ethereumjs-trie" "6.0.2" - "@nomicfoundation/ethereumjs-tx" "5.0.2" - "@nomicfoundation/ethereumjs-util" "9.0.2" - "@nomicfoundation/ethereumjs-vm" "7.0.2" + "@nomicfoundation/edr" "^0.6.4" + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-tx" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" "@nomicfoundation/solidity-analyzer" "^0.1.0" "@sentry/node" "^5.18.1" "@types/bn.js" "^5.1.0" @@ -2578,31 +2279,33 @@ hardhat@^2.19.4: adm-zip "^0.4.16" aggregate-error "^3.0.0" ansi-escapes "^4.3.0" - chalk "^2.4.2" - chokidar "^3.4.0" + boxen "^5.1.2" + chokidar "^4.0.0" ci-info "^2.0.0" debug "^4.1.1" enquirer "^2.3.0" env-paths "^2.2.0" ethereum-cryptography "^1.0.3" ethereumjs-abi "^0.6.8" - find-up "^2.1.0" + find-up "^5.0.0" fp-ts "1.19.3" fs-extra "^7.0.1" - glob "7.2.0" immutable "^4.0.0-rc.12" io-ts "1.10.4" + json-stream-stringify "^3.1.4" keccak "^3.0.2" lodash "^4.17.11" mnemonist "^0.38.0" mocha "^10.0.0" p-map "^4.0.0" + picocolors "^1.1.0" raw-body "^2.4.1" resolve "1.17.0" semver "^6.3.0" - solc "0.7.3" + solc "0.8.26" source-map-support "^0.5.13" stacktrace-parser "^0.1.10" + tinyglobby "^0.2.6" tsort "0.0.1" undici "^5.14.0" uuid "^8.3.2" @@ -2716,11 +2419,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ignore@^5.1.1: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" @@ -2786,11 +2484,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-buffer@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - is-callable@^1.1.3: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -2878,11 +2571,6 @@ jackspeak@^3.1.2: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -js-sdsl@^4.1.4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" - integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== - js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -2908,6 +2596,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-stream-stringify@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz#ebe32193876fb99d4ec9f612389a8d8e2b5d54d4" + integrity sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog== + json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -2918,13 +2611,6 @@ json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -2960,39 +2646,11 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== - optionalDependencies: - graceful-fs "^4.1.9" - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -level-supports@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" - integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== - -level-transcoder@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" - integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== - dependencies: - buffer "^6.0.3" - module-error "^1.0.1" - -level@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== - dependencies: - browser-level "^1.0.1" - classic-level "^1.2.0" - levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -3001,14 +2659,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -3061,13 +2711,6 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3092,11 +2735,6 @@ markdown-table@2.0.0: dependencies: repeat-string "^1.0.0" -mcl-wasm@^0.7.1: - version "0.7.9" - resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" - integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -3106,15 +2744,6 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -memory-level@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" - integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== - dependencies: - abstract-level "^1.0.0" - functional-red-black-tree "^1.0.1" - module-error "^1.0.1" - memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" @@ -3237,11 +2866,6 @@ mocha@10.2.0, mocha@^10.0.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" -module-error@^1.0.1, module-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" - integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -3257,11 +2881,6 @@ nanoid@3.3.3: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -napi-macros@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" - integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== - ndjson@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-2.0.0.tgz#320ac86f6fe53f5681897349b86ac6f43bfa3a19" @@ -3297,7 +2916,7 @@ node-fetch@^2.6.12: dependencies: whatwg-url "^5.0.0" -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: +node-gyp-build@^4.2.0: version "4.8.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== @@ -3361,13 +2980,6 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -3375,13 +2987,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.1.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" @@ -3396,21 +3001,11 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - package-json-from-dist@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -3460,11 +3055,21 @@ pbkdf2@^3.0.17: safe-buffer "^5.0.1" sha.js "^2.4.8" +picocolors@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -3498,7 +3103,7 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -queue-microtask@^1.2.2, queue-microtask@^1.2.3: +queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== @@ -3529,6 +3134,11 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdirp@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.2.tgz#388fccb8b75665da3abffe2d8f8ed59fe74c230a" + integrity sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA== + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -3565,7 +3175,7 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-from-string@^2.0.0, require-from-string@^2.0.2: +require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -3596,13 +3206,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.2.8: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -3618,13 +3221,6 @@ rlp@^2.2.3, rlp@^2.2.4: dependencies: bn.js "^5.2.0" -run-parallel-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" - integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== - dependencies: - queue-microtask "^1.2.2" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -3632,21 +3228,11 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -3672,7 +3258,7 @@ sc-istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" -scrypt-js@3.0.1, scrypt-js@^3.0.0: +scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -3791,18 +3377,16 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -solc@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" - integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== +solc@0.8.26: + version "0.8.26" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.26.tgz#afc78078953f6ab3e727c338a2fefcd80dd5b01a" + integrity sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g== dependencies: command-exists "^1.2.8" - commander "3.0.2" + commander "^8.1.0" follow-redirects "^1.12.1" - fs-extra "^0.30.0" js-sha3 "0.8.0" memorystream "^0.3.1" - require-from-string "^2.0.0" semver "^5.5.0" tmp "0.0.33" @@ -3890,7 +3474,7 @@ string-format@^2.0.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4009,6 +3593,14 @@ through2@^4.0.0: dependencies: readable-stream "3" +tinyglobby@^0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.10.tgz#e712cf2dc9b95a1f5c5bbd159720e15833977a0f" + integrity sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew== + dependencies: + fdir "^6.4.2" + picomatch "^4.0.2" + tmp@0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -4114,6 +3706,11 @@ type-detect@^4.1.0: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -4508,6 +4105,13 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + word-wrap@~1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" @@ -4598,11 +4202,6 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" diff --git a/integration-tests/src/abi/Deferred.json b/integration-tests/src/abi/Deferred.json index 3442df2..e0c235b 100644 --- a/integration-tests/src/abi/Deferred.json +++ b/integration-tests/src/abi/Deferred.json @@ -822,8 +822,8 @@ "type": "function" } ], - "bytecode": "0x60806040526000600a556000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000dc57600080fd5b506040516200597738038062005977833981810160405281019062000102919062000353565b806040518060400160405280600881526020017f44656665727265640000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f44454645525245440000000000000000000000000000000000000000000000008152508160009081620001809190620005ff565b508060019081620001929190620005ff565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200020a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620002019190620006f7565b60405180910390fd5b6200021b816200022360201b60201c565b505062000714565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200031b82620002ee565b9050919050565b6200032d816200030e565b81146200033957600080fd5b50565b6000815190506200034d8162000322565b92915050565b6000602082840312156200036c576200036b620002e9565b5b60006200037c848285016200033c565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200040757607f821691505b6020821081036200041d576200041c620003bf565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000448565b62000493868362000448565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004e0620004da620004d484620004ab565b620004b5565b620004ab565b9050919050565b6000819050919050565b620004fc83620004bf565b620005146200050b82620004e7565b84845462000455565b825550505050565b600090565b6200052b6200051c565b62000538818484620004f1565b505050565b5b8181101562000560576200055460008262000521565b6001810190506200053e565b5050565b601f821115620005af57620005798162000423565b620005848462000438565b8101602085101562000594578190505b620005ac620005a38562000438565b8301826200053d565b50505b505050565b600082821c905092915050565b6000620005d460001984600802620005b4565b1980831691505092915050565b6000620005ef8383620005c1565b9150826002028217905092915050565b6200060a8262000385565b67ffffffffffffffff81111562000626576200062562000390565b5b620006328254620003ee565b6200063f82828562000564565b600060209050601f83116001811462000677576000841562000662578287015190505b6200066e8582620005e1565b865550620006de565b601f198416620006878662000423565b60005b82811015620006b1578489015182556001820191506020850194506020810190506200068a565b86831015620006d15784890151620006cd601f891682620005c1565b8355505b6001600288020188555050505b505050505050565b620006f1816200030e565b82525050565b60006020820190506200070e6000830184620006e6565b92915050565b61525380620007246000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063abc8c7af11610097578063d0ce736011610071578063d0ce7360146104cc578063d471cf5d146104e8578063e985e9c514610504578063f2fde38b14610534576101a9565b8063abc8c7af14610462578063b88d4fde14610480578063c87b56dd1461049c576101a9565b806395d89b41116100d357806395d89b41146103dc5780639be78f05146103fa578063a22cb46514610416578063a30fb02014610432576101a9565b8063715018a61461039857806382558c2a146103a25780638da5cb5b146103be576101a9565b806323b872dd11610166578063592691221161014057806359269122146102ea5780636352211e1461031a57806366666aa91461034a57806370a0823114610368576101a9565b806323b872dd146102825780633a0432421461029e57806342842e0e146102ce576101a9565b8063017d6f99146101ae57806301ffc9a7146101cc57806306fdde03146101fc578063081812fc1461021a578063095ea7b31461024a5780631892dd9f14610266575b600080fd5b6101b6610550565b6040516101c3919061353a565b60405180910390f35b6101e660048036038101906101e191906135c1565b610576565b6040516101f39190613609565b60405180910390f35b610204610658565b60405161021191906136b4565b60405180910390f35b610234600480360381019061022f919061370c565b6106ea565b604051610241919061353a565b60405180910390f35b610264600480360381019061025f9190613765565b610735565b005b610280600480360381019061027b91906137a5565b610770565b005b61029c600480360381019061029791906137d2565b6107bc565b005b6102b860048036038101906102b3919061370c565b6109e2565b6040516102c5919061353a565b60405180910390f35b6102e860048036038101906102e391906137d2565b6109f4565b005b61030460048036038101906102ff919061370c565b610a14565b6040516103119190613834565b60405180910390f35b610334600480360381019061032f919061370c565b610a2a565b604051610341919061353a565b60405180910390f35b610352610a64565b60405161035f919061353a565b60405180910390f35b610382600480360381019061037d91906137a5565b610a8a565b60405161038f9190613834565b60405180910390f35b6103a0610ae6565b005b6103bc60048036038101906103b791906137a5565b610afa565b005b6103c6610b46565b6040516103d3919061353a565b60405180910390f35b6103e4610b70565b6040516103f191906136b4565b60405180910390f35b610414600480360381019061040f91906137a5565b610c02565b005b610430600480360381019061042b919061387b565b610c4e565b005b61044c6004803603810190610447919061370c565b610c89565b6040516104599190613ba5565b60405180910390f35b61046a610f4f565b604051610477919061353a565b60405180910390f35b61049a60048036038101906104959190613cfc565b610f75565b005b6104b660048036038101906104b1919061370c565b61119d565b6040516104c391906136b4565b60405180910390f35b6104e660048036038101906104e1919061370c565b6111b3565b005b61050260048036038101906104fd9190614146565b6113fb565b005b61051e6004803603810190610519919061418f565b611ceb565b60405161052b9190613609565b60405180910390f35b61054e600480360381019061054991906137a5565b611d7c565b005b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061064157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610651575061065082611e02565b5b9050919050565b606060008054610667906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610693906141fe565b80156106e05780601f106106b5576101008083540402835291602001916106e0565b820191906000526020600020905b8154815290600101906020018083116106c357829003601f168201915b5050505050905090565b60006106f582611e6c565b1561072457600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610730565b61072d82611ef9565b90505b919050565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107679061427b565b60405180910390fd5b610778611f15565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156108685750600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e9061430d565b60405180910390fd5b6108b081611e6c565b15610947576108bf8183611f9c565b6001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461090f919061435c565b92505081905550610942600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611faa565b6109dd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098982611ef9565b73ffffffffffffffffffffffffffffffffffffffff16146109d1576109d0600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611faa565b5b6109dc838383611fc0565b5b505050565b60006109ed826120c2565b9050919050565b610a0f83838360405180602001604052806000815250610f75565b505050565b6000610a1f82610c89565b608001519050919050565b6000610a3582611e6c565b15610a5357610a4c610a46836120d4565b836123da565b9050610a5f565b610a5c826120c2565b90505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ad583612852565b610adf9190614390565b9050919050565b610aee611f15565b610af8600061290c565b565b610b02611f15565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b7f906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610bab906141fe565b8015610bf85780601f10610bcd57610100808354040283529160200191610bf8565b820191906000526020600020905b815481529060010190602001808311610bdb57829003601f168201915b5050505050905090565b610c0a611f15565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8090614436565b60405180910390fd5b610c91613359565b6000610c9c836120d4565b905060008111610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd8906144a2565b60405180910390fd5b6007600082815260200190815260200160002060405180610120016040529081600082018054610d10906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c906141fe565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015610e5357838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505081526020019060010190610db7565b50505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610ee057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610e96575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff161515151581526020016007820160019054906101000a900460ff161515151581525050915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156110215750600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b611060576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110579061430d565b60405180910390fd5b61106982611e6c565b15611100576110788284611f9c565b6001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110c8919061435c565b925050819055506110fb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611faa565b611197565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114283611ef9565b73ffffffffffffffffffffffffffffffffffffffff161461118a57611189600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611faa565b5b611196848484846129d2565b5b50505050565b60606111a882610c89565b600001519050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561125f5750600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590614534565b60405180910390fd5b600081116112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d8906145c6565b60405180910390fd5b6007600082815260200190815260200160002060070160019054906101000a900460ff16611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90614658565b60405180910390fd5b60006007600083815260200190815260200160002090508060070160009054906101000a900460ff16156113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a4906146ea565b60405180910390fd5b60018160070160006101000a81548160ff021916908315150217905550817fd79ef0d7f68df3d827e7c4b6a13ec4570e9a30515c4717bbaa647da58ca68be160405160405180910390a25050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156114a75750600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90614534565b60405180910390fd5b60008160000151905060008111611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906145c6565b60405180910390fd5b6007600082815260200190815260200160002060070160019054906101000a900460ff1615611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d9061477c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e906147e8565b60405180910390fd5b60008260c001511161166e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116659061487a565b60405180910390fd5b6000805b83604001515181101561175357600073ffffffffffffffffffffffffffffffffffffffff16846040015182815181106116ae576116ad61489a565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790614915565b60405180910390fd5b836040015181815181106117275761172661489a565b5b6020026020010151602001518261173e9190614935565b9150808061174b9061496a565b915050611672565b5060648160ff161461179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190614a24565b60405180910390fd5b60008360a00151116117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890614ab6565b60405180910390fd5b600060648460c001516117f49190614b05565b14611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90614ba8565b60405180910390fd5b6000836080015111156118d957600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed711e2284608001518560c001516040518363ffffffff1660e01b81526004016118a6929190614bc8565b600060405180830381600087803b1580156118c057600080fd5b505af11580156118d4573d6000803e3d6000fd5b505050505b6000600a549050600060018560c00151836118f49190614390565b6118fe919061435c565b9050600085604001515167ffffffffffffffff81111561192157611920613bd1565b5b60405190808252806020026020018201604052801561195a57816020015b6119476133a9565b81526020019060019003908161193f5790505b5090506000839050600060648860c001516119759190614bf1565b905060005b886040015151811015611ae7576000896040015182815181106119a05761199f61489a565b5b602002602001015190506000816020015160ff16846119bf9190614c22565b90506000600182876119d19190614390565b6119db919061435c565b905060405180606001604052808d6040015186815181106119ff576119fe61489a565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200187815260200182815250878581518110611a4357611a4261489a565b5b6020026020010181905250600181611a5b9190614390565b95508160086000898781518110611a7557611a7461489a565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611aca9190614390565b925050819055505050508080611adf9061496a565b91505061197a565b5060006007600089815260200190815260200160002090508860200151816000019081611b149190614e10565b508860600151816002019080519060200190611b319291906133e0565b50886080015181600301819055508860a00151816004018190555085816005018190555084816006018190555060008160070160006101000a81548160ff02191690831515021790555060018160070160016101000a81548160ff021916908315150217905550806001016000611ba8919061346a565b60005b8451811015611c6c5781600101858281518110611bcb57611bca61489a565b5b6020026020010151908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015550508080611c649061496a565b915050611bab565b508860c00151600a6000828254611c839190614390565b925050819055506009889080600181540180825580915050600190039060005260206000200160009091909190915055877f9e3c7e008a15a3c864482ee94fd7315bcc9d0c04f3a9041ab922f816acffbe0660405160405180910390a2505050505050505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d7457508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b611d84611f15565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611df65760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611ded919061353a565b60405180910390fd5b611dff8161290c565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60003073ffffffffffffffffffffffffffffffffffffffff16633a043242836040518263ffffffff1660e01b8152600401611ea79190613834565b602060405180830381865afa925050508015611ee157506040513d601f19601f82011682018060405250810190611ede9190614ef7565b60015b611eee5760019050611ef4565b60009150505b919050565b6000611f04826129ef565b50611f0e82612a77565b9050919050565b611f1d612ab4565b73ffffffffffffffffffffffffffffffffffffffff16611f3b610b46565b73ffffffffffffffffffffffffffffffffffffffff1614611f9a57611f5e612ab4565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611f91919061353a565b60405180910390fd5b565b611fa68183612abc565b5050565b611fbc8282611fb7612ab4565b612ada565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120325760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612029919061353a565b60405180910390fd5b60006120468383612041612ab4565b612aec565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120bc578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016120b393929190614f24565b60405180910390fd5b50505050565b60006120cd826129ef565b9050919050565b600080600090505b6009805490508110156123cf576000600982815481106120ff576120fe61489a565b5b906000526020600020015490506000600760008381526020019081526020016000206040518061012001604052908160008201805461213d906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054612169906141fe565b80156121b65780601f1061218b576101008083540402835291602001916121b6565b820191906000526020600020905b81548152906001019060200180831161219957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561228057838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481525050815260200190600101906121e4565b5050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561230d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122c3575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff161515151581526020016007820160019054906101000a900460ff1615151515815250509050848160a001511115801561238e57508060c001518511155b801561239c57508060e00151155b80156123aa57508061010001515b156123ba578193505050506123d5565b505080806123c79061496a565b9150506120dc565b50600090505b919050565b600080831161241e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612415906145c6565b60405180910390fd5b6007600084815260200190815260200160002060070160019054906101000a900460ff16612481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247890614658565b60405180910390fd5b60076000848152602001908152602001600020600501548210156124da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d190614fcd565b60405180910390fd5b6007600084815260200190815260200160002060060154821115612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a9061505f565b60405180910390fd5b60006007600085815260200190815260200160002060405180610120016040529081600082018054612564906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054612590906141fe565b80156125dd5780601f106125b2576101008083540402835291602001916125dd565b820191906000526020600020905b8154815290600101906020018083116125c057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b828210156126a757838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250508152602001906001019061260b565b5050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561273457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116126ea575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff161515151581526020016007820160019054906101000a900460ff161515151581525050905060005b816020015151811015612810576000826020015182815181106127c6576127c561489a565b5b60200260200101519050848160200151111580156127e8575080604001518511155b156127fc578060000151935050505061284c565b5080806128089061496a565b9150506127a0565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612843906150f1565b60405180910390fd5b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128c55760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016128bc919061353a565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6129dd8484846107bc565b6129e984848484612d06565b50505050565b6000806129fb83612ebd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a6e57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612a659190613834565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b612ad6828260405180602001604052806000815250612efa565b5050565b612ae78383836001612f16565b505050565b600080612af884612ebd565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b3a57612b398184866130db565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612bcb57612b7c600085600080612f16565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612c4e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115612eb7578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d4a612ab4565b8685856040518563ffffffff1660e01b8152600401612d6c9493929190615166565b6020604051808303816000875af1925050508015612da857506040513d601f19601f82011682018060405250810190612da591906151c7565b60015b612e2c573d8060008114612dd8576040519150601f19603f3d011682016040523d82523d6000602084013e612ddd565b606091505b506000815103612e2457836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612e1b919061353a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612eac919061353a565b60405180910390fd5b505b50505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b612f04838361319f565b612f116000848484612d06565b505050565b8080612f4f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613083576000612f5f846129ef565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612fca57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612fdd5750612fdb8184611ceb565b155b1561301f57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401613016919061353a565b60405180910390fd5b811561308157838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6130e6838383613298565b61319a57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361315b57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016131529190613834565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016131919291906151f4565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036132115760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401613208919061353a565b60405180910390fd5b600061321f83836000612aec565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146132935760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161328a919061353a565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561335057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061331157506133108484611ceb565b5b8061334f57508273ffffffffffffffffffffffffffffffffffffffff1661333783612a77565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b604051806101200160405280606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b828054828255906000526020600020908101928215613459579160200282015b828111156134585782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613400565b5b509050613466919061348e565b5090565b508054600082556003029060005260206000209081019061348b91906134ab565b50565b5b808211156134a757600081600090555060010161348f565b5090565b5b808211156134f557600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160009055506003016134ac565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613524826134f9565b9050919050565b61353481613519565b82525050565b600060208201905061354f600083018461352b565b92915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61359e81613569565b81146135a957600080fd5b50565b6000813590506135bb81613595565b92915050565b6000602082840312156135d7576135d661355f565b5b60006135e5848285016135ac565b91505092915050565b60008115159050919050565b613603816135ee565b82525050565b600060208201905061361e60008301846135fa565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561365e578082015181840152602081019050613643565b60008484015250505050565b6000601f19601f8301169050919050565b600061368682613624565b613690818561362f565b93506136a0818560208601613640565b6136a98161366a565b840191505092915050565b600060208201905081810360008301526136ce818461367b565b905092915050565b6000819050919050565b6136e9816136d6565b81146136f457600080fd5b50565b600081359050613706816136e0565b92915050565b6000602082840312156137225761372161355f565b5b6000613730848285016136f7565b91505092915050565b61374281613519565b811461374d57600080fd5b50565b60008135905061375f81613739565b92915050565b6000806040838503121561377c5761377b61355f565b5b600061378a85828601613750565b925050602061379b858286016136f7565b9150509250929050565b6000602082840312156137bb576137ba61355f565b5b60006137c984828501613750565b91505092915050565b6000806000606084860312156137eb576137ea61355f565b5b60006137f986828701613750565b935050602061380a86828701613750565b925050604061381b868287016136f7565b9150509250925092565b61382e816136d6565b82525050565b60006020820190506138496000830184613825565b92915050565b613858816135ee565b811461386357600080fd5b50565b6000813590506138758161384f565b92915050565b600080604083850312156138925761389161355f565b5b60006138a085828601613750565b92505060206138b185828601613866565b9150509250929050565b600082825260208201905092915050565b60006138d782613624565b6138e181856138bb565b93506138f1818560208601613640565b6138fa8161366a565b840191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61393a81613519565b82525050565b613949816136d6565b82525050565b6060820160008201516139656000850182613931565b5060208201516139786020850182613940565b50604082015161398b6040850182613940565b50505050565b600061399d838361394f565b60608301905092915050565b6000602082019050919050565b60006139c182613905565b6139cb8185613910565b93506139d683613921565b8060005b83811015613a075781516139ee8882613991565b97506139f9836139a9565b9250506001810190506139da565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000613a4c8383613931565b60208301905092915050565b6000602082019050919050565b6000613a7082613a14565b613a7a8185613a1f565b9350613a8583613a30565b8060005b83811015613ab6578151613a9d8882613a40565b9750613aa883613a58565b925050600181019050613a89565b5085935050505092915050565b613acc816135ee565b82525050565b6000610120830160008301518482036000860152613af082826138cc565b91505060208301518482036020860152613b0a82826139b6565b91505060408301518482036040860152613b248282613a65565b9150506060830151613b396060860182613940565b506080830151613b4c6080860182613940565b5060a0830151613b5f60a0860182613940565b5060c0830151613b7260c0860182613940565b5060e0830151613b8560e0860182613ac3565b50610100830151613b9a610100860182613ac3565b508091505092915050565b60006020820190508181036000830152613bbf8184613ad2565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613c098261366a565b810181811067ffffffffffffffff82111715613c2857613c27613bd1565b5b80604052505050565b6000613c3b613555565b9050613c478282613c00565b919050565b600067ffffffffffffffff821115613c6757613c66613bd1565b5b613c708261366a565b9050602081019050919050565b82818337600083830152505050565b6000613c9f613c9a84613c4c565b613c31565b905082815260208101848484011115613cbb57613cba613bcc565b5b613cc6848285613c7d565b509392505050565b600082601f830112613ce357613ce2613bc7565b5b8135613cf3848260208601613c8c565b91505092915050565b60008060008060808587031215613d1657613d1561355f565b5b6000613d2487828801613750565b9450506020613d3587828801613750565b9350506040613d46878288016136f7565b925050606085013567ffffffffffffffff811115613d6757613d66613564565b5b613d7387828801613cce565b91505092959194509250565b600080fd5b600080fd5b600067ffffffffffffffff821115613da457613da3613bd1565b5b613dad8261366a565b9050602081019050919050565b6000613dcd613dc884613d89565b613c31565b905082815260208101848484011115613de957613de8613bcc565b5b613df4848285613c7d565b509392505050565b600082601f830112613e1157613e10613bc7565b5b8135613e21848260208601613dba565b91505092915050565b600067ffffffffffffffff821115613e4557613e44613bd1565b5b602082029050602081019050919050565b600080fd5b600060ff82169050919050565b613e7181613e5b565b8114613e7c57600080fd5b50565b600081359050613e8e81613e68565b92915050565b600060408284031215613eaa57613ea9613d7f565b5b613eb46040613c31565b90506000613ec484828501613750565b6000830152506020613ed884828501613e7f565b60208301525092915050565b6000613ef7613ef284613e2a565b613c31565b90508083825260208201905060408402830185811115613f1a57613f19613e56565b5b835b81811015613f435780613f2f8882613e94565b845260208401935050604081019050613f1c565b5050509392505050565b600082601f830112613f6257613f61613bc7565b5b8135613f72848260208601613ee4565b91505092915050565b600067ffffffffffffffff821115613f9657613f95613bd1565b5b602082029050602081019050919050565b6000613fba613fb584613f7b565b613c31565b90508083825260208201905060208402830185811115613fdd57613fdc613e56565b5b835b818110156140065780613ff28882613750565b845260208401935050602081019050613fdf565b5050509392505050565b600082601f83011261402557614024613bc7565b5b8135614035848260208601613fa7565b91505092915050565b600060e0828403121561405457614053613d7f565b5b61405e60e0613c31565b9050600061406e848285016136f7565b600083015250602082013567ffffffffffffffff81111561409257614091613d84565b5b61409e84828501613dfc565b602083015250604082013567ffffffffffffffff8111156140c2576140c1613d84565b5b6140ce84828501613f4d565b604083015250606082013567ffffffffffffffff8111156140f2576140f1613d84565b5b6140fe84828501614010565b6060830152506080614112848285016136f7565b60808301525060a0614126848285016136f7565b60a08301525060c061413a848285016136f7565b60c08301525092915050565b60006020828403121561415c5761415b61355f565b5b600082013567ffffffffffffffff81111561417a57614179613564565b5b6141868482850161403e565b91505092915050565b600080604083850312156141a6576141a561355f565b5b60006141b485828601613750565b92505060206141c585828601613750565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061421657607f821691505b602082108103614229576142286141cf565b5b50919050565b7f44656665727265643a20617070726f7665206973206e6f7420616c6c6f776564600082015250565b600061426560208361362f565b91506142708261422f565b602082019050919050565b6000602082019050818103600083015261429481614258565b9050919050565b7f44656665727265643a2063616c6c6572206973206e6f7420746865206d61726b60008201527f6574706c61636500000000000000000000000000000000000000000000000000602082015250565b60006142f760278361362f565b91506143028261429b565b604082019050919050565b60006020820190508181036000830152614326816142ea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614367826136d6565b9150614372836136d6565b925082820390508181111561438a5761438961432d565b5b92915050565b600061439b826136d6565b91506143a6836136d6565b92508282019050808211156143be576143bd61432d565b5b92915050565b7f44656665727265643a20736574417070726f76616c466f72416c6c206973206e60008201527f6f7420616c6c6f77656400000000000000000000000000000000000000000000602082015250565b6000614420602a8361362f565b915061442b826143c4565b604082019050919050565b6000602082019050818103600083015261444f81614413565b9050919050565b7f44656665727265643a20746f6b656e20646f6573206e6f742065786973740000600082015250565b600061448c601e8361362f565b915061449782614456565b602082019050919050565b600060208201905081810360008301526144bb8161447f565b9050919050565b7f44656665727265643a2063616c6c6572206973206e6f7420746865206d696e7460008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061451e60228361362f565b9150614529826144c2565b604082019050919050565b6000602082019050818103600083015261454d81614511565b9050919050565b7f44656665727265643a20636f6e74726163744964206d7573742062652067726560008201527f61746572207468616e2030000000000000000000000000000000000000000000602082015250565b60006145b0602b8361362f565b91506145bb82614554565b604082019050919050565b600060208201905081810360008301526145df816145a3565b9050919050565b7f44656665727265643a20636f6e747261637420646f6573206e6f74206578697360008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061464260218361362f565b915061464d826145e6565b604082019050919050565b6000602082019050818103600083015261467181614635565b9050919050565b7f44656665727265643a20636f6e747261637420697320616c726561647920636c60008201527f6f73656400000000000000000000000000000000000000000000000000000000602082015250565b60006146d460248361362f565b91506146df82614678565b604082019050919050565b60006020820190508181036000830152614703816146c7565b9050919050565b7f44656665727265643a20636f6e747261637420697320616c726561647920637260008201527f6561746564000000000000000000000000000000000000000000000000000000602082015250565b600061476660258361362f565b91506147718261470a565b604082019050919050565b6000602082019050818103600083015261479581614759565b9050919050565b7f44656665727265643a2072657761726420706f6f6c206973206e6f7420736574600082015250565b60006147d260208361362f565b91506147dd8261479c565b602082019050919050565b60006020820190508181036000830152614801816147c5565b9050919050565b7f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206760008201527f726561746572207468616e203000000000000000000000000000000000000000602082015250565b6000614864602d8361362f565b915061486f82614808565b604082019050919050565b6000602082019050818103600083015261489381614857565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f44656665727265643a2073656c6c6572206d7573742062652073657400000000600082015250565b60006148ff601c8361362f565b915061490a826148c9565b602082019050919050565b6000602082019050818103600083015261492e816148f2565b9050919050565b600061494082613e5b565b915061494b83613e5b565b9250828201905060ff8111156149645761496361432d565b5b92915050565b6000614975826136d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036149a7576149a661432d565b5b600182019050919050565b7f44656665727265643a20746f74616c2071756f7461206d75737420626520313060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a0e60218361362f565b9150614a19826149b2565b604082019050919050565b60006020820190508181036000830152614a3d81614a01565b9050919050565b7f44656665727265643a20746f6b656e5072696365557364206d7573742062652060008201527f67726561746572207468616e2030000000000000000000000000000000000000602082015250565b6000614aa0602e8361362f565b9150614aab82614a44565b604082019050919050565b60006020820190508181036000830152614acf81614a93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b10826136d6565b9150614b1b836136d6565b925082614b2b57614b2a614ad6565b5b828206905092915050565b7f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206460008201527f6976697369626c65206279203130300000000000000000000000000000000000602082015250565b6000614b92602f8361362f565b9150614b9d82614b36565b604082019050919050565b60006020820190508181036000830152614bc181614b85565b9050919050565b6000604082019050614bdd6000830185613825565b614bea6020830184613825565b9392505050565b6000614bfc826136d6565b9150614c07836136d6565b925082614c1757614c16614ad6565b5b828204905092915050565b6000614c2d826136d6565b9150614c38836136d6565b9250828202614c46816136d6565b91508282048414831517614c5d57614c5c61432d565b5b5092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614cc67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614c89565b614cd08683614c89565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614d0d614d08614d03846136d6565b614ce8565b6136d6565b9050919050565b6000819050919050565b614d2783614cf2565b614d3b614d3382614d14565b848454614c96565b825550505050565b600090565b614d50614d43565b614d5b818484614d1e565b505050565b5b81811015614d7f57614d74600082614d48565b600181019050614d61565b5050565b601f821115614dc457614d9581614c64565b614d9e84614c79565b81016020851015614dad578190505b614dc1614db985614c79565b830182614d60565b50505b505050565b600082821c905092915050565b6000614de760001984600802614dc9565b1980831691505092915050565b6000614e008383614dd6565b9150826002028217905092915050565b614e1982613624565b67ffffffffffffffff811115614e3257614e31613bd1565b5b614e3c82546141fe565b614e47828285614d83565b600060209050601f831160018114614e7a5760008415614e68578287015190505b614e728582614df4565b865550614eda565b601f198416614e8886614c64565b60005b82811015614eb057848901518255600182019150602085019450602081019050614e8b565b86831015614ecd5784890151614ec9601f891682614dd6565b8355505b6001600288020188555050505b505050505050565b600081519050614ef181613739565b92915050565b600060208284031215614f0d57614f0c61355f565b5b6000614f1b84828501614ee2565b91505092915050565b6000606082019050614f39600083018661352b565b614f466020830185613825565b614f53604083018461352b565b949350505050565b7f44656665727265643a20746f6b656e4964206d7573742062652067726561746560008201527f72207468616e206f7220657175616c20746f20746f6b656e46726f6d49640000602082015250565b6000614fb7603e8361362f565b9150614fc282614f5b565b604082019050919050565b60006020820190508181036000830152614fe681614faa565b9050919050565b7f44656665727265643a20746f6b656e4964206d757374206265206c657373207460008201527f68616e206f7220657175616c20746f20746f6b656e546f496400000000000000602082015250565b600061504960398361362f565b915061505482614fed565b604082019050919050565b600060208201905081810360008301526150788161503c565b9050919050565b7f44656665727265643a20746f6b656e20646f6573206e6f742062656c6f6e672060008201527f746f20616e792073656c6c657200000000000000000000000000000000000000602082015250565b60006150db602d8361362f565b91506150e68261507f565b604082019050919050565b6000602082019050818103600083015261510a816150ce565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061513882615111565b615142818561511c565b9350615152818560208601613640565b61515b8161366a565b840191505092915050565b600060808201905061517b600083018761352b565b615188602083018661352b565b6151956040830185613825565b81810360608301526151a7818461512d565b905095945050505050565b6000815190506151c181613595565b92915050565b6000602082840312156151dd576151dc61355f565b5b60006151eb848285016151b2565b91505092915050565b6000604082019050615209600083018561352b565b6152166020830184613825565b939250505056fea26469706673582212208fb7dcbf22056fd9625970b88ad1342b51cd8be2b9c2d5d141a31e736a73c72b64736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063abc8c7af11610097578063d0ce736011610071578063d0ce7360146104cc578063d471cf5d146104e8578063e985e9c514610504578063f2fde38b14610534576101a9565b8063abc8c7af14610462578063b88d4fde14610480578063c87b56dd1461049c576101a9565b806395d89b41116100d357806395d89b41146103dc5780639be78f05146103fa578063a22cb46514610416578063a30fb02014610432576101a9565b8063715018a61461039857806382558c2a146103a25780638da5cb5b146103be576101a9565b806323b872dd11610166578063592691221161014057806359269122146102ea5780636352211e1461031a57806366666aa91461034a57806370a0823114610368576101a9565b806323b872dd146102825780633a0432421461029e57806342842e0e146102ce576101a9565b8063017d6f99146101ae57806301ffc9a7146101cc57806306fdde03146101fc578063081812fc1461021a578063095ea7b31461024a5780631892dd9f14610266575b600080fd5b6101b6610550565b6040516101c3919061353a565b60405180910390f35b6101e660048036038101906101e191906135c1565b610576565b6040516101f39190613609565b60405180910390f35b610204610658565b60405161021191906136b4565b60405180910390f35b610234600480360381019061022f919061370c565b6106ea565b604051610241919061353a565b60405180910390f35b610264600480360381019061025f9190613765565b610735565b005b610280600480360381019061027b91906137a5565b610770565b005b61029c600480360381019061029791906137d2565b6107bc565b005b6102b860048036038101906102b3919061370c565b6109e2565b6040516102c5919061353a565b60405180910390f35b6102e860048036038101906102e391906137d2565b6109f4565b005b61030460048036038101906102ff919061370c565b610a14565b6040516103119190613834565b60405180910390f35b610334600480360381019061032f919061370c565b610a2a565b604051610341919061353a565b60405180910390f35b610352610a64565b60405161035f919061353a565b60405180910390f35b610382600480360381019061037d91906137a5565b610a8a565b60405161038f9190613834565b60405180910390f35b6103a0610ae6565b005b6103bc60048036038101906103b791906137a5565b610afa565b005b6103c6610b46565b6040516103d3919061353a565b60405180910390f35b6103e4610b70565b6040516103f191906136b4565b60405180910390f35b610414600480360381019061040f91906137a5565b610c02565b005b610430600480360381019061042b919061387b565b610c4e565b005b61044c6004803603810190610447919061370c565b610c89565b6040516104599190613ba5565b60405180910390f35b61046a610f4f565b604051610477919061353a565b60405180910390f35b61049a60048036038101906104959190613cfc565b610f75565b005b6104b660048036038101906104b1919061370c565b61119d565b6040516104c391906136b4565b60405180910390f35b6104e660048036038101906104e1919061370c565b6111b3565b005b61050260048036038101906104fd9190614146565b6113fb565b005b61051e6004803603810190610519919061418f565b611ceb565b60405161052b9190613609565b60405180910390f35b61054e600480360381019061054991906137a5565b611d7c565b005b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061064157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610651575061065082611e02565b5b9050919050565b606060008054610667906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610693906141fe565b80156106e05780601f106106b5576101008083540402835291602001916106e0565b820191906000526020600020905b8154815290600101906020018083116106c357829003601f168201915b5050505050905090565b60006106f582611e6c565b1561072457600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610730565b61072d82611ef9565b90505b919050565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107679061427b565b60405180910390fd5b610778611f15565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156108685750600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e9061430d565b60405180910390fd5b6108b081611e6c565b15610947576108bf8183611f9c565b6001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461090f919061435c565b92505081905550610942600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611faa565b6109dd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098982611ef9565b73ffffffffffffffffffffffffffffffffffffffff16146109d1576109d0600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611faa565b5b6109dc838383611fc0565b5b505050565b60006109ed826120c2565b9050919050565b610a0f83838360405180602001604052806000815250610f75565b505050565b6000610a1f82610c89565b608001519050919050565b6000610a3582611e6c565b15610a5357610a4c610a46836120d4565b836123da565b9050610a5f565b610a5c826120c2565b90505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ad583612852565b610adf9190614390565b9050919050565b610aee611f15565b610af8600061290c565b565b610b02611f15565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b7f906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610bab906141fe565b8015610bf85780601f10610bcd57610100808354040283529160200191610bf8565b820191906000526020600020905b815481529060010190602001808311610bdb57829003601f168201915b5050505050905090565b610c0a611f15565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8090614436565b60405180910390fd5b610c91613359565b6000610c9c836120d4565b905060008111610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd8906144a2565b60405180910390fd5b6007600082815260200190815260200160002060405180610120016040529081600082018054610d10906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c906141fe565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015610e5357838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505081526020019060010190610db7565b50505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610ee057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610e96575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff161515151581526020016007820160019054906101000a900460ff161515151581525050915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156110215750600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b611060576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110579061430d565b60405180910390fd5b61106982611e6c565b15611100576110788284611f9c565b6001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110c8919061435c565b925050819055506110fb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611faa565b611197565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114283611ef9565b73ffffffffffffffffffffffffffffffffffffffff161461118a57611189600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611faa565b5b611196848484846129d2565b5b50505050565b60606111a882610c89565b600001519050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561125f5750600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590614534565b60405180910390fd5b600081116112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d8906145c6565b60405180910390fd5b6007600082815260200190815260200160002060070160019054906101000a900460ff16611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90614658565b60405180910390fd5b60006007600083815260200190815260200160002090508060070160009054906101000a900460ff16156113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a4906146ea565b60405180910390fd5b60018160070160006101000a81548160ff021916908315150217905550817fd79ef0d7f68df3d827e7c4b6a13ec4570e9a30515c4717bbaa647da58ca68be160405160405180910390a25050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156114a75750600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90614534565b60405180910390fd5b60008160000151905060008111611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906145c6565b60405180910390fd5b6007600082815260200190815260200160002060070160019054906101000a900460ff1615611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d9061477c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e906147e8565b60405180910390fd5b60008260c001511161166e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116659061487a565b60405180910390fd5b6000805b83604001515181101561175357600073ffffffffffffffffffffffffffffffffffffffff16846040015182815181106116ae576116ad61489a565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790614915565b60405180910390fd5b836040015181815181106117275761172661489a565b5b6020026020010151602001518261173e9190614935565b9150808061174b9061496a565b915050611672565b5060648160ff161461179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190614a24565b60405180910390fd5b60008360a00151116117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890614ab6565b60405180910390fd5b600060648460c001516117f49190614b05565b14611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90614ba8565b60405180910390fd5b6000836080015111156118d957600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed711e2284608001518560c001516040518363ffffffff1660e01b81526004016118a6929190614bc8565b600060405180830381600087803b1580156118c057600080fd5b505af11580156118d4573d6000803e3d6000fd5b505050505b6000600a549050600060018560c00151836118f49190614390565b6118fe919061435c565b9050600085604001515167ffffffffffffffff81111561192157611920613bd1565b5b60405190808252806020026020018201604052801561195a57816020015b6119476133a9565b81526020019060019003908161193f5790505b5090506000839050600060648860c001516119759190614bf1565b905060005b886040015151811015611ae7576000896040015182815181106119a05761199f61489a565b5b602002602001015190506000816020015160ff16846119bf9190614c22565b90506000600182876119d19190614390565b6119db919061435c565b905060405180606001604052808d6040015186815181106119ff576119fe61489a565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200187815260200182815250878581518110611a4357611a4261489a565b5b6020026020010181905250600181611a5b9190614390565b95508160086000898781518110611a7557611a7461489a565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611aca9190614390565b925050819055505050508080611adf9061496a565b91505061197a565b5060006007600089815260200190815260200160002090508860200151816000019081611b149190614e10565b508860600151816002019080519060200190611b319291906133e0565b50886080015181600301819055508860a00151816004018190555085816005018190555084816006018190555060008160070160006101000a81548160ff02191690831515021790555060018160070160016101000a81548160ff021916908315150217905550806001016000611ba8919061346a565b60005b8451811015611c6c5781600101858281518110611bcb57611bca61489a565b5b6020026020010151908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015550508080611c649061496a565b915050611bab565b508860c00151600a6000828254611c839190614390565b925050819055506009889080600181540180825580915050600190039060005260206000200160009091909190915055877f9e3c7e008a15a3c864482ee94fd7315bcc9d0c04f3a9041ab922f816acffbe0660405160405180910390a2505050505050505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d7457508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b611d84611f15565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611df65760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611ded919061353a565b60405180910390fd5b611dff8161290c565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60003073ffffffffffffffffffffffffffffffffffffffff16633a043242836040518263ffffffff1660e01b8152600401611ea79190613834565b602060405180830381865afa925050508015611ee157506040513d601f19601f82011682018060405250810190611ede9190614ef7565b60015b611eee5760019050611ef4565b60009150505b919050565b6000611f04826129ef565b50611f0e82612a77565b9050919050565b611f1d612ab4565b73ffffffffffffffffffffffffffffffffffffffff16611f3b610b46565b73ffffffffffffffffffffffffffffffffffffffff1614611f9a57611f5e612ab4565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611f91919061353a565b60405180910390fd5b565b611fa68183612abc565b5050565b611fbc8282611fb7612ab4565b612ada565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120325760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612029919061353a565b60405180910390fd5b60006120468383612041612ab4565b612aec565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120bc578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016120b393929190614f24565b60405180910390fd5b50505050565b60006120cd826129ef565b9050919050565b600080600090505b6009805490508110156123cf576000600982815481106120ff576120fe61489a565b5b906000526020600020015490506000600760008381526020019081526020016000206040518061012001604052908160008201805461213d906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054612169906141fe565b80156121b65780601f1061218b576101008083540402835291602001916121b6565b820191906000526020600020905b81548152906001019060200180831161219957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561228057838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481525050815260200190600101906121e4565b5050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561230d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122c3575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff161515151581526020016007820160019054906101000a900460ff1615151515815250509050848160a001511115801561238e57508060c001518511155b801561239c57508060e00151155b80156123aa57508061010001515b156123ba578193505050506123d5565b505080806123c79061496a565b9150506120dc565b50600090505b919050565b600080831161241e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612415906145c6565b60405180910390fd5b6007600084815260200190815260200160002060070160019054906101000a900460ff16612481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247890614658565b60405180910390fd5b60076000848152602001908152602001600020600501548210156124da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d190614fcd565b60405180910390fd5b6007600084815260200190815260200160002060060154821115612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a9061505f565b60405180910390fd5b60006007600085815260200190815260200160002060405180610120016040529081600082018054612564906141fe565b80601f0160208091040260200160405190810160405280929190818152602001828054612590906141fe565b80156125dd5780601f106125b2576101008083540402835291602001916125dd565b820191906000526020600020905b8154815290600101906020018083116125c057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b828210156126a757838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250508152602001906001019061260b565b5050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561273457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116126ea575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff161515151581526020016007820160019054906101000a900460ff161515151581525050905060005b816020015151811015612810576000826020015182815181106127c6576127c561489a565b5b60200260200101519050848160200151111580156127e8575080604001518511155b156127fc578060000151935050505061284c565b5080806128089061496a565b9150506127a0565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612843906150f1565b60405180910390fd5b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128c55760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016128bc919061353a565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6129dd8484846107bc565b6129e984848484612d06565b50505050565b6000806129fb83612ebd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a6e57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612a659190613834565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b612ad6828260405180602001604052806000815250612efa565b5050565b612ae78383836001612f16565b505050565b600080612af884612ebd565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b3a57612b398184866130db565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612bcb57612b7c600085600080612f16565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612c4e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115612eb7578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d4a612ab4565b8685856040518563ffffffff1660e01b8152600401612d6c9493929190615166565b6020604051808303816000875af1925050508015612da857506040513d601f19601f82011682018060405250810190612da591906151c7565b60015b612e2c573d8060008114612dd8576040519150601f19603f3d011682016040523d82523d6000602084013e612ddd565b606091505b506000815103612e2457836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612e1b919061353a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612eac919061353a565b60405180910390fd5b505b50505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b612f04838361319f565b612f116000848484612d06565b505050565b8080612f4f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613083576000612f5f846129ef565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612fca57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612fdd5750612fdb8184611ceb565b155b1561301f57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401613016919061353a565b60405180910390fd5b811561308157838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6130e6838383613298565b61319a57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361315b57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016131529190613834565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016131919291906151f4565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036132115760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401613208919061353a565b60405180910390fd5b600061321f83836000612aec565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146132935760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161328a919061353a565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561335057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061331157506133108484611ceb565b5b8061334f57508273ffffffffffffffffffffffffffffffffffffffff1661333783612a77565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b604051806101200160405280606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b828054828255906000526020600020908101928215613459579160200282015b828111156134585782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613400565b5b509050613466919061348e565b5090565b508054600082556003029060005260206000209081019061348b91906134ab565b50565b5b808211156134a757600081600090555060010161348f565b5090565b5b808211156134f557600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160009055506003016134ac565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613524826134f9565b9050919050565b61353481613519565b82525050565b600060208201905061354f600083018461352b565b92915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61359e81613569565b81146135a957600080fd5b50565b6000813590506135bb81613595565b92915050565b6000602082840312156135d7576135d661355f565b5b60006135e5848285016135ac565b91505092915050565b60008115159050919050565b613603816135ee565b82525050565b600060208201905061361e60008301846135fa565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561365e578082015181840152602081019050613643565b60008484015250505050565b6000601f19601f8301169050919050565b600061368682613624565b613690818561362f565b93506136a0818560208601613640565b6136a98161366a565b840191505092915050565b600060208201905081810360008301526136ce818461367b565b905092915050565b6000819050919050565b6136e9816136d6565b81146136f457600080fd5b50565b600081359050613706816136e0565b92915050565b6000602082840312156137225761372161355f565b5b6000613730848285016136f7565b91505092915050565b61374281613519565b811461374d57600080fd5b50565b60008135905061375f81613739565b92915050565b6000806040838503121561377c5761377b61355f565b5b600061378a85828601613750565b925050602061379b858286016136f7565b9150509250929050565b6000602082840312156137bb576137ba61355f565b5b60006137c984828501613750565b91505092915050565b6000806000606084860312156137eb576137ea61355f565b5b60006137f986828701613750565b935050602061380a86828701613750565b925050604061381b868287016136f7565b9150509250925092565b61382e816136d6565b82525050565b60006020820190506138496000830184613825565b92915050565b613858816135ee565b811461386357600080fd5b50565b6000813590506138758161384f565b92915050565b600080604083850312156138925761389161355f565b5b60006138a085828601613750565b92505060206138b185828601613866565b9150509250929050565b600082825260208201905092915050565b60006138d782613624565b6138e181856138bb565b93506138f1818560208601613640565b6138fa8161366a565b840191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61393a81613519565b82525050565b613949816136d6565b82525050565b6060820160008201516139656000850182613931565b5060208201516139786020850182613940565b50604082015161398b6040850182613940565b50505050565b600061399d838361394f565b60608301905092915050565b6000602082019050919050565b60006139c182613905565b6139cb8185613910565b93506139d683613921565b8060005b83811015613a075781516139ee8882613991565b97506139f9836139a9565b9250506001810190506139da565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000613a4c8383613931565b60208301905092915050565b6000602082019050919050565b6000613a7082613a14565b613a7a8185613a1f565b9350613a8583613a30565b8060005b83811015613ab6578151613a9d8882613a40565b9750613aa883613a58565b925050600181019050613a89565b5085935050505092915050565b613acc816135ee565b82525050565b6000610120830160008301518482036000860152613af082826138cc565b91505060208301518482036020860152613b0a82826139b6565b91505060408301518482036040860152613b248282613a65565b9150506060830151613b396060860182613940565b506080830151613b4c6080860182613940565b5060a0830151613b5f60a0860182613940565b5060c0830151613b7260c0860182613940565b5060e0830151613b8560e0860182613ac3565b50610100830151613b9a610100860182613ac3565b508091505092915050565b60006020820190508181036000830152613bbf8184613ad2565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613c098261366a565b810181811067ffffffffffffffff82111715613c2857613c27613bd1565b5b80604052505050565b6000613c3b613555565b9050613c478282613c00565b919050565b600067ffffffffffffffff821115613c6757613c66613bd1565b5b613c708261366a565b9050602081019050919050565b82818337600083830152505050565b6000613c9f613c9a84613c4c565b613c31565b905082815260208101848484011115613cbb57613cba613bcc565b5b613cc6848285613c7d565b509392505050565b600082601f830112613ce357613ce2613bc7565b5b8135613cf3848260208601613c8c565b91505092915050565b60008060008060808587031215613d1657613d1561355f565b5b6000613d2487828801613750565b9450506020613d3587828801613750565b9350506040613d46878288016136f7565b925050606085013567ffffffffffffffff811115613d6757613d66613564565b5b613d7387828801613cce565b91505092959194509250565b600080fd5b600080fd5b600067ffffffffffffffff821115613da457613da3613bd1565b5b613dad8261366a565b9050602081019050919050565b6000613dcd613dc884613d89565b613c31565b905082815260208101848484011115613de957613de8613bcc565b5b613df4848285613c7d565b509392505050565b600082601f830112613e1157613e10613bc7565b5b8135613e21848260208601613dba565b91505092915050565b600067ffffffffffffffff821115613e4557613e44613bd1565b5b602082029050602081019050919050565b600080fd5b600060ff82169050919050565b613e7181613e5b565b8114613e7c57600080fd5b50565b600081359050613e8e81613e68565b92915050565b600060408284031215613eaa57613ea9613d7f565b5b613eb46040613c31565b90506000613ec484828501613750565b6000830152506020613ed884828501613e7f565b60208301525092915050565b6000613ef7613ef284613e2a565b613c31565b90508083825260208201905060408402830185811115613f1a57613f19613e56565b5b835b81811015613f435780613f2f8882613e94565b845260208401935050604081019050613f1c565b5050509392505050565b600082601f830112613f6257613f61613bc7565b5b8135613f72848260208601613ee4565b91505092915050565b600067ffffffffffffffff821115613f9657613f95613bd1565b5b602082029050602081019050919050565b6000613fba613fb584613f7b565b613c31565b90508083825260208201905060208402830185811115613fdd57613fdc613e56565b5b835b818110156140065780613ff28882613750565b845260208401935050602081019050613fdf565b5050509392505050565b600082601f83011261402557614024613bc7565b5b8135614035848260208601613fa7565b91505092915050565b600060e0828403121561405457614053613d7f565b5b61405e60e0613c31565b9050600061406e848285016136f7565b600083015250602082013567ffffffffffffffff81111561409257614091613d84565b5b61409e84828501613dfc565b602083015250604082013567ffffffffffffffff8111156140c2576140c1613d84565b5b6140ce84828501613f4d565b604083015250606082013567ffffffffffffffff8111156140f2576140f1613d84565b5b6140fe84828501614010565b6060830152506080614112848285016136f7565b60808301525060a0614126848285016136f7565b60a08301525060c061413a848285016136f7565b60c08301525092915050565b60006020828403121561415c5761415b61355f565b5b600082013567ffffffffffffffff81111561417a57614179613564565b5b6141868482850161403e565b91505092915050565b600080604083850312156141a6576141a561355f565b5b60006141b485828601613750565b92505060206141c585828601613750565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061421657607f821691505b602082108103614229576142286141cf565b5b50919050565b7f44656665727265643a20617070726f7665206973206e6f7420616c6c6f776564600082015250565b600061426560208361362f565b91506142708261422f565b602082019050919050565b6000602082019050818103600083015261429481614258565b9050919050565b7f44656665727265643a2063616c6c6572206973206e6f7420746865206d61726b60008201527f6574706c61636500000000000000000000000000000000000000000000000000602082015250565b60006142f760278361362f565b91506143028261429b565b604082019050919050565b60006020820190508181036000830152614326816142ea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614367826136d6565b9150614372836136d6565b925082820390508181111561438a5761438961432d565b5b92915050565b600061439b826136d6565b91506143a6836136d6565b92508282019050808211156143be576143bd61432d565b5b92915050565b7f44656665727265643a20736574417070726f76616c466f72416c6c206973206e60008201527f6f7420616c6c6f77656400000000000000000000000000000000000000000000602082015250565b6000614420602a8361362f565b915061442b826143c4565b604082019050919050565b6000602082019050818103600083015261444f81614413565b9050919050565b7f44656665727265643a20746f6b656e20646f6573206e6f742065786973740000600082015250565b600061448c601e8361362f565b915061449782614456565b602082019050919050565b600060208201905081810360008301526144bb8161447f565b9050919050565b7f44656665727265643a2063616c6c6572206973206e6f7420746865206d696e7460008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b600061451e60228361362f565b9150614529826144c2565b604082019050919050565b6000602082019050818103600083015261454d81614511565b9050919050565b7f44656665727265643a20636f6e74726163744964206d7573742062652067726560008201527f61746572207468616e2030000000000000000000000000000000000000000000602082015250565b60006145b0602b8361362f565b91506145bb82614554565b604082019050919050565b600060208201905081810360008301526145df816145a3565b9050919050565b7f44656665727265643a20636f6e747261637420646f6573206e6f74206578697360008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061464260218361362f565b915061464d826145e6565b604082019050919050565b6000602082019050818103600083015261467181614635565b9050919050565b7f44656665727265643a20636f6e747261637420697320616c726561647920636c60008201527f6f73656400000000000000000000000000000000000000000000000000000000602082015250565b60006146d460248361362f565b91506146df82614678565b604082019050919050565b60006020820190508181036000830152614703816146c7565b9050919050565b7f44656665727265643a20636f6e747261637420697320616c726561647920637260008201527f6561746564000000000000000000000000000000000000000000000000000000602082015250565b600061476660258361362f565b91506147718261470a565b604082019050919050565b6000602082019050818103600083015261479581614759565b9050919050565b7f44656665727265643a2072657761726420706f6f6c206973206e6f7420736574600082015250565b60006147d260208361362f565b91506147dd8261479c565b602082019050919050565b60006020820190508181036000830152614801816147c5565b9050919050565b7f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206760008201527f726561746572207468616e203000000000000000000000000000000000000000602082015250565b6000614864602d8361362f565b915061486f82614808565b604082019050919050565b6000602082019050818103600083015261489381614857565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f44656665727265643a2073656c6c6572206d7573742062652073657400000000600082015250565b60006148ff601c8361362f565b915061490a826148c9565b602082019050919050565b6000602082019050818103600083015261492e816148f2565b9050919050565b600061494082613e5b565b915061494b83613e5b565b9250828201905060ff8111156149645761496361432d565b5b92915050565b6000614975826136d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036149a7576149a661432d565b5b600182019050919050565b7f44656665727265643a20746f74616c2071756f7461206d75737420626520313060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a0e60218361362f565b9150614a19826149b2565b604082019050919050565b60006020820190508181036000830152614a3d81614a01565b9050919050565b7f44656665727265643a20746f6b656e5072696365557364206d7573742062652060008201527f67726561746572207468616e2030000000000000000000000000000000000000602082015250565b6000614aa0602e8361362f565b9150614aab82614a44565b604082019050919050565b60006020820190508181036000830152614acf81614a93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b10826136d6565b9150614b1b836136d6565b925082614b2b57614b2a614ad6565b5b828206905092915050565b7f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206460008201527f6976697369626c65206279203130300000000000000000000000000000000000602082015250565b6000614b92602f8361362f565b9150614b9d82614b36565b604082019050919050565b60006020820190508181036000830152614bc181614b85565b9050919050565b6000604082019050614bdd6000830185613825565b614bea6020830184613825565b9392505050565b6000614bfc826136d6565b9150614c07836136d6565b925082614c1757614c16614ad6565b5b828204905092915050565b6000614c2d826136d6565b9150614c38836136d6565b9250828202614c46816136d6565b91508282048414831517614c5d57614c5c61432d565b5b5092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614cc67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614c89565b614cd08683614c89565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614d0d614d08614d03846136d6565b614ce8565b6136d6565b9050919050565b6000819050919050565b614d2783614cf2565b614d3b614d3382614d14565b848454614c96565b825550505050565b600090565b614d50614d43565b614d5b818484614d1e565b505050565b5b81811015614d7f57614d74600082614d48565b600181019050614d61565b5050565b601f821115614dc457614d9581614c64565b614d9e84614c79565b81016020851015614dad578190505b614dc1614db985614c79565b830182614d60565b50505b505050565b600082821c905092915050565b6000614de760001984600802614dc9565b1980831691505092915050565b6000614e008383614dd6565b9150826002028217905092915050565b614e1982613624565b67ffffffffffffffff811115614e3257614e31613bd1565b5b614e3c82546141fe565b614e47828285614d83565b600060209050601f831160018114614e7a5760008415614e68578287015190505b614e728582614df4565b865550614eda565b601f198416614e8886614c64565b60005b82811015614eb057848901518255600182019150602085019450602081019050614e8b565b86831015614ecd5784890151614ec9601f891682614dd6565b8355505b6001600288020188555050505b505050505050565b600081519050614ef181613739565b92915050565b600060208284031215614f0d57614f0c61355f565b5b6000614f1b84828501614ee2565b91505092915050565b6000606082019050614f39600083018661352b565b614f466020830185613825565b614f53604083018461352b565b949350505050565b7f44656665727265643a20746f6b656e4964206d7573742062652067726561746560008201527f72207468616e206f7220657175616c20746f20746f6b656e46726f6d49640000602082015250565b6000614fb7603e8361362f565b9150614fc282614f5b565b604082019050919050565b60006020820190508181036000830152614fe681614faa565b9050919050565b7f44656665727265643a20746f6b656e4964206d757374206265206c657373207460008201527f68616e206f7220657175616c20746f20746f6b656e546f496400000000000000602082015250565b600061504960398361362f565b915061505482614fed565b604082019050919050565b600060208201905081810360008301526150788161503c565b9050919050565b7f44656665727265643a20746f6b656e20646f6573206e6f742062656c6f6e672060008201527f746f20616e792073656c6c657200000000000000000000000000000000000000602082015250565b60006150db602d8361362f565b91506150e68261507f565b604082019050919050565b6000602082019050818103600083015261510a816150ce565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061513882615111565b615142818561511c565b9350615152818560208601613640565b61515b8161366a565b840191505092915050565b600060808201905061517b600083018761352b565b615188602083018661352b565b6151956040830185613825565b81810360608301526151a7818461512d565b905095945050505050565b6000815190506151c181613595565b92915050565b6000602082840312156151dd576151dc61355f565b5b60006151eb848285016151b2565b91505092915050565b6000604082019050615209600083018561352b565b6152166020830184613825565b939250505056fea26469706673582212208fb7dcbf22056fd9625970b88ad1342b51cd8be2b9c2d5d141a31e736a73c72b64736f6c63430008140033", + "bytecode": "0x60806040526000600a55600b80546001600160a01b0319908116909155600c805482169055600d8054909116905534801561003957600080fd5b50604051612ffe380380612ffe8339810160408190526100589161014a565b8060405180604001604052806008815260200167111959995c9c995960c21b81525060405180604001604052806008815260200167111151915494915160c21b81525081600090816100aa9190610219565b5060016100b78282610219565b5050506001600160a01b0381166100e857604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100f1816100f8565b50506102d7565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006020828403121561015c57600080fd5b81516001600160a01b038116811461017357600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806101a457607f821691505b6020821081036101c457634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561021457806000526020600020601f840160051c810160208510156101f15750805b601f840160051c820191505b8181101561021157600081556001016101fd565b50505b505050565b81516001600160401b038111156102325761023261017a565b610246816102408454610190565b846101ca565b6020601f82116001811461027a57600083156102625750848201515b600019600385901b1c1916600184901b178455610211565b600084815260208120601f198516915b828110156102aa578785015182556020948501946001909201910161028a565b50848210156102c85786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b612d18806102e66000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063abc8c7af11610097578063d0ce736011610071578063d0ce736014610397578063d471cf5d146103aa578063e985e9c5146103bd578063f2fde38b146103d057600080fd5b8063abc8c7af1461035e578063b88d4fde14610371578063c87b56dd1461038457600080fd5b806395d89b41116100d357806395d89b41146103105780639be78f0514610318578063a22cb4651461032b578063a30fb0201461033e57600080fd5b8063715018a6146102e457806382558c2a146102ec5780638da5cb5b146102ff57600080fd5b806323b872dd116101665780635926912211610140578063592691221461028a5780636352211e146102ab57806366666aa9146102be57806370a08231146102d157600080fd5b806323b872dd146102515780633a0432421461026457806342842e0e1461027757600080fd5b8063017d6f99146101ae57806301ffc9a7146101de57806306fdde0314610201578063081812fc14610216578063095ea7b3146102295780631892dd9f1461023e575b600080fd5b600d546101c1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f16101ec3660046122b7565b6103e3565b60405190151581526020016101d5565b610209610435565b6040516101d5919061231a565b6101c161022436600461232d565b6104c7565b61023c61023736600461235b565b6104f1565b005b61023c61024c366004612387565b61053e565b61023c61025f3660046123a4565b610568565b6101c161027236600461232d565b61064d565b61023c6102853660046123a4565b610658565b61029d61029836600461232d565b610673565b6040519081526020016101d5565b6101c16102b936600461232d565b610688565b600c546101c1906001600160a01b031681565b61029d6102df366004612387565b6106b3565b61023c6106df565b61023c6102fa366004612387565b6106f3565b6006546001600160a01b03166101c1565b61020961071d565b61023c610326366004612387565b61072c565b61023c6103393660046123e5565b610756565b61035161034c36600461232d565b6107b1565b6040516101d591906124bc565b600b546101c1906001600160a01b031681565b61023c61037f36600461265b565b610a3f565b61020961039236600461232d565b610b2b565b61023c6103a536600461232d565b610b3d565b61023c6103b8366004612835565b610c83565b6101f16103cb366004612928565b611414565b61023c6103de366004612387565b61144b565b60006001600160e01b031982166380ac58cd60e01b148061041457506001600160e01b03198216635b5e139f60e01b145b8061042f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461044490612956565b80601f016020809104026020016040519081016040528092919081815260200182805461047090612956565b80156104bd5780601f10610492576101008083540402835291602001916104bd565b820191906000526020600020905b8154815290600101906020018083116104a057829003601f168201915b5050505050905090565b60006104d282611489565b156104e8575050600b546001600160a01b031690565b61042f826114f9565b60405162461bcd60e51b815260206004820181905260248201527f44656665727265643a20617070726f7665206973206e6f7420616c6c6f77656460448201526064015b60405180910390fd5b610546611522565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314801561058c5750600b546001600160a01b031615155b6105a85760405162461bcd60e51b815260040161053590612990565b6105b181611489565b15610609576105c0818361154f565b6001600160a01b03831660009081526008602052604081208054600192906105e99084906129ed565b9091555050600b54610604906001600160a01b03168261155d565b505050565b600b546001600160a01b031661061e826114f9565b6001600160a01b03161461064257600b54610642906001600160a01b03168261155d565b610604838383611568565b600061042f826115ed565b61060483838360405180602001604052806000815250610a3f565b600061067e826107b1565b6080015192915050565b600061069382611489565b156106aa5761042f6106a4836115f8565b8361185a565b61042f826115ed565b6001600160a01b0381166000908152600860205260408120546106d583611c5a565b61042f9190612a00565b6106e7611522565b6106f16000611ca2565b565b6106fb611522565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001805461044490612956565b610734611522565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b60405162461bcd60e51b815260206004820152602a60248201527f44656665727265643a20736574417070726f76616c466f72416c6c206973206e6044820152691bdd08185b1b1bddd95960b21b6064820152608401610535565b610804604051806101200160405280606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b600061080f836115f8565b9050600081116108615760405162461bcd60e51b815260206004820152601e60248201527f44656665727265643a20746f6b656e20646f6573206e6f7420657869737400006044820152606401610535565b600081815260076020526040908190208151610120810190925280548290829061088a90612956565b80601f01602080910402602001604051908101604052809291908181526020018280546108b690612956565b80156109035780601f106108d857610100808354040283529160200191610903565b820191906000526020600020905b8154815290600101906020018083116108e657829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015610986576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101610931565b505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156109e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109c9575b50505091835250506003820154602082015260048201546040820152600582015460608201526006820154608082015260079091015460ff808216151560a084015261010090910416151560c0909101529392505050565b600b546001600160a01b031633148015610a635750600b546001600160a01b031615155b610a7f5760405162461bcd60e51b815260040161053590612990565b610a8882611489565b15610ae057610a97828461154f565b6001600160a01b0384166000908152600860205260408120805460019290610ac09084906129ed565b9091555050600b54610adb906001600160a01b03168361155d565b610b25565b600b546001600160a01b0316610af5836114f9565b6001600160a01b031614610b1957600b54610b19906001600160a01b03168361155d565b610b2584848484611cf4565b50505050565b6060610b36826107b1565b5192915050565b600d546001600160a01b031633148015610b615750600d546001600160a01b031615155b610b7d5760405162461bcd60e51b815260040161053590612a13565b60008111610b9d5760405162461bcd60e51b815260040161053590612a55565b60008181526007602081905260409091200154610100900460ff16610bd45760405162461bcd60e51b815260040161053590612aa0565b60008181526007602081905260409091209081015460ff1615610c455760405162461bcd60e51b8152602060048201526024808201527f44656665727265643a20636f6e747261637420697320616c726561647920636c6044820152631bdcd95960e21b6064820152608401610535565b60078101805460ff1916600117905560405182907fd79ef0d7f68df3d827e7c4b6a13ec4570e9a30515c4717bbaa647da58ca68be190600090a25050565b600d546001600160a01b031633148015610ca75750600d546001600160a01b031615155b610cc35760405162461bcd60e51b815260040161053590612a13565b805180610ce25760405162461bcd60e51b815260040161053590612a55565b60008181526007602081905260409091200154610100900460ff1615610d585760405162461bcd60e51b815260206004820152602560248201527f44656665727265643a20636f6e747261637420697320616c726561647920637260448201526419585d195960da1b6064820152608401610535565b600c546001600160a01b0316610db05760405162461bcd60e51b815260206004820181905260248201527f44656665727265643a2072657761726420706f6f6c206973206e6f74207365746044820152606401610535565b60008260c0015111610e1a5760405162461bcd60e51b815260206004820152602d60248201527f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b6064820152608401610535565b6000805b836040015151811015610ee55760006001600160a01b031684604001518281518110610e4c57610e4c612ae1565b6020026020010151600001516001600160a01b031603610eae5760405162461bcd60e51b815260206004820152601c60248201527f44656665727265643a2073656c6c6572206d75737420626520736574000000006044820152606401610535565b83604001518181518110610ec457610ec4612ae1565b60200260200101516020015182610edb9190612af7565b9150600101610e1e565b508060ff16606414610f435760405162461bcd60e51b815260206004820152602160248201527f44656665727265643a20746f74616c2071756f7461206d7573742062652031306044820152600360fc1b6064820152608401610535565b60008360a0015111610fae5760405162461bcd60e51b815260206004820152602e60248201527f44656665727265643a20746f6b656e5072696365557364206d7573742062652060448201526d067726561746572207468616e20360941b6064820152608401610535565b60648360c00151610fbf9190612b26565b156110245760405162461bcd60e51b815260206004820152602f60248201527f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206460448201526e06976697369626c652062792031303608c1b6064820152608401610535565b60808301511561109d57600c54608084015160c08501516040516376b88f1160e11b8152600481019290925260248201526001600160a01b039091169063ed711e2290604401600060405180830381600087803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b505050505b600a5460c08401516000906001906110b59084612a00565b6110bf91906129ed565b9050600085604001515167ffffffffffffffff8111156110e1576110e161256c565b60405190808252806020026020018201604052801561113f57816020015b61112c604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816110ff5790505b5090506000839050600060648860c0015161115a9190612b3a565b905060005b8860400151518110156112945760008960400151828151811061118457611184612ae1565b602002602001015190506000816020015160ff16846111a39190612b4e565b9050600060016111b38388612a00565b6111bd91906129ed565b905060405180606001604052808d6040015186815181106111e0576111e0612ae1565b6020026020010151600001516001600160a01b031681526020018781526020018281525087858151811061121657611216612ae1565b602090810291909101015261122c816001612a00565b9550816008600089878151811061124557611245612ae1565b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546112809190612a00565b90915550506001909301925061115f915050565b5060008781526007602090815260409091209089015181906112b69082612bac565b50606089015180516112d29160028401916020909101906121d9565b506080890151600382015560a08901516004820155600581018690556006810185905560078101805461ffff191661010017905561131460018201600061223e565b60005b8451811015611391578160010185828151811061133657611336612ae1565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b0390921691909117815591810151828401556040015160029091015501611317565b508860c00151600a60008282546113a89190612a00565b90915550506009805460018101825560009182527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0189905560405189917f9e3c7e008a15a3c864482ee94fd7315bcc9d0c04f3a9041ab922f816acffbe0691a2505050505050505050565b600b546000906001600160a01b03838116911614806114445750826001600160a01b0316826001600160a01b0316145b9392505050565b611453611522565b6001600160a01b03811661147d57604051631e4fbdf760e01b815260006004820152602401610535565b61148681611ca2565b50565b604051631d02192160e11b8152600481018290526000903090633a04324290602401602060405180830381865afa9250505080156114e4575060408051601f3d908101601f191682019092526114e191810190612c6b565b60015b6114f057506001919050565b50600092915050565b600061150482611d0b565b506000828152600460205260409020546001600160a01b031661042f565b6006546001600160a01b031633146106f15760405163118cdaa760e01b8152336004820152602401610535565b6115598183611d44565b5050565b611559828233611d5e565b6001600160a01b03821661159257604051633250574960e11b815260006004820152602401610535565b600061159f838333611d6b565b9050836001600160a01b0316816001600160a01b031614610b25576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610535565b600061042f82611d0b565b6000805b6009548110156114f05760006009828154811061161b5761161b612ae1565b906000526020600020015490506000600760008381526020019081526020016000206040518061012001604052908160008201805461165990612956565b80601f016020809104026020016040519081016040528092919081815260200182805461168590612956565b80156116d25780601f106116a7576101008083540402835291602001916116d2565b820191906000526020600020905b8154815290600101906020018083116116b557829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611755576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101611700565b505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156117b657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611798575b50505091835250506003820154602082015260048201546040820152600582015460608201526006820154608082015260079091015460ff808216151560a08085019190915261010090920416151560c090920191909152810151909150851080159061182757508060c001518511155b801561183557508060e00151155b801561184357508061010001515b1561185057509392505050565b50506001016115fc565b600080831161187b5760405162461bcd60e51b815260040161053590612a55565b60008381526007602081905260409091200154610100900460ff166118b25760405162461bcd60e51b815260040161053590612aa0565b6000838152600760205260409020600501548210156119395760405162461bcd60e51b815260206004820152603e60248201527f44656665727265643a20746f6b656e4964206d7573742062652067726561746560448201527f72207468616e206f7220657175616c20746f20746f6b656e46726f6d496400006064820152608401610535565b6000838152600760205260409020600601548211156119c05760405162461bcd60e51b815260206004820152603960248201527f44656665727265643a20746f6b656e4964206d757374206265206c657373207460448201527f68616e206f7220657175616c20746f20746f6b656e546f4964000000000000006064820152608401610535565b600083815260076020526040808220815161012081019092528054829082906119e890612956565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1490612956565b8015611a615780601f10611a3657610100808354040283529160200191611a61565b820191906000526020600020905b815481529060010190602001808311611a4457829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ae4576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101611a8f565b50505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611b4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b27575b50505091835250506003820154602082015260048201546040820152600582015460608201526006820154608082015260079091015460ff808216151560a084015261010090910416151560c090910152905060005b816020015151811015611bfb57600082602001518281518110611bc057611bc0612ae1565b6020026020010151905084816020015111158015611be2575080604001518511155b15611bf25751925061042f915050565b50600101611b9b565b5060405162461bcd60e51b815260206004820152602d60248201527f44656665727265643a20746f6b656e20646f6573206e6f742062656c6f6e672060448201526c3a379030b73c9039b2b63632b960991b6064820152608401610535565b60006001600160a01b038216611c86576040516322718ad960e21b815260006004820152602401610535565b506001600160a01b031660009081526003602052604090205490565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611cff848484610568565b610b2584848484611e64565b6000818152600260205260408120546001600160a01b03168061042f57604051637e27328960e01b815260048101849052602401610535565b611559828260405180602001604052806000815250611f8d565b6106048383836001611fa4565b6000828152600260205260408120546001600160a01b0390811690831615611d9857611d988184866120aa565b6001600160a01b03811615611dd657611db5600085600080611fa4565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615611e05576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0383163b15610b2557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611ea6903390889087908790600401612c88565b6020604051808303816000875af1925050508015611ee1575060408051601f3d908101601f19168201909252611ede91810190612cc5565b60015b611f4a573d808015611f0f576040519150601f19603f3d011682016040523d82523d6000602084013e611f14565b606091505b508051600003611f4257604051633250574960e11b81526001600160a01b0385166004820152602401610535565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14611f8657604051633250574960e11b81526001600160a01b0385166004820152602401610535565b5050505050565b611f97838361210e565b6106046000848484611e64565b8080611fb857506001600160a01b03821615155b1561207a576000611fc884611d0b565b90506001600160a01b03831615801590611ff45750826001600160a01b0316816001600160a01b031614155b801561200757506120058184611414565b155b156120305760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610535565b81156120785783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6120b5838383612173565b610604576001600160a01b0383166120e357604051637e27328960e01b815260048101829052602401610535565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610535565b6001600160a01b03821661213857604051633250574960e11b815260006004820152602401610535565b600061214683836000611d6b565b90506001600160a01b03811615610604576040516339e3563760e11b815260006004820152602401610535565b60006001600160a01b038316158015906121d15750826001600160a01b0316846001600160a01b031614806121ad57506121ad8484611414565b806121d157506000828152600460205260409020546001600160a01b038481169116145b949350505050565b82805482825590600052602060002090810192821561222e579160200282015b8281111561222e57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906121f9565b5061223a92915061225f565b5090565b50805460008255600302906000526020600020908101906114869190612274565b5b8082111561223a5760008155600101612260565b5b8082111561223a5780546001600160a01b03191681556000600182018190556002820155600301612275565b6001600160e01b03198116811461148657600080fd5b6000602082840312156122c957600080fd5b8135611444816122a1565b6000815180845260005b818110156122fa576020818501810151868301820152016122de565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061144460208301846122d4565b60006020828403121561233f57600080fd5b5035919050565b6001600160a01b038116811461148657600080fd5b6000806040838503121561236e57600080fd5b823561237981612346565b946020939093013593505050565b60006020828403121561239957600080fd5b813561144481612346565b6000806000606084860312156123b957600080fd5b83356123c481612346565b925060208401356123d481612346565b929592945050506040919091013590565b600080604083850312156123f857600080fd5b823561240381612346565b91506020830135801515811461241857600080fd5b809150509250929050565b600081518084526020840193506020830160005b8281101561247757815180516001600160a01b03168752602080820151818901526040918201519188019190915260609096019590910190600101612437565b5093949350505050565b600081518084526020840193506020830160005b828110156124775781516001600160a01b0316865260209586019590910190600101612495565b602081526000825161012060208401526124da6101408401826122d4565b90506020840151601f198483030160408501526124f78282612423565b9150506040840151601f198483030160608501526125158282612481565b91505060608401516080840152608084015160a084015260a084015160c084015260c084015160e084015260e084015161255461010085018215159052565b50610100840151801515610120850152509392505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156125a5576125a561256c565b60405290565b60405160e0810167ffffffffffffffff811182821017156125a5576125a561256c565b604051601f8201601f1916810167ffffffffffffffff811182821017156125f7576125f761256c565b604052919050565b60008067ffffffffffffffff84111561261a5761261a61256c565b50601f8301601f191660200161262f816125ce565b91505082815283838301111561264457600080fd5b828260208301376000602084830101529392505050565b6000806000806080858703121561267157600080fd5b843561267c81612346565b9350602085013561268c81612346565b925060408501359150606085013567ffffffffffffffff8111156126af57600080fd5b8501601f810187136126c057600080fd5b6126cf878235602084016125ff565b91505092959194509250565b600082601f8301126126ec57600080fd5b611444838335602085016125ff565b600067ffffffffffffffff8211156127155761271561256c565b5060051b60200190565b600082601f83011261273057600080fd5b813561274361273e826126fb565b6125ce565b8082825260208201915060208360061b86010192508583111561276557600080fd5b602085015b838110156127c4576040818803121561278257600080fd5b61278a612582565b813561279581612346565b8152602082013560ff811681146127ab57600080fd5b602082810191909152908452929092019160400161276a565b5095945050505050565b600082601f8301126127df57600080fd5b81356127ed61273e826126fb565b8082825260208201915060208360051b86010192508583111561280f57600080fd5b602085015b838110156127c457803561282781612346565b835260209283019201612814565b60006020828403121561284757600080fd5b813567ffffffffffffffff81111561285e57600080fd5b820160e0818503121561287057600080fd5b6128786125ab565b81358152602082013567ffffffffffffffff81111561289657600080fd5b6128a2868285016126db565b602083015250604082013567ffffffffffffffff8111156128c257600080fd5b6128ce8682850161271f565b604083015250606082013567ffffffffffffffff8111156128ee57600080fd5b6128fa868285016127ce565b6060830152506080828101359082015260a0808301359082015260c091820135918101919091529392505050565b6000806040838503121561293b57600080fd5b823561294681612346565b9150602083013561241881612346565b600181811c9082168061296a57607f821691505b60208210810361298a57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526027908201527f44656665727265643a2063616c6c6572206973206e6f7420746865206d61726b6040820152666574706c61636560c81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561042f5761042f6129d7565b8082018082111561042f5761042f6129d7565b60208082526022908201527f44656665727265643a2063616c6c6572206973206e6f7420746865206d696e7460408201526132b960f11b606082015260800190565b6020808252602b908201527f44656665727265643a20636f6e74726163744964206d7573742062652067726560408201526a061746572207468616e20360ac1b606082015260800190565b60208082526021908201527f44656665727265643a20636f6e747261637420646f6573206e6f7420657869736040820152601d60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60ff818116838216019081111561042f5761042f6129d7565b634e487b7160e01b600052601260045260246000fd5b600082612b3557612b35612b10565b500690565b600082612b4957612b49612b10565b500490565b808202811582820484141761042f5761042f6129d7565b601f82111561060457806000526020600020601f840160051c81016020851015612b8c5750805b601f840160051c820191505b81811015611f865760008155600101612b98565b815167ffffffffffffffff811115612bc657612bc661256c565b612bda81612bd48454612956565b84612b65565b6020601f821160018114612c0e5760008315612bf65750848201515b600019600385901b1c1916600184901b178455611f86565b600084815260208120601f198516915b82811015612c3e5787850151825560209485019460019092019101612c1e565b5084821015612c5c5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b600060208284031215612c7d57600080fd5b815161144481612346565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612cbb908301846122d4565b9695505050505050565b600060208284031215612cd757600080fd5b8151611444816122a156fea2646970667358221220196efd2875dfc69ac9dfd4ff176f02be1bac0045cc1d181aea6dc39c48785ae364736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063abc8c7af11610097578063d0ce736011610071578063d0ce736014610397578063d471cf5d146103aa578063e985e9c5146103bd578063f2fde38b146103d057600080fd5b8063abc8c7af1461035e578063b88d4fde14610371578063c87b56dd1461038457600080fd5b806395d89b41116100d357806395d89b41146103105780639be78f0514610318578063a22cb4651461032b578063a30fb0201461033e57600080fd5b8063715018a6146102e457806382558c2a146102ec5780638da5cb5b146102ff57600080fd5b806323b872dd116101665780635926912211610140578063592691221461028a5780636352211e146102ab57806366666aa9146102be57806370a08231146102d157600080fd5b806323b872dd146102515780633a0432421461026457806342842e0e1461027757600080fd5b8063017d6f99146101ae57806301ffc9a7146101de57806306fdde0314610201578063081812fc14610216578063095ea7b3146102295780631892dd9f1461023e575b600080fd5b600d546101c1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f16101ec3660046122b7565b6103e3565b60405190151581526020016101d5565b610209610435565b6040516101d5919061231a565b6101c161022436600461232d565b6104c7565b61023c61023736600461235b565b6104f1565b005b61023c61024c366004612387565b61053e565b61023c61025f3660046123a4565b610568565b6101c161027236600461232d565b61064d565b61023c6102853660046123a4565b610658565b61029d61029836600461232d565b610673565b6040519081526020016101d5565b6101c16102b936600461232d565b610688565b600c546101c1906001600160a01b031681565b61029d6102df366004612387565b6106b3565b61023c6106df565b61023c6102fa366004612387565b6106f3565b6006546001600160a01b03166101c1565b61020961071d565b61023c610326366004612387565b61072c565b61023c6103393660046123e5565b610756565b61035161034c36600461232d565b6107b1565b6040516101d591906124bc565b600b546101c1906001600160a01b031681565b61023c61037f36600461265b565b610a3f565b61020961039236600461232d565b610b2b565b61023c6103a536600461232d565b610b3d565b61023c6103b8366004612835565b610c83565b6101f16103cb366004612928565b611414565b61023c6103de366004612387565b61144b565b60006001600160e01b031982166380ac58cd60e01b148061041457506001600160e01b03198216635b5e139f60e01b145b8061042f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461044490612956565b80601f016020809104026020016040519081016040528092919081815260200182805461047090612956565b80156104bd5780601f10610492576101008083540402835291602001916104bd565b820191906000526020600020905b8154815290600101906020018083116104a057829003601f168201915b5050505050905090565b60006104d282611489565b156104e8575050600b546001600160a01b031690565b61042f826114f9565b60405162461bcd60e51b815260206004820181905260248201527f44656665727265643a20617070726f7665206973206e6f7420616c6c6f77656460448201526064015b60405180910390fd5b610546611522565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314801561058c5750600b546001600160a01b031615155b6105a85760405162461bcd60e51b815260040161053590612990565b6105b181611489565b15610609576105c0818361154f565b6001600160a01b03831660009081526008602052604081208054600192906105e99084906129ed565b9091555050600b54610604906001600160a01b03168261155d565b505050565b600b546001600160a01b031661061e826114f9565b6001600160a01b03161461064257600b54610642906001600160a01b03168261155d565b610604838383611568565b600061042f826115ed565b61060483838360405180602001604052806000815250610a3f565b600061067e826107b1565b6080015192915050565b600061069382611489565b156106aa5761042f6106a4836115f8565b8361185a565b61042f826115ed565b6001600160a01b0381166000908152600860205260408120546106d583611c5a565b61042f9190612a00565b6106e7611522565b6106f16000611ca2565b565b6106fb611522565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001805461044490612956565b610734611522565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b60405162461bcd60e51b815260206004820152602a60248201527f44656665727265643a20736574417070726f76616c466f72416c6c206973206e6044820152691bdd08185b1b1bddd95960b21b6064820152608401610535565b610804604051806101200160405280606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b600061080f836115f8565b9050600081116108615760405162461bcd60e51b815260206004820152601e60248201527f44656665727265643a20746f6b656e20646f6573206e6f7420657869737400006044820152606401610535565b600081815260076020526040908190208151610120810190925280548290829061088a90612956565b80601f01602080910402602001604051908101604052809291908181526020018280546108b690612956565b80156109035780601f106108d857610100808354040283529160200191610903565b820191906000526020600020905b8154815290600101906020018083116108e657829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015610986576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101610931565b505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156109e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109c9575b50505091835250506003820154602082015260048201546040820152600582015460608201526006820154608082015260079091015460ff808216151560a084015261010090910416151560c0909101529392505050565b600b546001600160a01b031633148015610a635750600b546001600160a01b031615155b610a7f5760405162461bcd60e51b815260040161053590612990565b610a8882611489565b15610ae057610a97828461154f565b6001600160a01b0384166000908152600860205260408120805460019290610ac09084906129ed565b9091555050600b54610adb906001600160a01b03168361155d565b610b25565b600b546001600160a01b0316610af5836114f9565b6001600160a01b031614610b1957600b54610b19906001600160a01b03168361155d565b610b2584848484611cf4565b50505050565b6060610b36826107b1565b5192915050565b600d546001600160a01b031633148015610b615750600d546001600160a01b031615155b610b7d5760405162461bcd60e51b815260040161053590612a13565b60008111610b9d5760405162461bcd60e51b815260040161053590612a55565b60008181526007602081905260409091200154610100900460ff16610bd45760405162461bcd60e51b815260040161053590612aa0565b60008181526007602081905260409091209081015460ff1615610c455760405162461bcd60e51b8152602060048201526024808201527f44656665727265643a20636f6e747261637420697320616c726561647920636c6044820152631bdcd95960e21b6064820152608401610535565b60078101805460ff1916600117905560405182907fd79ef0d7f68df3d827e7c4b6a13ec4570e9a30515c4717bbaa647da58ca68be190600090a25050565b600d546001600160a01b031633148015610ca75750600d546001600160a01b031615155b610cc35760405162461bcd60e51b815260040161053590612a13565b805180610ce25760405162461bcd60e51b815260040161053590612a55565b60008181526007602081905260409091200154610100900460ff1615610d585760405162461bcd60e51b815260206004820152602560248201527f44656665727265643a20636f6e747261637420697320616c726561647920637260448201526419585d195960da1b6064820152608401610535565b600c546001600160a01b0316610db05760405162461bcd60e51b815260206004820181905260248201527f44656665727265643a2072657761726420706f6f6c206973206e6f74207365746044820152606401610535565b60008260c0015111610e1a5760405162461bcd60e51b815260206004820152602d60248201527f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b6064820152608401610535565b6000805b836040015151811015610ee55760006001600160a01b031684604001518281518110610e4c57610e4c612ae1565b6020026020010151600001516001600160a01b031603610eae5760405162461bcd60e51b815260206004820152601c60248201527f44656665727265643a2073656c6c6572206d75737420626520736574000000006044820152606401610535565b83604001518181518110610ec457610ec4612ae1565b60200260200101516020015182610edb9190612af7565b9150600101610e1e565b508060ff16606414610f435760405162461bcd60e51b815260206004820152602160248201527f44656665727265643a20746f74616c2071756f7461206d7573742062652031306044820152600360fc1b6064820152608401610535565b60008360a0015111610fae5760405162461bcd60e51b815260206004820152602e60248201527f44656665727265643a20746f6b656e5072696365557364206d7573742062652060448201526d067726561746572207468616e20360941b6064820152608401610535565b60648360c00151610fbf9190612b26565b156110245760405162461bcd60e51b815260206004820152602f60248201527f44656665727265643a20746f6b656e73416d6f756e74206d757374206265206460448201526e06976697369626c652062792031303608c1b6064820152608401610535565b60808301511561109d57600c54608084015160c08501516040516376b88f1160e11b8152600481019290925260248201526001600160a01b039091169063ed711e2290604401600060405180830381600087803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b505050505b600a5460c08401516000906001906110b59084612a00565b6110bf91906129ed565b9050600085604001515167ffffffffffffffff8111156110e1576110e161256c565b60405190808252806020026020018201604052801561113f57816020015b61112c604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816110ff5790505b5090506000839050600060648860c0015161115a9190612b3a565b905060005b8860400151518110156112945760008960400151828151811061118457611184612ae1565b602002602001015190506000816020015160ff16846111a39190612b4e565b9050600060016111b38388612a00565b6111bd91906129ed565b905060405180606001604052808d6040015186815181106111e0576111e0612ae1565b6020026020010151600001516001600160a01b031681526020018781526020018281525087858151811061121657611216612ae1565b602090810291909101015261122c816001612a00565b9550816008600089878151811061124557611245612ae1565b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546112809190612a00565b90915550506001909301925061115f915050565b5060008781526007602090815260409091209089015181906112b69082612bac565b50606089015180516112d29160028401916020909101906121d9565b506080890151600382015560a08901516004820155600581018690556006810185905560078101805461ffff191661010017905561131460018201600061223e565b60005b8451811015611391578160010185828151811061133657611336612ae1565b602090810291909101810151825460018082018555600094855293839020825160039092020180546001600160a01b0319166001600160a01b0390921691909117815591810151828401556040015160029091015501611317565b508860c00151600a60008282546113a89190612a00565b90915550506009805460018101825560009182527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0189905560405189917f9e3c7e008a15a3c864482ee94fd7315bcc9d0c04f3a9041ab922f816acffbe0691a2505050505050505050565b600b546000906001600160a01b03838116911614806114445750826001600160a01b0316826001600160a01b0316145b9392505050565b611453611522565b6001600160a01b03811661147d57604051631e4fbdf760e01b815260006004820152602401610535565b61148681611ca2565b50565b604051631d02192160e11b8152600481018290526000903090633a04324290602401602060405180830381865afa9250505080156114e4575060408051601f3d908101601f191682019092526114e191810190612c6b565b60015b6114f057506001919050565b50600092915050565b600061150482611d0b565b506000828152600460205260409020546001600160a01b031661042f565b6006546001600160a01b031633146106f15760405163118cdaa760e01b8152336004820152602401610535565b6115598183611d44565b5050565b611559828233611d5e565b6001600160a01b03821661159257604051633250574960e11b815260006004820152602401610535565b600061159f838333611d6b565b9050836001600160a01b0316816001600160a01b031614610b25576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610535565b600061042f82611d0b565b6000805b6009548110156114f05760006009828154811061161b5761161b612ae1565b906000526020600020015490506000600760008381526020019081526020016000206040518061012001604052908160008201805461165990612956565b80601f016020809104026020016040519081016040528092919081815260200182805461168590612956565b80156116d25780601f106116a7576101008083540402835291602001916116d2565b820191906000526020600020905b8154815290600101906020018083116116b557829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611755576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101611700565b505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156117b657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611798575b50505091835250506003820154602082015260048201546040820152600582015460608201526006820154608082015260079091015460ff808216151560a08085019190915261010090920416151560c090920191909152810151909150851080159061182757508060c001518511155b801561183557508060e00151155b801561184357508061010001515b1561185057509392505050565b50506001016115fc565b600080831161187b5760405162461bcd60e51b815260040161053590612a55565b60008381526007602081905260409091200154610100900460ff166118b25760405162461bcd60e51b815260040161053590612aa0565b6000838152600760205260409020600501548210156119395760405162461bcd60e51b815260206004820152603e60248201527f44656665727265643a20746f6b656e4964206d7573742062652067726561746560448201527f72207468616e206f7220657175616c20746f20746f6b656e46726f6d496400006064820152608401610535565b6000838152600760205260409020600601548211156119c05760405162461bcd60e51b815260206004820152603960248201527f44656665727265643a20746f6b656e4964206d757374206265206c657373207460448201527f68616e206f7220657175616c20746f20746f6b656e546f4964000000000000006064820152608401610535565b600083815260076020526040808220815161012081019092528054829082906119e890612956565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1490612956565b8015611a615780601f10611a3657610100808354040283529160200191611a61565b820191906000526020600020905b815481529060010190602001808311611a4457829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015611ae4576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101611a8f565b50505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611b4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b27575b50505091835250506003820154602082015260048201546040820152600582015460608201526006820154608082015260079091015460ff808216151560a084015261010090910416151560c090910152905060005b816020015151811015611bfb57600082602001518281518110611bc057611bc0612ae1565b6020026020010151905084816020015111158015611be2575080604001518511155b15611bf25751925061042f915050565b50600101611b9b565b5060405162461bcd60e51b815260206004820152602d60248201527f44656665727265643a20746f6b656e20646f6573206e6f742062656c6f6e672060448201526c3a379030b73c9039b2b63632b960991b6064820152608401610535565b60006001600160a01b038216611c86576040516322718ad960e21b815260006004820152602401610535565b506001600160a01b031660009081526003602052604090205490565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611cff848484610568565b610b2584848484611e64565b6000818152600260205260408120546001600160a01b03168061042f57604051637e27328960e01b815260048101849052602401610535565b611559828260405180602001604052806000815250611f8d565b6106048383836001611fa4565b6000828152600260205260408120546001600160a01b0390811690831615611d9857611d988184866120aa565b6001600160a01b03811615611dd657611db5600085600080611fa4565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615611e05576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0383163b15610b2557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611ea6903390889087908790600401612c88565b6020604051808303816000875af1925050508015611ee1575060408051601f3d908101601f19168201909252611ede91810190612cc5565b60015b611f4a573d808015611f0f576040519150601f19603f3d011682016040523d82523d6000602084013e611f14565b606091505b508051600003611f4257604051633250574960e11b81526001600160a01b0385166004820152602401610535565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14611f8657604051633250574960e11b81526001600160a01b0385166004820152602401610535565b5050505050565b611f97838361210e565b6106046000848484611e64565b8080611fb857506001600160a01b03821615155b1561207a576000611fc884611d0b565b90506001600160a01b03831615801590611ff45750826001600160a01b0316816001600160a01b031614155b801561200757506120058184611414565b155b156120305760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610535565b81156120785783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6120b5838383612173565b610604576001600160a01b0383166120e357604051637e27328960e01b815260048101829052602401610535565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610535565b6001600160a01b03821661213857604051633250574960e11b815260006004820152602401610535565b600061214683836000611d6b565b90506001600160a01b03811615610604576040516339e3563760e11b815260006004820152602401610535565b60006001600160a01b038316158015906121d15750826001600160a01b0316846001600160a01b031614806121ad57506121ad8484611414565b806121d157506000828152600460205260409020546001600160a01b038481169116145b949350505050565b82805482825590600052602060002090810192821561222e579160200282015b8281111561222e57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906121f9565b5061223a92915061225f565b5090565b50805460008255600302906000526020600020908101906114869190612274565b5b8082111561223a5760008155600101612260565b5b8082111561223a5780546001600160a01b03191681556000600182018190556002820155600301612275565b6001600160e01b03198116811461148657600080fd5b6000602082840312156122c957600080fd5b8135611444816122a1565b6000815180845260005b818110156122fa576020818501810151868301820152016122de565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061144460208301846122d4565b60006020828403121561233f57600080fd5b5035919050565b6001600160a01b038116811461148657600080fd5b6000806040838503121561236e57600080fd5b823561237981612346565b946020939093013593505050565b60006020828403121561239957600080fd5b813561144481612346565b6000806000606084860312156123b957600080fd5b83356123c481612346565b925060208401356123d481612346565b929592945050506040919091013590565b600080604083850312156123f857600080fd5b823561240381612346565b91506020830135801515811461241857600080fd5b809150509250929050565b600081518084526020840193506020830160005b8281101561247757815180516001600160a01b03168752602080820151818901526040918201519188019190915260609096019590910190600101612437565b5093949350505050565b600081518084526020840193506020830160005b828110156124775781516001600160a01b0316865260209586019590910190600101612495565b602081526000825161012060208401526124da6101408401826122d4565b90506020840151601f198483030160408501526124f78282612423565b9150506040840151601f198483030160608501526125158282612481565b91505060608401516080840152608084015160a084015260a084015160c084015260c084015160e084015260e084015161255461010085018215159052565b50610100840151801515610120850152509392505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156125a5576125a561256c565b60405290565b60405160e0810167ffffffffffffffff811182821017156125a5576125a561256c565b604051601f8201601f1916810167ffffffffffffffff811182821017156125f7576125f761256c565b604052919050565b60008067ffffffffffffffff84111561261a5761261a61256c565b50601f8301601f191660200161262f816125ce565b91505082815283838301111561264457600080fd5b828260208301376000602084830101529392505050565b6000806000806080858703121561267157600080fd5b843561267c81612346565b9350602085013561268c81612346565b925060408501359150606085013567ffffffffffffffff8111156126af57600080fd5b8501601f810187136126c057600080fd5b6126cf878235602084016125ff565b91505092959194509250565b600082601f8301126126ec57600080fd5b611444838335602085016125ff565b600067ffffffffffffffff8211156127155761271561256c565b5060051b60200190565b600082601f83011261273057600080fd5b813561274361273e826126fb565b6125ce565b8082825260208201915060208360061b86010192508583111561276557600080fd5b602085015b838110156127c4576040818803121561278257600080fd5b61278a612582565b813561279581612346565b8152602082013560ff811681146127ab57600080fd5b602082810191909152908452929092019160400161276a565b5095945050505050565b600082601f8301126127df57600080fd5b81356127ed61273e826126fb565b8082825260208201915060208360051b86010192508583111561280f57600080fd5b602085015b838110156127c457803561282781612346565b835260209283019201612814565b60006020828403121561284757600080fd5b813567ffffffffffffffff81111561285e57600080fd5b820160e0818503121561287057600080fd5b6128786125ab565b81358152602082013567ffffffffffffffff81111561289657600080fd5b6128a2868285016126db565b602083015250604082013567ffffffffffffffff8111156128c257600080fd5b6128ce8682850161271f565b604083015250606082013567ffffffffffffffff8111156128ee57600080fd5b6128fa868285016127ce565b6060830152506080828101359082015260a0808301359082015260c091820135918101919091529392505050565b6000806040838503121561293b57600080fd5b823561294681612346565b9150602083013561241881612346565b600181811c9082168061296a57607f821691505b60208210810361298a57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526027908201527f44656665727265643a2063616c6c6572206973206e6f7420746865206d61726b6040820152666574706c61636560c81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561042f5761042f6129d7565b8082018082111561042f5761042f6129d7565b60208082526022908201527f44656665727265643a2063616c6c6572206973206e6f7420746865206d696e7460408201526132b960f11b606082015260800190565b6020808252602b908201527f44656665727265643a20636f6e74726163744964206d7573742062652067726560408201526a061746572207468616e20360ac1b606082015260800190565b60208082526021908201527f44656665727265643a20636f6e747261637420646f6573206e6f7420657869736040820152601d60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60ff818116838216019081111561042f5761042f6129d7565b634e487b7160e01b600052601260045260246000fd5b600082612b3557612b35612b10565b500690565b600082612b4957612b49612b10565b500490565b808202811582820484141761042f5761042f6129d7565b601f82111561060457806000526020600020601f840160051c81016020851015612b8c5750805b601f840160051c820191505b81811015611f865760008155600101612b98565b815167ffffffffffffffff811115612bc657612bc661256c565b612bda81612bd48454612956565b84612b65565b6020601f821160018114612c0e5760008315612bf65750848201515b600019600385901b1c1916600184901b178455611f86565b600084815260208120601f198516915b82811015612c3e5787850151825560209485019460019092019101612c1e565b5084821015612c5c5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b600060208284031215612c7d57600080fd5b815161144481612346565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612cbb908301846122d4565b9695505050505050565b600060208284031215612cd757600080fd5b8151611444816122a156fea2646970667358221220196efd2875dfc69ac9dfd4ff176f02be1bac0045cc1d181aea6dc39c48785ae364736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/integration-tests/src/abi/Ekoke.json b/integration-tests/src/abi/Ekoke.json index 56645f6..8fff790 100644 --- a/integration-tests/src/abi/Ekoke.json +++ b/integration-tests/src/abi/Ekoke.json @@ -562,8 +562,8 @@ "type": "function" } ], - "bytecode": "0x6080604052600060075560006008553480156200001b57600080fd5b5060405162002025380380620020258339818101604052810190620000419190620002f0565b806040518060400160405280600581526020017f456b6f6b650000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f454b4f4b450000000000000000000000000000000000000000000000000000008152508160039081620000bf91906200059c565b508060049081620000d191906200059c565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001495760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000140919062000694565b60405180910390fd5b6200015a81620001c060201b60201c565b506008600660146101000a81548160ff021916908360ff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620006b1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b8826200028b565b9050919050565b620002ca81620002ab565b8114620002d657600080fd5b50565b600081519050620002ea81620002bf565b92915050565b60006020828403121562000309576200030862000286565b5b60006200031984828501620002d9565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003a457607f821691505b602082108103620003ba57620003b96200035c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003e5565b620004308683620003e5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200047d62000477620004718462000448565b62000452565b62000448565b9050919050565b6000819050919050565b62000499836200045c565b620004b1620004a88262000484565b848454620003f2565b825550505050565b600090565b620004c8620004b9565b620004d58184846200048e565b505050565b5b81811015620004fd57620004f1600082620004be565b600181019050620004db565b5050565b601f8211156200054c576200051681620003c0565b6200052184620003d5565b8101602085101562000531578190505b620005496200054085620003d5565b830182620004da565b50505b505050565b600082821c905092915050565b6000620005716000198460080262000551565b1980831691505092915050565b60006200058c83836200055e565b9150826002028217905092915050565b620005a78262000322565b67ffffffffffffffff811115620005c357620005c26200032d565b5b620005cf82546200038b565b620005dc82828562000501565b600060209050601f831160018114620006145760008415620005ff578287015190505b6200060b85826200057e565b8655506200067b565b601f1984166200062486620003c0565b60005b828110156200064e5784890151825560018201915060208501945060208101905062000627565b868310156200066e57848901516200066a601f8916826200055e565b8355505b6001600288020188555050505b505050505050565b6200068e81620002ab565b82525050565b6000602082019050620006ab600083018462000683565b92915050565b61196480620006c16000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb1461031e578063dd62ed3e1461034e578063de31a6141461037e578063e58306f91461039c578063f2fde38b146103b8578063f4ee93db146103d457610137565b806370a082311461028a578063715018a6146102ba5780638da5cb5b146102c457806395d89b41146102e25780639eb6ab621461030057610137565b806332cb6b0c116100ff57806332cb6b0c146101f6578063473761cc146102145780635f3fe30c1461023257806366666aa9146102505780636eee2dad1461026e57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b6101446103f0565b604051610151919061133c565b60405180910390f35b610174600480360381019061016f91906113f7565b610482565b6040516101819190611452565b60405180910390f35b6101926104a5565b60405161019f919061147c565b60405180910390f35b6101c260048036038101906101bd9190611497565b6104af565b6040516101cf9190611452565b60405180910390f35b6101e06104de565b6040516101ed9190611506565b60405180910390f35b6101fe6104f5565b60405161020b919061147c565b60405180910390f35b61021c610500565b604051610229919061147c565b60405180910390f35b61023a610506565b604051610247919061147c565b60405180910390f35b610258610510565b6040516102659190611530565b60405180910390f35b610288600480360381019061028391906113f7565b610536565b005b6102a4600480360381019061029f919061154b565b610748565b6040516102b1919061147c565b60405180910390f35b6102c2610790565b005b6102cc6107a4565b6040516102d99190611530565b60405180910390f35b6102ea6107ce565b6040516102f7919061133c565b60405180910390f35b610308610860565b604051610315919061147c565b60405180910390f35b610338600480360381019061033391906113f7565b61087c565b6040516103459190611452565b60405180910390f35b61036860048036038101906103639190611578565b61089f565b604051610375919061147c565b60405180910390f35b610386610926565b604051610393919061147c565b60405180910390f35b6103b660048036038101906103b191906113f7565b61092c565b005b6103d260048036038101906103cd919061154b565b610a6d565b005b6103ee60048036038101906103e9919061154b565b610af3565b005b6060600380546103ff906115e7565b80601f016020809104026020016040519081016040528092919081815260200182805461042b906115e7565b80156104785780601f1061044d57610100808354040283529160200191610478565b820191906000526020600020905b81548152906001019060200180831161045b57829003601f168201915b5050505050905090565b60008061048d610b3f565b905061049a818585610b47565b600191505092915050565b6000600254905090565b6000806104ba610b3f565b90506104c7858285610b59565b6104d2858585610bed565b60019150509392505050565b6000600660149054906101000a900460ff16905090565b660327a3f6a0874081565b60075481565b65065dd083700081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156105e25750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610621576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106189061168a565b60405180910390fd5b65065dd08370008160075461063691906116d9565b1115610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e9061177f565b60405180910390fd5b660327a3f6a08740816106886104a5565b61069291906116d9565b11156106d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ca90611811565b60405180910390fd5b6106dd8282610ce1565b80600760008282546106ef91906116d9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fe8ea3d4dd0a2eaaf3f7532ad391255544f8a4bcf78f850bbff61d5bac9f775528260405161073c919061147c565b60405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610798610d63565b6107a26000610dea565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107dd906115e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610809906115e7565b80156108565780601f1061082b57610100808354040283529160200191610856565b820191906000526020600020905b81548152906001019060200180831161083957829003601f168201915b5050505050905090565b65065dd0837000660327a3f6a087406108799190611831565b81565b600080610887610b3f565b9050610894818585610bed565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b610934610d63565b65065dd0837000660327a3f6a0874061094d9190611831565b8160085461095b91906116d9565b111561099c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610993906118d7565b60405180910390fd5b660327a3f6a08740816109ad6104a5565b6109b791906116d9565b11156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90611811565b60405180910390fd5b610a028282610ce1565b8060086000828254610a1491906116d9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fb50eb0c1f59aa2c3398e720d868b9224179e36125bff674d6df4bae98b2591a582604051610a61919061147c565b60405180910390a25050565b610a75610d63565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ae75760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ade9190611530565b60405180910390fd5b610af081610dea565b50565b610afb610d63565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b610b548383836001610eb0565b505050565b6000610b65848461089f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610be75781811015610bd7578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610bce939291906118f7565b60405180910390fd5b610be684848484036000610eb0565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c5f5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610c569190611530565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd15760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610cc89190611530565b60405180910390fd5b610cdc838383611087565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d535760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610d4a9190611530565b60405180910390fd5b610d5f60008383611087565b5050565b610d6b610b3f565b73ffffffffffffffffffffffffffffffffffffffff16610d896107a4565b73ffffffffffffffffffffffffffffffffffffffff1614610de857610dac610b3f565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ddf9190611530565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f225760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610f199190611530565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f945760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610f8b9190611530565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015611081578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611078919061147c565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d95780600260008282546110cd91906116d9565b925050819055506111ac565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611165578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161115c939291906118f7565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f55780600260008282540392505081905550611242565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161129f919061147c565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112e65780820151818401526020810190506112cb565b60008484015250505050565b6000601f19601f8301169050919050565b600061130e826112ac565b61131881856112b7565b93506113288185602086016112c8565b611331816112f2565b840191505092915050565b600060208201905081810360008301526113568184611303565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061138e82611363565b9050919050565b61139e81611383565b81146113a957600080fd5b50565b6000813590506113bb81611395565b92915050565b6000819050919050565b6113d4816113c1565b81146113df57600080fd5b50565b6000813590506113f1816113cb565b92915050565b6000806040838503121561140e5761140d61135e565b5b600061141c858286016113ac565b925050602061142d858286016113e2565b9150509250929050565b60008115159050919050565b61144c81611437565b82525050565b60006020820190506114676000830184611443565b92915050565b611476816113c1565b82525050565b6000602082019050611491600083018461146d565b92915050565b6000806000606084860312156114b0576114af61135e565b5b60006114be868287016113ac565b93505060206114cf868287016113ac565b92505060406114e0868287016113e2565b9150509250925092565b600060ff82169050919050565b611500816114ea565b82525050565b600060208201905061151b60008301846114f7565b92915050565b61152a81611383565b82525050565b60006020820190506115456000830184611521565b92915050565b6000602082840312156115615761156061135e565b5b600061156f848285016113ac565b91505092915050565b6000806040838503121561158f5761158e61135e565b5b600061159d858286016113ac565b92505060206115ae858286016113ac565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806115ff57607f821691505b602082108103611612576116116115b8565b5b50919050565b7f456b6f6b653a2063616c6c6572206973206e6f7420746865207265776172642060008201527f706f6f6c00000000000000000000000000000000000000000000000000000000602082015250565b60006116746024836112b7565b915061167f82611618565b604082019050919050565b600060208201905081810360008301526116a381611667565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116e4826113c1565b91506116ef836113c1565b9250828201905080821115611707576117066116aa565b5b92915050565b7f456b6f6b653a2072657761726420706f6f6c206d696e74696e67206c696d697460008201527f2072656163686564000000000000000000000000000000000000000000000000602082015250565b60006117696028836112b7565b91506117748261170d565b604082019050919050565b600060208201905081810360008301526117988161175c565b9050919050565b7f456b6f6b653a20746f74616c20737570706c792077696c6c206578636565642060008201527f746865206d6178696d756d20737570706c790000000000000000000000000000602082015250565b60006117fb6032836112b7565b91506118068261179f565b604082019050919050565b6000602082019050818103600083015261182a816117ee565b9050919050565b600061183c826113c1565b9150611847836113c1565b925082820390508181111561185f5761185e6116aa565b5b92915050565b7f456b6f6b653a206f776e6572206d696e74696e67206c696d697420726561636860008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b60006118c16022836112b7565b91506118cc82611865565b604082019050919050565b600060208201905081810360008301526118f0816118b4565b9050919050565b600060608201905061190c6000830186611521565b611919602083018561146d565b611926604083018461146d565b94935050505056fea2646970667358221220e470270b1d2e8626ef29c4ddc493653ce266b8692d12803c277d013a61e52a2364736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb1461031e578063dd62ed3e1461034e578063de31a6141461037e578063e58306f91461039c578063f2fde38b146103b8578063f4ee93db146103d457610137565b806370a082311461028a578063715018a6146102ba5780638da5cb5b146102c457806395d89b41146102e25780639eb6ab621461030057610137565b806332cb6b0c116100ff57806332cb6b0c146101f6578063473761cc146102145780635f3fe30c1461023257806366666aa9146102505780636eee2dad1461026e57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b6101446103f0565b604051610151919061133c565b60405180910390f35b610174600480360381019061016f91906113f7565b610482565b6040516101819190611452565b60405180910390f35b6101926104a5565b60405161019f919061147c565b60405180910390f35b6101c260048036038101906101bd9190611497565b6104af565b6040516101cf9190611452565b60405180910390f35b6101e06104de565b6040516101ed9190611506565b60405180910390f35b6101fe6104f5565b60405161020b919061147c565b60405180910390f35b61021c610500565b604051610229919061147c565b60405180910390f35b61023a610506565b604051610247919061147c565b60405180910390f35b610258610510565b6040516102659190611530565b60405180910390f35b610288600480360381019061028391906113f7565b610536565b005b6102a4600480360381019061029f919061154b565b610748565b6040516102b1919061147c565b60405180910390f35b6102c2610790565b005b6102cc6107a4565b6040516102d99190611530565b60405180910390f35b6102ea6107ce565b6040516102f7919061133c565b60405180910390f35b610308610860565b604051610315919061147c565b60405180910390f35b610338600480360381019061033391906113f7565b61087c565b6040516103459190611452565b60405180910390f35b61036860048036038101906103639190611578565b61089f565b604051610375919061147c565b60405180910390f35b610386610926565b604051610393919061147c565b60405180910390f35b6103b660048036038101906103b191906113f7565b61092c565b005b6103d260048036038101906103cd919061154b565b610a6d565b005b6103ee60048036038101906103e9919061154b565b610af3565b005b6060600380546103ff906115e7565b80601f016020809104026020016040519081016040528092919081815260200182805461042b906115e7565b80156104785780601f1061044d57610100808354040283529160200191610478565b820191906000526020600020905b81548152906001019060200180831161045b57829003601f168201915b5050505050905090565b60008061048d610b3f565b905061049a818585610b47565b600191505092915050565b6000600254905090565b6000806104ba610b3f565b90506104c7858285610b59565b6104d2858585610bed565b60019150509392505050565b6000600660149054906101000a900460ff16905090565b660327a3f6a0874081565b60075481565b65065dd083700081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156105e25750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610621576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106189061168a565b60405180910390fd5b65065dd08370008160075461063691906116d9565b1115610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e9061177f565b60405180910390fd5b660327a3f6a08740816106886104a5565b61069291906116d9565b11156106d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ca90611811565b60405180910390fd5b6106dd8282610ce1565b80600760008282546106ef91906116d9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fe8ea3d4dd0a2eaaf3f7532ad391255544f8a4bcf78f850bbff61d5bac9f775528260405161073c919061147c565b60405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610798610d63565b6107a26000610dea565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107dd906115e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610809906115e7565b80156108565780601f1061082b57610100808354040283529160200191610856565b820191906000526020600020905b81548152906001019060200180831161083957829003601f168201915b5050505050905090565b65065dd0837000660327a3f6a087406108799190611831565b81565b600080610887610b3f565b9050610894818585610bed565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b610934610d63565b65065dd0837000660327a3f6a0874061094d9190611831565b8160085461095b91906116d9565b111561099c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610993906118d7565b60405180910390fd5b660327a3f6a08740816109ad6104a5565b6109b791906116d9565b11156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90611811565b60405180910390fd5b610a028282610ce1565b8060086000828254610a1491906116d9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fb50eb0c1f59aa2c3398e720d868b9224179e36125bff674d6df4bae98b2591a582604051610a61919061147c565b60405180910390a25050565b610a75610d63565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ae75760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ade9190611530565b60405180910390fd5b610af081610dea565b50565b610afb610d63565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b610b548383836001610eb0565b505050565b6000610b65848461089f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610be75781811015610bd7578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610bce939291906118f7565b60405180910390fd5b610be684848484036000610eb0565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c5f5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610c569190611530565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd15760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610cc89190611530565b60405180910390fd5b610cdc838383611087565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d535760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610d4a9190611530565b60405180910390fd5b610d5f60008383611087565b5050565b610d6b610b3f565b73ffffffffffffffffffffffffffffffffffffffff16610d896107a4565b73ffffffffffffffffffffffffffffffffffffffff1614610de857610dac610b3f565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ddf9190611530565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f225760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610f199190611530565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f945760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610f8b9190611530565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015611081578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611078919061147c565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d95780600260008282546110cd91906116d9565b925050819055506111ac565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611165578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161115c939291906118f7565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f55780600260008282540392505081905550611242565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161129f919061147c565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112e65780820151818401526020810190506112cb565b60008484015250505050565b6000601f19601f8301169050919050565b600061130e826112ac565b61131881856112b7565b93506113288185602086016112c8565b611331816112f2565b840191505092915050565b600060208201905081810360008301526113568184611303565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061138e82611363565b9050919050565b61139e81611383565b81146113a957600080fd5b50565b6000813590506113bb81611395565b92915050565b6000819050919050565b6113d4816113c1565b81146113df57600080fd5b50565b6000813590506113f1816113cb565b92915050565b6000806040838503121561140e5761140d61135e565b5b600061141c858286016113ac565b925050602061142d858286016113e2565b9150509250929050565b60008115159050919050565b61144c81611437565b82525050565b60006020820190506114676000830184611443565b92915050565b611476816113c1565b82525050565b6000602082019050611491600083018461146d565b92915050565b6000806000606084860312156114b0576114af61135e565b5b60006114be868287016113ac565b93505060206114cf868287016113ac565b92505060406114e0868287016113e2565b9150509250925092565b600060ff82169050919050565b611500816114ea565b82525050565b600060208201905061151b60008301846114f7565b92915050565b61152a81611383565b82525050565b60006020820190506115456000830184611521565b92915050565b6000602082840312156115615761156061135e565b5b600061156f848285016113ac565b91505092915050565b6000806040838503121561158f5761158e61135e565b5b600061159d858286016113ac565b92505060206115ae858286016113ac565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806115ff57607f821691505b602082108103611612576116116115b8565b5b50919050565b7f456b6f6b653a2063616c6c6572206973206e6f7420746865207265776172642060008201527f706f6f6c00000000000000000000000000000000000000000000000000000000602082015250565b60006116746024836112b7565b915061167f82611618565b604082019050919050565b600060208201905081810360008301526116a381611667565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116e4826113c1565b91506116ef836113c1565b9250828201905080821115611707576117066116aa565b5b92915050565b7f456b6f6b653a2072657761726420706f6f6c206d696e74696e67206c696d697460008201527f2072656163686564000000000000000000000000000000000000000000000000602082015250565b60006117696028836112b7565b91506117748261170d565b604082019050919050565b600060208201905081810360008301526117988161175c565b9050919050565b7f456b6f6b653a20746f74616c20737570706c792077696c6c206578636565642060008201527f746865206d6178696d756d20737570706c790000000000000000000000000000602082015250565b60006117fb6032836112b7565b91506118068261179f565b604082019050919050565b6000602082019050818103600083015261182a816117ee565b9050919050565b600061183c826113c1565b9150611847836113c1565b925082820390508181111561185f5761185e6116aa565b5b92915050565b7f456b6f6b653a206f776e6572206d696e74696e67206c696d697420726561636860008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b60006118c16022836112b7565b91506118cc82611865565b604082019050919050565b600060208201905081810360008301526118f0816118b4565b9050919050565b600060608201905061190c6000830186611521565b611919602083018561146d565b611926604083018461146d565b94935050505056fea2646970667358221220e470270b1d2e8626ef29c4ddc493653ce266b8692d12803c277d013a61e52a2364736f6c63430008140033", + "bytecode": "0x60806040526000600755600060085534801561001a57600080fd5b50604051610fdd380380610fdd8339810160408190526100399161013b565b8060405180604001604052806005815260200164456b6f6b6560d81b81525060405180604001604052806005815260200164454b4f4b4560d81b8152508160039081610085919061020a565b506004610092828261020a565b5050506001600160a01b0381166100c357604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100cc816100e9565b5050600680546001600160a81b031916600160a31b1790556102c8565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006020828403121561014d57600080fd5b81516001600160a01b038116811461016457600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061019557607f821691505b6020821081036101b557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561020557806000526020600020601f840160051c810160208510156101e25750805b601f840160051c820191505b8181101561020257600081556001016101ee565b50505b505050565b81516001600160401b038111156102235761022361016b565b610237816102318454610181565b846101bb565b6020601f82116001811461026b57600083156102535750848201515b600019600385901b1c1916600184901b178455610202565b600084815260208120601f198516915b8281101561029b578785015182556020948501946001909201910161027b565b50848210156102b95786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610d06806102d76000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb14610278578063dd62ed3e1461028b578063de31a614146102c4578063e58306f9146102cd578063f2fde38b146102e0578063f4ee93db146102f357600080fd5b806370a0823114610226578063715018a61461024f5780638da5cb5b1461025757806395d89b41146102685780639eb6ab621461027057600080fd5b806332cb6b0c116100ff57806332cb6b0c146101c1578063473761cc146101cf5780635f3fe30c146101d857806366666aa9146101e65780636eee2dad1461021157600080fd5b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461017d57806323b872dd1461018f578063313ce567146101a2575b600080fd5b610144610306565b6040516101519190610ae2565b60405180910390f35b61016d610168366004610b4c565b610398565b6040519015158152602001610151565b6002545b604051908152602001610151565b61016d61019d366004610b76565b6103b2565b600654600160a01b900460ff1660405160ff9091168152602001610151565b610181660327a3f6a0874081565b61018160075481565b61018166027ca57357c00081565b6006546101f9906001600160a01b031681565b6040516001600160a01b039091168152602001610151565b61022461021f366004610b4c565b6103d6565b005b610181610234366004610bb3565b6001600160a01b031660009081526020819052604090205490565b61022461056a565b6005546001600160a01b03166101f9565b61014461057e565b61018161058d565b61016d610286366004610b4c565b6105a8565b610181610299366004610bd5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61018160085481565b6102246102db366004610b4c565b6105b6565b6102246102ee366004610bb3565b6106d3565b610224610301366004610bb3565b610711565b60606003805461031590610c08565b80601f016020809104026020016040519081016040528092919081815260200182805461034190610c08565b801561038e5780601f106103635761010080835404028352916020019161038e565b820191906000526020600020905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b6000336103a681858561073b565b60019150505b92915050565b6000336103c085828561074d565b6103cb8585856107cb565b506001949350505050565b6006546001600160a01b0316331480156103fa57506006546001600160a01b031615155b6104575760405162461bcd60e51b8152602060048201526024808201527f456b6f6b653a2063616c6c6572206973206e6f742074686520726577617264206044820152631c1bdbdb60e21b60648201526084015b60405180910390fd5b66027ca57357c0008160075461046d9190610c58565b11156104cc5760405162461bcd60e51b815260206004820152602860248201527f456b6f6b653a2072657761726420706f6f6c206d696e74696e67206c696d6974604482015267081c995858da195960c21b606482015260840161044e565b660327a3f6a08740816104de60025490565b6104e89190610c58565b11156105065760405162461bcd60e51b815260040161044e90610c6b565b610510828261082a565b80600760008282546105229190610c58565b90915550506040518181526001600160a01b038316907fe8ea3d4dd0a2eaaf3f7532ad391255544f8a4bcf78f850bbff61d5bac9f77552906020015b60405180910390a25050565b610572610864565b61057c6000610891565b565b60606004805461031590610c08565b6105a566027ca57357c000660327a3f6a08740610cbd565b81565b6000336103a68185856107cb565b6105be610864565b6105d666027ca57357c000660327a3f6a08740610cbd565b816008546105e49190610c58565b111561063d5760405162461bcd60e51b815260206004820152602260248201527f456b6f6b653a206f776e6572206d696e74696e67206c696d6974207265616368604482015261195960f21b606482015260840161044e565b660327a3f6a087408161064f60025490565b6106599190610c58565b11156106775760405162461bcd60e51b815260040161044e90610c6b565b610681828261082a565b80600860008282546106939190610c58565b90915550506040518181526001600160a01b038316907fb50eb0c1f59aa2c3398e720d868b9224179e36125bff674d6df4bae98b2591a59060200161055e565b6106db610864565b6001600160a01b03811661070557604051631e4fbdf760e01b81526000600482015260240161044e565b61070e81610891565b50565b610719610864565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b61074883838360016108e3565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146107c557818110156107b657604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6107c5848484840360006108e3565b50505050565b6001600160a01b0383166107f557604051634b637e8f60e11b81526000600482015260240161044e565b6001600160a01b03821661081f5760405163ec442f0560e01b81526000600482015260240161044e565b6107488383836109b8565b6001600160a01b0382166108545760405163ec442f0560e01b81526000600482015260240161044e565b610860600083836109b8565b5050565b6005546001600160a01b0316331461057c5760405163118cdaa760e01b815233600482015260240161044e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03841661090d5760405163e602df0560e01b81526000600482015260240161044e565b6001600160a01b03831661093757604051634a1406b160e11b81526000600482015260240161044e565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156107c557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109aa91815260200190565b60405180910390a350505050565b6001600160a01b0383166109e35780600260008282546109d89190610c58565b90915550610a559050565b6001600160a01b03831660009081526020819052604090205481811015610a365760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610a7157600280548290039055610a90565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ad591815260200190565b60405180910390a3505050565b602081526000825180602084015260005b81811015610b105760208186018101516040868401015201610af3565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610b4757600080fd5b919050565b60008060408385031215610b5f57600080fd5b610b6883610b30565b946020939093013593505050565b600080600060608486031215610b8b57600080fd5b610b9484610b30565b9250610ba260208501610b30565b929592945050506040919091013590565b600060208284031215610bc557600080fd5b610bce82610b30565b9392505050565b60008060408385031215610be857600080fd5b610bf183610b30565b9150610bff60208401610b30565b90509250929050565b600181811c90821680610c1c57607f821691505b602082108103610c3c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103ac576103ac610c42565b60208082526032908201527f456b6f6b653a20746f74616c20737570706c792077696c6c2065786365656420604082015271746865206d6178696d756d20737570706c7960701b606082015260800190565b818103818111156103ac576103ac610c4256fea26469706673582212206e822a43f4ac0f804bec36e0c6793764848c181541dfb1ca1e59ca5f77a8e33064736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb14610278578063dd62ed3e1461028b578063de31a614146102c4578063e58306f9146102cd578063f2fde38b146102e0578063f4ee93db146102f357600080fd5b806370a0823114610226578063715018a61461024f5780638da5cb5b1461025757806395d89b41146102685780639eb6ab621461027057600080fd5b806332cb6b0c116100ff57806332cb6b0c146101c1578063473761cc146101cf5780635f3fe30c146101d857806366666aa9146101e65780636eee2dad1461021157600080fd5b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461017d57806323b872dd1461018f578063313ce567146101a2575b600080fd5b610144610306565b6040516101519190610ae2565b60405180910390f35b61016d610168366004610b4c565b610398565b6040519015158152602001610151565b6002545b604051908152602001610151565b61016d61019d366004610b76565b6103b2565b600654600160a01b900460ff1660405160ff9091168152602001610151565b610181660327a3f6a0874081565b61018160075481565b61018166027ca57357c00081565b6006546101f9906001600160a01b031681565b6040516001600160a01b039091168152602001610151565b61022461021f366004610b4c565b6103d6565b005b610181610234366004610bb3565b6001600160a01b031660009081526020819052604090205490565b61022461056a565b6005546001600160a01b03166101f9565b61014461057e565b61018161058d565b61016d610286366004610b4c565b6105a8565b610181610299366004610bd5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61018160085481565b6102246102db366004610b4c565b6105b6565b6102246102ee366004610bb3565b6106d3565b610224610301366004610bb3565b610711565b60606003805461031590610c08565b80601f016020809104026020016040519081016040528092919081815260200182805461034190610c08565b801561038e5780601f106103635761010080835404028352916020019161038e565b820191906000526020600020905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b6000336103a681858561073b565b60019150505b92915050565b6000336103c085828561074d565b6103cb8585856107cb565b506001949350505050565b6006546001600160a01b0316331480156103fa57506006546001600160a01b031615155b6104575760405162461bcd60e51b8152602060048201526024808201527f456b6f6b653a2063616c6c6572206973206e6f742074686520726577617264206044820152631c1bdbdb60e21b60648201526084015b60405180910390fd5b66027ca57357c0008160075461046d9190610c58565b11156104cc5760405162461bcd60e51b815260206004820152602860248201527f456b6f6b653a2072657761726420706f6f6c206d696e74696e67206c696d6974604482015267081c995858da195960c21b606482015260840161044e565b660327a3f6a08740816104de60025490565b6104e89190610c58565b11156105065760405162461bcd60e51b815260040161044e90610c6b565b610510828261082a565b80600760008282546105229190610c58565b90915550506040518181526001600160a01b038316907fe8ea3d4dd0a2eaaf3f7532ad391255544f8a4bcf78f850bbff61d5bac9f77552906020015b60405180910390a25050565b610572610864565b61057c6000610891565b565b60606004805461031590610c08565b6105a566027ca57357c000660327a3f6a08740610cbd565b81565b6000336103a68185856107cb565b6105be610864565b6105d666027ca57357c000660327a3f6a08740610cbd565b816008546105e49190610c58565b111561063d5760405162461bcd60e51b815260206004820152602260248201527f456b6f6b653a206f776e6572206d696e74696e67206c696d6974207265616368604482015261195960f21b606482015260840161044e565b660327a3f6a087408161064f60025490565b6106599190610c58565b11156106775760405162461bcd60e51b815260040161044e90610c6b565b610681828261082a565b80600860008282546106939190610c58565b90915550506040518181526001600160a01b038316907fb50eb0c1f59aa2c3398e720d868b9224179e36125bff674d6df4bae98b2591a59060200161055e565b6106db610864565b6001600160a01b03811661070557604051631e4fbdf760e01b81526000600482015260240161044e565b61070e81610891565b50565b610719610864565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b61074883838360016108e3565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146107c557818110156107b657604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6107c5848484840360006108e3565b50505050565b6001600160a01b0383166107f557604051634b637e8f60e11b81526000600482015260240161044e565b6001600160a01b03821661081f5760405163ec442f0560e01b81526000600482015260240161044e565b6107488383836109b8565b6001600160a01b0382166108545760405163ec442f0560e01b81526000600482015260240161044e565b610860600083836109b8565b5050565b6005546001600160a01b0316331461057c5760405163118cdaa760e01b815233600482015260240161044e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03841661090d5760405163e602df0560e01b81526000600482015260240161044e565b6001600160a01b03831661093757604051634a1406b160e11b81526000600482015260240161044e565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156107c557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109aa91815260200190565b60405180910390a350505050565b6001600160a01b0383166109e35780600260008282546109d89190610c58565b90915550610a559050565b6001600160a01b03831660009081526020819052604090205481811015610a365760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610a7157600280548290039055610a90565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ad591815260200190565b60405180910390a3505050565b602081526000825180602084015260005b81811015610b105760208186018101516040868401015201610af3565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610b4757600080fd5b919050565b60008060408385031215610b5f57600080fd5b610b6883610b30565b946020939093013593505050565b600080600060608486031215610b8b57600080fd5b610b9484610b30565b9250610ba260208501610b30565b929592945050506040919091013590565b600060208284031215610bc557600080fd5b610bce82610b30565b9392505050565b60008060408385031215610be857600080fd5b610bf183610b30565b9150610bff60208401610b30565b90509250929050565b600181811c90821680610c1c57607f821691505b602082108103610c3c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103ac576103ac610c42565b60208082526032908201527f456b6f6b653a20746f74616c20737570706c792077696c6c2065786365656420604082015271746865206d6178696d756d20737570706c7960701b606082015260800190565b818103818111156103ac576103ac610c4256fea26469706673582212206e822a43f4ac0f804bec36e0c6793764848c181541dfb1ca1e59ca5f77a8e33064736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/integration-tests/src/abi/Marketplace.json b/integration-tests/src/abi/Marketplace.json index c77e365..05bf79e 100644 --- a/integration-tests/src/abi/Marketplace.json +++ b/integration-tests/src/abi/Marketplace.json @@ -179,25 +179,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "soldTokens", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -225,8 +206,8 @@ "type": "function" } ], - "bytecode": "0x6080604052600a600460146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b5060405162001dcd38038062001dcd8339818101604052810190620000539190620003ba565b83600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000c95760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c091906200043d565b60405180910390fd5b620000da816200028c60201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200014d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014490620004e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001bf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001b69062000579565b60405180910390fd5b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506200059b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003828262000355565b9050919050565b620003948162000375565b8114620003a057600080fd5b50565b600081519050620003b48162000389565b92915050565b60008060008060808587031215620003d757620003d662000350565b5b6000620003e787828801620003a3565b9450506020620003fa87828801620003a3565b93505060406200040d87828801620003a3565b92505060606200042087828801620003a3565b91505092959194509250565b620004378162000375565b82525050565b60006020820190506200045460008301846200042c565b92915050565b600082825260208201905092915050565b7f4d61726b6574706c6163653a205553442045524332302061646472657373206960008201527f73207a65726f0000000000000000000000000000000000000000000000000000602082015250565b6000620004c96026836200045a565b9150620004d6826200046b565b604082019050919050565b60006020820190508181036000830152620004fc81620004ba565b9050919050565b7f4d61726b6574706c6163653a204465666572726564206164647265737320697360008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000620005616025836200045a565b91506200056e8262000503565b604082019050919050565b60006020820190508181036000830152620005948162000552565b9050919050565b61182280620005ab6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806382558c2a1161006657806382558c2a146100fa5780638da5cb5b14610116578063ad9ab85714610134578063b7b2e45414610164578063f2fde38b1461018057610093565b80632d296bf1146100985780634bd9760f146100b4578063715018a6146100d25780637c3a00fd146100dc575b600080fd5b6100b260048036038101906100ad9190610bf7565b61019c565b005b6100bc61080c565b6040516100c99190610c65565b60405180910390f35b6100da610832565b005b6100e4610846565b6040516100f19190610c9c565b60405180910390f35b610114600480360381019061010f9190610ce3565b610859565b005b61011e6108a5565b60405161012b9190610c65565b60405180910390f35b61014e60048036038101906101499190610bf7565b6108ce565b60405161015b9190610d2b565b60405180910390f35b61017e60048036038101906101799190610d72565b6108ee565b005b61019a60048036038101906101959190610ce3565b6109a1565b005b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022490610dfc565b60405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663a30fb020846040518263ffffffff1660e01b815260040161028f9190610e2b565b600060405180830381865afa1580156102ac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906102d5919061132a565b905060003390506000805b83604001515181101561035a578273ffffffffffffffffffffffffffffffffffffffff168460400151828151811061031b5761031a611373565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610347576001915061035a565b8080610352906113d1565b9150506102e0565b5060008473ffffffffffffffffffffffffffffffffffffffff16636352211e876040518263ffffffff1660e01b81526004016103969190610e2b565b602060405180830381865afa1580156103b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d79190611419565b905060006005600088815260200190815260200160002060009054906101000a900460ff1615801561040d575060008560600151115b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600084610447578660800151610464565b6104548760800151610a27565b87608001516104639190611446565b5b9050808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016104a292919061147a565b602060405180830381865afa1580156104bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e391906114a3565b1015610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b90611542565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd87868a608001516040518463ffffffff1660e01b815260040161056593929190611562565b6020604051808303816000875af1158015610584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a89190611599565b50841561063d578173ffffffffffffffffffffffffffffffffffffffff166323b872dd87306105da8b60800151610a27565b6040518463ffffffff1660e01b81526004016105f893929190611562565b6020604051808303816000875af1158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190611599565b505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd85888c6040518463ffffffff1660e01b815260040161069c93929190611562565b600060405180830381600087803b1580156106b657600080fd5b505af11580156106ca573d6000803e3d6000fd5b50505050821561076857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307420a418789606001516040518363ffffffff1660e01b81526004016107359291906115c6565b600060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050505b6001600560008b815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8692cf5ba66abd64f88cdc1ffa0ee9d9c21ee2d999322a20445ae32393394e3e8b8a60800151856040516107f9939291906115ef565b60405180910390a3505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083a610a5a565b6108446000610ae1565b565b600460149054906101000a900460ff1681565b610861610a5a565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60056020528060005260406000206000915054906101000a900460ff1681565b6108f6610a5a565b60008160ff161161093c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093390611698565b60405180910390fd5b60648160ff161115610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a9061172a565b60405180910390fd5b80600460146101000a81548160ff021916908360ff16021790555050565b6109a9610a5a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a1b5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610a129190610c65565b60405180910390fd5b610a2481610ae1565b50565b60006064600460149054906101000a900460ff1660ff1683610a49919061174a565b610a5391906117bb565b9050919050565b610a62610ba5565b73ffffffffffffffffffffffffffffffffffffffff16610a806108a5565b73ffffffffffffffffffffffffffffffffffffffff1614610adf57610aa3610ba5565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ad69190610c65565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610bd481610bc1565b8114610bdf57600080fd5b50565b600081359050610bf181610bcb565b92915050565b600060208284031215610c0d57610c0c610bb7565b5b6000610c1b84828501610be2565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c4f82610c24565b9050919050565b610c5f81610c44565b82525050565b6000602082019050610c7a6000830184610c56565b92915050565b600060ff82169050919050565b610c9681610c80565b82525050565b6000602082019050610cb16000830184610c8d565b92915050565b610cc081610c44565b8114610ccb57600080fd5b50565b600081359050610cdd81610cb7565b92915050565b600060208284031215610cf957610cf8610bb7565b5b6000610d0784828501610cce565b91505092915050565b60008115159050919050565b610d2581610d10565b82525050565b6000602082019050610d406000830184610d1c565b92915050565b610d4f81610c80565b8114610d5a57600080fd5b50565b600081359050610d6c81610d46565b92915050565b600060208284031215610d8857610d87610bb7565b5b6000610d9684828501610d5d565b91505092915050565b600082825260208201905092915050565b7f4d61726b6574706c6163653a2052657761726420706f6f6c206e6f7420736574600082015250565b6000610de6602083610d9f565b9150610df182610db0565b602082019050919050565b60006020820190508181036000830152610e1581610dd9565b9050919050565b610e2581610bc1565b82525050565b6000602082019050610e406000830184610e1c565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610e9482610e4b565b810181811067ffffffffffffffff82111715610eb357610eb2610e5c565b5b80604052505050565b6000610ec6610bad565b9050610ed28282610e8b565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff821115610f0157610f00610e5c565b5b610f0a82610e4b565b9050602081019050919050565b60005b83811015610f35578082015181840152602081019050610f1a565b60008484015250505050565b6000610f54610f4f84610ee6565b610ebc565b905082815260208101848484011115610f7057610f6f610ee1565b5b610f7b848285610f17565b509392505050565b600082601f830112610f9857610f97610edc565b5b8151610fa8848260208601610f41565b91505092915050565b600067ffffffffffffffff821115610fcc57610fcb610e5c565b5b602082029050602081019050919050565b600080fd5b600081519050610ff181610cb7565b92915050565b60008151905061100681610bcb565b92915050565b60006060828403121561102257611021610e46565b5b61102c6060610ebc565b9050600061103c84828501610fe2565b600083015250602061105084828501610ff7565b602083015250604061106484828501610ff7565b60408301525092915050565b600061108361107e84610fb1565b610ebc565b905080838252602082019050606084028301858111156110a6576110a5610fdd565b5b835b818110156110cf57806110bb888261100c565b8452602084019350506060810190506110a8565b5050509392505050565b600082601f8301126110ee576110ed610edc565b5b81516110fe848260208601611070565b91505092915050565b600067ffffffffffffffff82111561112257611121610e5c565b5b602082029050602081019050919050565b600061114661114184611107565b610ebc565b9050808382526020820190506020840283018581111561116957611168610fdd565b5b835b81811015611192578061117e8882610fe2565b84526020840193505060208101905061116b565b5050509392505050565b600082601f8301126111b1576111b0610edc565b5b81516111c1848260208601611133565b91505092915050565b6111d381610d10565b81146111de57600080fd5b50565b6000815190506111f0816111ca565b92915050565b6000610120828403121561120d5761120c610e46565b5b611218610120610ebc565b9050600082015167ffffffffffffffff81111561123857611237610ed7565b5b61124484828501610f83565b600083015250602082015167ffffffffffffffff81111561126857611267610ed7565b5b611274848285016110d9565b602083015250604082015167ffffffffffffffff81111561129857611297610ed7565b5b6112a48482850161119c565b60408301525060606112b884828501610ff7565b60608301525060806112cc84828501610ff7565b60808301525060a06112e084828501610ff7565b60a08301525060c06112f484828501610ff7565b60c08301525060e0611308848285016111e1565b60e08301525061010061131d848285016111e1565b6101008301525092915050565b6000602082840312156113405761133f610bb7565b5b600082015167ffffffffffffffff81111561135e5761135d610bbc565b5b61136a848285016111f6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113dc82610bc1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361140e5761140d6113a2565b5b600182019050919050565b60006020828403121561142f5761142e610bb7565b5b600061143d84828501610fe2565b91505092915050565b600061145182610bc1565b915061145c83610bc1565b9250828201905080821115611474576114736113a2565b5b92915050565b600060408201905061148f6000830185610c56565b61149c6020830184610c56565b9392505050565b6000602082840312156114b9576114b8610bb7565b5b60006114c784828501610ff7565b91505092915050565b7f4d61726b6574706c6163653a20496e73756666696369656e7420616c6c6f776160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b600061152c602383610d9f565b9150611537826114d0565b604082019050919050565b6000602082019050818103600083015261155b8161151f565b9050919050565b60006060820190506115776000830186610c56565b6115846020830185610c56565b6115916040830184610e1c565b949350505050565b6000602082840312156115af576115ae610bb7565b5b60006115bd848285016111e1565b91505092915050565b60006040820190506115db6000830185610c56565b6115e86020830184610e1c565b9392505050565b60006060820190506116046000830186610e1c565b6116116020830185610e1c565b61161e6040830184610e1c565b949350505050565b7f4d61726b6574706c6163653a20496e7465726573742072617465206d7573742060008201527f62652067726561746572207468616e2030000000000000000000000000000000602082015250565b6000611682603183610d9f565b915061168d82611626565b604082019050919050565b600060208201905081810360008301526116b181611675565b9050919050565b7f4d61726b6574706c6163653a20496e7465726573742072617465206d7573742060008201527f6265206c657373207468616e2031303000000000000000000000000000000000602082015250565b6000611714603083610d9f565b915061171f826116b8565b604082019050919050565b6000602082019050818103600083015261174381611707565b9050919050565b600061175582610bc1565b915061176083610bc1565b925082820261176e81610bc1565b91508282048414831517611785576117846113a2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006117c682610bc1565b91506117d183610bc1565b9250826117e1576117e061178c565b5b82820490509291505056fea26469706673582212209d46c7f68015d12c298f0deb182c49242ac1b0b60610b097b3e6ad1ab29530f064736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c806382558c2a1161006657806382558c2a146100fa5780638da5cb5b14610116578063ad9ab85714610134578063b7b2e45414610164578063f2fde38b1461018057610093565b80632d296bf1146100985780634bd9760f146100b4578063715018a6146100d25780637c3a00fd146100dc575b600080fd5b6100b260048036038101906100ad9190610bf7565b61019c565b005b6100bc61080c565b6040516100c99190610c65565b60405180910390f35b6100da610832565b005b6100e4610846565b6040516100f19190610c9c565b60405180910390f35b610114600480360381019061010f9190610ce3565b610859565b005b61011e6108a5565b60405161012b9190610c65565b60405180910390f35b61014e60048036038101906101499190610bf7565b6108ce565b60405161015b9190610d2b565b60405180910390f35b61017e60048036038101906101799190610d72565b6108ee565b005b61019a60048036038101906101959190610ce3565b6109a1565b005b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022490610dfc565b60405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663a30fb020846040518263ffffffff1660e01b815260040161028f9190610e2b565b600060405180830381865afa1580156102ac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906102d5919061132a565b905060003390506000805b83604001515181101561035a578273ffffffffffffffffffffffffffffffffffffffff168460400151828151811061031b5761031a611373565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610347576001915061035a565b8080610352906113d1565b9150506102e0565b5060008473ffffffffffffffffffffffffffffffffffffffff16636352211e876040518263ffffffff1660e01b81526004016103969190610e2b565b602060405180830381865afa1580156103b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d79190611419565b905060006005600088815260200190815260200160002060009054906101000a900460ff1615801561040d575060008560600151115b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600084610447578660800151610464565b6104548760800151610a27565b87608001516104639190611446565b5b9050808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016104a292919061147a565b602060405180830381865afa1580156104bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e391906114a3565b1015610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b90611542565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd87868a608001516040518463ffffffff1660e01b815260040161056593929190611562565b6020604051808303816000875af1158015610584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a89190611599565b50841561063d578173ffffffffffffffffffffffffffffffffffffffff166323b872dd87306105da8b60800151610a27565b6040518463ffffffff1660e01b81526004016105f893929190611562565b6020604051808303816000875af1158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190611599565b505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd85888c6040518463ffffffff1660e01b815260040161069c93929190611562565b600060405180830381600087803b1580156106b657600080fd5b505af11580156106ca573d6000803e3d6000fd5b50505050821561076857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307420a418789606001516040518363ffffffff1660e01b81526004016107359291906115c6565b600060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050505b6001600560008b815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8692cf5ba66abd64f88cdc1ffa0ee9d9c21ee2d999322a20445ae32393394e3e8b8a60800151856040516107f9939291906115ef565b60405180910390a3505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083a610a5a565b6108446000610ae1565b565b600460149054906101000a900460ff1681565b610861610a5a565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60056020528060005260406000206000915054906101000a900460ff1681565b6108f6610a5a565b60008160ff161161093c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093390611698565b60405180910390fd5b60648160ff161115610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a9061172a565b60405180910390fd5b80600460146101000a81548160ff021916908360ff16021790555050565b6109a9610a5a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a1b5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610a129190610c65565b60405180910390fd5b610a2481610ae1565b50565b60006064600460149054906101000a900460ff1660ff1683610a49919061174a565b610a5391906117bb565b9050919050565b610a62610ba5565b73ffffffffffffffffffffffffffffffffffffffff16610a806108a5565b73ffffffffffffffffffffffffffffffffffffffff1614610adf57610aa3610ba5565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ad69190610c65565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610bd481610bc1565b8114610bdf57600080fd5b50565b600081359050610bf181610bcb565b92915050565b600060208284031215610c0d57610c0c610bb7565b5b6000610c1b84828501610be2565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c4f82610c24565b9050919050565b610c5f81610c44565b82525050565b6000602082019050610c7a6000830184610c56565b92915050565b600060ff82169050919050565b610c9681610c80565b82525050565b6000602082019050610cb16000830184610c8d565b92915050565b610cc081610c44565b8114610ccb57600080fd5b50565b600081359050610cdd81610cb7565b92915050565b600060208284031215610cf957610cf8610bb7565b5b6000610d0784828501610cce565b91505092915050565b60008115159050919050565b610d2581610d10565b82525050565b6000602082019050610d406000830184610d1c565b92915050565b610d4f81610c80565b8114610d5a57600080fd5b50565b600081359050610d6c81610d46565b92915050565b600060208284031215610d8857610d87610bb7565b5b6000610d9684828501610d5d565b91505092915050565b600082825260208201905092915050565b7f4d61726b6574706c6163653a2052657761726420706f6f6c206e6f7420736574600082015250565b6000610de6602083610d9f565b9150610df182610db0565b602082019050919050565b60006020820190508181036000830152610e1581610dd9565b9050919050565b610e2581610bc1565b82525050565b6000602082019050610e406000830184610e1c565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610e9482610e4b565b810181811067ffffffffffffffff82111715610eb357610eb2610e5c565b5b80604052505050565b6000610ec6610bad565b9050610ed28282610e8b565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff821115610f0157610f00610e5c565b5b610f0a82610e4b565b9050602081019050919050565b60005b83811015610f35578082015181840152602081019050610f1a565b60008484015250505050565b6000610f54610f4f84610ee6565b610ebc565b905082815260208101848484011115610f7057610f6f610ee1565b5b610f7b848285610f17565b509392505050565b600082601f830112610f9857610f97610edc565b5b8151610fa8848260208601610f41565b91505092915050565b600067ffffffffffffffff821115610fcc57610fcb610e5c565b5b602082029050602081019050919050565b600080fd5b600081519050610ff181610cb7565b92915050565b60008151905061100681610bcb565b92915050565b60006060828403121561102257611021610e46565b5b61102c6060610ebc565b9050600061103c84828501610fe2565b600083015250602061105084828501610ff7565b602083015250604061106484828501610ff7565b60408301525092915050565b600061108361107e84610fb1565b610ebc565b905080838252602082019050606084028301858111156110a6576110a5610fdd565b5b835b818110156110cf57806110bb888261100c565b8452602084019350506060810190506110a8565b5050509392505050565b600082601f8301126110ee576110ed610edc565b5b81516110fe848260208601611070565b91505092915050565b600067ffffffffffffffff82111561112257611121610e5c565b5b602082029050602081019050919050565b600061114661114184611107565b610ebc565b9050808382526020820190506020840283018581111561116957611168610fdd565b5b835b81811015611192578061117e8882610fe2565b84526020840193505060208101905061116b565b5050509392505050565b600082601f8301126111b1576111b0610edc565b5b81516111c1848260208601611133565b91505092915050565b6111d381610d10565b81146111de57600080fd5b50565b6000815190506111f0816111ca565b92915050565b6000610120828403121561120d5761120c610e46565b5b611218610120610ebc565b9050600082015167ffffffffffffffff81111561123857611237610ed7565b5b61124484828501610f83565b600083015250602082015167ffffffffffffffff81111561126857611267610ed7565b5b611274848285016110d9565b602083015250604082015167ffffffffffffffff81111561129857611297610ed7565b5b6112a48482850161119c565b60408301525060606112b884828501610ff7565b60608301525060806112cc84828501610ff7565b60808301525060a06112e084828501610ff7565b60a08301525060c06112f484828501610ff7565b60c08301525060e0611308848285016111e1565b60e08301525061010061131d848285016111e1565b6101008301525092915050565b6000602082840312156113405761133f610bb7565b5b600082015167ffffffffffffffff81111561135e5761135d610bbc565b5b61136a848285016111f6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113dc82610bc1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361140e5761140d6113a2565b5b600182019050919050565b60006020828403121561142f5761142e610bb7565b5b600061143d84828501610fe2565b91505092915050565b600061145182610bc1565b915061145c83610bc1565b9250828201905080821115611474576114736113a2565b5b92915050565b600060408201905061148f6000830185610c56565b61149c6020830184610c56565b9392505050565b6000602082840312156114b9576114b8610bb7565b5b60006114c784828501610ff7565b91505092915050565b7f4d61726b6574706c6163653a20496e73756666696369656e7420616c6c6f776160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b600061152c602383610d9f565b9150611537826114d0565b604082019050919050565b6000602082019050818103600083015261155b8161151f565b9050919050565b60006060820190506115776000830186610c56565b6115846020830185610c56565b6115916040830184610e1c565b949350505050565b6000602082840312156115af576115ae610bb7565b5b60006115bd848285016111e1565b91505092915050565b60006040820190506115db6000830185610c56565b6115e86020830184610e1c565b9392505050565b60006060820190506116046000830186610e1c565b6116116020830185610e1c565b61161e6040830184610e1c565b949350505050565b7f4d61726b6574706c6163653a20496e7465726573742072617465206d7573742060008201527f62652067726561746572207468616e2030000000000000000000000000000000602082015250565b6000611682603183610d9f565b915061168d82611626565b604082019050919050565b600060208201905081810360008301526116b181611675565b9050919050565b7f4d61726b6574706c6163653a20496e7465726573742072617465206d7573742060008201527f6265206c657373207468616e2031303000000000000000000000000000000000602082015250565b6000611714603083610d9f565b915061171f826116b8565b604082019050919050565b6000602082019050818103600083015261174381611707565b9050919050565b600061175582610bc1565b915061176083610bc1565b925082820261176e81610bc1565b91508282048414831517611785576117846113a2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006117c682610bc1565b91506117d183610bc1565b9250826117e1576117e061178c565b5b82820490509291505056fea26469706673582212209d46c7f68015d12c298f0deb182c49242ac1b0b60610b097b3e6ad1ab29530f064736f6c63430008140033", + "bytecode": "0x60806040526004805460ff60a01b1916600560a11b17905534801561002357600080fd5b50604051610ffb380380610ffb833981016040819052610042916101f4565b836001600160a01b03811661007257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61007b81610188565b506001600160a01b0383166100e15760405162461bcd60e51b815260206004820152602660248201527f4d61726b6574706c6163653a205553442045524332302061646472657373206960448201526573207a65726f60d01b6064820152608401610069565b6001600160a01b0381166101455760405162461bcd60e51b815260206004820152602560248201527f4d61726b6574706c6163653a2044656665727265642061646472657373206973604482015264207a65726f60d81b6064820152608401610069565b600180546001600160a01b039485166001600160a01b03199182161790915560028054938516938216939093179092556003805491909316911617905550610248565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146101ef57600080fd5b919050565b6000806000806080858703121561020a57600080fd5b610213856101d8565b9350610221602086016101d8565b925061022f604086016101d8565b915061023d606086016101d8565b905092959194509250565b610da4806102576000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806382558c2a1161005b57806382558c2a146101005780638da5cb5b14610113578063b7b2e45414610124578063f2fde38b1461013757600080fd5b80632d296bf11461008d5780634bd9760f146100a2578063715018a6146100d25780637c3a00fd146100da575b600080fd5b6100a061009b3660046108ba565b61014a565b005b6001546100b5906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a0610692565b6004546100ee90600160a01b900460ff1681565b60405160ff90911681526020016100c9565b6100a061010e3660046108e8565b6106a6565b6000546001600160a01b03166100b5565b6100a061013236600461090c565b6106d0565b6100a06101453660046108e8565b6107d2565b6004546001600160a01b03166101a75760405162461bcd60e51b815260206004820181905260248201527f4d61726b6574706c6163653a2052657761726420706f6f6c206e6f742073657460448201526064015b60405180910390fd5b6003546040516305187d8160e51b8152600481018390526001600160a01b0390911690600090829063a30fb02090602401600060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021d9190810190610b8f565b9050336000805b83604001515181101561027857826001600160a01b03168460400151828151811061025157610251610ca5565b60200260200101516001600160a01b0316036102705760019150610278565b600101610224565b506040516331a9108f60e11b8152600481018690526000906001600160a01b03861690636352211e90602401602060405180830381865afa1580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e59190610cbb565b6000878152600560205260408120549192509060ff1615801561030c575060008560600151115b6001549091506001600160a01b031660008461032c578660800151610348565b6103398760800151610810565b87608001516103489190610cee565b604051636eb1769f60e11b815233600482015230602482015290915081906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bb9190610d01565b10156104155760405162461bcd60e51b815260206004820152602360248201527f4d61726b6574706c6163653a20496e73756666696369656e7420616c6c6f77616044820152626e636560e81b606482015260840161019e565b60808701516040516323b872dd60e01b81526001600160a01b03888116600483015286811660248301526044820192909252908316906323b872dd906064016020604051808303816000875af1158015610473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104979190610d1a565b50841561053657816001600160a01b03166323b872dd87306104bc8b60800151610810565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190610d1a565b505b6003546040516323b872dd60e01b81526001600160a01b0386811660048301528881166024830152604482018c9052909116906323b872dd90606401600060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050508215610619576004805460608901516040516307420a4160e01b81526001600160a01b038a81169482019490945260248101919091529116906307420a4190604401600060405180830381600087803b15801561060057600080fd5b505af1158015610614573d6000803e3d6000fd5b505050505b600089815260056020908152604091829020805460ff19166001179055608089015182518c8152918201529081018290526001600160a01b0385811691908816907f8692cf5ba66abd64f88cdc1ffa0ee9d9c21ee2d999322a20445ae32393394e3e9060600160405180910390a3505050505050505050565b61069a61083d565b6106a4600061086a565b565b6106ae61083d565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6106d861083d565b60008160ff16116107455760405162461bcd60e51b815260206004820152603160248201527f4d61726b6574706c6163653a20496e7465726573742072617465206d75737420604482015270062652067726561746572207468616e203607c1b606482015260840161019e565b60648160ff1611156107b25760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a20496e7465726573742072617465206d7573742060448201526f06265206c657373207468616e203130360841b606482015260840161019e565b6004805460ff909216600160a01b0260ff60a01b19909216919091179055565b6107da61083d565b6001600160a01b03811661080457604051631e4fbdf760e01b81526000600482015260240161019e565b61080d8161086a565b50565b60045460009060649061082d90600160a01b900460ff1684610d35565b6108379190610d4c565b92915050565b6000546001600160a01b031633146106a45760405163118cdaa760e01b815233600482015260240161019e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156108cc57600080fd5b5035919050565b6001600160a01b038116811461080d57600080fd5b6000602082840312156108fa57600080fd5b8135610905816108d3565b9392505050565b60006020828403121561091e57600080fd5b813560ff8116811461090557600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156109685761096861092f565b60405290565b604051610120810167ffffffffffffffff811182821017156109685761096861092f565b604051601f8201601f1916810167ffffffffffffffff811182821017156109bb576109bb61092f565b604052919050565b600082601f8301126109d457600080fd5b815167ffffffffffffffff8111156109ee576109ee61092f565b610a01601f8201601f1916602001610992565b818152846020838601011115610a1657600080fd5b60005b82811015610a3557602081860181015183830182015201610a19565b506000918101602001919091529392505050565b600067ffffffffffffffff821115610a6357610a6361092f565b5060051b60200190565b600082601f830112610a7e57600080fd5b8151610a91610a8c82610a49565b610992565b80828252602082019150602060608402860101925085831115610ab357600080fd5b602085015b83811015610b095760608188031215610ad057600080fd5b610ad8610945565b8151610ae3816108d3565b815260208281015181830152604080840151908301529084529290920191606001610ab8565b5095945050505050565b600082601f830112610b2457600080fd5b8151610b32610a8c82610a49565b8082825260208201915060208360051b860101925085831115610b5457600080fd5b602085015b83811015610b09578051610b6c816108d3565b835260209283019201610b59565b80518015158114610b8a57600080fd5b919050565b600060208284031215610ba157600080fd5b815167ffffffffffffffff811115610bb857600080fd5b82016101208185031215610bcb57600080fd5b610bd361096e565b815167ffffffffffffffff811115610bea57600080fd5b610bf6868285016109c3565b825250602082015167ffffffffffffffff811115610c1357600080fd5b610c1f86828501610a6d565b602083015250604082015167ffffffffffffffff811115610c3f57600080fd5b610c4b86828501610b13565b604083015250606082810151908201526080808301519082015260a0808301519082015260c08083015190820152610c8560e08301610b7a565b60e0820152610c976101008301610b7a565b610100820152949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610ccd57600080fd5b8151610905816108d3565b634e487b7160e01b600052601160045260246000fd5b8082018082111561083757610837610cd8565b600060208284031215610d1357600080fd5b5051919050565b600060208284031215610d2c57600080fd5b61090582610b7a565b808202811582820484141761083757610837610cd8565b600082610d6957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220dab3e62c6e21985e054bde3b954768c0e4c5c15bef413ff2013b9047dea5dbcf64736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806382558c2a1161005b57806382558c2a146101005780638da5cb5b14610113578063b7b2e45414610124578063f2fde38b1461013757600080fd5b80632d296bf11461008d5780634bd9760f146100a2578063715018a6146100d25780637c3a00fd146100da575b600080fd5b6100a061009b3660046108ba565b61014a565b005b6001546100b5906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a0610692565b6004546100ee90600160a01b900460ff1681565b60405160ff90911681526020016100c9565b6100a061010e3660046108e8565b6106a6565b6000546001600160a01b03166100b5565b6100a061013236600461090c565b6106d0565b6100a06101453660046108e8565b6107d2565b6004546001600160a01b03166101a75760405162461bcd60e51b815260206004820181905260248201527f4d61726b6574706c6163653a2052657761726420706f6f6c206e6f742073657460448201526064015b60405180910390fd5b6003546040516305187d8160e51b8152600481018390526001600160a01b0390911690600090829063a30fb02090602401600060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021d9190810190610b8f565b9050336000805b83604001515181101561027857826001600160a01b03168460400151828151811061025157610251610ca5565b60200260200101516001600160a01b0316036102705760019150610278565b600101610224565b506040516331a9108f60e11b8152600481018690526000906001600160a01b03861690636352211e90602401602060405180830381865afa1580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e59190610cbb565b6000878152600560205260408120549192509060ff1615801561030c575060008560600151115b6001549091506001600160a01b031660008461032c578660800151610348565b6103398760800151610810565b87608001516103489190610cee565b604051636eb1769f60e11b815233600482015230602482015290915081906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bb9190610d01565b10156104155760405162461bcd60e51b815260206004820152602360248201527f4d61726b6574706c6163653a20496e73756666696369656e7420616c6c6f77616044820152626e636560e81b606482015260840161019e565b60808701516040516323b872dd60e01b81526001600160a01b03888116600483015286811660248301526044820192909252908316906323b872dd906064016020604051808303816000875af1158015610473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104979190610d1a565b50841561053657816001600160a01b03166323b872dd87306104bc8b60800151610810565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190610d1a565b505b6003546040516323b872dd60e01b81526001600160a01b0386811660048301528881166024830152604482018c9052909116906323b872dd90606401600060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050508215610619576004805460608901516040516307420a4160e01b81526001600160a01b038a81169482019490945260248101919091529116906307420a4190604401600060405180830381600087803b15801561060057600080fd5b505af1158015610614573d6000803e3d6000fd5b505050505b600089815260056020908152604091829020805460ff19166001179055608089015182518c8152918201529081018290526001600160a01b0385811691908816907f8692cf5ba66abd64f88cdc1ffa0ee9d9c21ee2d999322a20445ae32393394e3e9060600160405180910390a3505050505050505050565b61069a61083d565b6106a4600061086a565b565b6106ae61083d565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6106d861083d565b60008160ff16116107455760405162461bcd60e51b815260206004820152603160248201527f4d61726b6574706c6163653a20496e7465726573742072617465206d75737420604482015270062652067726561746572207468616e203607c1b606482015260840161019e565b60648160ff1611156107b25760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a20496e7465726573742072617465206d7573742060448201526f06265206c657373207468616e203130360841b606482015260840161019e565b6004805460ff909216600160a01b0260ff60a01b19909216919091179055565b6107da61083d565b6001600160a01b03811661080457604051631e4fbdf760e01b81526000600482015260240161019e565b61080d8161086a565b50565b60045460009060649061082d90600160a01b900460ff1684610d35565b6108379190610d4c565b92915050565b6000546001600160a01b031633146106a45760405163118cdaa760e01b815233600482015260240161019e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156108cc57600080fd5b5035919050565b6001600160a01b038116811461080d57600080fd5b6000602082840312156108fa57600080fd5b8135610905816108d3565b9392505050565b60006020828403121561091e57600080fd5b813560ff8116811461090557600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156109685761096861092f565b60405290565b604051610120810167ffffffffffffffff811182821017156109685761096861092f565b604051601f8201601f1916810167ffffffffffffffff811182821017156109bb576109bb61092f565b604052919050565b600082601f8301126109d457600080fd5b815167ffffffffffffffff8111156109ee576109ee61092f565b610a01601f8201601f1916602001610992565b818152846020838601011115610a1657600080fd5b60005b82811015610a3557602081860181015183830182015201610a19565b506000918101602001919091529392505050565b600067ffffffffffffffff821115610a6357610a6361092f565b5060051b60200190565b600082601f830112610a7e57600080fd5b8151610a91610a8c82610a49565b610992565b80828252602082019150602060608402860101925085831115610ab357600080fd5b602085015b83811015610b095760608188031215610ad057600080fd5b610ad8610945565b8151610ae3816108d3565b815260208281015181830152604080840151908301529084529290920191606001610ab8565b5095945050505050565b600082601f830112610b2457600080fd5b8151610b32610a8c82610a49565b8082825260208201915060208360051b860101925085831115610b5457600080fd5b602085015b83811015610b09578051610b6c816108d3565b835260209283019201610b59565b80518015158114610b8a57600080fd5b919050565b600060208284031215610ba157600080fd5b815167ffffffffffffffff811115610bb857600080fd5b82016101208185031215610bcb57600080fd5b610bd361096e565b815167ffffffffffffffff811115610bea57600080fd5b610bf6868285016109c3565b825250602082015167ffffffffffffffff811115610c1357600080fd5b610c1f86828501610a6d565b602083015250604082015167ffffffffffffffff811115610c3f57600080fd5b610c4b86828501610b13565b604083015250606082810151908201526080808301519082015260a0808301519082015260c08083015190820152610c8560e08301610b7a565b60e0820152610c976101008301610b7a565b610100820152949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610ccd57600080fd5b8151610905816108d3565b634e487b7160e01b600052601160045260246000fd5b8082018082111561083757610837610cd8565b600060208284031215610d1357600080fd5b5051919050565b600060208284031215610d2c57600080fd5b61090582610b7a565b808202811582820484141761083757610837610cd8565b600082610d6957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220dab3e62c6e21985e054bde3b954768c0e4c5c15bef413ff2013b9047dea5dbcf64736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/integration-tests/src/abi/RewardPool.json b/integration-tests/src/abi/RewardPool.json index 4a19917..f943b78 100644 --- a/integration-tests/src/abi/RewardPool.json +++ b/integration-tests/src/abi/RewardPool.json @@ -212,8 +212,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200160c3803806200160c833981810160405281019062000037919062000364565b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a49190620003d1565b60405180910390fd5b620000be816200023660201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000131576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001289062000475565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019a906200050d565b60405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006004819055505050506200052f565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200032c82620002ff565b9050919050565b6200033e816200031f565b81146200034a57600080fd5b50565b6000815190506200035e8162000333565b92915050565b60008060006060848603121562000380576200037f620002fa565b5b600062000390868287016200034d565b9350506020620003a3868287016200034d565b9250506040620003b6868287016200034d565b9150509250925092565b620003cb816200031f565b82525050565b6000602082019050620003e86000830184620003c0565b92915050565b600082825260208201905092915050565b7f526577617264506f6f6c3a20454b4f4b452061646472657373206973207a657260008201527f6f00000000000000000000000000000000000000000000000000000000000000602082015250565b60006200045d602183620003ee565b91506200046a82620003ff565b604082019050919050565b6000602082019050818103600083015262000490816200044e565b9050919050565b7f526577617264506f6f6c3a20446566657272656420616464726573732069732060008201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b6000620004f5602483620003ee565b9150620005028262000497565b604082019050919050565b600060208201905081810360008301526200052881620004e6565b9050919050565b6110cd806200053f6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100ed578063ed711e221461010b578063f2fde38b14610127578063f92c45b71461014357610088565b806307420a411461008d5780631892dd9f146100a95780634ad84b34146100c5578063715018a6146100e3575b600080fd5b6100a760048036038101906100a29190610af8565b610161565b005b6100c360048036038101906100be9190610b38565b6103b9565b005b6100cd610405565b6040516100da9190610b74565b60405180910390f35b6100eb610550565b005b6100f5610564565b6040516101029190610b9e565b60405180910390f35b61012560048036038101906101209190610bb9565b61058d565b005b610141600480360381019061013c9190610b38565b610880565b005b61014b610906565b6040516101589190610b74565b60405180910390f35b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561020d5750600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61024c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024390610c7c565b60405180910390fd5b6000811161028f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690610ce8565b60405180910390fd5b8060045410156102d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cb90610d7a565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636eee2dad83836040518363ffffffff1660e01b8152600401610331929190610d9a565b600060405180830381600087803b15801561034b57600080fd5b505af115801561035f573d6000803e3d6000fd5b5050505080600460008282546103759190610df2565b925050819055507f6177f4110771217c72937d51f3a73915f2c714a6b98507e17eea7a186136a24a82826040516103ad929190610d9a565b60405180910390a15050565b6103c161090c565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104999190610e3b565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052e9190610e3b565b90506004548261053e9190610e68565b816105499190610df2565b9250505090565b61055861090c565b6105626000610993565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156106395750600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066f90610f0e565b60405180910390fd5b600082116106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290610f7a565b60405180910390fd5b600081836106c99190610f9a565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107639190610e3b565b905060008273ffffffffffffffffffffffffffffffffffffffff16635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d69190610e3b565b90508084836107e59190610e68565b1115610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d9061104e565b60405180910390fd5b83600460008282546108389190610e68565b925050819055507fd5c6832657ca6594e6340153b8fd94429e8edceebf61ad032029b2143489a6e2868660405161087092919061106e565b60405180910390a1505050505050565b61088861090c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108fa5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108f19190610b9e565b60405180910390fd5b61090381610993565b50565b60045481565b610914610a57565b73ffffffffffffffffffffffffffffffffffffffff16610932610564565b73ffffffffffffffffffffffffffffffffffffffff161461099157610955610a57565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109889190610b9e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a8f82610a64565b9050919050565b610a9f81610a84565b8114610aaa57600080fd5b50565b600081359050610abc81610a96565b92915050565b6000819050919050565b610ad581610ac2565b8114610ae057600080fd5b50565b600081359050610af281610acc565b92915050565b60008060408385031215610b0f57610b0e610a5f565b5b6000610b1d85828601610aad565b9250506020610b2e85828601610ae3565b9150509250929050565b600060208284031215610b4e57610b4d610a5f565b5b6000610b5c84828501610aad565b91505092915050565b610b6e81610ac2565b82525050565b6000602082019050610b896000830184610b65565b92915050565b610b9881610a84565b82525050565b6000602082019050610bb36000830184610b8f565b92915050565b60008060408385031215610bd057610bcf610a5f565b5b6000610bde85828601610ae3565b9250506020610bef85828601610ae3565b9150509250929050565b600082825260208201905092915050565b7f526577617264506f6f6c3a2063616c6c6572206973206e6f7420746865206d6160008201527f726b6574706c6163650000000000000000000000000000000000000000000000602082015250565b6000610c66602983610bf9565b9150610c7182610c0a565b604082019050919050565b60006020820190508181036000830152610c9581610c59565b9050919050565b7f526577617264506f6f6c3a20616d6f756e74206973207a65726f000000000000600082015250565b6000610cd2601a83610bf9565b9150610cdd82610c9c565b602082019050919050565b60006020820190508181036000830152610d0181610cc5565b9050919050565b7f526577617264506f6f6c3a206e6f7420656e6f7567682072657365727665642060008201527f616d6f756e740000000000000000000000000000000000000000000000000000602082015250565b6000610d64602683610bf9565b9150610d6f82610d08565b604082019050919050565b60006020820190508181036000830152610d9381610d57565b9050919050565b6000604082019050610daf6000830185610b8f565b610dbc6020830184610b65565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610dfd82610ac2565b9150610e0883610ac2565b9250828203905081811115610e2057610e1f610dc3565b5b92915050565b600081519050610e3581610acc565b92915050565b600060208284031215610e5157610e50610a5f565b5b6000610e5f84828501610e26565b91505092915050565b6000610e7382610ac2565b9150610e7e83610ac2565b9250828201905080821115610e9657610e95610dc3565b5b92915050565b7f526577617264506f6f6c3a2063616c6c6572206973206e6f742064656665727260008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000610ef8602283610bf9565b9150610f0382610e9c565b604082019050919050565b60006020820190508181036000830152610f2781610eeb565b9050919050565b7f526577617264506f6f6c3a20726577617264206973207a65726f000000000000600082015250565b6000610f64601a83610bf9565b9150610f6f82610f2e565b602082019050919050565b60006020820190508181036000830152610f9381610f57565b9050919050565b6000610fa582610ac2565b9150610fb083610ac2565b9250828202610fbe81610ac2565b91508282048414831517610fd557610fd4610dc3565b5b5092915050565b7f526577617264506f6f6c3a2072657761726420706f6f6c20686173206e6f742060008201527f656e6f756768206c697175696469747900000000000000000000000000000000602082015250565b6000611038603083610bf9565b915061104382610fdc565b604082019050919050565b600060208201905081810360008301526110678161102b565b9050919050565b60006040820190506110836000830185610b65565b6110906020830184610b65565b939250505056fea264697066735822122023f31964e3aa7aeea44c7c8eb5ffef95f94726d706b04eef6168e2316771ffb264736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100ed578063ed711e221461010b578063f2fde38b14610127578063f92c45b71461014357610088565b806307420a411461008d5780631892dd9f146100a95780634ad84b34146100c5578063715018a6146100e3575b600080fd5b6100a760048036038101906100a29190610af8565b610161565b005b6100c360048036038101906100be9190610b38565b6103b9565b005b6100cd610405565b6040516100da9190610b74565b60405180910390f35b6100eb610550565b005b6100f5610564565b6040516101029190610b9e565b60405180910390f35b61012560048036038101906101209190610bb9565b61058d565b005b610141600480360381019061013c9190610b38565b610880565b005b61014b610906565b6040516101589190610b74565b60405180910390f35b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561020d5750600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61024c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024390610c7c565b60405180910390fd5b6000811161028f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690610ce8565b60405180910390fd5b8060045410156102d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cb90610d7a565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636eee2dad83836040518363ffffffff1660e01b8152600401610331929190610d9a565b600060405180830381600087803b15801561034b57600080fd5b505af115801561035f573d6000803e3d6000fd5b5050505080600460008282546103759190610df2565b925050819055507f6177f4110771217c72937d51f3a73915f2c714a6b98507e17eea7a186136a24a82826040516103ad929190610d9a565b60405180910390a15050565b6103c161090c565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104999190610e3b565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052e9190610e3b565b90506004548261053e9190610e68565b816105499190610df2565b9250505090565b61055861090c565b6105626000610993565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156106395750600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066f90610f0e565b60405180910390fd5b600082116106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290610f7a565b60405180910390fd5b600081836106c99190610f9a565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107639190610e3b565b905060008273ffffffffffffffffffffffffffffffffffffffff16635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d69190610e3b565b90508084836107e59190610e68565b1115610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d9061104e565b60405180910390fd5b83600460008282546108389190610e68565b925050819055507fd5c6832657ca6594e6340153b8fd94429e8edceebf61ad032029b2143489a6e2868660405161087092919061106e565b60405180910390a1505050505050565b61088861090c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108fa5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108f19190610b9e565b60405180910390fd5b61090381610993565b50565b60045481565b610914610a57565b73ffffffffffffffffffffffffffffffffffffffff16610932610564565b73ffffffffffffffffffffffffffffffffffffffff161461099157610955610a57565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109889190610b9e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a8f82610a64565b9050919050565b610a9f81610a84565b8114610aaa57600080fd5b50565b600081359050610abc81610a96565b92915050565b6000819050919050565b610ad581610ac2565b8114610ae057600080fd5b50565b600081359050610af281610acc565b92915050565b60008060408385031215610b0f57610b0e610a5f565b5b6000610b1d85828601610aad565b9250506020610b2e85828601610ae3565b9150509250929050565b600060208284031215610b4e57610b4d610a5f565b5b6000610b5c84828501610aad565b91505092915050565b610b6e81610ac2565b82525050565b6000602082019050610b896000830184610b65565b92915050565b610b9881610a84565b82525050565b6000602082019050610bb36000830184610b8f565b92915050565b60008060408385031215610bd057610bcf610a5f565b5b6000610bde85828601610ae3565b9250506020610bef85828601610ae3565b9150509250929050565b600082825260208201905092915050565b7f526577617264506f6f6c3a2063616c6c6572206973206e6f7420746865206d6160008201527f726b6574706c6163650000000000000000000000000000000000000000000000602082015250565b6000610c66602983610bf9565b9150610c7182610c0a565b604082019050919050565b60006020820190508181036000830152610c9581610c59565b9050919050565b7f526577617264506f6f6c3a20616d6f756e74206973207a65726f000000000000600082015250565b6000610cd2601a83610bf9565b9150610cdd82610c9c565b602082019050919050565b60006020820190508181036000830152610d0181610cc5565b9050919050565b7f526577617264506f6f6c3a206e6f7420656e6f7567682072657365727665642060008201527f616d6f756e740000000000000000000000000000000000000000000000000000602082015250565b6000610d64602683610bf9565b9150610d6f82610d08565b604082019050919050565b60006020820190508181036000830152610d9381610d57565b9050919050565b6000604082019050610daf6000830185610b8f565b610dbc6020830184610b65565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610dfd82610ac2565b9150610e0883610ac2565b9250828203905081811115610e2057610e1f610dc3565b5b92915050565b600081519050610e3581610acc565b92915050565b600060208284031215610e5157610e50610a5f565b5b6000610e5f84828501610e26565b91505092915050565b6000610e7382610ac2565b9150610e7e83610ac2565b9250828201905080821115610e9657610e95610dc3565b5b92915050565b7f526577617264506f6f6c3a2063616c6c6572206973206e6f742064656665727260008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000610ef8602283610bf9565b9150610f0382610e9c565b604082019050919050565b60006020820190508181036000830152610f2781610eeb565b9050919050565b7f526577617264506f6f6c3a20726577617264206973207a65726f000000000000600082015250565b6000610f64601a83610bf9565b9150610f6f82610f2e565b602082019050919050565b60006020820190508181036000830152610f9381610f57565b9050919050565b6000610fa582610ac2565b9150610fb083610ac2565b9250828202610fbe81610ac2565b91508282048414831517610fd557610fd4610dc3565b5b5092915050565b7f526577617264506f6f6c3a2072657761726420706f6f6c20686173206e6f742060008201527f656e6f756768206c697175696469747900000000000000000000000000000000602082015250565b6000611038603083610bf9565b915061104382610fdc565b604082019050919050565b600060208201905081810360008301526110678161102b565b9050919050565b60006040820190506110836000830185610b65565b6110906020830184610b65565b939250505056fea264697066735822122023f31964e3aa7aeea44c7c8eb5ffef95f94726d706b04eef6168e2316771ffb264736f6c63430008140033", + "bytecode": "0x608060405234801561001057600080fd5b50604051610b07380380610b0783398101604081905261002f916101ce565b826001600160a01b03811661005f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61006881610162565b506001600160a01b0382166100c95760405162461bcd60e51b815260206004820152602160248201527f526577617264506f6f6c3a20454b4f4b452061646472657373206973207a65726044820152606f60f81b6064820152608401610056565b6001600160a01b03811661012b5760405162461bcd60e51b8152602060048201526024808201527f526577617264506f6f6c3a2044656665727265642061646472657373206973206044820152637a65726f60e01b6064820152608401610056565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055506000600455610211565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146101c957600080fd5b919050565b6000806000606084860312156101e357600080fd5b6101ec846101b2565b92506101fa602085016101b2565b9150610208604085016101b2565b90509250925092565b6108e7806102206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100d8578063ed711e22146100f3578063f2fde38b14610106578063f92c45b71461011957600080fd5b806307420a411461008d5780631892dd9f146100a25780634ad84b34146100b5578063715018a6146100d0575b600080fd5b6100a061009b3660046107d1565b610122565b005b6100a06100b03660046107fb565b61031d565b6100bd610347565b6040519081526020015b60405180910390f35b6100a061045d565b6000546040516001600160a01b0390911681526020016100c7565b6100a061010136600461081d565b610471565b6100a06101143660046107fb565b6106fa565b6100bd60045481565b6003546001600160a01b03163314801561014657506003546001600160a01b031615155b6101a95760405162461bcd60e51b815260206004820152602960248201527f526577617264506f6f6c3a2063616c6c6572206973206e6f7420746865206d61604482015268726b6574706c61636560b81b60648201526084015b60405180910390fd5b600081116101f95760405162461bcd60e51b815260206004820152601a60248201527f526577617264506f6f6c3a20616d6f756e74206973207a65726f00000000000060448201526064016101a0565b80600454101561025a5760405162461bcd60e51b815260206004820152602660248201527f526577617264506f6f6c3a206e6f7420656e6f75676820726573657276656420604482015265185b5bdd5b9d60d21b60648201526084016101a0565b600154604051636eee2dad60e01b81526001600160a01b0384811660048301526024820184905290911690636eee2dad90604401600060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b5050505080600460008282546102d29190610855565b9091555050604080516001600160a01b0384168152602081018390527f6177f4110771217c72937d51f3a73915f2c714a6b98507e17eea7a186136a24a910160405180910390a15050565b610325610738565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600080600160009054906101000a90046001600160a01b03166001600160a01b031663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561039d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c1919061086e565b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043c919061086e565b90506004548261044c9190610887565b6104569082610855565b9250505090565b610465610738565b61046f6000610765565b565b6002546001600160a01b03163314801561049557506002546001600160a01b031615155b6104ec5760405162461bcd60e51b815260206004820152602260248201527f526577617264506f6f6c3a2063616c6c6572206973206e6f7420646566657272604482015261195960f21b60648201526084016101a0565b6000821161053c5760405162461bcd60e51b815260206004820152601a60248201527f526577617264506f6f6c3a20726577617264206973207a65726f00000000000060448201526064016101a0565b6000610548828461089a565b90506000600160009054906101000a90046001600160a01b031690506000816001600160a01b031663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c8919061086e565b90506000826001600160a01b0316635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062e919061086e565b90508061063b8584610887565b11156106a25760405162461bcd60e51b815260206004820152603060248201527f526577617264506f6f6c3a2072657761726420706f6f6c20686173206e6f742060448201526f656e6f756768206c697175696469747960801b60648201526084016101a0565b83600460008282546106b49190610887565b909155505060408051878152602081018790527fd5c6832657ca6594e6340153b8fd94429e8edceebf61ad032029b2143489a6e2910160405180910390a1505050505050565b610702610738565b6001600160a01b03811661072c57604051631e4fbdf760e01b8152600060048201526024016101a0565b61073581610765565b50565b6000546001600160a01b0316331461046f5760405163118cdaa760e01b81523360048201526024016101a0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146107cc57600080fd5b919050565b600080604083850312156107e457600080fd5b6107ed836107b5565b946020939093013593505050565b60006020828403121561080d57600080fd5b610816826107b5565b9392505050565b6000806040838503121561083057600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b818103818111156108685761086861083f565b92915050565b60006020828403121561088057600080fd5b5051919050565b808201808211156108685761086861083f565b80820281158282048414176108685761086861083f56fea2646970667358221220a0ea7f2df69d6797cddc8df5a08dd8959672d6cabfb5d04d01c248d1b8cab2aa64736f6c634300081c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146100d8578063ed711e22146100f3578063f2fde38b14610106578063f92c45b71461011957600080fd5b806307420a411461008d5780631892dd9f146100a25780634ad84b34146100b5578063715018a6146100d0575b600080fd5b6100a061009b3660046107d1565b610122565b005b6100a06100b03660046107fb565b61031d565b6100bd610347565b6040519081526020015b60405180910390f35b6100a061045d565b6000546040516001600160a01b0390911681526020016100c7565b6100a061010136600461081d565b610471565b6100a06101143660046107fb565b6106fa565b6100bd60045481565b6003546001600160a01b03163314801561014657506003546001600160a01b031615155b6101a95760405162461bcd60e51b815260206004820152602960248201527f526577617264506f6f6c3a2063616c6c6572206973206e6f7420746865206d61604482015268726b6574706c61636560b81b60648201526084015b60405180910390fd5b600081116101f95760405162461bcd60e51b815260206004820152601a60248201527f526577617264506f6f6c3a20616d6f756e74206973207a65726f00000000000060448201526064016101a0565b80600454101561025a5760405162461bcd60e51b815260206004820152602660248201527f526577617264506f6f6c3a206e6f7420656e6f75676820726573657276656420604482015265185b5bdd5b9d60d21b60648201526084016101a0565b600154604051636eee2dad60e01b81526001600160a01b0384811660048301526024820184905290911690636eee2dad90604401600060405180830381600087803b1580156102a857600080fd5b505af11580156102bc573d6000803e3d6000fd5b5050505080600460008282546102d29190610855565b9091555050604080516001600160a01b0384168152602081018390527f6177f4110771217c72937d51f3a73915f2c714a6b98507e17eea7a186136a24a910160405180910390a15050565b610325610738565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600080600160009054906101000a90046001600160a01b03166001600160a01b031663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561039d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c1919061086e565b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043c919061086e565b90506004548261044c9190610887565b6104569082610855565b9250505090565b610465610738565b61046f6000610765565b565b6002546001600160a01b03163314801561049557506002546001600160a01b031615155b6104ec5760405162461bcd60e51b815260206004820152602260248201527f526577617264506f6f6c3a2063616c6c6572206973206e6f7420646566657272604482015261195960f21b60648201526084016101a0565b6000821161053c5760405162461bcd60e51b815260206004820152601a60248201527f526577617264506f6f6c3a20726577617264206973207a65726f00000000000060448201526064016101a0565b6000610548828461089a565b90506000600160009054906101000a90046001600160a01b031690506000816001600160a01b031663473761cc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c8919061086e565b90506000826001600160a01b0316635f3fe30c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062e919061086e565b90508061063b8584610887565b11156106a25760405162461bcd60e51b815260206004820152603060248201527f526577617264506f6f6c3a2072657761726420706f6f6c20686173206e6f742060448201526f656e6f756768206c697175696469747960801b60648201526084016101a0565b83600460008282546106b49190610887565b909155505060408051878152602081018790527fd5c6832657ca6594e6340153b8fd94429e8edceebf61ad032029b2143489a6e2910160405180910390a1505050505050565b610702610738565b6001600160a01b03811661072c57604051631e4fbdf760e01b8152600060048201526024016101a0565b61073581610765565b50565b6000546001600160a01b0316331461046f5760405163118cdaa760e01b81523360048201526024016101a0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146107cc57600080fd5b919050565b600080604083850312156107e457600080fd5b6107ed836107b5565b946020939093013593505050565b60006020828403121561080d57600080fd5b610816826107b5565b9392505050565b6000806040838503121561083057600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b818103818111156108685761086861083f565b92915050565b60006020828403121561088057600080fd5b5051919050565b808201808211156108685761086861083f565b80820281158282048414176108685761086861083f56fea2646970667358221220a0ea7f2df69d6797cddc8df5a08dd8959672d6cabfb5d04d01c248d1b8cab2aa64736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/integration-tests/tests/pocket_ic/get_eth_address.rs b/integration-tests/tests/pocket_ic/get_eth_address.rs index b8f9f07..f763d40 100644 --- a/integration-tests/tests/pocket_ic/get_eth_address.rs +++ b/integration-tests/tests/pocket_ic/get_eth_address.rs @@ -14,6 +14,6 @@ async fn test_should_get_eth_address() { .await .expect("Failed to get eth address"); - println!("Eth address: {:?}", address); + println!("Minter address: {:?}", address); assert_ne!(address, H160::zero()); }