From b533ba06f2cee5dd8873b101c4be6ae22ca165f6 Mon Sep 17 00:00:00 2001 From: Danilo Tuler Date: Mon, 8 Jul 2024 12:22:36 -0400 Subject: [PATCH] feat(devnet): deploying erc-4337 contracts --- .changeset/calm-ears-fix.md | 5 + packages/devnet/deploy/04_4337.ts | 428 ++++++++++++++++++++++ packages/devnet/hardhat.config.ts | 5 - packages/devnet/package.json | 3 +- packages/devnet/src/aa/constants.ts | 127 +++++++ packages/devnet/src/tasks/deploy-anvil.ts | 8 +- pnpm-lock.yaml | 38 +- 7 files changed, 602 insertions(+), 12 deletions(-) create mode 100644 .changeset/calm-ears-fix.md create mode 100644 packages/devnet/deploy/04_4337.ts create mode 100644 packages/devnet/src/aa/constants.ts diff --git a/.changeset/calm-ears-fix.md b/.changeset/calm-ears-fix.md new file mode 100644 index 00000000..d2a16630 --- /dev/null +++ b/.changeset/calm-ears-fix.md @@ -0,0 +1,5 @@ +--- +"@cartesi/devnet": minor +--- + +deployment of ERC-4337 smart contracts diff --git a/packages/devnet/deploy/04_4337.ts b/packages/devnet/deploy/04_4337.ts new file mode 100644 index 00000000..41c4fc8c --- /dev/null +++ b/packages/devnet/deploy/04_4337.ts @@ -0,0 +1,428 @@ +import type { + DeployFunction, + DeterministicDeploymentInfo, +} from "hardhat-deploy/types"; +import type { HardhatRuntimeEnvironment } from "hardhat/types"; +import type { Address, Hex } from "viem"; +import { getAddress, parseEther } from "viem"; +import { + BICONOMY_ACCOUNT_V2_LOGIC_CREATECALL, + BICONOMY_ECDSA_OWNERSHIP_REGISTRY_MOUDULE_CREATECALL, + BICONOMY_FACTORY_CREATECALL, + BICONOMY_SINGLETON_FACTORY_BYTECODE, + ENTRY_POINT_SIMULATIONS_CREATECALL, + ENTRY_POINT_V06_CREATECALL, + ENTRY_POINT_V07_CREATECALL, + KERNEL_V06_ACCOUNT_V2_2_LOGIC_CREATECALL, + KERNEL_V06_ECDSA_VALIDATOR_V2_2_CREATECALL, + KERNEL_V06_FACTORY_CREATECALL, + KERNEL_V07_ACCOUNT_V3_1_LOGIC_CREATECALL, + KERNEL_V07_ACCOUNT_V3_LOGIC_CREATECALL, + KERNEL_V07_ECDSA_VALIDATOR_V3_CREATECALL, + KERNEL_V07_FACTORY_V3_1_CREATECALL, + KERNEL_V07_FACTORY_V3_CREATECALL, + KERNEL_V07_META_FACTORY_CREATECALL, + LIGHT_ACCOUNT_FACTORY_V110_CREATECALL, + SAFE_MULTI_SEND_CALL_ONLY_CREATECALL, + SAFE_MULTI_SEND_CREATECALL, + SAFE_PROXY_FACTORY_CREATECALL, + SAFE_SINGLETON_CREATECALL, + SAFE_V06_MODULE_CREATECALL, + SAFE_V06_MODULE_SETUP_CREATECALL, + SAFE_V07_MODULE_CREATECALL, + SAFE_V07_MODULE_SETUP_CREATECALL, + SIMPLE_ACCOUNT_FACTORY_V06_CREATECALL, + SIMPLE_ACCOUNT_FACTORY_V07_CREATECALL, +} from "../src/aa/constants"; + +const setupDeterministicDeployer = async ( + hre: HardhatRuntimeEnvironment, + info: DeterministicDeploymentInfo, +) => { + const { getNamedAccounts, viem } = hre; + const namedAccounts = await getNamedAccounts(); + const deployer = namedAccounts.deployer as Address; + const client = await viem.getPublicClient(); + const walletClient = await viem.getWalletClient(deployer); + + const code = await client.getCode({ address: getAddress(info.factory) }); + if (!code) { + // fund account + const fundTx = await walletClient.sendTransaction({ + to: getAddress(info.deployer), + value: BigInt(info.funding), + }); + console.log( + `sending eth to create2 contract deployer address (${info.deployer}) (tx: ${fundTx})...`, + ); + + // deploy deterministic deployer + const hash = await walletClient.sendRawTransaction({ + serializedTransaction: info.signedTx as Hex, + }); + console.log( + `deploying create2 deployer contract (at ${info.factory}) using deterministic deployment (https://github.com/Arachnid/deterministic-deployment-proxy) (tx: ${hash})...`, + ); + } +}; + +const verifyDeployed = async ( + hre: HardhatRuntimeEnvironment, + addresses: Address[], +) => { + const { viem } = hre; + const client = await viem.getPublicClient(); + for (const address of addresses) { + const bytecode = await client.getCode({ + address, + }); + + if (bytecode === undefined) { + throw new Error(`CONTRACT ${address} NOT DEPLOYED!`); + } + } +}; + +const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { + const { deployments, getNamedAccounts, viem } = hre; + const { rawTx } = deployments; + const client = await viem.getPublicClient(); + const testClient = await viem.getTestClient(); + const namedAccounts = await getNamedAccounts(); + + const DETERMINISTIC_DEPLOYER = "0x4e59b44847b379578588920cA78FbF26c0B4956C"; + const SAFE_SINGLETON_FACTORY = "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7"; + const BICONOMY_SINGLETON_FACTORY = + "0x988C135a1049Ce61730724afD342fb7C56CD2776"; + + // we need the deterministic deployer below to have the same expected addresses + // https://github.com/Arachnid/deterministic-deployment-proxy + await setupDeterministicDeployer(hre, { + deployer: "0x3fab184622dc19b6109349b94811493bf2a45362", + factory: DETERMINISTIC_DEPLOYER, + funding: "10000000000000000", + signedTx: + "0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222", + }); + + // deploy biconomy singleton factory + await testClient.setCode({ + address: BICONOMY_SINGLETON_FACTORY, + bytecode: BICONOMY_SINGLETON_FACTORY_BYTECODE, + }); + + // verify that deployers are deployed + await verifyDeployed(hre, [ + "0x4e59b44847b379578588920ca78fbf26c0b4956c", // Deterministic deployer + "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7", // Safe Singleton Factory + "0x988C135a1049Ce61730724afD342fb7C56CD2776", // Biconomy Singleton Factory + ]); + + type Contract = { + deployer: Address; + signedTx: Hex; + address: Address; + name: string; + description: string; + }; + + const contracts: Contract[] = [ + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: ENTRY_POINT_V07_CREATECALL, + address: "0x0000000071727De22E5E9d8BAf0edAc6f37da032", + name: "EntryPoint", + description: "EntryPoint v0.7", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: SIMPLE_ACCOUNT_FACTORY_V07_CREATECALL, + address: "0x91E60e0613810449d098b0b5Ec8b51A0FE8c8985", + name: "SimpleAccountFactory", + description: "Simple Account Factory V0.7", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: ENTRY_POINT_SIMULATIONS_CREATECALL, + address: "0x74Cb5e4eE81b86e70f9045036a1C5477de69eE87", + name: "PimlicoEntryPointSimulations", + description: "EntryPoint Simulations (Needed for v0.7)", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: ENTRY_POINT_V06_CREATECALL, + address: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + name: "EntryPoint", + description: "EntryPoint V0.6", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: SIMPLE_ACCOUNT_FACTORY_V06_CREATECALL, + address: "0x9406Cc6185a346906296840746125a0E44976454", + name: "SimpleAccountFactory", + description: "Simple Account Factory V0.6", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: SAFE_V06_MODULE_SETUP_CREATECALL, + address: "0x8EcD4ec46D4D2a6B64fE960B3D64e8B94B2234eb", + name: "AddModulesLib", + description: "Safe V0.6 Module Setup", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: SAFE_V06_MODULE_CREATECALL, + address: "0xa581c4A4DB7175302464fF3C06380BC3270b4037", + name: "Safe4337Module", + description: "Safe V0.6 4337 Module", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: SAFE_V07_MODULE_SETUP_CREATECALL, + address: "0x2dd68b007B46fBe91B9A7c3EDa5A7a1063cB5b47", + name: "SafeModuleSetup", + description: "Safe V0.7 Module Setup", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: SAFE_V07_MODULE_CREATECALL, + address: "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226", + name: "Safe4337Module", + description: "Safe V0.7 4337 Module", + }, + { + deployer: SAFE_SINGLETON_FACTORY, + signedTx: SAFE_PROXY_FACTORY_CREATECALL, + address: "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67", + name: "SafeProxyFactory", + description: "Safe Proxy Factory", + }, + { + deployer: SAFE_SINGLETON_FACTORY, + signedTx: SAFE_SINGLETON_CREATECALL, + address: "0x41675C099F32341bf84BFc5382aF534df5C7461a", + name: "Safe", + description: "Safe Singleton", + }, + { + deployer: SAFE_SINGLETON_FACTORY, + signedTx: SAFE_MULTI_SEND_CREATECALL, + address: "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526", + name: "MultiSend", + description: "Safe Multi Send", + }, + { + deployer: SAFE_SINGLETON_FACTORY, + signedTx: SAFE_MULTI_SEND_CALL_ONLY_CREATECALL, + address: "0x9641d764fc13c8B624c04430C7356C1C7C8102e2", + name: "MultiSendCallOnly", + description: "Safe Multi Send Call Only", + }, + { + deployer: BICONOMY_SINGLETON_FACTORY, + signedTx: BICONOMY_ECDSA_OWNERSHIP_REGISTRY_MOUDULE_CREATECALL, + address: "0x0000001c5b32F37F5beA87BDD5374eB2aC54eA8e", + name: "EcdsaOwnershipRegistryModule", + description: "Biconomy ECDSA Ownership Registry Module", + }, + { + deployer: BICONOMY_SINGLETON_FACTORY, + signedTx: BICONOMY_ACCOUNT_V2_LOGIC_CREATECALL, + address: "0x0000002512019Dafb59528B82CB92D3c5D2423ac", + name: "SmartAccount", + description: "Biconomy Account Logic V0.2", + }, + { + deployer: BICONOMY_SINGLETON_FACTORY, + signedTx: BICONOMY_FACTORY_CREATECALL, + address: "0x000000a56Aaca3e9a4C479ea6b6CD0DbcB6634F5", + name: "SmartAccountFactory", + description: "Biconomy Factory", + }, + /*{ + deployer: BICONOMY_SINGLETON_FACTORY, + signedTx: BICONOMY_DEFAULT_FALLBACK_HANDLER_CREATECALL, + address: "0x0bBa6d96BD616BedC6BFaa341742FD43c60b83C1", + name: "BiconomyDefaultFallbackHandler", + description: "Biconomy Default Fallback Handler", + },*/ + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V06_ECDSA_VALIDATOR_V2_2_CREATECALL, + address: "0xd9AB5096a832b9ce79914329DAEE236f8Eea0390", + name: "ECDSAValidator", + description: "Kernel v0.2.2 ECDSA Valdiator", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V06_ACCOUNT_V2_2_LOGIC_CREATECALL, + address: "0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5", + name: "Kernel", + description: "Kernel v0.2.2 Account Logic", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V06_FACTORY_CREATECALL, + address: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3", + name: "KernelFactory", + description: "Kernel v0.2.2 Factory", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V07_FACTORY_V3_CREATECALL, + address: "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f", + name: "KernelFactory", + description: "Kernel v0.3.0 Factory", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V07_ECDSA_VALIDATOR_V3_CREATECALL, + address: "0x8104e3Ad430EA6d354d013A6789fDFc71E671c43", + name: "ECDSAValidator", + description: "Kernel v0.3.0 ECDSA Validator", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V07_ACCOUNT_V3_LOGIC_CREATECALL, + address: "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27", + name: "Kernel", + description: "Kernel v0.3.0 Account Logic", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V07_META_FACTORY_CREATECALL, + address: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5", + name: "FactoryStaker", + description: "Kernel Meta Factory", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V07_ACCOUNT_V3_1_LOGIC_CREATECALL, + address: "0xBAC849bB641841b44E965fB01A4Bf5F074f84b4D", + name: "Kernel", + description: "Kernel v0.3.1 Account Logic", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: KERNEL_V07_FACTORY_V3_1_CREATECALL, + address: "0xaac5D4240AF87249B3f71BC8E4A2cae074A3E419", + name: "KernelFactory", + description: "Kernel v0.3.1 Factory", + }, + { + deployer: DETERMINISTIC_DEPLOYER, + signedTx: LIGHT_ACCOUNT_FACTORY_V110_CREATECALL, + address: "0x00004EC70002a32400f8ae005A26081065620D20", + name: "LightAccountFactory", + description: "LightAccountFactory v1.1.0", + }, + ]; + + for (const contract of contracts) { + const { deployer, signedTx, address, name, description } = contract; + // verify it's not already deployed + let code = await client.getCode({ address }); + if (code) { + throw new Error( + `contract ${name} (${description}) already deployed at ${address}!`, + ); + } + + // deploy + const receipt = await rawTx({ + from: namedAccounts.deployer as Address, + to: deployer, + log: true, + data: signedTx, + }); + const { gasUsed, transactionHash } = receipt; + console.log( + `deploying "${name}" (tx: ${transactionHash})...: deployed at ${address} with ${gasUsed} gas`, + ); + + // verify if address match + code = await client.getCode({ address }); + if (!code) { + throw new Error( + `contract ${name} (${description}) not deployed at ${address}!`, + ); + } + } + + // ==== SETUP KERNEL V0.6 CONTRACTS ==== // + console.log(`setting up Kernel...`); + const kernelFactoryOwner = "0x9775137314fE595c943712B0b336327dfa80aE8A"; + await testClient.setBalance({ + address: kernelFactoryOwner, + value: parseEther("100"), + }); + + await testClient.impersonateAccount({ + address: kernelFactoryOwner, + }); + let walletClient = await viem.getWalletClient(kernelFactoryOwner); + await walletClient.sendTransaction({ + to: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3" /* kernel factory v0.6 */, + data: "0xbb30a9740000000000000000000000000da6a956b9488ed4dd761e59f52fdc6c8068e6b50000000000000000000000000000000000000000000000000000000000000001" /* setImplementation(address _implementation,bool _allow) */, + }); + + // register 0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5 + await walletClient.sendTransaction({ + to: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3" /* kernel factory v0.6 */, + data: "0xbb30a9740000000000000000000000000da6a956b9488ed4dd761e59f52fdc6c8068e6b50000000000000000000000000000000000000000000000000000000000000001" /* setImplementation(address _implementation,bool _allow) */, + }); + + // register 0x6723b44Abeec4E71eBE3232BD5B455805baDD22f + await walletClient.sendTransaction({ + to: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5" /* kernel factory v0.7 v3*/, + data: "0x6e7dbabb0000000000000000000000006723b44abeec4e71ebe3232bd5b455805badd22f0000000000000000000000000000000000000000000000000000000000000001", + }); + + await walletClient.sendTransaction({ + to: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5" /* Stake 0.1 eth in the entry point */, + data: "0xc7e55f3e0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da0320000000000000000000000000000000000000000000000000000000000015180", + value: parseEther("0.1"), + }); + + // register 0xaac5D4240AF87249B3f71BC8E4A2cae074A3E419 + await walletClient.sendTransaction({ + to: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5" /* kernel factory v0.7 v3.1 */, + data: "0x6e7dbabb000000000000000000000000aac5d4240af87249b3f71bc8e4a2cae074a3e4190000000000000000000000000000000000000000000000000000000000000001", + }); + + await testClient.stopImpersonatingAccount({ + address: kernelFactoryOwner, + }); + + // ==== SETUP ALCHEMY LIGHT ACCOUNT CONTRACTS ==== // + console.log(`setting up Alchemy Light Account...`); + const alchemyLightClientOwner = + "0xDdF32240B4ca3184De7EC8f0D5Aba27dEc8B7A5C"; + await testClient.setBalance({ + address: alchemyLightClientOwner, + value: parseEther("100"), + }); + + await testClient.impersonateAccount({ + address: alchemyLightClientOwner, + }); + + walletClient = await viem.getWalletClient(alchemyLightClientOwner); + await walletClient.sendTransaction({ + to: "0x0000000000400CdFef5E2714E63d8040b700BC24" /* light account v2.0.0 factory */, + data: "0xfbb1c3d40000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000016345785d8a0000", + value: parseEther("0.1"), + }); + + await testClient.stopImpersonatingAccount({ + address: alchemyLightClientOwner, + }); + + // verify if LightAccount is created + await verifyDeployed(hre, [ + "0xae8c656ad28F2B59a196AB61815C16A0AE1c3cba", // LightAccount v1.1.0 implementation + ]); +}; + +func.tags = ["4337"]; +export default func; diff --git a/packages/devnet/hardhat.config.ts b/packages/devnet/hardhat.config.ts index 7361b9ff..4c06743e 100644 --- a/packages/devnet/hardhat.config.ts +++ b/packages/devnet/hardhat.config.ts @@ -45,11 +45,6 @@ const config: HardhatUserConfig = { hardhat: mnemonic ? { accounts: { mnemonic } } : {}, localhost: { url: process.env.RPC_URL || "http://127.0.0.1:8545", - accounts: mnemonic - ? { mnemonic } - : { - mnemonic: DEFAULT_DEVNET_MNEMONIC, - }, }, }, external: external(["localhost"], ["@cartesi/util", "@cartesi/rollups"]), diff --git a/packages/devnet/package.json b/packages/devnet/package.json index 45b5827b..2b87bbfa 100644 --- a/packages/devnet/package.json +++ b/packages/devnet/package.json @@ -27,7 +27,8 @@ "npm-run-all": "^4", "rimraf": "^5.0.8", "tsconfig": "workspace:*", - "typescript": "^5.5.3" + "typescript": "^5.5.3", + "viem": "^2.17.5" }, "dependencies": { "@openzeppelin/contracts": "5.0.2" diff --git a/packages/devnet/src/aa/constants.ts b/packages/devnet/src/aa/constants.ts new file mode 100644 index 00000000..fb2bc3fb --- /dev/null +++ b/packages/devnet/src/aa/constants.ts @@ -0,0 +1,127 @@ +// copy of https://github.com/pimlicolabs/mock-aa-environment/blob/main/mock-alto-bundler/src/constants.ts +import type { Hex } from "viem"; + +/* ========= V07 CORE ========= */ + +// Will deploy entryPoint to 0x0000000071727De22E5E9d8BAf0edAc6f37da032 +export const ENTRY_POINT_V07_CREATECALL: Hex = + "0x90d8084deab30c2a37c45e8d47f49f2f7965183cb6990a98943ef94940681de360a08060405234620000825760016002556101df8181016001600160401b038111838210176200006c57829162003f2b833903906000f080156200006057608052604051613ea39081620000888239608051818181610d22015261324b0152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610024575b361561001957600080fd5b61002233612748565b005b60003560e01c806242dc5314611b0057806301ffc9a7146119ae5780630396cb60146116765780630bd28e3b146115fa5780631b2e01b814611566578063205c2878146113d157806322cdde4c1461136b57806335567e1a146112b35780635287ce12146111a557806370a0823114611140578063765e827f14610e82578063850aaf6214610dc35780639b249f6914610c74578063b760faf914610c3a578063bb9fe6bf14610a68578063c23a5cea146107c4578063dbed18e0146101a15763fc7e286d0361000e573461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5773ffffffffffffffffffffffffffffffffffffffff61013a61229f565b16600052600060205260a0604060002065ffffffffffff6001825492015460405192835260ff8116151560208401526dffffffffffffffffffffffffffff8160081c16604084015263ffffffff8160781c16606084015260981c166080820152f35b600080fd5b3461019c576101af36612317565b906101b86129bd565b60009160005b82811061056f57506101d08493612588565b6000805b8481106102fc5750507fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972600080a16000809360005b81811061024757610240868660007f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d8180a2613ba7565b6001600255005b6102a261025582848a612796565b73ffffffffffffffffffffffffffffffffffffffff6102766020830161282a565b167f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d600080a2806127d6565b906000915b8083106102b957505050600101610209565b909194976102f36102ed6001926102e78c8b6102e0826102da8e8b8d61269d565b9261265a565b5191613597565b90612409565b99612416565b950191906102a7565b6020610309828789612796565b61031f61031682806127d6565b9390920161282a565b9160009273ffffffffffffffffffffffffffffffffffffffff8091165b8285106103505750505050506001016101d4565b909192939561037f83610378610366848c61265a565b516103728b898b61269d565b856129f6565b9290613dd7565b9116840361050a576104a5576103958491613dd7565b9116610440576103b5576103aa600191612416565b96019392919061033c565b60a487604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f65000000000000000000000000000000000000000000000000000000000000006084820152fd5b608488604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413334207369676e6174757265206572726f720000000000000000000000006064820152fd5b608488604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f414132322065787069726564206f72206e6f74206475650000000000000000006064820152fd5b608489604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b61057a818487612796565b9361058585806127d6565b919095602073ffffffffffffffffffffffffffffffffffffffff6105aa82840161282a565b1697600192838a1461076657896105da575b5050505060019293949550906105d191612409565b939291016101be565b8060406105e892019061284b565b918a3b1561019c57929391906040519485937f2dd8113300000000000000000000000000000000000000000000000000000000855288604486016040600488015252606490818601918a60051b8701019680936000915b8c83106106e657505050505050838392610684927ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8560009803016024860152612709565b03818a5afa90816106d7575b506106c657602486604051907f86a9f7500000000000000000000000000000000000000000000000000000000082526004820152fd5b93945084936105d1600189806105bc565b6106e0906121bd565b88610690565b91939596977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c908a9294969a0301865288357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee18336030181121561019c57836107538793858394016128ec565b9a0196019301909189979695949261063f565b606483604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152fd5b3461019c576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576107fc61229f565b33600052600082526001604060002001908154916dffffffffffffffffffffffffffff8360081c16928315610a0a5765ffffffffffff8160981c1680156109ac57421061094e5760009373ffffffffffffffffffffffffffffffffffffffff859485947fffffffffffffff000000000000000000000000000000000000000000000000ff86951690556040517fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda33391806108da8786836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b0390a2165af16108e8612450565b50156108f057005b606490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b606485604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b606486604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b606485604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b3461019c5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c573360005260006020526001604060002001805463ffffffff8160781c16908115610bdc5760ff1615610b7e5765ffffffffffff908142160191818311610b4f5780547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001678ffffffffffff00000000000000000000000000000000000000609885901b161790556040519116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a2005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c57610022610c6f61229f565b612748565b3461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760043567ffffffffffffffff811161019c576020610cc8610d1b9236906004016122c2565b919073ffffffffffffffffffffffffffffffffffffffff9260405194859283927f570e1a360000000000000000000000000000000000000000000000000000000084528560048501526024840191612709565b03816000857f0000000000000000000000000000000000000000000000000000000000000000165af1908115610db757602492600092610d86575b50604051917f6ca7b806000000000000000000000000000000000000000000000000000000008352166004820152fd5b610da991925060203d602011610db0575b610da181836121ed565b8101906126dd565b9083610d56565b503d610d97565b6040513d6000823e3d90fd5b3461019c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c57610dfa61229f565b60243567ffffffffffffffff811161019c57600091610e1e839236906004016122c2565b90816040519283928337810184815203915af4610e39612450565b90610e7e6040519283927f99410554000000000000000000000000000000000000000000000000000000008452151560048401526040602484015260448301906123c6565b0390fd5b3461019c57610e9036612317565b610e9b9291926129bd565b610ea483612588565b60005b848110610f1c57506000927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972600080a16000915b858310610eec576102408585613ba7565b909193600190610f12610f0087898761269d565b610f0a888661265a565b519088613597565b0194019190610edb565b610f47610f40610f2e8385979561265a565b51610f3a84898761269d565b846129f6565b9190613dd7565b73ffffffffffffffffffffffffffffffffffffffff929183166110db5761107657610f7190613dd7565b911661101157610f8657600101929092610ea7565b60a490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f65000000000000000000000000000000000000000000000000000000000000006084820152fd5b608482604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413334207369676e6174757265206572726f720000000000000000000000006064820152fd5b608483604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f414132322065787069726564206f72206e6f74206475650000000000000000006064820152fd5b608484604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b3461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5773ffffffffffffffffffffffffffffffffffffffff61118c61229f565b1660005260006020526020604060002054604051908152f35b3461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5773ffffffffffffffffffffffffffffffffffffffff6111f161229f565b6000608060405161120181612155565b828152826020820152826040820152826060820152015216600052600060205260a06040600020608060405161123681612155565b6001835493848352015490602081019060ff8316151582526dffffffffffffffffffffffffffff60408201818560081c16815263ffffffff936060840193858760781c16855265ffffffffffff978891019660981c1686526040519788525115156020880152511660408601525116606084015251166080820152f35b3461019c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760206112ec61229f565b73ffffffffffffffffffffffffffffffffffffffff6113096122f0565b911660005260018252604060002077ffffffffffffffffffffffffffffffffffffffffffffffff821660005282526040600020547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b3461019c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60208136011261019c576004359067ffffffffffffffff821161019c5761012090823603011261019c576113c9602091600401612480565b604051908152f35b3461019c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761140861229f565b60243590336000526000602052604060002090815491828411611508576000808573ffffffffffffffffffffffffffffffffffffffff8295839561144c848a612443565b90556040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16114a2612450565b50156114aa57005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b3461019c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5761159d61229f565b73ffffffffffffffffffffffffffffffffffffffff6115ba6122f0565b9116600052600160205277ffffffffffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b3461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760043577ffffffffffffffffffffffffffffffffffffffffffffffff811680910361019c5733600052600160205260406000209060005260205260406000206116728154612416565b9055005b6020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5760043563ffffffff9182821680920361019c5733600052600081526040600020928215611950576001840154908160781c1683106118f2576116f86dffffffffffffffffffffffffffff9182349160081c16612409565b93841561189457818511611836579065ffffffffffff61180592546040519061172082612155565b8152848101926001845260408201908816815260608201878152600160808401936000855233600052600089526040600020905181550194511515917fffffffffffffffffffffffffff0000000000000000000000000000000000000060ff72ffffffff0000000000000000000000000000006effffffffffffffffffffffffffff008954945160081b16945160781b1694169116171717835551167fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff78ffffffffffff0000000000000000000000000000000000000083549260981b169116179055565b6040519283528201527fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c0160403392a2005b606483604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b606483604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b606482604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b606482604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b3461019c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361019c57807f60fc6b6e0000000000000000000000000000000000000000000000000000000060209214908115611ad6575b8115611aac575b8115611a82575b8115611a58575b506040519015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501482611a4d565b7f3e84f0210000000000000000000000000000000000000000000000000000000081149150611a46565b7fcf28ef970000000000000000000000000000000000000000000000000000000081149150611a3f565b7f915074d80000000000000000000000000000000000000000000000000000000081149150611a38565b3461019c576102007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019c5767ffffffffffffffff60043581811161019c573660238201121561019c57611b62903690602481600401359101612268565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101c0811261019c5761014060405191611b9e83612155565b1261019c5760405192611bb0846121a0565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361019c578452602093604435858201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526101043573ffffffffffffffffffffffffffffffffffffffff8116810361019c5760e08201526101243561010082015261014435610120820152825261016435848301526101843560408301526101a43560608301526101c43560808301526101e43590811161019c57611c7c9036906004016122c2565b905a3033036120f7578351606081015195603f5a0260061c61271060a0840151890101116120ce5760009681519182611ff0575b5050505090611cca915a9003608085015101923691612268565b925a90600094845193611cdc85613ccc565b9173ffffffffffffffffffffffffffffffffffffffff60e0870151168015600014611ea957505073ffffffffffffffffffffffffffffffffffffffff855116935b5a9003019360a06060820151910151016080860151850390818111611e95575b50508302604085015192818410600014611dce5750506003811015611da157600203611d79576113c99293508093611d7481613d65565b613cf6565b5050507fdeadaa51000000000000000000000000000000000000000000000000000000008152fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b81611dde92979396940390613c98565b506003841015611e6857507f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f60808683015192519473ffffffffffffffffffffffffffffffffffffffff865116948873ffffffffffffffffffffffffffffffffffffffff60e0890151169701519160405192835215898301528760408301526060820152a46113c9565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526021600452fd5b6064919003600a0204909301928780611d3d565b8095918051611eba575b5050611d1d565b6003861015611fc1576002860315611eb35760a088015190823b1561019c57600091611f2491836040519586809581947f7c627b210000000000000000000000000000000000000000000000000000000083528d60048401526080602484015260848301906123c6565b8b8b0260448301528b60648301520393f19081611fad575b50611fa65787893d610800808211611f9e575b506040519282828501016040528184528284013e610e7e6040519283927fad7954bc000000000000000000000000000000000000000000000000000000008452600484015260248301906123c6565b905083611f4f565b8980611eb3565b611fb89199506121bd565b6000978a611f3c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91600092918380938c73ffffffffffffffffffffffffffffffffffffffff885116910192f115612023575b808080611cb0565b611cca929195503d6108008082116120c6575b5060405190888183010160405280825260008983013e805161205f575b5050600194909161201b565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a20188870151918973ffffffffffffffffffffffffffffffffffffffff8551169401516120bc604051928392835260408d84015260408301906123c6565b0390a38680612053565b905088612036565b877fdeaddead000000000000000000000000000000000000000000000000000000006000526000fd5b606486604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c790000000000000000006044820152fd5b60a0810190811067ffffffffffffffff82111761217157604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610140810190811067ffffffffffffffff82111761217157604052565b67ffffffffffffffff811161217157604052565b6060810190811067ffffffffffffffff82111761217157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761217157604052565b67ffffffffffffffff811161217157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926122748261222e565b9161228260405193846121ed565b82948184528183011161019c578281602093846000960137010152565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361019c57565b9181601f8401121561019c5782359167ffffffffffffffff831161019c576020838186019501011161019c57565b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff8216820361019c57565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261019c5760043567ffffffffffffffff9283821161019c578060238301121561019c57816004013593841161019c5760248460051b8301011161019c57602401919060243573ffffffffffffffffffffffffffffffffffffffff8116810361019c5790565b60005b8381106123b65750506000910152565b81810151838201526020016123a6565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093612402815180928187528780880191016123a3565b0116010190565b91908201809211610b4f57565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b4f5760010190565b91908203918211610b4f57565b3d1561247b573d906124618261222e565b9161246f60405193846121ed565b82523d6000602084013e565b606090565b604061248e8183018361284b565b90818351918237206124a3606084018461284b565b90818451918237209260c06124bb60e083018361284b565b908186519182372091845195602087019473ffffffffffffffffffffffffffffffffffffffff833516865260208301358789015260608801526080870152608081013560a087015260a081013582870152013560e08501526101009081850152835261012083019167ffffffffffffffff918484108385111761217157838252845190206101408501908152306101608601524661018086015260608452936101a00191821183831017612171575251902090565b67ffffffffffffffff81116121715760051b60200190565b9061259282612570565b6040906125a260405191826121ed565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06125d08295612570565b019160005b8381106125e25750505050565b60209082516125f081612155565b83516125fb816121a0565b600081526000849181838201528187820152816060818184015260809282848201528260a08201528260c08201528260e082015282610100820152826101208201528652818587015281898701528501528301528286010152016125d5565b805182101561266e5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b919081101561266e5760051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee18136030182121561019c570190565b9081602091031261019c575173ffffffffffffffffffffffffffffffffffffffff8116810361019c5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4602073ffffffffffffffffffffffffffffffffffffffff61278a3485613c98565b936040519485521692a2565b919081101561266e5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18136030182121561019c570190565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561019c570180359067ffffffffffffffff821161019c57602001918160051b3603831361019c57565b3573ffffffffffffffffffffffffffffffffffffffff8116810361019c5790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561019c570180359067ffffffffffffffff821161019c5760200191813603831361019c57565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561019c57016020813591019167ffffffffffffffff821161019c57813603831361019c57565b61012091813573ffffffffffffffffffffffffffffffffffffffff811680910361019c576129626129476129ba9561299b93855260208601356020860152612937604087018761289c565b9091806040880152860191612709565b612954606086018661289c565b908583036060870152612709565b6080840135608084015260a084013560a084015260c084013560c084015261298d60e085018561289c565b9084830360e0860152612709565b916129ac610100918281019061289c565b929091818503910152612709565b90565b60028054146129cc5760028055565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b926000905a93805194843573ffffffffffffffffffffffffffffffffffffffff811680910361019c5786526020850135602087015260808501356fffffffffffffffffffffffffffffffff90818116606089015260801c604088015260a086013560c088015260c086013590811661010088015260801c610120870152612a8060e086018661284b565b801561357b576034811061351d578060141161019c578060241161019c5760341161019c57602481013560801c60a0880152601481013560801c60808801523560601c60e08701525b612ad285612480565b60208301526040860151946effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a0890151176101008901511761012089015117116134bf57604087015160608801510160808801510160a08801510160c0880151016101008801510296835173ffffffffffffffffffffffffffffffffffffffff81511690612b66604085018561284b565b806131e4575b505060e0015173ffffffffffffffffffffffffffffffffffffffff1690600082156131ac575b6020612bd7918b828a01516000868a604051978896879586937f19822f7c00000000000000000000000000000000000000000000000000000000855260048501613db5565b0393f160009181613178575b50612c8b573d8c610800808311612c83575b50604051916020818401016040528083526000602084013e610e7e6040519283927f65c8fd4d000000000000000000000000000000000000000000000000000000008452600484015260606024840152600d60648401527f4141323320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a48301906123c6565b915082612bf5565b9a92939495969798999a91156130f2575b509773ffffffffffffffffffffffffffffffffffffffff835116602084015190600052600160205260406000208160401c60005260205267ffffffffffffffff604060002091825492612cee84612416565b9055160361308d575a8503116130285773ffffffffffffffffffffffffffffffffffffffff60e0606093015116612d42575b509060a09184959697986040608096015260608601520135905a900301910152565b969550505a9683519773ffffffffffffffffffffffffffffffffffffffff60e08a01511680600052600060205260406000208054848110612fc3576080612dcd9a9b9c600093878094039055015192602089015183604051809d819582947f52b7512c0000000000000000000000000000000000000000000000000000000084528c60048501613db5565b039286f1978860009160009a612f36575b50612e86573d8b610800808311612e7e575b50604051916020818401016040528083526000602084013e610e7e6040519283927f65c8fd4d000000000000000000000000000000000000000000000000000000008452600484015260606024840152600d60648401527f4141333320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a48301906123c6565b915082612df0565b9991929394959697989998925a900311612eab57509096959094939291906080612d20565b60a490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d6974000000000000000000000000000000000000000000000000006084820152fd5b915098503d90816000823e612f4b82826121ed565b604081838101031261019c5780519067ffffffffffffffff821161019c57828101601f83830101121561019c578181015191612f868361222e565b93612f9460405195866121ed565b838552820160208483850101011161019c57602092612fba9184808701918501016123a3565b01519838612dde565b60848b604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b608490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152fd5b608482604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152fd5b600052600060205260406000208054808c11613113578b9003905538612c9c565b608484604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152fd5b9091506020813d6020116131a4575b81613194602093836121ed565b8101031261019c57519038612be3565b3d9150613187565b508060005260006020526040600020548a81116000146131d75750612bd7602060005b915050612b92565b6020612bd7918c036131cf565b833b61345a57604088510151602060405180927f570e1a360000000000000000000000000000000000000000000000000000000082528260048301528160008161323260248201898b612709565b039273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690f1908115610db75760009161343b575b5073ffffffffffffffffffffffffffffffffffffffff811680156133d6578503613371573b1561330c5760141161019c5773ffffffffffffffffffffffffffffffffffffffff9183887fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d604060e0958787602086015195510151168251913560601c82526020820152a391612b6c565b60848d604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152fd5b60848e604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f4141313420696e6974436f6465206d7573742072657475726e2073656e6465726064820152fd5b60848f604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601b60448201527f4141313320696e6974436f6465206661696c6564206f72204f4f4700000000006064820152fd5b613454915060203d602011610db057610da181836121ed565b3861327c565b60848d604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b5050600060e087015260006080870152600060a0870152612ac9565b9092915a906060810151916040928351967fffffffff00000000000000000000000000000000000000000000000000000000886135d7606084018461284b565b600060038211613b9f575b7f8dd7712f0000000000000000000000000000000000000000000000000000000094168403613a445750505061379d6000926136b292602088015161363a8a5193849360208501528b602485015260648401906128ec565b90604483015203906136727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928381018352826121ed565b61379189519485927e42dc5300000000000000000000000000000000000000000000000000000000602085015261020060248501526102248401906123c6565b613760604484018b60806101a091805173ffffffffffffffffffffffffffffffffffffffff808251168652602082015160208701526040820151604087015260608201516060870152838201518487015260a082015160a087015260c082015160c087015260e08201511660e0860152610100808201519086015261012080910151908501526020810151610140850152604081015161016085015260608101516101808501520151910152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc83820301610204840152876123c6565b039081018352826121ed565b6020918183809351910182305af1600051988652156137bf575b505050505050565b909192939495965060003d8214613a3a575b7fdeaddead00000000000000000000000000000000000000000000000000000000810361385b57608487878051917f220266b600000000000000000000000000000000000000000000000000000000835260048301526024820152600f60448201527f41413935206f7574206f662067617300000000000000000000000000000000006064820152fd5b7fdeadaa510000000000000000000000000000000000000000000000000000000091929395949650146000146138c55750506138a961389e6138b8935a90612443565b608085015190612409565b9083015183611d748295613d65565b905b3880808080806137b7565b909261395290828601518651907ff62676f440ff169a3a9afdbf812e89e7f95975ee8e5c31214ffdef631c5f479273ffffffffffffffffffffffffffffffffffffffff9580878551169401516139483d610800808211613a32575b508a519084818301018c5280825260008583013e8a805194859485528401528a8301906123c6565b0390a35a90612443565b916139636080860193845190612409565b926000905a94829488519761397789613ccc565b948260e08b0151168015600014613a1857505050875116955b5a9003019560a06060820151910151019051860390818111613a04575b5050840290850151928184106000146139de57505080611e68575090816139d89293611d7481613d65565b906138ba565b6139ee9082849397950390613c98565b50611e68575090826139ff92613cf6565b6139d8565b6064919003600a02049094019338806139ad565b90919892509751613a2a575b50613990565b955038613a24565b905038613920565b8181803e516137d1565b613b97945082935090613a8c917e42dc53000000000000000000000000000000000000000000000000000000006020613b6b9501526102006024860152610224850191612709565b613b3a604484018860806101a091805173ffffffffffffffffffffffffffffffffffffffff808251168652602082015160208701526040820151604087015260608201516060870152838201518487015260a082015160a087015260c082015160c087015260e08201511660e0860152610100808201519086015261012080910151908501526020810151610140850152604081015161016085015260608101516101808501520151910152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc83820301610204840152846123c6565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018952886121ed565b60008761379d565b5081356135e2565b73ffffffffffffffffffffffffffffffffffffffff168015613c3a57600080809381935af1613bd4612450565b5015613bdc57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff166000526000602052613cc66040600020918254612409565b80915590565b610120610100820151910151808214613cf257480180821015613ced575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f6080602083015192519473ffffffffffffffffffffffffffffffffffffffff946020868851169660e089015116970151916040519283526000602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e60208073ffffffffffffffffffffffffffffffffffffffff855116940151604051908152a3565b613dcd604092959493956060835260608301906128ec565b9460208201520152565b8015613e6457600060408051613dec816121d1565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811690604065ffffffffffff91828160a01c16908115613e5c575b60d01c92825191613e37836121d1565b8583528460208401521691829101524211908115613e5457509091565b905042109091565b839150613e27565b5060009060009056fea2646970667358221220b094fd69f04977ae9458e5ba422d01cd2d20dbcfca0992ff37f19aa07deec25464736f6c6343000817003360808060405234610016576101c3908161001c8239f35b600080fdfe6080600436101561000f57600080fd5b6000803560e01c63570e1a361461002557600080fd5b3461018a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018a576004359167ffffffffffffffff9081841161018657366023850112156101865783600401358281116101825736602482870101116101825780601411610182577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec810192808411610155577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81600b8501160116830190838210908211176101555792846024819482600c60209a968b9960405286845289840196603889018837830101525193013560601c5af1908051911561014d575b5073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b90503861012e565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8380fd5b8280fd5b80fdfea26469706673582212207adef8895ad3393b02fab10a111d85ea80ff35366aa43995f4ea20e67f29200664736f6c63430008170033"; + +// Will deploy simpleAccountFactory V0.7 to 0x91E60e0613810449d098b0b5Ec8b51A0FE8c8985 +export const SIMPLE_ACCOUNT_FACTORY_V07_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516129e13803806129e183398101604081905261002f91610088565b8060405161003c9061007b565b6001600160a01b039091168152602001604051809103906000f080158015610068573d6000803e3d6000fd5b506001600160a01b0316608052506100b8565b612011806109d083390190565b60006020828403121561009a57600080fd5b81516001600160a01b03811681146100b157600080fd5b9392505050565b6080516108f06100e060003960008181604b01528181610114015261025801526108f06000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806311464fbe146100465780635fbfb9cf146100965780638cb84e18146100a9575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006d6100a436600461039d565b6100bc565b61006d6100b736600461039d565b6101ee565b6000806100c984846101ee565b905073ffffffffffffffffffffffffffffffffffffffff81163b80156100f1575090506101e8565b60405173ffffffffffffffffffffffffffffffffffffffff8616602482015284907f000000000000000000000000000000000000000000000000000000000000000090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052516101b790610390565b6101c2929190610406565b8190604051809103906000f59050801580156101e2573d6000803e3d6000fd5b50925050505b92915050565b60006103578260001b6040518060200161020790610390565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604081905273ffffffffffffffffffffffffffffffffffffffff871660248201527f000000000000000000000000000000000000000000000000000000000000000090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052905161030093929101610406565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261033c9291602001610474565b6040516020818303038152906040528051906020012061035e565b9392505050565b60006103578383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b610417806104a483390190565b600080604083850312156103b057600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146103d457600080fd5b946020939093013593505050565b60005b838110156103fd5781810151838201526020016103e5565b50506000910152565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600082518060408401526104418160608501602087016103e2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600083516104868184602088016103e2565b83519083019061049a8183602088016103e2565b0194935050505056fe608060405260405161041738038061041783398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b60b7806103606000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea2646970667358221220d7f23a80daebb5531c9e4a18d87e812fca112e5df7e56433218edcc12bbe415d64736f6c63430008170033a2646970667358221220f5be4d2659f1a124e46d76b875ad5264a1c62d421946ca067d6132fa6cc4309964736f6c6343000817003360c0604052306080523480156200001557600080fd5b50604051620020113803806200201183398101604081905262000038916200010a565b6001600160a01b03811660a0526200004f62000056565b506200013c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001075780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156200011d57600080fd5b81516001600160a01b03811681146200013557600080fd5b9392505050565b60805160a051611e70620001a160003960008181610320015281816106f00152818161079e0152818161092601528181610b6301528181610baa01528181610d6a015261121e015260008181610f3301528181610f5c015261117d0152611e706000f3fe6080604052600436106101125760003560e01c80638da5cb5b116100a5578063bc197c8111610074578063c4d66de811610059578063c4d66de8146103c1578063d087d288146103e1578063f23a6e61146103f657600080fd5b8063bc197c8114610364578063c399ec88146103ac57600080fd5b80638da5cb5b14610269578063ad3cb1cc146102bb578063b0d691fe14610311578063b61d27f61461034457600080fd5b80634a58db19116100e15780634a58db19146102195780634d44560d146102215780634f1ef2861461024157806352d1902d1461025457600080fd5b806301ffc9a71461011e578063150b7a021461015357806319822f7c146101c957806347e1da2a146101f757600080fd5b3661011957005b600080fd5b34801561012a57600080fd5b5061013e61013936600461179b565b61043c565b60405190151581526020015b60405180910390f35b34801561015f57600080fd5b5061019861016e366004611848565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161014a565b3480156101d557600080fd5b506101e96101e43660046118bb565b610521565b60405190815260200161014a565b34801561020357600080fd5b50610217610212366004611954565b610547565b005b6102176106ee565b34801561022d57600080fd5b5061021761023c3660046119ee565b610794565b61021761024f366004611a49565b610843565b34801561026057600080fd5b506101e9610862565b34801561027557600080fd5b506000546102969073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014a565b3480156102c757600080fd5b506103046040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161014a9190611b4f565b34801561031d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610296565b34801561035057600080fd5b5061021761035f366004611ba0565b610891565b34801561037057600080fd5b5061019861037f366004611bfc565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b3480156103b857600080fd5b506101e96108e0565b3480156103cd57600080fd5b506102176103dc366004611cbb565b610997565b3480156103ed57600080fd5b506101e9610b16565b34801561040257600080fd5b50610198610411366004611cd8565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a020000000000000000000000000000000000000000000000000000000014806104cf57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b8061051b57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061052b610b92565b6105358484610c33565b905061054082610ce7565b9392505050565b61054f610d52565b8481148015610565575082158061056557508281145b6105d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206172726179206c656e677468730000000000000000000000000060448201526064015b60405180910390fd5b600083900361067c5760005b858110156106765761066e8787838181106105f9576105f9611d42565b905060200201602081019061060e9190611cbb565b600085858581811061062257610622611d42565b90506020028101906106349190611d71565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610e1392505050565b6001016105dc565b506106e6565b60005b858110156106e4576106dc87878381811061069c5761069c611d42565b90506020020160208101906106b19190611cbb565b8686848181106106c3576106c3611d42565b9050602002013585858581811061062257610622611d42565b60010161067f565b505b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006040517fb760faf900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063b760faf99034906024016000604051808303818588803b15801561077957600080fd5b505af115801561078d573d6000803e3d6000fd5b5050505050565b61079c610e90565b7f00000000000000000000000000000000000000000000000000000000000000006040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063205c287890604401600060405180830381600087803b15801561082f57600080fd5b505af11580156106e6573d6000803e3d6000fd5b61084b610f1b565b6108548261101f565b61085e8282611027565b5050565b600061086c611165565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610899610d52565b6108da848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610e1392505050565b50505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561096e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109929190611dd6565b905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156109e25750825b905060008267ffffffffffffffff1660011480156109ff5750303b155b905081158015610a0d575080155b15610a44576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610aa55784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610aae866111d4565b83156106e65784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6040517f35567e1a0000000000000000000000000000000000000000000000000000000081523060048201526000602482018190529073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906335567e1a90604401610951565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e740000000060448201526064016105c7565b565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c829052603c8120610cae81610c74610100870187611d71565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061126892505050565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614610cda57600191505061051b565b5060009392505050565b50565b8015610ce45760405160009033907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90849084818181858888f193505050503d806000811461078d576040519150601f19603f3d011682016040523d82523d6000602084013e61078d565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610dad575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6163636f756e743a206e6f74204f776e6572206f7220456e747279506f696e7460448201526064016105c7565b6000808473ffffffffffffffffffffffffffffffffffffffff168484604051610e3c9190611def565b60006040518083038185875af1925050503d8060008114610e79576040519150601f19603f3d011682016040523d82523d6000602084013e610e7e565b606091505b50915091508161078d57805160208201fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331480610eb557503330145b610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e65720000000000000000000000000000000000000000000060448201526064016105c7565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610fe857507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610fcf7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610c31576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ce4610e90565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110ac575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526110a991810190611dd6565b60015b6110fa576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016105c7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611156576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016105c7565b6111608383611292565b505050565b3073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c31576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217835560405191927f0000000000000000000000000000000000000000000000000000000000000000909116917f47e55c76e7a6f1fd8996a1da8008c1ea29699cca35e7bcd057f2dec313b6e5de9190a350565b60008060008061127886866112f5565b9250925092506112888282611342565b5090949350505050565b61129b82611446565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156112ed576111608282611515565b61085e611598565b6000806000835160410361132f5760208401516040850151606086015160001a611321888285856115d0565b95509550955050505061133b565b50508151600091506002905b9250925092565b600082600381111561135657611356611e0b565b0361135f575050565b600182600381111561137357611373611e0b565b036113aa576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156113be576113be611e0b565b036113f8576040517ffce698f7000000000000000000000000000000000000000000000000000000008152600481018290526024016105c7565b600382600381111561140c5761140c611e0b565b0361085e576040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600481018290526024016105c7565b8073ffffffffffffffffffffffffffffffffffffffff163b6000036114af576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016105c7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161153f9190611def565b600060405180830381855af49150503d806000811461157a576040519150601f19603f3d011682016040523d82523d6000602084013e61157f565b606091505b509150915061158f8583836116ca565b95945050505050565b3415610c31576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561160b57506000915060039050826116c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561165f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166116b6575060009250600191508290506116c0565b9250600091508190505b9450945094915050565b6060826116df576116da82611759565b610540565b8151158015611703575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611752576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105c7565b5080610540565b8051156117695780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156117ad57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461054057600080fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610ce457600080fd5b60008083601f84011261181157600080fd5b50813567ffffffffffffffff81111561182957600080fd5b60208301915083602082850101111561184157600080fd5b9250929050565b60008060008060006080868803121561186057600080fd5b853561186b816117dd565b9450602086013561187b816117dd565b935060408601359250606086013567ffffffffffffffff81111561189e57600080fd5b6118aa888289016117ff565b969995985093965092949392505050565b6000806000606084860312156118d057600080fd5b833567ffffffffffffffff8111156118e757600080fd5b840161012081870312156118fa57600080fd5b95602085013595506040909401359392505050565b60008083601f84011261192157600080fd5b50813567ffffffffffffffff81111561193957600080fd5b6020830191508360208260051b850101111561184157600080fd5b6000806000806000806060878903121561196d57600080fd5b863567ffffffffffffffff8082111561198557600080fd5b6119918a838b0161190f565b909850965060208901359150808211156119aa57600080fd5b6119b68a838b0161190f565b909650945060408901359150808211156119cf57600080fd5b506119dc89828a0161190f565b979a9699509497509295939492505050565b60008060408385031215611a0157600080fd5b8235611a0c816117dd565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215611a5c57600080fd5b8235611a67816117dd565b9150602083013567ffffffffffffffff80821115611a8457600080fd5b818501915085601f830112611a9857600080fd5b813581811115611aaa57611aaa611a1a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611af057611af0611a1a565b81604052828152886020848701011115611b0957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015611b46578181015183820152602001611b2e565b50506000910152565b6020815260008251806020840152611b6e816040850160208701611b2b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008060008060608587031215611bb657600080fd5b8435611bc1816117dd565b935060208501359250604085013567ffffffffffffffff811115611be457600080fd5b611bf0878288016117ff565b95989497509550505050565b60008060008060008060008060a0898b031215611c1857600080fd5b8835611c23816117dd565b97506020890135611c33816117dd565b9650604089013567ffffffffffffffff80821115611c5057600080fd5b611c5c8c838d0161190f565b909850965060608b0135915080821115611c7557600080fd5b611c818c838d0161190f565b909650945060808b0135915080821115611c9a57600080fd5b50611ca78b828c016117ff565b999c989b5096995094979396929594505050565b600060208284031215611ccd57600080fd5b8135610540816117dd565b60008060008060008060a08789031215611cf157600080fd5b8635611cfc816117dd565b95506020870135611d0c816117dd565b94506040870135935060608701359250608087013567ffffffffffffffff811115611d3657600080fd5b6119dc89828a016117ff565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611da657600080fd5b83018035915067ffffffffffffffff821115611dc157600080fd5b60200191503681900382131561184157600080fd5b600060208284031215611de857600080fd5b5051919050565b60008251611e01818460208701611b2b565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220646ccd794d1cd309da39b56bcfe1238dae05a9d8106dddf47fe099a78d7801e864736f6c634300081700330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032"; + +// Will deploy entryPointSimulations (required for V0.7) to 0x74Cb5e4eE81b86e70f9045036a1C5477de69eE87 +export const ENTRY_POINT_SIMULATIONS_CREATECALL: Hex = + "0x313233340000000000000000000000000000000000000000000000000000000060806040526040516100109061005f565b604051809103906000f08015801561002c573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b039290921691909117905534801561005957600080fd5b5061006c565b613d318061050783390190565b61048c8061007b6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c18f522614610030575b600080fd5b61004361003e366004610230565b610059565b60405161005091906103b0565b60405180910390f35b60606000825167ffffffffffffffff811115610077576100776101e9565b6040519080825280602002602001820160405280156100aa57816020015b60608152602001906001900390816100955790505b50905060005b835181101561019d57606060007f850aaf621a3721219c57b79d6077e318862cf95113b5637afaddb124884a5eb060008054906101000a90046001600160a01b031687858151811061010457610104610414565b602002602001015160405160240161011d92919061042a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050600061015f8882845a6101a5565b905080610174576101716000196101bd565b92505b8285858151811061018757610187610414565b60209081029190910101525050506001016100b0565b509392505050565b6000806000845160208601878987f195945050505050565b60603d828111156101cb5750815b604051602082018101604052818152816000602083013e9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610228576102286101e9565b604052919050565b600080604080848603121561024457600080fd5b83356001600160a01b038116811461025b57600080fd5b925060208481013567ffffffffffffffff8082111561027957600080fd5b8187019150601f88601f84011261028f57600080fd5b8235828111156102a1576102a16101e9565b8060051b6102b08682016101ff565b918252848101860191868101908c8411156102ca57600080fd5b87870192505b83831015610357578235868111156102e85760008081fd5b8701603f81018e136102fa5760008081fd5b888101358781111561030e5761030e6101e9565b61031f818801601f19168b016101ff565b8181528f8c8385010111156103345760008081fd5b818c84018c83013760009181018b019190915283525091870191908701906102d0565b8099505050505050505050509250929050565b6000815180845260005b8181101561039057602081850181015186830182015201610374565b506000602082860101526020601f19601f83011685010191505092915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561040757603f198886030184526103f585835161036a565b945092850192908501906001016103d9565b5092979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038316815260406020820181905260009061044e9083018461036a565b94935050505056fea26469706673582212207ddd3776bce2d23a4710581621f90634e5e2f38c35b4ba3416ba605ac54ef07b64736f6c6343000817003360a060405260405162000012906200009d565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b506001600160a01b0390811660805260408051808201825260008082528251808401909352808352602080840191825282018390529051600380546001600160a01b031916919094161790925551600455516005553480156200009157600080fd5b506001600255620000ab565b6102138062003b1e83390190565b608051613a5a620000c460003960005050613a5a6000f3fe6080604052600436106101395760003560e01c80635287ce12116100ab578063bb9fe6bf1161006f578063bb9fe6bf14610505578063c23a5cea1461051a578063c3bce0091461053a578063c5f996e614610567578063fc7e286d14610587578063fe2171cb1461062f57600080fd5b80635287ce12146103575780635895273b1461046f57806370a082311461048f578063b760faf9146104c5578063baa22044146104d857600080fd5b80631b2e01b8116100fd5780631b2e01b814610219578063205c28781461025f57806322cdde4c1461027f578063263934db1461029f57806330ec25d1146102cc57806335567e1a146102f957600080fd5b80630396cb601461014e5780630513fbf4146101615780630bd28e3b146101975780630da82661146101b75780630dbfc6bd146101ec57600080fd5b36610149576101473361064f565b005b600080fd5b61014761015c366004612c8c565b610670565b34801561016d57600080fd5b5061018161017c366004612cfd565b610904565b60405161018e9190612e11565b60405180910390f35b3480156101a357600080fd5b506101476101b2366004612e8c565b610a24565b3480156101c357600080fd5b506101d76101d2366004612fd8565b610a5b565b6040805192835260208301919091520161018e565b3480156101f857600080fd5b5061020c610207366004613127565b610b90565b60405161018e91906131c6565b34801561022557600080fd5b5061025161023436600461321d565b600160209081526000928352604080842090915290825290205481565b60405190815260200161018e565b34801561026b57600080fd5b5061014761027a366004613252565b610c4f565b34801561028b57600080fd5b5061025161029a366004613297565b610da0565b3480156102ab57600080fd5b506102bf6102ba366004613127565b610de2565b60405161018e91906132cb565b3480156102d857600080fd5b506102ec6102e7366004613127565b610e79565b60405161018e91906133a7565b34801561030557600080fd5b5061025161031436600461321d565b6001600160a01b039190911660009081526001602090815260408083206001600160c01b0385168452909152908190205491901b67ffffffffffffffff19161790565b34801561036357600080fd5b506104146103723660046133fe565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160a01b031660009081526020818152604091829020825160a0810184528154815260019091015460ff811615159282019290925261010082046001600160701b031692810192909252600160781b810463ffffffff166060830152600160981b900465ffffffffffff16608082015290565b60405161018e9190600060a082019050825182526020830151151560208301526001600160701b03604084015116604083015263ffffffff606084015116606083015265ffffffffffff608084015116608083015292915050565b34801561047b57600080fd5b506102bf61048a366004613297565b610f2e565b34801561049b57600080fd5b506102516104aa3660046133fe565b6001600160a01b031660009081526020819052604090205490565b6101476104d33660046133fe565b61064f565b3480156104e457600080fd5b506104f86104f3366004612cfd565b610fe9565b60405161018e919061341b565b34801561051157600080fd5b50610147611046565b34801561052657600080fd5b506101476105353660046133fe565b61117a565b34801561054657600080fd5b5061055a610555366004613297565b61139e565b60405161018e919061342e565b34801561057357600080fd5b506104f8610582366004613441565b611563565b34801561059357600080fd5b506105ec6105a23660046133fe565b6000602081905290815260409020805460019091015460ff81169061010081046001600160701b031690600160781b810463ffffffff1690600160981b900465ffffffffffff1685565b6040805195865293151560208601526001600160701b039092169284019290925263ffffffff909116606083015265ffffffffffff16608082015260a00161018e565b34801561063b57600080fd5b5061055a61064a366004613127565b61164e565b60015b600581101561066357600101610652565b61066c82611662565b5050565b33600090815260208190526040902063ffffffff82166106d75760405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c617900000000000060448201526064015b60405180910390fd5b600181015463ffffffff600160781b9091048116908316101561073c5760405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d650000000060448201526064016106ce565b600181015460009061075d90349061010090046001600160701b03166134fc565b9050600081116107a45760405162461bcd60e51b81526020600482015260126024820152711b9bc81cdd185ad9481cdc1958da599a595960721b60448201526064016106ce565b6001600160701b038111156107ec5760405162461bcd60e51b815260206004820152600e60248201526d7374616b65206f766572666c6f7760901b60448201526064016106ce565b6040805160a08101825283548152600160208083018281526001600160701b0386811685870190815263ffffffff8a811660608801818152600060808a0181815233808352828a52918c90209a518b55965199909801805494519151965165ffffffffffff16600160981b0265ffffffffffff60981b1997909416600160781b029690961669ffffffffffffffffffff60781b1991909516610100026effffffffffffffffffffffffffff0019991515999099166effffffffffffffffffffffffffffff1990941693909317979097179190911691909117179055835185815290810192909252917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050565b60606000866001600160401b0381111561092057610920612ea7565b60405190808252806020026020018201604052801561096d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161093e5790505b50905060005b87811015610a185760006109ef8a8a848181106109925761099261350f565b90506020028101906109a49190613525565b8989858181106109b6576109b661350f565b90506020020160208101906109cb91906133fe565b8888868181106109dd576109dd61350f565b90506020028101906105829190613546565b905080838381518110610a0457610a0461350f565b602090810291909101015250600101610973565b50979650505050505050565b3360009081526001602090815260408083206001600160c01b03851684529091528120805491610a538361358c565b919050555050565b8251606081015160a08201516000928392909181016127100160405a603f0281610a8757610a876135a5565b041015610ad25760408051631101335b60e11b8152600060048201526024810191909152600f60448201526e41413935206f7574206f662067617360881b60648201526084016106ce565b875160009015610b66576000610aef846000015160008c866116ab565b905080610b64576000610b036108006116c3565b805190915015610b5e5784600001516001600160a01b03168a602001517f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a201876020015184604051610b559291906135bb565b60405180910390a35b60019250505b505b600088608001515a8803019050610b7f828a8a846116ef565b955095505050505094509492505050565b60606000826001600160401b03811115610bac57610bac612ea7565b604051908082528060200260200182016040528015610be557816020015b610bd2612ac0565b815260200190600190039081610bca5790505b50905060005b83811015610c45576000610c1c868684818110610c0a57610c0a61350f565b905060200281019061048a9190613525565b905080838381518110610c3157610c3161350f565b602090810291909101015250600101610beb565b5090505b92915050565b3360009081526020819052604090208054821115610caf5760405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c617267650000000000000060448201526064016106ce565b8054610cbc9083906135d4565b8155604080516001600160a01b03851681526020810184905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb910160405180910390a26000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610d4f576040519150601f19603f3d011682016040523d82523d6000602084013e610d54565b606091505b5050905080610d9a5760405162461bcd60e51b81526020600482015260126024820152716661696c656420746f20776974686472617760701b60448201526064016106ce565b50505050565b6000610dab8261191b565b6040805160208101929092523090820152466060820152608001604051602081830303815290604052805190602001209050919050565b610dea612ac0565b6000826001600160401b03811115610e0457610e04612ea7565b604051908082528060200260200182016040528015610e3d57816020015b610e2a612ac0565b815260200190600190039081610e225790505b509050610e4a8484610b90565b905080610e586001856135d4565b81518110610e6857610e6861350f565b602002602001015191505092915050565b60606000826001600160401b03811115610e9557610e95612ea7565b604051908082528060200260200182016040528015610ece57816020015b610ebb612b07565b815260200190600190039081610eb35790505b50905060005b83811015610c45576000610f05868684818110610ef357610ef361350f565b90506020028101906105559190613525565b905080838381518110610f1a57610f1a61350f565b602090810291909101015250600101610ed4565b610f36612ac0565b610f3e611934565b610f46612bbc565b610f4f8361195c565b6000806000610f6060008786611a29565b925092509250600080610f738887611c57565b915091506040518061010001604052808760800151815260200183815260200186815260200185815260200184815260200182815260200160001515815260200160405180604001604052806002815260200161060f60f31b8152508152509650505050505050610fe46001600255565b919050565b60408051606080820183526000808352602083018190529282015290611013888888888888610904565b9050806110216001896135d4565b815181106110315761103161350f565b60200260200101519150509695505050505050565b33600090815260208190526040812060018101549091600160781b90910463ffffffff1690036110a55760405162461bcd60e51b815260206004820152600a6024820152691b9bdd081cdd185ad95960b21b60448201526064016106ce565b600181015460ff166110ed5760405162461bcd60e51b8152602060048201526011602482015270616c726561647920756e7374616b696e6760781b60448201526064016106ce565b600181015460009061110c90600160781b900463ffffffff16426135e7565b60018301805460ff65ffffffffffff60981b011916600160981b65ffffffffffff841690810260ff19169190911790915560405190815290915033907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a906020015b60405180910390a25050565b336000908152602081905260409020600181015461010090046001600160701b0316806111e05760405162461bcd60e51b81526020600482015260146024820152734e6f207374616b6520746f20776974686472617760601b60448201526064016106ce565b6001820154600160981b900465ffffffffffff166112405760405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b65282920666972737400000060448201526064016106ce565b600182015442600160981b90910465ffffffffffff1611156112a45760405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f7420647565000000000060448201526064016106ce565b600182018054610100600160c81b0319169055604080516001600160a01b03851681526020810183905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda3910160405180910390a26000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114611348576040519150601f19603f3d011682016040523d82523d6000602084013e61134d565b606091505b5050905080610d9a5760405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b65000000000000000060448201526064016106ce565b6113a6612b07565b6113ae612bbc565b6113b78361195c565b6000806113c660008685611a29565b50915091506113d9600083836000611d64565b60006113ec846000015160e00151611f00565b8451519091506000906113fe90611f00565b905061141d604051806040016040528060008152602001600081525090565b36600061142d60408b018b613546565b90925090506000601482101561144457600061145f565b61145260146000848661360d565b61145b91613637565b60601c5b905061146a81611f00565b9350505050600085905060006040518060a0016040528089608001518152602001896040015181526020018881526020018781526020016114ac8a6060015190565b90526040805180820182526003546001600160a01b0390811682528251808401909352600454835260055460208481019190915282019290925291925083161580159061150357506001836001600160a01b031614155b15611530576040518060400160405280846001600160a01b0316815260200161152b85611f00565b905290505b6040805160a081018252928352602083019590955293810192909252506060810192909252608082015295945050505050565b60408051606080820183526000808352602083015291810191909152611587612bbc565b6115908661195c565b61159c60008783611a29565b506000915060609050816001600160a01b0388161561162b5760005a9050886001600160a01b031688886040516115d492919061366c565b6000604051808303816000865af19150503d8060008114611611576040519150601f19603f3d011682016040523d82523d6000602084013e611616565b606091505b5090945092505a61162790826135d4565b9150505b604080516060810182529182529215156020820152918201529695505050505050565b611656612b07565b6000610e4a8484610e79565b600061166e8234611f52565b9050816001600160a01b03167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c48260405161116e91815260200190565b6000806000845160208601878987f195945050505050565b60603d828111156116d15750815b604051602082018101604052818152816000602083013e9392505050565b60008060005a86519091506000908161170782611f85565b60e08301519091506001600160a01b038116611726578251935061183e565b80935060008951111561183e57878202965060028b600281111561174c5761174c61367c565b1461183e5760005a9050816001600160a01b0316637c627b218560a001518e8d8c886040518663ffffffff1660e01b815260040161178d9493929190613692565b600060405180830381600088803b1580156117a757600080fd5b5087f1935050505080156117b9575060015b611838578a5180516020808e01519201516001600160a01b0390911691907ff62676f440ff169a3a9afdbf812e89e7f95975ee8e5c31214ffdef631c5f4792906118046108006116c3565b6040516118129291906135bb565b60405180910390a38a608001515a870301985061183260028c8c8c6116ef565b90985096505b5a900395505b5a60a0840151606085015160808d01519288039a909a01990190890380821115611871576064600a828403020499909901985b505060408a01518883029750878110156118d75760028c60028111156118995761189961367c565b036118bc578097506118aa8b611fb7565b6118b78b60008a8c612006565b61190c565b8a608001515a87030198508a6040015197506118aa8b611fb7565b8781036118e48682611f52565b506000808e60028111156118fa576118fa61367c565b1490506119098d828c8e612006565b50505b50505050505094509492505050565b600061192682612081565b805190602001209050919050565b600280540361195657604051633ee5aeb560e01b815260040160405180910390fd5b60028055565b6119cf6040516135a560f21b60208201526bffffffffffffffffffffffff193060601b166022820152600160f81b603682015260009060370160408051808303601f190181529190528051602090910120600680546001600160a01b0319166001600160a01b0390921691909117905550565b6000611a006119e16040840184613546565b6119ee60208601866133fe565b6119fb60e0870187613546565b612139565b9050805160001461066c57600081604051631101335b60e11b81526004016106ce9291906135bb565b6000806000805a8551909150611a3f8782612215565b611a4887610da0565b6020870152604081015161012082015161010083015160a08401516080850151606086015160c0870151861717171717176effffffffffffffffffffffffffffff811115611ad85760405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f77000000000000000060448201526064016106ce565b6000611b078460c081015160a08201516080830151606084015160408501516101009095015194010101010290565b9050611b168b8b8b8487612323565b9750611b2a846000015185602001516124ba565b611b80578a604051631101335b60e11b81526004016106ce918152604060208201819052601a908201527f4141323520696e76616c6964206163636f756e74206e6f6e6365000000000000606082015260800190565b825a86031115611bdc578a604051631101335b60e11b81526004016106ce918152604060208201819052601e908201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606082015260800190565b606060005a60e08701519091506001600160a01b031615611c0857611c038d8d8d86612507565b995091505b60408b018390528160608c015260a08c01355a88030160808c015260645a611c3090836135d4565b611c3b9060736136dc565b611c4591906136f3565b97505050505050505093509350939050565b60008060005a90506000611c6c856060015190565b604051909150366000611c8260608a018a613546565b915091506000816003811115611c9757833591505b506372288ed160e01b6001600160e01b0319821601611d0d5760008a8a60200151604051602401611cc9929190613862565b60408051601f198184030181529190526020810180516001600160e01b0316638dd7712f60e01b1790529050611d01818b888a610a5b565b9099509750611d579050565b611d5183838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d92508991508a9050610a5b565b90985096505b5050505050509250929050565b600080611d70856126b6565b91509150816001600160a01b0316836001600160a01b031614611dd65785604051631101335b60e11b81526004016106ce9181526040602082018190526014908201527320a0991a1039b4b3b730ba3ab9329032b93937b960611b606082015260800190565b8015611e2e5785604051631101335b60e11b81526004016106ce9181526040602082018190526017908201527f414132322065787069726564206f72206e6f7420647565000000000000000000606082015260800190565b6000611e39856126b6565b925090506001600160a01b03811615611e955786604051631101335b60e11b81526004016106ce9181526040602082018190526014908201527320a0999a1039b4b3b730ba3ab9329032b93937b960611b606082015260800190565b8115611ef75786604051631101335b60e11b81526004016106ce9181526040602082018190526021908201527f41413332207061796d61737465722065787069726564206f72206e6f742064756060820152606560f81b608082015260a00190565b50505050505050565b604080518082018252600080825260208083018281526001600160a01b03959095168252819052919091206001015461010081046001600160701b03168252600160781b900463ffffffff1690915290565b6001600160a01b038216600090815260208190526040812080548290611f799085906134fc565b91829055509392505050565b61010081015161012082015160009190808203611fa3575092915050565b611faf82488301612709565b949350505050565b80518051602080840151928101516040519081526001600160a01b0390921692917f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e910160405180910390a350565b835160e081015181516020808801519301516040516001600160a01b039384169492909316927f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f916120739189908990899093845291151560208401526040830152606082015260800190565b60405180910390a450505050565b60608135602083013560006120a161209c6040870187613546565b612721565b905060006120b561209c6060880188613546565b9050608086013560a087013560c088013560006120d861209c60e08c018c613546565b604080516001600160a01b039a909a1660208b015289810198909852606089019690965250608087019390935260a086019190915260c085015260e08401526101008084019190915281518084039091018152610120909201905292915050565b60608415801561215157506001600160a01b0384163b155b15612190575060408051808201909152601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015261220c565b601482106121fb5760006121a7601482858761360d565b6121b091613637565b60601c9050803b6000036121f957505060408051808201909152601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015261220c565b505b506040805160208101909152600081525b95945050505050565b61222260208301836133fe565b6001600160a01b03168152602082810135908201526001600160801b036080808401358281166060850152811c604084015260a084013560c0808501919091528401359182166101008401521c61012082015236600061228560e0850185613546565b909250905080156123085760348110156122e15760405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e644461746100000060448201526064016106ce565b6122eb8282612734565b60a086015260808501526001600160a01b031660e0840152610d9a565b600060e084018190526080840181905260a084015250505050565b8251805160009190612342888761233d60408b018b613546565b61279c565b60e082015160006001600160a01b038216612386576001600160a01b03831660009081526020819052604090205487811161237f57808803612382565b60005b9150505b60208801516040516306608bdf60e21b81526001600160a01b038516916319822f7c9189916123bc918e91908790600401613884565b60206040518083038160008887f1935050505080156123f8575060408051601f3d908101601f191682019092526123f5918101906138a9565b60015b61242357896124086108006116c3565b6040516365c8fd4d60e01b81526004016106ce9291906138c2565b94506001600160a01b0382166124ad576001600160a01b03831660009081526020819052604090208054808911156124a7578b604051631101335b60e11b81526004016106ce9181526040602082018190526017908201527f41413231206469646e2774207061792070726566756e64000000000000000000606082015260800190565b88900390555b5050505095945050505050565b6001600160a01b038216600090815260016020908152604080832084821c80855292528220805484916001600160401b0383169190856124f98361358c565b909155501495945050505050565b60606000805a855160e08101516001600160a01b03811660009081526020819052604090208054939450919290919087811015612590578a604051631101335b60e11b81526004016106ce918152604060208201819052601e908201527f41413331207061796d6173746572206465706f73697420746f6f206c6f770000606082015260800190565b8781038260000181905550600084608001519050836001600160a01b03166352b7512c828d8d602001518d6040518563ffffffff1660e01b81526004016125d993929190613884565b60006040518083038160008887f19350505050801561261a57506040513d6000823e601f3d908101601f1916820160405261261791908101906138ff565b60015b612645578b61262a6108006116c3565b6040516365c8fd4d60e01b81526004016106ce92919061397f565b9098509650805a8703111561190c578b604051631101335b60e11b81526004016106ce9181526040602082018190526027908201527f41413336206f766572207061796d6173746572566572696669636174696f6e47606082015266185cd31a5b5a5d60ca1b608082015260a00190565b600080826000036126cc57506000928392509050565b60006126d784612a4f565b9050806040015165ffffffffffff164211806126fe5750806020015165ffffffffffff1642105b905194909350915050565b6000818310612718578161271a565b825b9392505050565b6000604051828085833790209392505050565b60008080612745601482868861360d565b61274e91613637565b60601c61275f60246014878961360d565b612768916139bc565b60801c61277960346024888a61360d565b612782916139bc565b9194506001600160801b0316925060801c90509250925092565b8015610d9a578251516001600160a01b0381163b156128075784604051631101335b60e11b81526004016106ce918152604060208201819052601f908201527f414131302073656e64657220616c726561647920636f6e737472756374656400606082015260800190565b600061281b6006546001600160a01b031690565b6001600160a01b031663570e1a3686600001516040015186866040518463ffffffff1660e01b81526004016128519291906139f3565b60206040518083038160008887f1158015612870573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128959190613a07565b90506001600160a01b0381166128f75785604051631101335b60e11b81526004016106ce918152604060208201819052601b908201527f4141313320696e6974436f6465206661696c6564206f72204f4f470000000000606082015260800190565b816001600160a01b0316816001600160a01b0316146129615785604051631101335b60e11b81526004016106ce91815260406020808301829052908201527f4141313420696e6974436f6465206d7573742072657475726e2073656e646572606082015260800190565b806001600160a01b03163b6000036129c45785604051631101335b60e11b81526004016106ce91815260406020808301829052908201527f4141313520696e6974436f6465206d757374206372656174652073656e646572606082015260800190565b60006129d3601482868861360d565b6129dc91613637565b60601c9050826001600160a01b031686602001517fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d83896000015160e00151604051612a3e9291906001600160a01b0392831681529116602082015260400190565b60405180910390a350505050505050565b60408051606081018252600080825260208201819052918101919091528160a081901c65ffffffffffff8116600003612a8b575065ffffffffffff5b604080516060810182526001600160a01b03909316835260d09490941c602083015265ffffffffffff16928101929092525090565b604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001606081525090565b6040518060a00160405280612b446040518060a0016040528060008152602001600081526020016000815260200160008152602001606081525090565b8152602001612b66604051806040016040528060008152602001600081525090565b8152602001612b88604051806040016040528060008152602001600081525090565b8152602001612baa604051806040016040528060008152602001600081525090565b8152602001612bb7612c54565b905290565b6040518060a00160405280612c2f60405180610140016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081525090565b8152602001600080191681526020016000815260200160008152602001600081525090565b604051806040016040528060006001600160a01b03168152602001612bb7604051806040016040528060008152602001600081525090565b600060208284031215612c9e57600080fd5b813563ffffffff8116811461271a57600080fd5b60008083601f840112612cc457600080fd5b5081356001600160401b03811115612cdb57600080fd5b6020830191508360208260051b8501011115612cf657600080fd5b9250929050565b60008060008060008060608789031215612d1657600080fd5b86356001600160401b0380821115612d2d57600080fd5b612d398a838b01612cb2565b90985096506020890135915080821115612d5257600080fd5b612d5e8a838b01612cb2565b90965094506040890135915080821115612d7757600080fd5b50612d8489828a01612cb2565b979a9699509497509295939492505050565b60005b83811015612db1578181015183820152602001612d99565b50506000910152565b60008151808452612dd2816020860160208601612d96565b601f01601f19169290920160200192915050565b805182526020810151151560208301526000604082015160606040850152611faf6060850182612dba565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612e6857603f19888603018452612e56858351612de6565b94509285019290850190600101612e3a565b5092979650505050505050565b80356001600160c01b0381168114610fe457600080fd5b600060208284031215612e9e57600080fd5b61271a82612e75565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715612edf57612edf612ea7565b60405290565b60405161014081016001600160401b0381118282101715612edf57612edf612ea7565b604051601f8201601f191681016001600160401b0381118282101715612f3057612f30612ea7565b604052919050565b60006001600160401b03821115612f5157612f51612ea7565b50601f01601f191660200190565b600082601f830112612f7057600080fd5b8135612f83612f7e82612f38565b612f08565b818152846020838601011115612f9857600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b0381168114612fca57600080fd5b50565b8035610fe481612fb5565b600080600080848603610220811215612ff057600080fd5b85356001600160401b038082111561300757600080fd5b61301389838a01612f5f565b9650601f19830192506101c091508183121561302e57600080fd5b613036612ebd565b6101408085121561304657600080fd5b61304e612ee5565b945061305c60208b01612fcd565b855260408a0135602086015260608a0135604086015260808a0135606086015260a08a0135608086015260c08a013560a086015260e08a013560c08601526101006130a8818c01612fcd565b60e08701526101208b81013591870191909152908a013590850152928352610160880135602084015261018088013560408401526101a088013560608401528188013560808401529194506101e0870135918083111561310757600080fd5b505061311587828801612f5f565b94979396509394610200013593505050565b6000806020838503121561313a57600080fd5b82356001600160401b0381111561315057600080fd5b61315c85828601612cb2565b90969095509350505050565b6000610100825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c0830151151560c085015260e08301518160e086015261220c82860182612dba565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612e6857603f1988860301845261320b858351613168565b945092850192908501906001016131ef565b6000806040838503121561323057600080fd5b823561323b81612fb5565b915061324960208401612e75565b90509250929050565b6000806040838503121561326557600080fd5b823561327081612fb5565b946020939093013593505050565b6000610120828403121561329157600080fd5b50919050565b6000602082840312156132a957600080fd5b81356001600160401b038111156132bf57600080fd5b611faf8482850161327e565b60208152600061271a6020830184613168565b80516101408084528151908401526020810151610160840152604081015161018084015260608101516101a08401526080015160a06101c084015260009061332a6101e0850182612dba565b90506020830151613348602086018280518252602090810151910152565b5060408301518051606086015260208101516080860152506060830151805160a0860152602081015160c0860152506080830151610c4560e086018280516001600160a01b031682526020908101518051828401520151604090910152565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612e6857603f198886030184526133ec8583516132de565b945092850192908501906001016133d0565b60006020828403121561341057600080fd5b813561271a81612fb5565b60208152600061271a6020830184612de6565b60208152600061271a60208301846132de565b6000806000806060858703121561345757600080fd5b84356001600160401b038082111561346e57600080fd5b61347a8883890161327e565b95506020870135915061348c82612fb5565b909350604086013590808211156134a257600080fd5b818701915087601f8301126134b657600080fd5b8135818111156134c557600080fd5b8860208285010111156134d757600080fd5b95989497505060200194505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c4957610c496134e6565b634e487b7160e01b600052603260045260246000fd5b6000823561011e1983360301811261353c57600080fd5b9190910192915050565b6000808335601e1984360301811261355d57600080fd5b8301803591506001600160401b0382111561357757600080fd5b602001915036819003821315612cf657600080fd5b60006001820161359e5761359e6134e6565b5060010190565b634e487b7160e01b600052601260045260246000fd5b828152604060208201526000611faf6040830184612dba565b81810381811115610c4957610c496134e6565b65ffffffffffff818116838216019080821115613606576136066134e6565b5092915050565b6000808585111561361d57600080fd5b8386111561362a57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156136645780818660140360031b1b83161692505b505092915050565b8183823760009101908152919050565b634e487b7160e01b600052602160045260246000fd5b6000600386106136b257634e487b7160e01b600052602160045260246000fd5b858252608060208301526136c96080830186612dba565b6040830194909452506060015292915050565b8082028115828204841417610c4957610c496134e6565b60008261371057634e487b7160e01b600052601260045260246000fd5b500490565b6000808335601e1984360301811261372c57600080fd5b83016020810192503590506001600160401b0381111561374b57600080fd5b803603821315612cf657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101206137a28461379585612fcd565b6001600160a01b03169052565b602083013560208501526137b96040840184613715565b8260408701526137cc838701828461375a565b925050506137dd6060840184613715565b85830360608701526137f083828461375a565b925050506080830135608085015260a083013560a085015260c083013560c085015261381f60e0840184613715565b85830360e087015261383283828461375a565b9250505061010061384581850185613715565b8684038388015261385784828461375a565b979650505050505050565b6040815260006138756040830185613783565b90508260208301529392505050565b6060815260006138976060830186613783565b60208301949094525060400152919050565b6000602082840312156138bb57600080fd5b5051919050565b82815260606020820152600d60608201526c10504c8cc81c995d995c9d1959609a1b608082015260a060408201526000611faf60a0830184612dba565b6000806040838503121561391257600080fd5b82516001600160401b0381111561392857600080fd5b8301601f8101851361393957600080fd5b8051613947612f7e82612f38565b81815286602083850101111561395c57600080fd5b61396d826020830160208601612d96565b60209590950151949694955050505050565b82815260606020820152600d60608201526c10504cccc81c995d995c9d1959609a1b608082015260a060408201526000611faf60a0830184612dba565b6fffffffffffffffffffffffffffffffff1981358181169160108510156136645760109490940360031b84901b1690921692915050565b602081526000611faf60208301848661375a565b600060208284031215613a1957600080fd5b815161271a81612fb556fea2646970667358221220c6ad4b2b56624cba321cec929c4bdd6329f5811c936f40e8ff5cfb92ef9b433f64736f6c63430008170033608060405234801561001057600080fd5b506101f3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063570e1a3614610030575b600080fd5b61004361003e3660046100ec565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008061006f601482858761015e565b61007891610188565b60601c9050600061008c846014818861015e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525084519495509360209350849250905082850182875af190506000519350806100e357600093505b50505092915050565b600080602083850312156100ff57600080fd5b823567ffffffffffffffff8082111561011757600080fd5b818501915085601f83011261012b57600080fd5b81358181111561013a57600080fd5b86602082850101111561014c57600080fd5b60209290920196919550909350505050565b6000808585111561016e57600080fd5b8386111561017b57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156101b55780818660140360031b1b83161692505b50509291505056fea2646970667358221220f5d91be997c659d0ef966f0c016a41e736500c794f93ad11197e128a54287a9964736f6c63430008170033"; + +/* ========= SAFE RELATED ========= */ + +export const SAFE_SINGLETON_FACTORY_BYTECODE: Hex = + "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3"; + +// Will deploy safeModuleSetup to 0x2dd68b007B46fBe91B9A7c3EDa5A7a1063cB5b47 +export const SAFE_V07_MODULE_SETUP_CREATECALL: Hex = + "0x0000000000000000000000000000000000000000000000000000000000000000608060405234801561001057600080fd5b50610223806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638d0dc49f14610030575b600080fd5b61004361003e36600461010c565b610045565b005b60005b81811015610107573063610b592584848481811061006857610068610181565b905060200201602081019061007d91906101b0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401600060405180830381600087803b1580156100e357600080fd5b505af11580156100f7573d6000803e3d6000fd5b5050600190920191506100489050565b505050565b6000806020838503121561011f57600080fd5b823567ffffffffffffffff8082111561013757600080fd5b818501915085601f83011261014b57600080fd5b81358181111561015a57600080fd5b8660208260051b850101111561016f57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156101c257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101e657600080fd5b939250505056fea26469706673582212203047d3f62c9d732011c4ca139e90521dfe651cb848b0d953431ca0836247de4b64736f6c63430008170033"; + +// Will deploy Safe4337Module to 0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226 +export const SAFE_V07_MODULE_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a06040523480156200001157600080fd5b50604051620021943803806200219483398101604081905262000034916200006e565b6001600160a01b0381166200005c57604051632039d3c960e01b815260040160405180910390fd5b6001600160a01b0316608052620000a0565b6000602082840312156200008157600080fd5b81516001600160a01b03811681146200009957600080fd5b9392505050565b6080516120b5620000df600039600081816101a20152818161062c0152818161085401528181610c2101528181610d9601526112e501526120b56000f3fe608060405234801561001057600080fd5b50600436106101355760003560e01c8063541d63c8116100b2578063bbe5dc4f11610081578063bd61951d11610066578063bd61951d14610347578063f23a6e611461035a578063f698da251461039357600080fd5b8063bbe5dc4f146102f9578063bc197c811461030c57600080fd5b8063541d63c8146102ab5780636ac24784146102be5780637bb37428146102d1578063b2494df3146102e457600080fd5b8063150b7a021161010957806319822f7c116100ee57806319822f7c1461026557806320c13b0b14610278578063230316401461028b57600080fd5b8063150b7a02146101e95780631626ba7e1461025257600080fd5b806223de291461013a57806301ffc9a7146101545780630a1028c41461017c578063137e051e1461019d575b600080fd5b610152610148366004611512565b5050505050505050565b005b6101676101623660046115f1565b6103ef565b60405190151581526020015b60405180910390f35b61018f61018a366004611728565b6104d4565b604051908152602001610173565b6101c47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610173565b6102216101f7366004611765565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610173565b6102216102603660046117d8565b6104e0565b61018f61027336600461183d565b610601565b61022161028636600461188b565b6108f0565b61029e6102993660046118ef565b610ac1565b60405161017391906119a3565b6101526102b93660046119b6565b610bf8565b61018f6102cc3660046118ef565b610d52565b6101526102df3660046119b6565b610d6d565b6102ec610ec3565b6040516101739190611a28565b61018f610307366004611a82565b610f75565b61022161031a366004611afc565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b61029e610355366004611b9a565b610f97565b610221610368366004611bd6565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61018f604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000148061048257507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b806104ce57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006104ce3383610d52565b60408051602080820186905282518083039091018152818301928390527f20c13b0b000000000000000000000000000000000000000000000000000000009092526000913391839183916320c13b0b916105409189908990604401611c9b565b602060405180830381865afa15801561055d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105819190611ccb565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f20c13b0b00000000000000000000000000000000000000000000000000000000146105d35760006105f5565b7f1626ba7e000000000000000000000000000000000000000000000000000000005b925050505b9392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610698576040517f85db247d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106a76020860186611ce8565b905073ffffffffffffffffffffffffffffffffffffffff811633146106f8576040517f48f5c3ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107076060870187611d05565b61071091611d6a565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f7bb3742800000000000000000000000000000000000000000000000000000000148015906107a657507fffffffff0000000000000000000000000000000000000000000000000000000081167f541d63c80000000000000000000000000000000000000000000000000000000014155b15610806576040517f45c229ce0000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000821660048201526024015b60405180910390fd5b61080f86610ffa565b925083156108e7576040517f468721a700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820186905260806044830152600060848301819052606483015283169063468721a79060a4016020604051808303816000875af11580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190611dc7565b505b50509392505050565b600033816108fe8286610ac1565b80516020820120855191925090600003610a0f576040517f5ae6bd370000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff841690635ae6bd3790602401602060405180830381865afa15801561097d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a19190611de2565b600003610a0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f48617368206e6f7420617070726f76656400000000000000000000000000000060448201526064016107fd565b610a96565b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063934f3a1190610a6590849086908a90600401611dfb565b60006040518083038186803b158015610a7d57600080fd5b505afa158015610a91573d6000803e3d6000fd5b505050505b507f20c13b0b0000000000000000000000000000000000000000000000000000000095945050505050565b606060007f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b8380519060200120604051602001610b0b929190918252602082015260400190565b604051602081830303815290604052805190602001209050601960f81b600160f81b8573ffffffffffffffffffffffffffffffffffffffff1663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9c9190611de2565b6040517fff00000000000000000000000000000000000000000000000000000000000000938416602082015292909116602183015260228201526042810182905260620160405160208183030381529060405291505092915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610c8d576040517f85db247d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5229073f00000000000000000000000000000000000000000000000000000000815260009081903390635229073f90610cd4908990899089908990600401611e26565b6000604051808303816000875af1158015610cf3573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610d399190810190611e6f565b9150915081610d4a57805160208201fd5b505050505050565b6000610d5e8383610ac1565b80519060200120905092915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610e02576040517f85db247d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f468721a7000000000000000000000000000000000000000000000000000000008152339063468721a790610e44908790879087908790600401611e26565b6020604051808303816000875af1158015610e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e879190611dc7565b610ebd576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6040517fcc2f845200000000000000000000000000000000000000000000000000000000815260016004820152600a60248201526060903390600090829063cc2f845290604401600060405180830381865afa158015610f27573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f6d9190810190611f04565b509392505050565b600080610f81836110dd565b5050505090508080519060200120915050919050565b60606040517fb4faba09000000000000000000000000000000000000000000000000000000008152600436036004808301376020600036836000335af1505060203d036040519150808201604052806020833e506000516105fa57805160208201fd5b60008060008036600061100c876110dd565b9398509196509450925090506110256020880188611ce8565b855160208701206040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092169163934f3a119161108491899087908790600401611fc8565b60006040518083038186803b15801561109c57600080fd5b505afa9250505080156110ad575060015b6110c4576110bd60018486611411565b95506110d3565b6110d060008486611411565b95505b5050505050919050565b6060600080368181816110f4610100890189611d05565b9092509050611107600660008385611fff565b61111091612029565b60d01c9550611123600c60068385611fff565b61112c91612029565b60d01c945061113e81600c8185611fff565b9350935050506000604051806101c001604052807fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f60001b815260200188600001602081019061118e9190611ce8565b73ffffffffffffffffffffffffffffffffffffffff168152602001886020013581526020018880604001906111c39190611d05565b6040516111d192919061206f565b60405190819003902081526020016111ec60608a018a611d05565b6040516111fa92919061206f565b6040518091039020815260200161121089611449565b6fffffffffffffffffffffffffffffffff16815260200161123089611459565b6fffffffffffffffffffffffffffffffff1681526020018860a00135815260200161125a89611477565b6fffffffffffffffffffffffffffffffff16815260200161127a89611486565b6fffffffffffffffffffffffffffffffff16815260200161129e60e08a018a611d05565b6040516112ac92919061206f565b6040805191829003909120825265ffffffffffff808916602084015287169082015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166060909101526101c081209091507f19000000000000000000000000000000000000000000000000000000000000007f01000000000000000000000000000000000000000000000000000000000000006113b1604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040517fff0000000000000000000000000000000000000000000000000000000000000093841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529650505091939590929450565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b8561143957600061143c565b60015b60ff161717949350505050565b60006104ce826080013560801c90565b60006fffffffffffffffffffffffffffffffff6080830135166104ce565b600060c082013560801c6104ce565b60006fffffffffffffffffffffffffffffffff60c0830135166104ce565b73ffffffffffffffffffffffffffffffffffffffff811681146114c657600080fd5b50565b60008083601f8401126114db57600080fd5b50813567ffffffffffffffff8111156114f357600080fd5b60208301915083602082850101111561150b57600080fd5b9250929050565b60008060008060008060008060c0898b03121561152e57600080fd5b8835611539816114a4565b97506020890135611549816114a4565b96506040890135611559816114a4565b955060608901359450608089013567ffffffffffffffff8082111561157d57600080fd5b6115898c838d016114c9565b909650945060a08b01359150808211156115a257600080fd5b506115af8b828c016114c9565b999c989b5096995094979396929594505050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114c657600080fd5b60006020828403121561160357600080fd5b81356105fa816115c3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156116845761168461160e565b604052919050565b600067ffffffffffffffff8211156116a6576116a661160e565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f8301126116e357600080fd5b81356116f66116f18261168c565b61163d565b81815284602083860101111561170b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561173a57600080fd5b813567ffffffffffffffff81111561175157600080fd5b61175d848285016116d2565b949350505050565b60008060008060006080868803121561177d57600080fd5b8535611788816114a4565b94506020860135611798816114a4565b935060408601359250606086013567ffffffffffffffff8111156117bb57600080fd5b6117c7888289016114c9565b969995985093965092949392505050565b6000806000604084860312156117ed57600080fd5b83359250602084013567ffffffffffffffff81111561180b57600080fd5b611817868287016114c9565b9497909650939450505050565b6000610120828403121561183757600080fd5b50919050565b60008060006060848603121561185257600080fd5b833567ffffffffffffffff81111561186957600080fd5b61187586828701611824565b9660208601359650604090950135949350505050565b6000806040838503121561189e57600080fd5b823567ffffffffffffffff808211156118b657600080fd5b6118c2868387016116d2565b935060208501359150808211156118d857600080fd5b506118e5858286016116d2565b9150509250929050565b6000806040838503121561190257600080fd5b823561190d816114a4565b9150602083013567ffffffffffffffff81111561192957600080fd5b6118e5858286016116d2565b60005b83811015611950578181015183820152602001611938565b50506000910152565b60008151808452611971816020860160208601611935565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006105fa6020830184611959565b600080600080608085870312156119cc57600080fd5b84356119d7816114a4565b935060208501359250604085013567ffffffffffffffff8111156119fa57600080fd5b611a06878288016116d2565b925050606085013560ff81168114611a1d57600080fd5b939692955090935050565b6020808252825182820181905260009190848201906040850190845b81811015611a7657835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611a44565b50909695505050505050565b600060208284031215611a9457600080fd5b813567ffffffffffffffff811115611aab57600080fd5b61175d84828501611824565b60008083601f840112611ac957600080fd5b50813567ffffffffffffffff811115611ae157600080fd5b6020830191508360208260051b850101111561150b57600080fd5b60008060008060008060008060a0898b031215611b1857600080fd5b8835611b23816114a4565b97506020890135611b33816114a4565b9650604089013567ffffffffffffffff80821115611b5057600080fd5b611b5c8c838d01611ab7565b909850965060608b0135915080821115611b7557600080fd5b611b818c838d01611ab7565b909650945060808b01359150808211156115a257600080fd5b600080600060408486031215611baf57600080fd5b8335611bba816114a4565b9250602084013567ffffffffffffffff81111561180b57600080fd5b60008060008060008060a08789031215611bef57600080fd5b8635611bfa816114a4565b95506020870135611c0a816114a4565b94506040870135935060608701359250608087013567ffffffffffffffff811115611c3457600080fd5b611c4089828a016114c9565b979a9699509497509295939492505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000611cae6040830186611959565b8281036020840152611cc1818587611c52565b9695505050505050565b600060208284031215611cdd57600080fd5b81516105fa816115c3565b600060208284031215611cfa57600080fd5b81356105fa816114a4565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d3a57600080fd5b83018035915067ffffffffffffffff821115611d5557600080fd5b60200191503681900382131561150b57600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611daa5780818660040360031b1b83161692505b505092915050565b80518015158114611dc257600080fd5b919050565b600060208284031215611dd957600080fd5b6105fa82611db2565b600060208284031215611df457600080fd5b5051919050565b838152606060208201526000611e146060830185611959565b8281036040840152611cc18185611959565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201526000611e5b6080830185611959565b905060ff8316606083015295945050505050565b60008060408385031215611e8257600080fd5b611e8b83611db2565b9150602083015167ffffffffffffffff811115611ea757600080fd5b8301601f81018513611eb857600080fd5b8051611ec66116f18261168c565b818152866020838501011115611edb57600080fd5b611eec826020830160208601611935565b8093505050509250929050565b8051611dc2816114a4565b60008060408385031215611f1757600080fd5b825167ffffffffffffffff80821115611f2f57600080fd5b818501915085601f830112611f4357600080fd5b8151602082821115611f5757611f5761160e565b8160051b9250611f6881840161163d565b8281529284018101928181019089851115611f8257600080fd5b948201945b84861015611fac5785519350611f9c846114a4565b8382529482019490820190611f87565b9650611fbb9050878201611ef9565b9450505050509250929050565b848152606060208201526000611fe16060830186611959565b8281036040840152611ff4818587611c52565b979650505050505050565b6000808585111561200f57600080fd5b8386111561201c57600080fd5b5050820193919092039150565b7fffffffffffff00000000000000000000000000000000000000000000000000008135818116916006851015611daa5760069490940360031b84901b1690921692915050565b818382376000910190815291905056fea2646970667358221220e42d44baf807ad5bd112459029994f688e5e18f6848983388139295e896c84b764736f6c634300081700330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032"; + +// Will deploy V0.6 SAFE_MODULE_SETUP_ADDRESS to 0x8EcD4ec46D4D2a6B64fE960B3D64e8B94B2234eb +export const SAFE_V06_MODULE_SETUP_CREATECALL: Hex = + "0x0000000000000000000000000000000000000000000000000000000000000000608060405234801561001057600080fd5b506102ae806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638d0dc49f14610030575b600080fd5b61004361003e36600461011a565b610045565b005b805b8015610115573063610b592584846100606001866101be565b81811061006f5761006f6101d7565b90506020020160208101906100849190610206565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401600060405180830381600087803b1580156100ea57600080fd5b505af11580156100fe573d6000803e3d6000fd5b50505050808061010d90610243565b915050610047565b505050565b6000806020838503121561012d57600080fd5b823567ffffffffffffffff8082111561014557600080fd5b818501915085601f83011261015957600080fd5b81358181111561016857600080fd5b8660208260051b850101111561017d57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101d1576101d161018f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561021857600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461023c57600080fd5b9392505050565b6000816102525761025261018f565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea264697066735822122022cfe34f0de69ff92f9c49103555ee9f9c6ff5b0582e357de6f64f2a2bc215aa64736f6c63430008170033"; + +// Will deploy V0.6 SAFE_4337_MODULE_ADDRESS to 0xa581c4A4DB7175302464fF3C06380BC3270b4037 +export const SAFE_V06_MODULE_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a06040523480156200001157600080fd5b506040516200223b3803806200223b8339810160408190526200003491620000a1565b6001600160a01b0381166200008f5760405162461bcd60e51b815260206004820152601360248201527f496e76616c696420656e74727920706f696e7400000000000000000000000000604482015260640160405180910390fd5b6001600160a01b0316608052620000d3565b600060208284031215620000b457600080fd5b81516001600160a01b0381168114620000cc57600080fd5b9392505050565b60805161212962000112600039600081816101a20152818161093901528181610bfa01528181610cbe01528181610e6301526113b401526121296000f3fe608060405234801561001057600080fd5b50600436106101355760003560e01c8063541d63c8116100b2578063b25f377611610081578063bd61951d11610066578063bd61951d14610347578063f23a6e611461035a578063f698da251461039357600080fd5b8063b25f3776146102f9578063bc197c811461030c57600080fd5b8063541d63c8146102ab5780636ac24784146102be5780637bb37428146102d1578063b2494df3146102e457600080fd5b8063150b7a021161010957806320c13b0b116100ee57806320c13b0b1461026557806323031640146102785780633a871cdd1461029857600080fd5b8063150b7a02146101e95780631626ba7e1461025257600080fd5b806223de291461013a57806301ffc9a7146101545780630a1028c41461017c578063137e051e1461019d575b600080fd5b610152610148366004611586565b5050505050505050565b005b610167610162366004611665565b6103ef565b60405190151581526020015b60405180910390f35b61018f61018a36600461179c565b6104d4565b604051908152602001610173565b6101c47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610173565b6102216101f73660046117d9565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610173565b61022161026036600461184c565b6104e0565b610221610273366004611898565b610601565b61028b6102863660046118fc565b6107d7565b60405161017391906119b0565b61018f6102a63660046119dc565b61090e565b6101526102b9366004611a2a565b610c95565b61018f6102cc3660046118fc565b610e1f565b6101526102df366004611a2a565b610e3a565b6102ec610ff0565b6040516101739190611a9c565b61018f610307366004611af6565b61109a565b61022161031a366004611b70565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b61028b610355366004611c0e565b6110bc565b610221610368366004611c4a565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61018f604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000148061048257507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b806104ce57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006104ce3383610e1f565b60408051602080820186905282518083039091018152818301928390527f20c13b0b000000000000000000000000000000000000000000000000000000009092526000913391839183916320c13b0b916105409189908990604401611d0f565b602060405180830381865afa15801561055d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105819190611d3f565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f20c13b0b00000000000000000000000000000000000000000000000000000000146105d35760006105f5565b7f1626ba7e000000000000000000000000000000000000000000000000000000005b925050505b9392505050565b6000338161060f82866107d7565b80516020820120855191925090600003610725576040517f5ae6bd370000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff841690635ae6bd3790602401602060405180830381865afa15801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190611d5c565b600003610720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f48617368206e6f7420617070726f76656400000000000000000000000000000060448201526064015b60405180910390fd5b6107ac565b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063934f3a119061077b90849086908a90600401611d75565b60006040518083038186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050505b507f20c13b0b0000000000000000000000000000000000000000000000000000000095945050505050565b606060007f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b8380519060200120604051602001610821929190918252602082015260400190565b604051602081830303815290604052805190602001209050601960f81b600160f81b8573ffffffffffffffffffffffffffffffffffffffff1663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b29190611d5c565b6040517fff00000000000000000000000000000000000000000000000000000000000000938416602082015292909116602183015260228201526042810182905260620160405160208183030381529060405291505092915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e737570706f7274656420656e74727920706f696e740000000000000000006044820152606401610717565b60006109e46020860186611da0565b905073ffffffffffffffffffffffffffffffffffffffff81163314610a65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c69642063616c6c65720000000000000000000000000000000000006044820152606401610717565b610a726060860186611dbd565b610a7b91611e22565b7fffffffff00000000000000000000000000000000000000000000000000000000167f7bb37428000000000000000000000000000000000000000000000000000000001480610b205750610ad26060860186611dbd565b610adb91611e22565b7fffffffff00000000000000000000000000000000000000000000000000000000167f541d63c800000000000000000000000000000000000000000000000000000000145b610bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f556e737570706f7274656420657865637574696f6e2066756e6374696f6e206960448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610717565b610bb58561111f565b91508215610c8d576040517f468721a700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820185905260806044830152600060848301819052606483015282169063468721a79060a4016020604051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611e7f565b505b509392505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e737570706f7274656420656e74727920706f696e740000000000000000006044820152606401610717565b6040517f5229073f00000000000000000000000000000000000000000000000000000000815260009081903390635229073f90610da1908990899089908990600401611e9a565b6000604051808303816000875af1158015610dc0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e069190810190611ee3565b9150915081610e1757805160208201fd5b505050505050565b6000610e2b83836107d7565b80519060200120905092915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610eff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e737570706f7274656420656e74727920706f696e740000000000000000006044820152606401610717565b6040517f468721a7000000000000000000000000000000000000000000000000000000008152339063468721a790610f41908790879087908790600401611e9a565b6020604051808303816000875af1158015610f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f849190611e7f565b610fea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401610717565b50505050565b6040517fcc2f845200000000000000000000000000000000000000000000000000000000815260016004820152600a60248201526060903390600090829063cc2f845290604401600060405180830381865afa158015611054573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610c8d9190810190611f78565b6000806110a683611202565b5050505090508080519060200120915050919050565b60606040517fb4faba09000000000000000000000000000000000000000000000000000000008152600436036004808301376020600036836000335af1505060203d036040519150808201604052806020833e506000516105fa57805160208201fd5b60008060008036600061113187611202565b93985091965094509250905061114a6020880188611da0565b855160208701206040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092169163934f3a11916111a99189908790879060040161203c565b60006040518083038186803b1580156111c157600080fd5b505afa9250505080156111d2575060015b6111e9576111e2600184866114e0565b95506111f8565b6111f5600084866114e0565b95505b5050505050919050565b606060008036818181611219610140890189611dbd565b909250905061122c600660008385612073565b6112359161209d565b60d01c9550611248600c60068385612073565b6112519161209d565b60d01c945061126381600c8185612073565b9350935050506000604051806101c001604052807f84aa190356f56b8c87825f54884392a9907c23ee0f8e1ea86336b763faf021bd81526020018860000160208101906112b09190611da0565b73ffffffffffffffffffffffffffffffffffffffff168152602001886020013581526020018880604001906112e59190611dbd565b6040516112f39291906120e3565b604051908190039020815260200161130e60608a018a611dbd565b60405161131c9291906120e3565b60405180910390208152602001886080013581526020018860a0013581526020018860c0013581526020018860e00135815260200188610100013581526020018880610120019061136d9190611dbd565b60405161137b9291906120e3565b6040805191829003909120825265ffffffffffff808916602084015287169082015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166060909101526101c081209091507f19000000000000000000000000000000000000000000000000000000000000007f0100000000000000000000000000000000000000000000000000000000000000611480604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040517fff0000000000000000000000000000000000000000000000000000000000000093841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529650505091939590929450565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b8561150857600061150b565b60015b60ff161717949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461153a57600080fd5b50565b60008083601f84011261154f57600080fd5b50813567ffffffffffffffff81111561156757600080fd5b60208301915083602082850101111561157f57600080fd5b9250929050565b60008060008060008060008060c0898b0312156115a257600080fd5b88356115ad81611518565b975060208901356115bd81611518565b965060408901356115cd81611518565b955060608901359450608089013567ffffffffffffffff808211156115f157600080fd5b6115fd8c838d0161153d565b909650945060a08b013591508082111561161657600080fd5b506116238b828c0161153d565b999c989b5096995094979396929594505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461153a57600080fd5b60006020828403121561167757600080fd5b81356105fa81611637565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156116f8576116f8611682565b604052919050565b600067ffffffffffffffff82111561171a5761171a611682565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261175757600080fd5b813561176a61176582611700565b6116b1565b81815284602083860101111561177f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156117ae57600080fd5b813567ffffffffffffffff8111156117c557600080fd5b6117d184828501611746565b949350505050565b6000806000806000608086880312156117f157600080fd5b85356117fc81611518565b9450602086013561180c81611518565b935060408601359250606086013567ffffffffffffffff81111561182f57600080fd5b61183b8882890161153d565b969995985093965092949392505050565b60008060006040848603121561186157600080fd5b83359250602084013567ffffffffffffffff81111561187f57600080fd5b61188b8682870161153d565b9497909650939450505050565b600080604083850312156118ab57600080fd5b823567ffffffffffffffff808211156118c357600080fd5b6118cf86838701611746565b935060208501359150808211156118e557600080fd5b506118f285828601611746565b9150509250929050565b6000806040838503121561190f57600080fd5b823561191a81611518565b9150602083013567ffffffffffffffff81111561193657600080fd5b6118f285828601611746565b60005b8381101561195d578181015183820152602001611945565b50506000910152565b6000815180845261197e816020860160208601611942565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006105fa6020830184611966565b600061016082840312156119d657600080fd5b50919050565b6000806000606084860312156119f157600080fd5b833567ffffffffffffffff811115611a0857600080fd5b611a14868287016119c3565b9660208601359650604090950135949350505050565b60008060008060808587031215611a4057600080fd5b8435611a4b81611518565b935060208501359250604085013567ffffffffffffffff811115611a6e57600080fd5b611a7a87828801611746565b925050606085013560ff81168114611a9157600080fd5b939692955090935050565b6020808252825182820181905260009190848201906040850190845b81811015611aea57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611ab8565b50909695505050505050565b600060208284031215611b0857600080fd5b813567ffffffffffffffff811115611b1f57600080fd5b6117d1848285016119c3565b60008083601f840112611b3d57600080fd5b50813567ffffffffffffffff811115611b5557600080fd5b6020830191508360208260051b850101111561157f57600080fd5b60008060008060008060008060a0898b031215611b8c57600080fd5b8835611b9781611518565b97506020890135611ba781611518565b9650604089013567ffffffffffffffff80821115611bc457600080fd5b611bd08c838d01611b2b565b909850965060608b0135915080821115611be957600080fd5b611bf58c838d01611b2b565b909650945060808b013591508082111561161657600080fd5b600080600060408486031215611c2357600080fd5b8335611c2e81611518565b9250602084013567ffffffffffffffff81111561187f57600080fd5b60008060008060008060a08789031215611c6357600080fd5b8635611c6e81611518565b95506020870135611c7e81611518565b94506040870135935060608701359250608087013567ffffffffffffffff811115611ca857600080fd5b611cb489828a0161153d565b979a9699509497509295939492505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000611d226040830186611966565b8281036020840152611d35818587611cc6565b9695505050505050565b600060208284031215611d5157600080fd5b81516105fa81611637565b600060208284031215611d6e57600080fd5b5051919050565b838152606060208201526000611d8e6060830185611966565b8281036040840152611d358185611966565b600060208284031215611db257600080fd5b81356105fa81611518565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611df257600080fd5b83018035915067ffffffffffffffff821115611e0d57600080fd5b60200191503681900382131561157f57600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611e625780818660040360031b1b83161692505b505092915050565b80518015158114611e7a57600080fd5b919050565b600060208284031215611e9157600080fd5b6105fa82611e6a565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201526000611ecf6080830185611966565b905060ff8316606083015295945050505050565b60008060408385031215611ef657600080fd5b611eff83611e6a565b9150602083015167ffffffffffffffff811115611f1b57600080fd5b8301601f81018513611f2c57600080fd5b8051611f3a61176582611700565b818152866020838501011115611f4f57600080fd5b611f60826020830160208601611942565b8093505050509250929050565b8051611e7a81611518565b60008060408385031215611f8b57600080fd5b825167ffffffffffffffff80821115611fa357600080fd5b818501915085601f830112611fb757600080fd5b8151602082821115611fcb57611fcb611682565b8160051b9250611fdc8184016116b1565b8281529284018101928181019089851115611ff657600080fd5b948201945b84861015612020578551935061201084611518565b8382529482019490820190611ffb565b965061202f9050878201611f6d565b9450505050509250929050565b8481526060602082015260006120556060830186611966565b8281036040840152612068818587611cc6565b979650505050505050565b6000808585111561208357600080fd5b8386111561209057600080fd5b5050820193919092039150565b7fffffffffffff00000000000000000000000000000000000000000000000000008135818116916006851015611e625760069490940360031b84901b1690921692915050565b818382376000910190815291905056fea264697066735822122073b2f06a452916e599e0f5dddf12e282a21ffb83a30811b2fbe9fd7ce48dc3a064736f6c634300081700330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789"; + +// Will deploy SafeProxyFactory to 0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67 +export const SAFE_PROXY_FACTORY_CREATECALL: Hex = + "0x0000000000000000000000000000000000000000000000000000000000000000608060405234801561001057600080fd5b50610bee806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80631688f0b91461005c5780633408e4701461016b57806353e5d93514610189578063d18af54d1461020c578063ec9e80bb1461033b575b600080fd5b61013f6004803603606081101561007257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100af57600080fd5b8201836020820111156100c157600080fd5b803590602001918460018302840111640100000000831117156100e357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061044a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101736104fe565b6040518082815260200191505060405180910390f35b61019161050b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d15780820151818401526020810190506101b6565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030f6004803603608081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561025f57600080fd5b82018360208201111561027157600080fd5b8035906020019184600183028401116401000000008311171561029357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610536565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041e6004803603606081101561035157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460018302840111640100000000831117156103c257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506106e5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008083805190602001208360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506104908585836107a8565b91508173ffffffffffffffffffffffffffffffffffffffff167f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e23586604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2509392505050565b6000804690508091505090565b60606040518060200161051d906109c5565b6020820181038252601f19601f82011660405250905090565b6000808383604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060001c905061059186868361044a565b9150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146106dc578273ffffffffffffffffffffffffffffffffffffffff16631e52b518838888886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610674578082015181840152602081019050610659565b50505050905090810190601f1680156106a15780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b505050505b50949350505050565b6000808380519060200120836106f96104fe565b60405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061073a8585836107a8565b91508173ffffffffffffffffffffffffffffffffffffffff167f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e23586604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2509392505050565b60006107b3846109b2565b610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f53696e676c65746f6e20636f6e7472616374206e6f74206465706c6f7965640081525060200191505060405180910390fd5b600060405180602001610837906109c5565b6020820181038252601f19601f820116604052508573ffffffffffffffffffffffffffffffffffffffff166040516020018083805190602001908083835b602083106108985780518252602082019150602081019050602083039250610875565b6001836020036101000a038019825116818451168082178552505050505050905001828152602001925050506040516020818303038152906040529050828151826020016000f59150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610984576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f437265617465322063616c6c206661696c65640000000000000000000000000081525060200191505060405180910390fd5b6000845111156109aa5760008060008651602088016000875af114156109a957600080fd5b5b509392505050565b600080823b905060008111915050919050565b6101e6806109d38339019056fe608060405234801561001057600080fd5b506040516101e63803806101e68339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806101c46022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060ab806101196000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea264697066735822122003d1488ee65e08fa41e58e888a9865554c535f2c77126a82cb4c0f917f31441364736f6c63430007060033496e76616c69642073696e676c65746f6e20616464726573732070726f7669646564a26469706673582212200fd975ca8e62d9bf08aa3d09c74b9bdc9d7acba7621835be4187989ddd0e54b164736f6c63430007060033"; + +// Will deploy safeSingleton to 0x41675C099F32341bf84BFc5382aF534df5C7461a +export const SAFE_SINGLETON_CREATECALL: Hex = + "0x0000000000000000000000000000000000000000000000000000000000000000608060405234801561001057600080fd5b506001600481905550615c1b80620000296000396000f3fe6080604052600436106101d15760003560e01c8063affed0e0116100f7578063e19a9dd911610095578063f08a032311610064578063f08a03231461156b578063f698da25146115bc578063f8dc5dd9146115e7578063ffa1ad741461166257610226565b8063e19a9dd9146112bf578063e318b52b14611310578063e75235b8146113a1578063e86637db146113cc57610226565b8063cc2f8452116100d1578063cc2f84521461100c578063d4d9bdcd146110d9578063d8d11f7814611114578063e009cfde1461124e57610226565b8063affed0e014610d89578063b4faba0914610db4578063b63e800d14610e9c57610226565b80635624b25b1161016f5780636a7612021161013e5780636a761202146109895780637d83297414610b45578063934f3a1114610bb4578063a0e67e2b14610d1d57610226565b80635624b25b146107f05780635ae6bd37146108ae578063610b5925146108fd578063694e80c31461094e57610226565b80632f54bf6e116101ab5780632f54bf6e146104c85780633408e4701461052f578063468721a71461055a5780635229073f1461066f57610226565b80630d582f131461029357806312fb68e0146102ee5780632d9ad53d1461046157610226565b36610226573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d346040518082815260200191505060405180910390a2005b34801561023257600080fd5b5060007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b905080548061026757600080f35b36600080373360601b365260008060143601600080855af13d6000803e8061028e573d6000fd5b3d6000f35b34801561029f57600080fd5b506102ec600480360360408110156102b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116f2565b005b3480156102fa57600080fd5b5061045f6004803603608081101561031157600080fd5b81019080803590602001909291908035906020019064010000000081111561033857600080fd5b82018360208201111561034a57600080fd5b8035906020019184600183028401116401000000008311171561036c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103cf57600080fd5b8201836020820111156103e157600080fd5b8035906020019184600183028401116401000000008311171561040357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611ad8565b005b34801561046d57600080fd5b506104b06004803603602081101561048457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123d6565b60405180821515815260200191505060405180910390f35b3480156104d457600080fd5b50610517600480360360208110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124a8565b60405180821515815260200191505060405180910390f35b34801561053b57600080fd5b5061054461257a565b6040518082815260200191505060405180910390f35b34801561056657600080fd5b506106576004803603608081101561057d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105c457600080fd5b8201836020820111156105d657600080fd5b803590602001918460018302840111640100000000831117156105f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190505050612587565b60405180821515815260200191505060405180910390f35b34801561067b57600080fd5b5061076c6004803603608081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106d957600080fd5b8201836020820111156106eb57600080fd5b8035906020019184600183028401116401000000008311171561070d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919050505061278d565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107b4578082015181840152602081019050610799565b50505050905090810190601f1680156107e15780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156107fc57600080fd5b506108336004803603604081101561081357600080fd5b8101908080359060200190929190803590602001909291905050506127c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610873578082015181840152602081019050610858565b50505050905090810190601f1680156108a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108ba57600080fd5b506108e7600480360360208110156108d157600080fd5b810190808035906020019092919050505061284a565b6040518082815260200191505060405180910390f35b34801561090957600080fd5b5061094c6004803603602081101561092057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612862565b005b34801561095a57600080fd5b506109876004803603602081101561097157600080fd5b8101908080359060200190929190505050612bea565b005b610b2d60048036036101408110156109a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109e757600080fd5b8201836020820111156109f957600080fd5b80359060200191846001830284011164010000000083111715610a1b57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610aa757600080fd5b820183602082011115610ab957600080fd5b80359060200191846001830284011164010000000083111715610adb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612d24565b60405180821515815260200191505060405180910390f35b348015610b5157600080fd5b50610b9e60048036036040811015610b6857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613253565b6040518082815260200191505060405180910390f35b348015610bc057600080fd5b50610d1b60048036036060811015610bd757600080fd5b810190808035906020019092919080359060200190640100000000811115610bfe57600080fd5b820183602082011115610c1057600080fd5b80359060200191846001830284011164010000000083111715610c3257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610c9557600080fd5b820183602082011115610ca757600080fd5b80359060200191846001830284011164010000000083111715610cc957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613278565b005b348015610d2957600080fd5b50610d32613307565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d75578082015181840152602081019050610d5a565b505050509050019250505060405180910390f35b348015610d9557600080fd5b50610d9e6134b0565b6040518082815260200191505060405180910390f35b348015610dc057600080fd5b50610e9a60048036036040811015610dd757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610e1457600080fd5b820183602082011115610e2657600080fd5b80359060200191846001830284011164010000000083111715610e4857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506134b6565b005b348015610ea857600080fd5b5061100a6004803603610100811015610ec057600080fd5b8101908080359060200190640100000000811115610edd57600080fd5b820183602082011115610eef57600080fd5b80359060200191846020830284011164010000000083111715610f1157600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f5c57600080fd5b820183602082011115610f6e57600080fd5b80359060200191846001830284011164010000000083111715610f9057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134d8565b005b34801561101857600080fd5b506110656004803603604081101561102f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613696565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b838110156110c45780820151818401526020810190506110a9565b50505050905001935050505060405180910390f35b3480156110e557600080fd5b50611112600480360360208110156110fc57600080fd5b81019080803590602001909291905050506139f9565b005b34801561112057600080fd5b50611238600480360361014081101561113857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561117f57600080fd5b82018360208201111561119157600080fd5b803590602001918460018302840111640100000000831117156111b357600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b98565b6040518082815260200191505060405180910390f35b34801561125a57600080fd5b506112bd6004803603604081101561127157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bc5565b005b3480156112cb57600080fd5b5061130e600480360360208110156112e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f4c565b005b34801561131c57600080fd5b5061139f6004803603606081101561133357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614138565b005b3480156113ad57600080fd5b506113b6614796565b6040518082815260200191505060405180910390f35b3480156113d857600080fd5b506114f060048036036101408110156113f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561143757600080fd5b82018360208201111561144957600080fd5b8035906020019184600183028401116401000000008311171561146b57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506147a0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611530578082015181840152602081019050611515565b50505050905090810190601f16801561155d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561157757600080fd5b506115ba6004803603602081101561158e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614948565b005b3480156115c857600080fd5b506115d161499f565b6040518082815260200191505060405180910390f35b3480156115f357600080fd5b506116606004803603606081101561160a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614a1d565b005b34801561166e57600080fd5b50611677614e46565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156116b757808201518184015260208101905061169c565b50505050905090810190601f1680156116e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6116fa614e7f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156117645750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561179c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61180e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508173ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a28060045414611ad457611ad381612bea565b5b5050565b611aec604182614f2290919063ffffffff16565b82511015611b62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808060008060005b868110156123ca57611b7e8882614f5c565b80945081955082965050505060008460ff1614156120035789898051906020012014611c12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323700000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8260001c9450611c2c604188614f2290919063ffffffff16565b8260001c1015611ca4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8751611cbd60208460001c614f8b90919063ffffffff16565b1115611d31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006020838a01015190508851611d6782611d5960208760001c614f8b90919063ffffffff16565b614f8b90919063ffffffff16565b1115611ddb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e7d578082015181840152602081019050611e62565b50505050905090810190601f168015611eaa5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611ee3578082015181840152602081019050611ec8565b50505050905090810190601f168015611f105780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015611f2f57600080fd5b505afa158015611f43573d6000803e3d6000fd5b505050506040513d6020811015611f5957600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611ffc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5050612248565b60018460ff161415612117578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120a057506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b612112576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b612247565b601e8460ff1611156121df5760018a60405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012060048603858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156121ce573d6000803e3d6000fd5b505050602060405103519450612246565b60018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612239573d6000803e3d6000fd5b5050506020604051035194505b5b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1611801561230f5750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156123485750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b6123ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323600000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8495508080600101915050611b6c565b50505050505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600173ffffffffffffffffffffffffffffffffffffffff16141580156124a15750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125735750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000804690508091505090565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126525750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6126c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6126f1858585857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff614faa565b90508015612741573373ffffffffffffffffffffffffffffffffffffffff167f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb860405160405180910390a2612785565b3373ffffffffffffffffffffffffffffffffffffffff167facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37560405160405180910390a25b949350505050565b6000606061279d86868686612587565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006020830267ffffffffffffffff811180156127e157600080fd5b506040519080825280601f01601f1916602001820160405280156128145781602001600182028036833780820191505090505b50905060005b8381101561283f5780850154806020830260208501015250808060010191505061281a565b508091505092915050565b60076020528060005260406000206000915090505481565b61286a614e7f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156128d45750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b612946576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844060405160405180910390a250565b612bf2614e7f565b600354811115612c6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811015612ce1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b6000806000612d3e8e8e8e8e8e8e8e8e8e8e6005546147a0565b905060056000815480929190600101919050555080805190602001209150612d67828286613278565b506000612d72614ff6565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612f58578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b8152600401808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c8152602001806020018a6001811115612e1557fe5b81526020018981526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528d8d82818152602001925080828437600081840152601f19601f820116905080830192505050838103825285818151815260200191508051906020019080838360005b83811015612ee7578082015181840152602081019050612ecc565b50505050905090810190601f168015612f145780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050600060405180830381600087803b158015612f3f57600080fd5b505af1158015612f53573d6000803e3d6000fd5b505050505b6101f4612f7f6109c48b01603f60408d0281612f7057fe5b0461502790919063ffffffff16565b015a1015612ff5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005a905061305e8f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008d14613053578e613059565b6109c45a035b614faa565b93506130735a8261504190919063ffffffff16565b90508380613082575060008a14155b8061308e575060008814155b613100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008089111561311a57613117828b8b8b8b615061565b90505b841561315d57837f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e826040518082815260200191505060405180910390a2613196565b837f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23826040518082815260200191505060405180910390a25b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613242578073ffffffffffffffffffffffffffffffffffffffff16639327136883856040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561322957600080fd5b505af115801561323d573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b60006004549050600081116132f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61330184848484611ad8565b50505050565b6060600060035467ffffffffffffffff8111801561332457600080fd5b506040519080825280602002602001820160405280156133535781602001602082028036833780820191505090505b50905060008060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146134a757808383815181106133fe57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506133bd565b82935050505090565b60055481565b600080825160208401855af4806000523d6020523d600060403e60403d016000fd5b6135238a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505089615267565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135615761356084615767565b5b6135af8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615838565b60008211156135c9576135c782600060018685615061565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b8960405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281038252878782818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a250505050505050505050565b60606000600173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806136da57506136d9846123d6565b5b61374c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600083116137c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303600000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8267ffffffffffffffff811180156137d957600080fd5b506040519080825280602002602001820160405280156138085781602001602082028036833780820191505090505b5091506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156138da5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156138e557508381105b156139a057818382815181106138f757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508080600101915050613870565b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146139ee578260018203815181106139e357fe5b602002602001015191505b808352509250929050565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613afb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16817ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c60405160405180910390a350565b6000613bad8c8c8c8c8c8c8c8c8c8c8c6147a0565b8051906020012090509b9a5050505050505050505050565b613bcd614e7f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613c375750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b613ca9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613da9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427660405160405180910390a25050565b613f54614e7f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146140c6578073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fe6d7a83a000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060206040518083038186803b15801561401857600080fd5b505afa15801561402c573d6000803e3d6000fd5b505050506040513d602081101561404257600080fd5b81019080805190602001909291905050506140c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475333303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b60007f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b90508181558173ffffffffffffffffffffffffffffffffffffffff167f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa260405160405180910390a25050565b614140614e7f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156141aa5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156141e257503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b614254576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614355576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156143bf5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614531576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf60405160405180910390a28073ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a2505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405180838380828437808301925050509250505060405180910390208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a815260200189815260200188600181111561483157fe5b81526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b6148bd61499f565b8360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509b9a5050505050505050505050565b614950614e7f565b61495981615767565b8073ffffffffffffffffffffffffffffffffffffffff167f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b060405160405180910390a250565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921860001b6149cd61257a565b30604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405160208183030381529060405280519060200120905090565b614a25614e7f565b806001600354031015614aa0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015614b0a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614b7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614c7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508173ffffffffffffffffffffffffffffffffffffffff167ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf60405160405180910390a28060045414614e4157614e4081612bea565b5b505050565b6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b565b600080831415614f355760009050614f56565b6000828402905082848281614f4657fe5b0414614f5157600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614fa057600080fd5b8091505092915050565b6000600180811115614fb857fe5b836001811115614fc457fe5b1415614fdd576000808551602087018986f49050614fed565b600080855160208701888a87f190505b95945050505050565b6000807f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b9050805491505090565b6000818310156150375781615039565b825b905092915050565b60008282111561505057600080fd5b600082840390508091505092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461509e57826150a0565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156151b85761510a3a86106150e7573a6150e9565b855b6150fc888a614f8b90919063ffffffff16565b614f2290919063ffffffff16565b91508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050506151b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61525d565b6151dd856151cf888a614f8b90919063ffffffff16565b614f2290919063ffffffff16565b91506151ea848284615b0e565b61525c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5095945050505050565b6000600454146152df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8151811115615356576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018110156153cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006001905060005b83518110156156d35760008482815181106153ed57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156154615750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561549957503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156154d157508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b615543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092505080806001019150506153d6565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415615809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475334303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461593a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614615b0a576159f682615bd2565b615a68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b615a978260008360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff614faa565b615b09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5050565b60008063a9059cbb8484604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050602060008251602084016000896127105a03f13d60008114615bb55760208114615bbd5760009350615bc8565b819350615bc8565b600051158215171593505b5050509392505050565b600080823b90506000811191505091905056fea264697066735822122057398fa72884cf9a6cb78aab2fb58a6b927f0e9d97d75b015daaee0959a153bf64736f6c63430007060033"; + +// Will deploy safeMultiSend to 0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526 +export const SAFE_MULTI_SEND_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b503073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505060805160601c6102756100646000398060e052506102756000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610183576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806102106030913960400191505060405180910390fd5b805160205b8181101561020a578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101cd57600181146101dd576101e8565b6000808585888a5af191506101e8565b6000808585895af491505b5060008114156101f757600080fd5b8260550187019650505050505050610188565b50505056fe4d756c746953656e642073686f756c64206f6e6c792062652063616c6c6564207669612064656c656761746563616c6ca264697066735822122021102e6d5bc1da75411b41fe2792a1748bf5c49c794e51e81405ccd2399da13564736f6c63430007060033"; + +// Will deploy safeMultiSendCallOnly to 0x9641d764fc13c8B624c04430C7356C1C7C8102e2 +export const SAFE_MULTI_SEND_CALL_ONLY_CREATECALL: Hex = + "0x0000000000000000000000000000000000000000000000000000000000000000608060405234801561001057600080fd5b5061019a806100206000396000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea26469706673582212208d297bb003abee230b5dfb38774688f37a6fbb97a82a21728e8049b2acb9b73564736f6c63430007060033"; + +/* ========= V06 CORE ========= */ + +// Will deploy entryPoint to 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 +export const ENTRY_POINT_V06_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a080604052346200008957600160025561022c8181016001600160401b038111838210176200007357829162005d18833903906000f080156200006757608052604051615c8990816200008f82396080518181816113df01528181613e9501526141b60152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b610021615531565b005b60003560e01c80630396cb60146101b35780630bd28e3b146101aa5780631b2e01b8146101a15780631d732756146101985780631fad948c1461018f578063205c28781461018657806335567e1a1461017d5780634b1d7cf5146101745780635287ce121461016b57806370a08231146101625780638f41ec5a14610159578063957122ab146101505780639b249f6914610147578063a61935311461013e578063b760faf914610135578063bb9fe6bf1461012c578063c23a5cea14610123578063d6383f941461011a578063ee219423146101115763fc7e286d0361000e5761010c611bcd565b61000e565b5061010c6119b5565b5061010c61184d565b5061010c6116b4565b5061010c611536565b5061010c6114f7565b5061010c6114d6565b5061010c611337565b5061010c611164565b5061010c611129565b5061010c6110a4565b5061010c610f54565b5061010c610bf8565b5061010c610b33565b5061010c610994565b5061010c6108ba565b5061010c6106e7565b5061010c610467565b5061010c610385565b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043563ffffffff8116808203610359576103547fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916102716102413373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9161024d811515615697565b61026a610261600185015463ffffffff1690565b63ffffffff1690565b11156156fc565b54926103366dffffffffffffffffffffffffffff946102f461029834888460781c166121d5565b966102a4881515615761565b6102b0818911156157c6565b6102d4816102bc6105ec565b941684906dffffffffffffffffffffffffffff169052565b6001602084015287166dffffffffffffffffffffffffffff166040830152565b63ffffffff83166060820152600060808201526103313373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b61582b565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff8216820361035957565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043577ffffffffffffffffffffffffffffffffffffffffffffffff81168103610359576104149033600052600160205260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b61041e8154612491565b9055005b73ffffffffffffffffffffffffffffffffffffffff81160361035957565b6024359061044d82610422565b565b60c4359061044d82610422565b359061044d82610422565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760206104fc6004356104a881610422565b73ffffffffffffffffffffffffffffffffffffffff6104c561035e565b91166000526001835260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54604051908152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761055157604052565b610559610505565b604052565b610100810190811067ffffffffffffffff82111761055157604052565b67ffffffffffffffff811161055157604052565b6060810190811067ffffffffffffffff82111761055157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761055157604052565b6040519061044d82610535565b6040519060c0820182811067ffffffffffffffff82111761055157604052565b604051906040820182811067ffffffffffffffff82111761055157604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610675575b01160190565b61067d610505565b61066f565b92919261068e82610639565b9161069c60405193846105ab565b829481845281830111610359578281602093846000960137010152565b9181601f840112156103595782359167ffffffffffffffff8311610359576020838186019501011161035957565b5034610359576101c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957366023820112156103595761074a903690602481600401359101610682565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101808112610359576101006040519161078783610535565b12610359576040516107988161055e565b6107a0610440565b815260443560208201526064356040820152608435606082015260a43560808201526107ca61044f565b60a082015260e43560c08201526101043560e082015281526101243560208201526101443560408201526101643560608201526101843560808201526101a4359182116103595761083e9261082661082e9336906004016106b9565b9290916128b1565b6040519081529081906020820190565b0390f35b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103595760043567ffffffffffffffff9283821161035957806023830112156103595781600401359384116103595760248460051b830101116103595760240191906024356108b781610422565b90565b5034610359576108c936610842565b6108d4929192611e3a565b6108dd83611d2d565b60005b84811061095d57506000927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9728480a183915b85831061092d576109238585611ed7565b6100216001600255565b909193600190610953610941878987611dec565b61094b8886611dca565b51908861233f565b0194019190610912565b8061098b610984610972600194869896611dca565b5161097e848a88611dec565b84613448565b9083612f30565b019290926108e0565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356109d081610422565b6024359060009133835282602052604083206dffffffffffffffffffffffffffff81541692838311610ad557848373ffffffffffffffffffffffffffffffffffffffff829593610a788496610a3f610a2c8798610ad29c6121c0565b6dffffffffffffffffffffffffffff1690565b6dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610acc611ea7565b50615ba2565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576020600435610b7181610422565b73ffffffffffffffffffffffffffffffffffffffff610b8e61035e565b911660005260018252610bc98160406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b503461035957610c0736610842565b610c0f611e3a565b6000805b838210610df657610c249150611d2d565b7fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972600080a16000805b848110610d5c57505060008093815b818110610c9357610923868660007f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d8180a2611ed7565b610cf7610ca182848a6124cb565b610ccc610cb3610cb36020840161256d565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d600080a280612519565b906000915b808310610d1457505050610d0f90612491565b610c5c565b90919497610d4f610d49610d5592610d438c8b610d3c82610d368e8b8d611dec565b92611dca565b519161233f565b906121d5565b99612491565b95612491565b9190610cfc565b610d678186886124cb565b6020610d7f610d768380612519565b9290930161256d565b9173ffffffffffffffffffffffffffffffffffffffff60009316905b828410610db45750505050610daf90612491565b610c4d565b90919294610d4f81610de985610de2610dd0610dee968d611dca565b51610ddc8c8b8a611dec565b85613448565b908b613148565b612491565b929190610d9b565b610e018285876124cb565b90610e0c8280612519565b92610e1c610cb36020830161256d565b9173ffffffffffffffffffffffffffffffffffffffff8316610e416001821415612577565b610e62575b505050610e5c91610e56916121d5565b91612491565b90610c13565b909592610e7b6040999693999895989788810190611fc8565b92908a3b156103595789938b918a5193849283927fe3563a4f00000000000000000000000000000000000000000000000000000000845260049e8f850193610ec294612711565b03815a93600094fa9081610f3b575b50610f255786517f86a9f75000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16818a0190815281906020010390fd5b0390fd5b9497509295509093509181610e56610e5c610e46565b80610f48610f4e9261057b565b8061111e565b38610ed1565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761083e73ffffffffffffffffffffffffffffffffffffffff600435610fa881610422565b608060409283928351610fba81610535565b60009381858093528260208201528287820152826060820152015216815280602052209061104965ffffffffffff6001835194610ff686610535565b80546dffffffffffffffffffffffffffff8082168852607082901c60ff161515602089015260789190911c1685870152015463ffffffff8116606086015260201c16608084019065ffffffffffff169052565b5191829182919091608065ffffffffffff8160a08401956dffffffffffffffffffffffffffff808251168652602082015115156020870152604082015116604086015263ffffffff6060820151166060860152015116910152565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff6004356110f581610422565b16600052600060205260206dffffffffffffffffffffffffffff60406000205416604051908152f35b600091031261035957565b50346103595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957602060405160018152f35b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957600467ffffffffffffffff8135818111610359576111b590369084016106b9565b9050602435916111c483610422565b604435908111610359576111db90369085016106b9565b92909115908161132d575b506112c6576014821015611236575b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160409060208152600060208201520190565b6112466112529261124c92612b88565b90612b96565b60601c90565b3b1561125f5738806111f5565b610f21906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601b60208201527f41413330207061796d6173746572206e6f74206465706c6f796564000000000060408201520190565b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601960208201527f41413230206163636f756e74206e6f74206465706c6f7965640000000000000060408201520190565b90503b15386111e6565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043567ffffffffffffffff81116103595761138960249136906004016106b9565b906113bf6040519283927f570e1a3600000000000000000000000000000000000000000000000000000000845260048401612d2c565b0360208273ffffffffffffffffffffffffffffffffffffffff92816000857f0000000000000000000000000000000000000000000000000000000000000000165af1918215611471575b600092611441575b50604051917f6ca7b806000000000000000000000000000000000000000000000000000000008352166004820152fd5b61146391925060203d811161146a575b61145b81836105ab565b810190612d17565b9038611411565b503d611451565b611479612183565b611409565b90816101609103126103595790565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610359576004359067ffffffffffffffff8211610359576108b79160040161147e565b50346103595760206114ef6114ea3661148d565b612a0c565b604051908152f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761002160043561153181610422565b61562b565b5034610359576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126116b1573381528060205260408120600181019063ffffffff825416908115611653576115f06115b5611618936115a76115a2855460ff9060701c1690565b61598f565b65ffffffffffff42166159f4565b84547fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff16602082901b69ffffffffffff000000001617909455565b7fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff8154169055565b60405165ffffffffffff91909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a280f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b80fd5b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356116f081610422565b610ad273ffffffffffffffffffffffffffffffffffffffff6117323373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b926117ea611755610a2c86546dffffffffffffffffffffffffffff9060781c1690565b94611761861515615a0e565b6117c26001820161179a65ffffffffffff611786835465ffffffffffff9060201c1690565b16611792811515615a73565b421015615ad8565b80547fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000169055565b7fffffff0000000000000000000000000000ffffffffffffffffffffffffffffff8154169055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2600080809581948294165af1611847611ea7565b50615b3d565b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff6004358181116103595761189e90369060040161147e565b602435916118ab83610422565b604435908111610359576118c6610f219136906004016106b9565b6118ce611caa565b6118d785612e2b565b6118ea6118e48287613240565b906153ba565b946118fa826000924384526121e2565b96438252819360609573ffffffffffffffffffffffffffffffffffffffff8316611981575b50505050608001519361194e6040611940602084015165ffffffffffff1690565b92015165ffffffffffff1690565b906040519687967f8b7ac980000000000000000000000000000000000000000000000000000000008852600488016127e1565b8395508394965061199b60409492939451809481936127d3565b03925af19060806119aa611ea7565b92919038808061191f565b5034610359576119c43661148d565b6119cc611caa565b6119d582612e2b565b6119df8183613240565b825160a00151919391611a0c9073ffffffffffffffffffffffffffffffffffffffff166154dc565b6154dc565b90611a30611a07855173ffffffffffffffffffffffffffffffffffffffff90511690565b94611a39612b50565b50611a68611a4c60409586810190611fc8565b90600060148310611bc55750611246611a079261124c92612b88565b91611a72916153ba565b805173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff821660018114916080880151978781015191886020820151611ac79065ffffffffffff1690565b91015165ffffffffffff16916060015192611ae06105f9565b9a8b5260208b0152841515898b015265ffffffffffff1660608a015265ffffffffffff16608089015260a088015215159081611bbc575b50611b515750610f2192519485947fe0cff05f00000000000000000000000000000000000000000000000000000000865260048601612cbd565b9190610f2193611b60846154dc565b611b87611b6b610619565b73ffffffffffffffffffffffffffffffffffffffff9096168652565b6020850152519586957ffaecb4e400000000000000000000000000000000000000000000000000000000875260048701612c2b565b90501538611b17565b9150506154dc565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff600435611c1e81610422565b16600052600060205260a0604060002065ffffffffffff60018254920154604051926dffffffffffffffffffffffffffff90818116855260ff8160701c161515602086015260781c16604084015263ffffffff8116606084015260201c166080820152f35b60209067ffffffffffffffff8111611c9d575b60051b0190565b611ca5610505565b611c96565b60405190611cb782610535565b604051608083610100830167ffffffffffffffff811184821017611d20575b60405260009283815283602082015283604082015283606082015283838201528360a08201528360c08201528360e082015281528260208201528260408201528260608201520152565b611d28610505565b611cd6565b90611d3782611c83565b611d4460405191826105ab565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611d728294611c83565b019060005b828110611d8357505050565b602090611d8e611caa565b82828501015201611d77565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020918151811015611ddf575b60051b010190565b611de7611d9a565b611dd7565b9190811015611e2d575b60051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea181360301821215610359570190565b611e35611d9a565b611df6565b6002805414611e495760028055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b3d15611ed2573d90611eb882610639565b91611ec660405193846105ab565b82523d6000602084013e565b606090565b73ffffffffffffffffffffffffffffffffffffffff168015611f6a57600080809381935af1611f04611ea7565b5015611f0c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff82116103595760200191813603831361035957565b90816020910312610359575190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60005b83811061207a5750506000910152565b818101518382015260200161206a565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936120c681518092818752878088019101612067565b0116010190565b906120e76080916108b796946101c0808652850191612028565b9360e0815173ffffffffffffffffffffffffffffffffffffffff80825116602087015260208201516040870152604082015160608701526060820151858701528482015160a087015260a08201511660c086015260c081015182860152015161010084015260208101516101208401526040810151610140840152606081015161016084015201516101808201526101a081840391015261208a565b506040513d6000823e3d90fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082039182116121cd57565b61044d612190565b919082018092116121cd57565b905a918160206121fb6060830151936060810190611fc8565b906122348560405195869485947f1d732756000000000000000000000000000000000000000000000000000000008652600486016120cd565b03816000305af16000918161230f575b50612308575060206000803e7fdeaddead000000000000000000000000000000000000000000000000000000006000511461229b5761229561228a6108b7945a906121c0565b6080840151906121d5565b91614afc565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152600f60408201527f41413935206f7574206f6620676173000000000000000000000000000000000060608201520190565b9250505090565b61233191925060203d8111612338575b61232981836105ab565b810190612019565b9038612244565b503d61231f565b909291925a9380602061235b6060830151946060810190611fc8565b906123948660405195869485947f1d732756000000000000000000000000000000000000000000000000000000008652600486016120cd565b03816000305af160009181612471575b5061246a575060206000803e7fdeaddead00000000000000000000000000000000000000000000000000000000600051146123fc576123f66123eb6108b795965a906121c0565b6080830151906121d5565b92614ddf565b610f21836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152600f60408201527f41413935206f7574206f6620676173000000000000000000000000000000000060608201520190565b9450505050565b61248a91925060203d81116123385761232981836105ab565b90386123a4565b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146124bf570190565b6124c7612190565b0190565b919081101561250c575b60051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa181360301821215610359570190565b612514611d9a565b6124d5565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff821161035957602001918160051b3603831361035957565b356108b781610422565b1561257e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561035957016020813591019167ffffffffffffffff821161035957813603831361035957565b6108b7916126578161263d8461045c565b73ffffffffffffffffffffffffffffffffffffffff169052565b602082013560208201526126f26126a361268861267760408601866125dc565b610160806040880152860191612028565b61269560608601866125dc565b908583036060870152612028565b6080840135608084015260a084013560a084015260c084013560c084015260e084013560e084015261010080850135908401526101206126e5818601866125dc565b9185840390860152612028565b9161270361014091828101906125dc565b929091818503910152612028565b949391929083604087016040885252606086019360608160051b8801019482600090815b848310612754575050505050508460206108b795968503910152612028565b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08b820301855288357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1843603018112156127cf57600191846127bd920161262c565b98602090810196950193019190612735565b8280fd5b908092918237016000815290565b9290936108b796959260c0958552602085015265ffffffffffff8092166040850152166060830152151560808201528160a0820152019061208a565b1561282457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c790000000000000000006044820152fd5b9060406108b79260008152816020820152019061208a565b6040906108b793928152816020820152019061208a565b909291925a936128c230331461281d565b8151946040860151955a6113886060830151890101116129e2576108b7966000958051612909575b50505090612903915a9003608084015101943691610682565b91615047565b612938916129349161292f855173ffffffffffffffffffffffffffffffffffffffff1690565b615c12565b1590565b612944575b80806128ea565b61290392919450612953615c24565b908151612967575b5050600193909161293d565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a20173ffffffffffffffffffffffffffffffffffffffff6020870151926129d860206129c6835173ffffffffffffffffffffffffffffffffffffffff1690565b9201519560405193849316968361289a565b0390a3388061295b565b7fdeaddead0000000000000000000000000000000000000000000000000000000060005260206000fd5b612a22612a1c6040830183611fc8565b90615c07565b90612a33612a1c6060830183611fc8565b90612ae9612a48612a1c610120840184611fc8565b60405194859360208501956101008201359260e08301359260c08101359260a08201359260808301359273ffffffffffffffffffffffffffffffffffffffff60208201359135168c9693909a9998959261012098959273ffffffffffffffffffffffffffffffffffffffff6101408a019d168952602089015260408801526060870152608086015260a085015260c084015260e08301526101008201520152565b0391612b1b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938481018352826105ab565b51902060408051602081019283523091810191909152466060820152608092830181529091612b4a90826105ab565b51902090565b604051906040820182811067ffffffffffffffff821117612b7b575b60405260006020838281520152565b612b83610505565b612b6c565b906014116103595790601490565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009035818116939260148110612bcb57505050565b60140360031b82901b16169150565b9060c060a06108b793805184526020810151602085015260408101511515604085015265ffffffffffff80606083015116606086015260808201511660808501520151918160a0820152019061208a565b9294612c8c61044d95612c7a610100959998612c68612c54602097610140808c528b0190612bda565b9b878a019060208091805184520151910152565b80516060890152602001516080880152565b805160a08701526020015160c0860152565b73ffffffffffffffffffffffffffffffffffffffff81511660e0850152015191019060208091805184520151910152565b612d0661044d94612cf4612cdf60a0959998969960e0865260e0860190612bda565b98602085019060208091805184520151910152565b80516060840152602001516080830152565b019060208091805184520151910152565b9081602091031261035957516108b781610422565b9160206108b7938181520191612028565b90612d6c73ffffffffffffffffffffffffffffffffffffffff916108b797959694606085526060850191612028565b941660208201526040818503910152612028565b60009060033d11612d8d57565b905060046000803e60005160e01c90565b600060443d106108b7576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc91823d016004833e815167ffffffffffffffff918282113d602484011117612e1a57818401948551938411612e22573d85010160208487010111612e1a57506108b7929101602001906105ab565b949350505050565b50949350505050565b612e386040820182611fc8565b612e50612e448461256d565b93610120810190611fc8565b9290303b1561035957600093612e949160405196879586957f957122ab00000000000000000000000000000000000000000000000000000000875260048701612d3d565b0381305afa9081612f1d575b5061044d576001612eaf612d80565b6308c379a014612ec8575b612ec057565b61044d612183565b612ed0612d9e565b80612edc575b50612eba565b80516000925015612ed657610f21906040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612882565b80610f48612f2a9261057b565b38612ea0565b9190612f3b9061317f565b73ffffffffffffffffffffffffffffffffffffffff929183166130da5761306c57612f659061317f565b9116612ffe57612f725750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b610f21836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b9291906131549061317f565b909273ffffffffffffffffffffffffffffffffffffffff808095169116036130da5761306c57612f65905b80156131d25761318e9061535f565b73ffffffffffffffffffffffffffffffffffffffff65ffffffffffff8060408401511642119081156131c2575b5091511691565b90506020830151164210386131bb565b50600090600090565b156131e257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b916000915a9381519061325382826136b3565b61325c81612a0c565b602084015261329a6effffffffffffffffffffffffffffff60808401516060850151176040850151176101008401359060e0850135171711156131db565b6132a382613775565b6132ae818584613836565b97906132df6129346132d4875173ffffffffffffffffffffffffffffffffffffffff1690565b60208801519061546c565b6133db576132ec43600052565b73ffffffffffffffffffffffffffffffffffffffff61332460a0606097015173ffffffffffffffffffffffffffffffffffffffff1690565b166133c1575b505a810360a0840135106133545760809360c092604087015260608601525a900391013501910152565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413430206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b909350816133d2929750858461455c565b9590923861332a565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b9290916000925a825161345b81846136b3565b61346483612a0c565b60208501526134a26effffffffffffffffffffffffffffff60808301516060840151176040840151176101008601359060e0870135171711156131db565b6134ab81613775565b6134b78186868b613ba2565b98906134e86129346134dd865173ffffffffffffffffffffffffffffffffffffffff1690565b60208701519061546c565b6135e0576134f543600052565b73ffffffffffffffffffffffffffffffffffffffff61352d60a0606096015173ffffffffffffffffffffffffffffffffffffffff1690565b166135c5575b505a840360a08601351061355f5750604085015260608401526080919060c0905a900391013501910152565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601e60448201527f41413430206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b909250816135d79298508686856147ef565b96909138613533565b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b1561365557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613725906136dd6136c38261256d565b73ffffffffffffffffffffffffffffffffffffffff168452565b602081013560208401526080810135604084015260a0810135606084015260c0810135608084015260e081013560c084015261010081013560e0840152610120810190611fc8565b90811561376a5761374f61124c6112468460a09461374a601461044d9998101561364e565b612b88565b73ffffffffffffffffffffffffffffffffffffffff16910152565b505060a06000910152565b60a081015173ffffffffffffffffffffffffffffffffffffffff16156137b75760c060035b60ff60408401519116606084015102016080830151019101510290565b60c0600161379a565b6137d86040929594939560608352606083019061262c565b9460208201520152565b9061044d602f60405180947f414132332072657665727465643a20000000000000000000000000000000000060208301526138268151809260208686019101612067565b810103600f8101855201836105ab565b916000926000925a936139046020835193613865855173ffffffffffffffffffffffffffffffffffffffff1690565b9561387d6138766040830183611fc8565b9084613e0d565b60a086015173ffffffffffffffffffffffffffffffffffffffff16906138a243600052565b85809373ffffffffffffffffffffffffffffffffffffffff809416159889613b3a575b60600151908601516040517f3a871cdd0000000000000000000000000000000000000000000000000000000081529788968795869390600485016137c0565b03938a1690f1829181613b1a575b50613b115750600190613923612d80565b6308c379a014613abd575b50613a50575b613941575b50505a900391565b61396b9073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b613986610a2c82546dffffffffffffffffffffffffffff1690565b8083116139e3576139dc926dffffffffffffffffffffffffffff9103166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b3880613939565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b613ac5612d9e565b9081613ad1575061392e565b610f2191613adf91506137e2565b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612882565b95506139349050565b613b3391925060203d81116123385761232981836105ab565b9038613912565b9450613b80610a2c613b6c8c73ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b546dffffffffffffffffffffffffffff1690565b8b811115613b975750856060835b969150506138c5565b606087918d03613b8e565b90926000936000935a94613beb6020835193613bd2855173ffffffffffffffffffffffffffffffffffffffff1690565b9561387d613be36040830183611fc8565b90848c61412b565b03938a1690f1829181613ded575b50613de45750600190613c0a612d80565b6308c379a014613d8e575b50613d20575b613c29575b5050505a900391565b613c539073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b91613c6f610a2c84546dffffffffffffffffffffffffffff1690565b90818311613cba575082547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169190036dffffffffffffffffffffffffffff16179055388080613c20565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b613d96612d9e565b9081613da25750613c15565b8691613dae91506137e2565b90610f216040519283927f220266b60000000000000000000000000000000000000000000000000000000084526004840161289a565b9650613c1b9050565b613e0691925060203d81116123385761232981836105ab565b9038613bf9565b909180613e1957505050565b81515173ffffffffffffffffffffffffffffffffffffffff1692833b6140be57606083510151604051907f570e1a3600000000000000000000000000000000000000000000000000000000825260208280613e78878760048401612d2c565b0381600073ffffffffffffffffffffffffffffffffffffffff95867f00000000000000000000000000000000000000000000000000000000000000001690f19182156140b1575b600092614091575b508082169586156140245716809503613fb7573b15613f4a5761124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93613f1193612b88565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a3565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313520696e6974436f6465206d757374206372656174652073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6140aa91925060203d811161146a5761145b81836105ab565b9038613ec7565b6140b9612183565b613ebf565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601f60408201527f414131302073656e64657220616c726561647920636f6e73747275637465640060608201520190565b9290918161413a575b50505050565b82515173ffffffffffffffffffffffffffffffffffffffff1693843b6143e257606084510151604051907f570e1a3600000000000000000000000000000000000000000000000000000000825260208280614199888860048401612d2c565b0381600073ffffffffffffffffffffffffffffffffffffffff95867f00000000000000000000000000000000000000000000000000000000000000001690f19182156143d5575b6000926143b5575b5080821696871561434757168096036142d9573b15614273575061124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d9361423393612b88565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a338808080614134565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6143ce91925060203d811161146a5761145b81836105ab565b90386141e8565b6143dd612183565b6141e0565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b1561444f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4141343120746f6f206c6974746c6520766572696669636174696f6e476173006044820152fd5b919060408382031261035957825167ffffffffffffffff81116103595783019080601f83011215610359578151916144e483610639565b916144f260405193846105ab565b838352602084830101116103595760209261451291848085019101612067565b92015190565b9061044d602f60405180947f414133332072657665727465643a20000000000000000000000000000000000060208301526138268151809260208686019101612067565b93919260609460009460009380519261459b60a08a86015195614580888811614448565b015173ffffffffffffffffffffffffffffffffffffffff1690565b916145c68373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b946145e2610a2c87546dffffffffffffffffffffffffffff1690565b968588106147825773ffffffffffffffffffffffffffffffffffffffff60208a98946146588a966dffffffffffffffffffffffffffff8b6146919e03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b015194604051998a98899788937ff465c77e000000000000000000000000000000000000000000000000000000008552600485016137c0565b0395169103f190818391849361475c575b506147555750506001906146b4612d80565b6308c379a014614733575b506146c657565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141333320726576657274656420286f72204f4f47290000000000000000000060608201520190565b61473b612d9e565b908161474757506146bf565b610f2191613adf9150614518565b9450925050565b90925061477b91503d8085833e61477381836105ab565b8101906144ad565b91386146a2565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b91949293909360609560009560009382519061481660a08b84015193614580848611614448565b936148418573ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b61485c610a2c82546dffffffffffffffffffffffffffff1690565b8781106149b7579273ffffffffffffffffffffffffffffffffffffffff60208a989693946146588a966dffffffffffffffffffffffffffff8d6148d69e9c9a03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b0395169103f1908183918493614999575b506149915750506001906148f9612d80565b6308c379a014614972575b5061490c5750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601660448201527f4141333320726576657274656420286f72204f4f4729000000000000000000006064820152608490fd5b61497a612d9e565b90816149865750614904565b613dae925050614518565b955093505050565b9092506149b091503d8085833e61477381836105ab565b91386148e7565b610f218a6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b60031115614a2f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b929190614a7c6040916002865260606020870152606086019061208a565b930152565b939291906003811015614a2f57604091614a7c91865260606020870152606086019061208a565b9061044d603660405180947f4141353020706f73744f702072657665727465643a20000000000000000000006020830152614aec8151809260208686019101612067565b81010360168101855201836105ab565b929190925a93600091805191614b1183615318565b9260a0810195614b35875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff93908481169081614ca457505050614b76825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a90030193840297604084019089825110614c37577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f94614bc26020928c614c329551039061553a565b015194896020614c04614be9865173ffffffffffffffffffffffffffffffffffffffff1690565b9a5173ffffffffffffffffffffffffffffffffffffffff1690565b9401519785604051968796169a16988590949392606092608083019683521515602083015260408201520152565b0390a4565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f414135312070726566756e642062656c6f772061637475616c476173436f737460608201520190565b9a918051614cb4575b5050614b78565b6060850151600099509091803b15614ddb579189918983614d07956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c029060048401614a5e565b0393f19081614dc8575b50614dc3576001614d20612d80565b6308c379a014614da4575b614d37575b3880614cad565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b614dac612d9e565b80614db75750614d2b565b613adf610f2191614aa8565b614d30565b80610f48614dd59261057b565b38614d11565b8980fd5b9392915a90600092805190614df382615318565b9360a0830196614e17885173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff95908681169081614f0d57505050614e58845173ffffffffffffffffffffffffffffffffffffffff1690565b915b5a9003019485029860408301908a825110614ea757507f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f949392614bc2614c32938c60209451039061553a565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f414135312070726566756e642062656c6f772061637475616c476173436f73746064820152608490fd5b93918051614f1d575b5050614e5a565b606087015160009a509091803b1561504357918a918a83614f70956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c029060048401614a5e565b0393f19081615030575b5061502b576001614f89612d80565b6308c379a01461500e575b614fa0575b3880614f16565b610f218b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615016612d9e565b806150215750614f94565b613dae8d91614aa8565b614f99565b80610f4861503d9261057b565b38614f7a565b8a80fd5b909392915a9480519161505983615318565b9260a081019561507d875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff938185169182615165575050506150bd825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a90030193840297604084019089825110614c37577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f946151096020928c614c329551039061553a565b61511288614a25565b015194896020615139614be9865173ffffffffffffffffffffffffffffffffffffffff1690565b940151604080519182529815602082015297880152606087015290821695909116939081906080820190565b9a918151615175575b50506150bf565b8784026151818a614a25565b60028a1461520c576060860151823b15610359576151d493600080948d604051978896879586937fa9a2340900000000000000000000000000000000000000000000000000000000855260048501614a81565b0393f180156151ff575b6151ec575b505b388061516e565b80610f486151f99261057b565b386151e3565b615207612183565b6151de565b6060860151823b156103595761525793600080948d604051978896879586937fa9a2340900000000000000000000000000000000000000000000000000000000855260048501614a81565b0393f19081615305575b50615300576001615270612d80565b6308c379a0146152ed575b156151e5576040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b6152f5612d9e565b80614db7575061527b565b6151e5565b80610f486153129261057b565b38615261565b60e060c082015191015180821461533c57480180821015615337575090565b905090565b5090565b6040519061534d8261058f565b60006040838281528260208201520152565b615367615340565b5065ffffffffffff808260a01c1680156153b3575b604051926153898461058f565b73ffffffffffffffffffffffffffffffffffffffff8116845260d01c602084015216604082015290565b508061537c565b6153cf6153d5916153c9615340565b5061535f565b9161535f565b9073ffffffffffffffffffffffffffffffffffffffff9182825116928315615461575b65ffffffffffff928391826040816020850151169301511693836040816020840151169201511690808410615459575b50808511615451575b506040519561543f8761058f565b16855216602084015216604082015290565b935038615431565b925038615428565b8151811693506153f8565b73ffffffffffffffffffffffffffffffffffffffff16600052600160205267ffffffffffffffff6154c88260401c60406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b918254926154d584612491565b9055161490565b9073ffffffffffffffffffffffffffffffffffffffff6154fa612b50565b9216600052600060205263ffffffff600160406000206dffffffffffffffffffffffffffff815460781c1685520154166020830152565b61044d3361562b565b73ffffffffffffffffffffffffffffffffffffffff16600052600060205260406000206dffffffffffffffffffffffffffff8082541692830180931161561e575b8083116155c05761044d92166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6465706f736974206f766572666c6f77000000000000000000000000000000006044820152fd5b615626612190565b61557b565b73ffffffffffffffffffffffffffffffffffffffff9061564b348261553a565b168060005260006020527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206dffffffffffffffffffffffffffff60406000205416604051908152a2565b1561569e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b1561570357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b1561576857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b156157cd57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b9065ffffffffffff6080600161044d9461588b6dffffffffffffffffffffffffffff86511682906dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b602085015115156eff000000000000000000000000000082549160701b16807fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff83161783557fffffff000000000000000000000000000000ffffffffffffffffffffffffffff7cffffffffffffffffffffffffffff000000000000000000000000000000604089015160781b16921617178155019263ffffffff6060820151167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008554161784550151167fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff69ffffffffffff0000000083549260201b169116179055565b1561599657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b91909165ffffffffffff808094169116019182116121cd57565b15615a1557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b15615a7a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b15615adf57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b15615b4457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b15615ba957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b816040519182372090565b9060009283809360208451940192f190565b3d610800808211615c4b575b50604051906020818301016040528082526000602083013e90565b905038615c3056fea2646970667358221220a706d8b02d7086d80e9330811f5af84b2614abdc5e9a1f2260126070a31d7cee64736f6c634300081100336080806040523461001657610210908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c63570e1a361461002857600080fd5b346100c95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100c95760043567ffffffffffffffff918282116100c957366023830112156100c95781600401359283116100c95736602484840101116100c9576100c561009e84602485016100fc565b60405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390f35b80fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90806014116101bb5767ffffffffffffffff917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec82018381116101cd575b604051937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81600b8701160116850190858210908211176101c0575b604052808452602084019036848401116101bb576020946000600c819682946014880187378301015251923560601c5af19060005191156101b557565b60009150565b600080fd5b6101c86100cc565b610178565b6101d56100cc565b61013a56fea26469706673582212201927e80b76ab9b71c952137dd676621a9fdf520c25928815636594036eb1c40364736f6c63430008110033"; + +// Will deploy simpleAccountFactory V0.6 to 0x9406Cc6185a346906296840746125a0E44976454 +export const SIMPLE_ACCOUNT_FACTORY_V06_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b5060405161336238038061336283398101604081905261002f91610088565b8060405161003c9061007b565b6001600160a01b039091168152602001604051809103906000f080158015610068573d6000803e3d6000fd5b506001600160a01b0316608052506100b8565b6125dc80610d8683390190565b60006020828403121561009a57600080fd5b81516001600160a01b03811681146100b157600080fd5b9392505050565b608051610ca66100e060003960008181604b0152818161011401526102580152610ca66000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806311464fbe146100465780635fbfb9cf146100965780638cb84e18146100a9575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006d6100a436600461039d565b6100bc565b61006d6100b736600461039d565b6101ee565b6000806100c984846101ee565b905073ffffffffffffffffffffffffffffffffffffffff81163b80156100f1575090506101e8565b60405173ffffffffffffffffffffffffffffffffffffffff8616602482015284907f000000000000000000000000000000000000000000000000000000000000000090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052516101b790610390565b6101c2929190610412565b8190604051809103906000f59050801580156101e2573d6000803e3d6000fd5b50925050505b92915050565b60006103578260001b6040518060200161020790610390565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604081905273ffffffffffffffffffffffffffffffffffffffff871660248201527f000000000000000000000000000000000000000000000000000000000000000090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052905161030093929101610412565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261033c9291602001610480565b6040516020818303038152906040528051906020012061035e565b9392505050565b60006103578383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6107c1806104b083390190565b600080604083850312156103b057600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146103d457600080fd5b946020939093013593505050565b60005b838110156103fd5781810151838201526020016103e5565b8381111561040c576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000825180604084015261044d8160608501602087016103e2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600083516104928184602088016103e2565b8351908301906104a68183602088016103e2565b0194935050505056fe60806040526040516107c13803806107c183398101604081905261002291610321565b61002e82826000610035565b505061043e565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d0838360405180606001604052806027815260200161079a602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103ef565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b8152600401610148919061040b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b838111156100645750506000910152565b6000806040838503121561033457600080fd5b82516001600160a01b038116811461034b57600080fd5b60208401519092506001600160401b038082111561036857600080fd5b818501915085601f83011261037c57600080fd5b81518181111561038e5761038e6102df565b604051601f8201601f19908116603f011681019083821181831017156103b6576103b66102df565b816040528281528860208487010111156103cf57600080fd5b6103e08360208301602088016102f5565b80955050505050509250929050565b600082516104018184602087016102f5565b9190910192915050565b602081526000825180602084015261042a8160408501602087016102f5565b601f01601f19169190910160400192915050565b61034d8061044d6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102f1602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610283565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed919061029f565b60005b8381101561026e578181015183820152602001610256565b8381111561027d576000848401525b50505050565b60008251610295818460208701610253565b9190910192915050565b60208152600082518060208401526102be816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cd78ab6a31213989661cff2d7d05fc9b9c38b1a848e8249e2e398659a9eb7e364736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122070aa03035a81441673770173c347020a4af1bf8f651ceebc066752c059bdbac764736f6c634300080f003360c0604052306080523480156200001557600080fd5b50604051620025dc380380620025dc833981016040819052620000389162000118565b6001600160a01b03811660a0526200004f62000056565b506200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a05161241f620001bd6000396000818161032f015281816108810152818161092801528181610d4c01528181610f9d01528181610fe40152818161133601526115f501526000818161066b0152818161071b015281816109ec01528181610a9c0152610be5015261241f6000f3fe60806040526004361061012c5760003560e01c806352d1902d116100a5578063bc197c8111610074578063c4d66de811610059578063c4d66de8146103d0578063d087d288146103f0578063f23a6e611461040557600080fd5b8063bc197c8114610373578063c399ec88146103bb57600080fd5b806352d1902d146102b35780638da5cb5b146102c8578063b0d691fe14610320578063b61d27f61461035357600080fd5b80633659cfe6116100fc5780634a58db19116100e15780634a58db19146102785780634d44560d146102805780634f1ef286146102a057600080fd5b80633659cfe61461022a5780633a871cdd1461024a57600080fd5b806223de291461013857806301ffc9a71461015f578063150b7a021461019457806318dfb3c71461020a57600080fd5b3661013357005b600080fd5b34801561014457600080fd5b5061015d610153366004611cbf565b5050505050505050565b005b34801561016b57600080fd5b5061017f61017a366004611d70565b61044b565b60405190151581526020015b60405180910390f35b3480156101a057600080fd5b506101d96101af366004611db2565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161018b565b34801561021657600080fd5b5061015d610225366004611e6a565b610530565b34801561023657600080fd5b5061015d610245366004611ed6565b610654565b34801561025657600080fd5b5061026a610265366004611ef3565b610859565b60405190815260200161018b565b61015d61087f565b34801561028c57600080fd5b5061015d61029b366004611f47565b61091e565b61015d6102ae366004611fa2565b6109d5565b3480156102bf57600080fd5b5061026a610bcb565b3480156102d457600080fd5b506000546102fb9062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161018b565b34801561032c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102fb565b34801561035f57600080fd5b5061015d61036e366004612084565b610cb7565b34801561037f57600080fd5b506101d961038e3660046120d4565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b3480156103c757600080fd5b5061026a610d06565b3480156103dc57600080fd5b5061015d6103eb366004611ed6565b610dbd565b3480156103fc57600080fd5b5061026a610f50565b34801561041157600080fd5b506101d9610420366004612172565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a020000000000000000000000000000000000000000000000000000000014806104de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b8061052a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610538610fcc565b8281146105a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206172726179206c656e677468730000000000000000000000000060448201526064015b60405180910390fd5b60005b8381101561064d5761063b8585838181106105c6576105c66121ee565b90506020020160208101906105db9190611ed6565b60008585858181106105ef576105ef6121ee565b9050602002810190610601919061221d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061109592505050565b8061064581612282565b9150506105a9565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161059d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661078e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f78790000000000000000000000000000000000000000606482015260840161059d565b61083a81611112565b604080516000808252602082019092526108569183919061111a565b50565b600061086361131e565b61086d84846113bd565b9050610878826114a3565b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006040517fb760faf900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063b760faf99034906024016000604051808303818588803b15801561090a57600080fd5b505af115801561064d573d6000803e3d6000fd5b61092661150e565b7f00000000000000000000000000000000000000000000000000000000000000006040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063205c287890604401600060405180830381600087803b1580156109b957600080fd5b505af11580156109cd573d6000803e3d6000fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610a9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161059d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b0f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f78790000000000000000000000000000000000000000606482015260840161059d565b610bbb82611112565b610bc78282600161111a565b5050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161059d565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610cbf610fcc565b610d00848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061109592505050565b50505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa158015610d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db891906122e1565b905090565b600054610100900460ff1615808015610ddd5750600054600160ff909116105b80610df75750303b158015610df7575060005460ff166001145b610e83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161059d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610ee157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610eea8261159f565b8015610bc757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6040517f35567e1a0000000000000000000000000000000000000000000000000000000081523060048201526000602482018190529073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906335567e1a90604401610d77565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148061102d575060005462010000900473ffffffffffffffffffffffffffffffffffffffff1633145b611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6163636f756e743a206e6f74204f776e6572206f7220456e747279506f696e74604482015260640161059d565b565b6000808473ffffffffffffffffffffffffffffffffffffffff1684846040516110be9190612326565b60006040518083038185875af1925050503d80600081146110fb576040519150601f19603f3d011682016040523d82523d6000602084013e611100565b606091505b50915091508161064d57805160208201fd5b61085661150e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111525761114d8361163e565b505050565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156111d7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526111d4918101906122e1565b60015b611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840161059d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840161059d565b5061114d838383611748565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e7400000000604482015260640161059d565b600080611417836040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b905061146761142a61014086018661221d565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859392505061176d9050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff90811691161461149957600191505061052a565b5060009392505050565b80156108565760405160009033907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90849084818181858888f193505050503d806000811461064d576040519150601f19603f3d011682016040523d82523d6000602084013e61064d565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1633148061153957503330145b611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015260640161059d565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff8481168202929092178084556040519190048216927f0000000000000000000000000000000000000000000000000000000000000000909216917f47e55c76e7a6f1fd8996a1da8008c1ea29699cca35e7bcd057f2dec313b6e5de91a350565b73ffffffffffffffffffffffffffffffffffffffff81163b6116e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161059d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61175183611791565b60008251118061175e5750805b1561114d57610d0083836117de565b600080600061177c8585611803565b9150915061178981611848565b509392505050565b61179a8161163e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061087883836040518060600160405280602781526020016123c3602791396119fb565b60008082516041036118395760208301516040840151606085015160001a61182d87828585611a80565b94509450505050611841565b506000905060025b9250929050565b600081600481111561185c5761185c612342565b036118645750565b600181600481111561187857611878612342565b036118df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161059d565b60028160048111156118f3576118f3612342565b0361195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161059d565b600381600481111561196e5761196e612342565b03610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161059d565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051611a259190612326565b600060405180830381855af49150503d8060008114611a60576040519150601f19603f3d011682016040523d82523d6000602084013e611a65565b606091505b5091509150611a7686838387611b6f565b9695505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611ab75750600090506003611b66565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b0b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611b5f57600060019250925050611b66565b9150600090505b94509492505050565b60608315611c05578251600003611bfe5773ffffffffffffffffffffffffffffffffffffffff85163b611bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161059d565b5081611c0f565b611c0f8383611c17565b949350505050565b815115611c275781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059d9190612371565b73ffffffffffffffffffffffffffffffffffffffff8116811461085657600080fd5b60008083601f840112611c8f57600080fd5b50813567ffffffffffffffff811115611ca757600080fd5b60208301915083602082850101111561184157600080fd5b60008060008060008060008060c0898b031215611cdb57600080fd5b8835611ce681611c5b565b97506020890135611cf681611c5b565b96506040890135611d0681611c5b565b955060608901359450608089013567ffffffffffffffff80821115611d2a57600080fd5b611d368c838d01611c7d565b909650945060a08b0135915080821115611d4f57600080fd5b50611d5c8b828c01611c7d565b999c989b5096995094979396929594505050565b600060208284031215611d8257600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461087857600080fd5b600080600080600060808688031215611dca57600080fd5b8535611dd581611c5b565b94506020860135611de581611c5b565b935060408601359250606086013567ffffffffffffffff811115611e0857600080fd5b611e1488828901611c7d565b969995985093965092949392505050565b60008083601f840112611e3757600080fd5b50813567ffffffffffffffff811115611e4f57600080fd5b6020830191508360208260051b850101111561184157600080fd5b60008060008060408587031215611e8057600080fd5b843567ffffffffffffffff80821115611e9857600080fd5b611ea488838901611e25565b90965094506020870135915080821115611ebd57600080fd5b50611eca87828801611e25565b95989497509550505050565b600060208284031215611ee857600080fd5b813561087881611c5b565b600080600060608486031215611f0857600080fd5b833567ffffffffffffffff811115611f1f57600080fd5b84016101608187031215611f3257600080fd5b95602085013595506040909401359392505050565b60008060408385031215611f5a57600080fd5b8235611f6581611c5b565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215611fb557600080fd5b8235611fc081611c5b565b9150602083013567ffffffffffffffff80821115611fdd57600080fd5b818501915085601f830112611ff157600080fd5b81358181111561200357612003611f73565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561204957612049611f73565b8160405282815288602084870101111561206257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806000806060858703121561209a57600080fd5b84356120a581611c5b565b935060208501359250604085013567ffffffffffffffff8111156120c857600080fd5b611eca87828801611c7d565b60008060008060008060008060a0898b0312156120f057600080fd5b88356120fb81611c5b565b9750602089013561210b81611c5b565b9650604089013567ffffffffffffffff8082111561212857600080fd5b6121348c838d01611e25565b909850965060608b013591508082111561214d57600080fd5b6121598c838d01611e25565b909650945060808b0135915080821115611d4f57600080fd5b60008060008060008060a0878903121561218b57600080fd5b863561219681611c5b565b955060208701356121a681611c5b565b94506040870135935060608701359250608087013567ffffffffffffffff8111156121d057600080fd5b6121dc89828a01611c7d565b979a9699509497509295939492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261225257600080fd5b83018035915067ffffffffffffffff82111561226d57600080fd5b60200191503681900382131561184157600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036122da577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b6000602082840312156122f357600080fd5b5051919050565b60005b838110156123155781810151838201526020016122fd565b83811115610d005750506000910152565b600082516123388184602087016122fa565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208152600082518060208401526123908160408501602087016122fa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e7edcd8c7b9333c2bbdd5f8fa69f1cd2cb0f5cbfa76648b9830bcf0cbfef288e64736f6c634300080f00330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789"; + +/* ========= BICONOMY ECDSA RELATED ========= */ + +export const BICONOMY_SINGLETON_FACTORY_BYTECODE: Hex = + "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bb34534c1461003b578063cdcb760a1461006a575b600080fd5b61004e61004936600461033f565b61007f565b6040516001600160a01b03909116815260200160405180910390f35b61007d610078366004610358565b610090565b005b600061008a8261010f565b92915050565b60006100d28484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101fe92505050565b6040519091506001600160a01b038216907f8ffcdc15a283d706d38281f500270d8b5a656918f555de0913d7455e3e6bc1bf90600090a250505050565b6000806101a8836040517fff0000000000000000000000000000000000000000000000000000000000000060208201526bffffffffffffffffffffffff193060601b166021820152603581018290527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f605582015260009060750160408051601f19818403018152919052805160209091012092915050565b6040516135a560f21b60208201526bffffffffffffffffffffffff19606083901b166022820152600160f81b603682015290915060370160408051601f1981840301815291905280516020909101209392505050565b600061020c83836000610213565b9392505050565b60408051808201909152601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060208201526000906102538561010f565b9150813b156102755760405163cd43efa160e01b815260040160405180910390fd5b6000858251602084016000f590506001600160a01b0381166102aa5760405163bbd2fe8760e01b815260040160405180910390fd5b6000816001600160a01b031685876040516102c591906103d4565b60006040518083038185875af1925050503d8060008114610302576040519150601f19603f3d011682016040523d82523d6000602084013e610307565b606091505b505090508015806103175750833b155b15610335576040516353de54b960e01b815260040160405180910390fd5b5050509392505050565b60006020828403121561035157600080fd5b5035919050565b60008060006040848603121561036d57600080fd5b83359250602084013567ffffffffffffffff8082111561038c57600080fd5b818601915086601f8301126103a057600080fd5b8135818111156103af57600080fd5b8760208285010111156103c157600080fd5b6020830194508093505050509250925092565b6000825160005b818110156103f557602081860181015185830152016103db565b50600092019182525091905056fea26469706673582212207886676dff8e9b5ec182bd3d55512921e83b71170648ce1692043a572fa2954964736f6c63430008110033"; + +// Will deploy V0.6 BICONOMY_ECDSA_OWNERSHIP_REGISTRY_MODULE to 0x0000001c5b32F37F5beA87BDD5374eB2aC54eA8e +export const BICONOMY_ECDSA_OWNERSHIP_REGISTRY_MOUDULE_CREATECALL: Hex = + "0xcdcb760aa141e6dec8c9b10eb36022b4f82d2ffe43a3b172ad899d71e2dd80b0ee4c5b7c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000090960808060405234610016576108ed908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b6000803560e01c80631626ba7e146104065780632ede3bc014610384578063715018a614610314578063a3f4df7e146102c1578063f2fde38b1461020b578063f44c339d14610183578063fa5441611461012b578063ffa1ad74146100d45763fff35b721461008357600080fd5b346100cd576003199082823601126100cd5783359167ffffffffffffffff83116100d0576101609083360301126100cd57506020926100c6916024359101610543565b9051908152f35b80fd5b5080fd5b5090346100d057816003193601126100d057610127906100f2610446565b90600582527f302e322e30000000000000000000000000000000000000000000000000000000602083015251918291826104fa565b0390f35b5082346100d05760203660031901126100d0576001600160a01b0383816101506104e4565b16938481528060205220541691821561016d576020838551908152f35b8351633d3fff5360e21b81529182015260249150fd5b5091346102075760603660031901126102075760243567ffffffffffffffff8111610203576101b5903690830161047c565b90604435936001600160a01b03851685036100cd5750926101d991602094356105d8565b90517fffffffff000000000000000000000000000000000000000000000000000000009091168152f35b8380fd5b8280fd5b50919034610207576020366003190112610207576102276104e4565b803b6102a2576001600160a01b0380911692831561029457503384528360205281842054169083208273ffffffffffffffffffffffffffffffffffffffff19825416179055337fc8894f26f396ce8c004245c8b7cd1b92103a6e4302fcbab883987149ac01b7ec8480a480f35b82516307e179e960e31b8152fd5b826001600160a01b0360249351926377817ac360e01b84521690820152fd5b5090346100d057816003193601126100d057610127906102df610446565b90601f82527f4543445341204f776e657273686970205265676973747279204d6f64756c6500602083015251918291826104fa565b50809134610381578160031936011261038157338252816020526001600160a01b03818320541690822073ffffffffffffffffffffffffffffffffffffffff198154169055337fc8894f26f396ce8c004245c8b7cd1b92103a6e4302fcbab883987149ac01b7ec8380a480f35b50fd5b5091346102075760203660031901126102075761039f6104e4565b338452836020526001600160a01b03908184862054166103f05716908115610294575081602093338152808552209073ffffffffffffffffffffffffffffffffffffffff1982541617905551308152f35b8351632c4dfb7d60e21b81523381850152602490fd5b50346100cd57816003193601126100cd576024359067ffffffffffffffff82116100cd575060209261043e6101d9923690830161047c565b3391356105d8565b604051906040820182811067ffffffffffffffff82111761046657604052565b634e487b7160e01b600052604160045260246000fd5b81601f820112156104df5780359067ffffffffffffffff928383116104665760405193601f8401601f19908116603f011685019081118582101761046657604052828452602083830101116104df57816000926020809301838601378301015290565b600080fd5b600435906001600160a01b03821682036104df57565b6020808252825181830181905290939260005b82811061052f57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161050d565b610140810135601e19823603018112156104df57810167ffffffffffffffff81358181116104df57602083019080360382136104df578301906040848303126104df57359182116104df576040916020806105a293019185010161047c565b910135916001600160a01b0392838116036104df573591821682036104df576105ca92610616565b6105d357600190565b600090565b906105e39291610616565b61060b577fffffffff0000000000000000000000000000000000000000000000000000000090565b630b135d3f60e11b90565b916001600160a01b038091169160009383855284602052826040862054169384156106c4575060418251106106b2577f19457468657265756d205369676e6564204d6573736167653a0a333200000000855280601c528261068561067d84603c89206107f6565b9190916106dc565b1684146106a8576106999161067d916107f6565b16146106a25790565b50600190565b5050505050600190565b604051632bb1a9c560e11b8152600490fd5b60249060405190633d3fff5360e21b82526004820152fd5b60058110156107e057806106ed5750565b6001810361073a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b600281036107875760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b60031461079057565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b90604181511460001461082457610820916020820151906060604084015193015160001a9061082e565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116108ab5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561089e5781516001600160a01b038116156106a2579190565b50604051903d90823e3d90fd5b5050505060009060039056fea2646970667358221220d77d1372dac830175d3da0f00a91bc884b7cab72695fa25594e2902bca4a7bd964736f6c634300081100330000000000000000000000000000000000000000000000"; + +// Will deploy V0.6 BICONOMY_ACCOUNT_V2_0_LOGIC to 0x0000002512019Dafb59528B82CB92D3c5D2423ac +export const BICONOMY_ACCOUNT_V2_LOGIC_CREATECALL: Hex = + "0xcdcb760aa69bc33cd63188768f016ddc7027c44e3c90c26906bb59280018efcedaab111d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000215e60c0346100fc57601f61213e38819003918201601f19168301916001600160401b03831184841017610101578084926020946040528339810103126100fc57516001600160a01b0381168082036100fc573060a052156100ea57608052600160008181526020527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d80546001600160a01b03191690911790556040516120269081610118823960805181818161096f01528181610b6201528181610c0301528181610f2101528181610f740152818161119e0152818161193b0152611996015260a051816114dd0152f35b60405163091748f960e21b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040526004361015610030575b36156100285734610023576100216119d6565b005b600080fd5b6100216114d3565b60003560e01c8061189a146101b357806146801461021657806301ffc9a71461025e578063025b22bc146102555780631626ba7e1461024c57806321632045146102435780632d9ad53d1461023a578063378dfd8e146102315780633a871cdd14610228578063468721a71461021f57806347e1da2a146102165780634a58db191461020d5780634d44560d146102045780635229073f146101fb5780635305dd27146101f2578063610b5925146101e95780636424e9fe146101e0578063856dfd99146101d7578063aaf10f42146101ce578063acfdf503146101c5578063b0d691fe146101bc578063b61d27f6146101b3578063c399ec88146101aa578063cc2f8452146101a1578063d86f2b3c14610198578063e009cfde1461018f578063f08a032314610186578063f33623b11461017d5763ffa1ad740361000e57610178611439565b61000e565b5061017861140c565b506101786113de565b5061017861120c565b5061017861113a565b50610178611038565b50610178610f45565b506101786102b3565b50610178610f00565b50610178610e5d565b50610178610e36565b50610178610def565b50610178610dc7565b50610178610d99565b50610178610d2d565b50610178610cab565b50610178610bd4565b50610178610b4a565b50610178610342565b50610178610afc565b50610178610929565b506101786107c8565b5061017861076a565b506101786106ab565b5061017861064f565b5061017861049d565b50610178610461565b6001600160a01b0381160361002357565b359061028382610267565b565b9181601f840112156100235782359167ffffffffffffffff8311610023576020838186019501011161002357565b5034610023576060366003190112610023576004356102d181610267565b6044359067ffffffffffffffff8211610023576103076102f8610021933690600401610285565b61030061198c565b36916105fa565b906024359061190d565b9181601f840112156100235782359167ffffffffffffffff8311610023576020808501948460051b01011161002357565b50346100235760603660031901126100235767ffffffffffffffff60043581811161002357610375903690600401610311565b906024358381116100235761038e903690600401610311565b93604435908111610023576103a7903690600401610311565b926103b061198c565b84158015610445575b801561043b575b61040f5760005b8581106103d057005b806104096103e96103e46001948a87611745565b611763565b6103f4838b89611745565b35610403610300858b8a61176d565b9161190d565b016103c7565b5050506084926040519263470c355760e01b845260048401526024830152604482015260006064820152fd5b50838614156103c0565b50858514156103b9565b6001600160e01b031981160361002357565b50346100235760203660031901126100235760206004356104818161044f565b6040516001600160e01b03199091166301ffc9a760e01b148152f35b5034610023576020366003190112610023576004356104bb81610267565b6104c3611931565b6001600160a01b0380821691821561053057803b15610509573054903055167faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da600080a3005b604051630c76093760e01b81526001600160a01b03919091166004820152602490fd5b0390fd5b60405162461bcd60e51b815260206004820152601660248201527f416464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b50634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116105a057604052565b6105a8610575565b604052565b90601f8019910116810190811067ffffffffffffffff8211176105a057604052565b60209067ffffffffffffffff81116105ed575b601f01601f19160190565b6105f5610575565b6105e2565b929192610606826105cf565b9161061460405193846105ad565b829481845281830111610023578281602093846000960137010152565b9080601f830112156100235781602061064c933591016105fa565b90565b50346100235760403660031901126100235760243567ffffffffffffffff81116100235761068e6106866020923690600401610631565b600435611834565b6040516001600160e01b03199091168152f35b6002111561002357565b50346100235760a0366003190112610023576004356106c981610267565b60443567ffffffffffffffff8111610023576106e9903690600401610631565b90606435906106f7826106a1565b6084359160013314801561074b575b61073357602093610723938061072d57505a925b60243590611b5a565b6040519015158152f35b9261071a565b6040516321ac7c5f60e01b8152336004820152602490fd5b503360005260006020526001600160a01b036040600020541615610706565b503461002357602036600319011261002357602060043561078a81610267565b6001600160a01b0380911690816001141591826107ae575b50506040519015158152f35b9091506000526000825260406000205416151538806107a2565b5034610023576060366003190112610023576004356107e681610267565b602435906107f382610267565b60443567ffffffffffffffff811161002357610813903690600401610285565b91909260009360018552846020526001600160a01b0393604093858588205416158015906108fd575b6108ed5791610852916103006108589594611a24565b90611f7a565b918216801580156108e3575b6108cd578282856108b1936108c997528060205261089182822060016001600160a01b0319825416179055565b6001815220906001600160a01b03166001600160a01b0319825416179055565b516001600160a01b0390911681529081906020820190565b0390f35b602491519063cadb248f60e01b82526004820152fd5b5060018114610864565b845162dc149f60e41b8152600490fd5b50857f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d45416151561083c565b503461002357600319606036820112610023576004359067ffffffffffffffff82116100235761016082600401918336030112610023576000906001600160a01b0392837f0000000000000000000000000000000000000000000000000000000000000000163303610a9b576109af6109a76101448693018461153d565b810190611570565b905016926109e06109d3856001600160a01b03166000526000602052604060002090565b546001600160a01b031690565b1615610a7a576020610a116108c9948493604051948580948193637ff9adb960e11b835260243590600484016115fa565b03925af1918215610a6d575b91610a3f575b50610a2f6044356116f1565b6040519081529081906020820190565b610a60915060203d8111610a66575b610a5881836105ad565b8101906114b7565b38610a23565b503d610a4e565b610a756114c6565b610a1d565b6040516326cc3fab60e21b81526001600160a01b0384166004820152602490fd5b604051635dac3db760e11b8152336004820152602490fd5b608060031982011261002357600435610acb81610267565b91602435916044359067ffffffffffffffff821161002357610aef91600401610631565b9060643561064c816106a1565b503461002357610b0b36610ab3565b600193919333148015610b2b575b61073357602093610723935a93611b5a565b503360005260006020526001600160a01b036040600020541615610b19565b50600080600319360112610bd1576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681813b15610bd15760405163b760faf960e01b8152306004820152918290602490829034905af18015610bc4575b610bb8575080f35b610bc19061058c565b80f35b610bcc6114c6565b610bb0565b80fd5b5060006040366003190112610bd157600435610bef81610267565b610bf7611931565b816001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001692833b15610c5f5760449083604051958694859363040b850f60e31b855216600484015260243560248401525af18015610bc457610bb8575080f35b8280fd5b60005b838110610c765750506000910152565b8181015183820152602001610c66565b90602091610c9f81518092818552858086019101610c63565b601f01601f1916010190565b503461002357610cba36610ab3565b90600193929333148015610d0e575b61073357610cd8935a93611b5a565b6040519060203d8301016040523d82523d6000602084013e6108c960405192839215158352604060208401526040830190610c86565b503360005260006020526001600160a01b036040600020541615610cc9565b503461002357604036600319011261002357600435610d4b81610267565b60243567ffffffffffffffff811161002357602091610d71610d7f923690600401610631565b90610d7a611931565b611f7a565b610d8881611d68565b6001600160a01b0360405191168152f35b503461002357602036600319011261002357610021600435610dba81610267565b610dc2611931565b611d68565b50346100235760003660031901126100235760206001600160a01b0360315416604051908152f35b50346100235760003660031901126100235760207f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d4546001600160a01b0360405191168152f35b503461002357600036600319011261002357602030546001600160a01b0360405191168152f35b50346100235760803660031901126100235767ffffffffffffffff60043581811161002357610e90903690600401610311565b60249291923582811161002357610eab903690600401610311565b60449491943584811161002357610ec6903690600401610311565b91606435958611610023576108c996610ee6610eee973690600401610311565b969095611c22565b60405190151581529081906020820190565b50346100235760003660031901126100235760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5034610023576000366003190112610023576040516370a0823160e01b815230600482015260209081816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610fd4575b600091610fb7575b50604051908152f35b610fce9150823d8111610a6657610a5881836105ad565b38610fae565b610fdc6114c6565b610fa6565b90929192604082016040835281518091526060830160208093019160005b8482821061101b575050506001600160a01b0391509416910152565b84516001600160a01b031684529384019390920191600101610fff565b50346100235760403660031901126100235760043561105681610267565b60243561106281611a96565b61106f60405191826105ad565b818152601f1961107e83611a96565b013660208301376110a76109d36000946001600160a01b03166000526000602052604060002090565b6001600160a01b038116801515908161112e575b5080611125575b15611112576111066109d3826110ed61110c946110df8988611ab7565b906001600160a01b03169052565b6001600160a01b03166000526000602052604060002090565b93611ad9565b926110a7565b908381526108c960405192839283610fe1565b508284106110c2565b600191501415386110bb565b50346100235760203660031901126100235760043577ffffffffffffffffffffffffffffffffffffffffffffffff8116809103610023576108c99060405190631aab3f0d60e11b825230600483015260248201526020816044816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156111ff575b6000916111e1575b506040519081529081906020820190565b6111f9915060203d8111610a6657610a5881836105ad565b386111d0565b6112076114c6565b6111c8565b50346100235760403660031901126100235760043561122a81610267565b60243561123681610267565b61123e611931565b6001600160a01b038116801580156113d4575b6113b3576112846112786109d3856001600160a01b03166000526000602052604060002090565b6001600160a01b031690565b03611359578061130a7faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace4054276936112ef6112d56109d3611354966001600160a01b03166000526000602052604060002090565b916001600160a01b03166000526000602052604060002090565b906001600160a01b03166001600160a01b0319825416179055565b61133a61132a826001600160a01b03166000526000602052604060002090565b6001600160a01b03198154169055565b6040516001600160a01b0390911681529081906020820190565b0390a1005b61052c61137c6109d3846001600160a01b03166000526000602052604060002090565b604051633103525b60e21b81526001600160a01b039384166004820152908316602482015292909116604483015281906064820190565b60405163cadb248f60e01b81526001600160a01b0383166004820152602490fd5b5060018114611251565b5034610023576020366003190112610023576100216004356113ff81610267565b611407611931565b611a24565b50346100235760203660031901126100235760043560005260326020526020604060002054604051908152f35b5034610023576000366003190112610023576108c96040516040810181811067ffffffffffffffff8211176114aa575b604052600581527f322e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610c86565b6114b2610575565b611469565b90816020910312610023575190565b506040513d6000823e3d90fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301461152b5734337ed05ab44e279ac59e855cb75dc2ae23b200ad994797b6f1f028f96a46ecce02600080a3565b604051633c97166560e21b8152600490fd5b903590601e1981360301821215610023570180359067ffffffffffffffff82116100235760200191813603831361002357565b919060408382031261002357823567ffffffffffffffff81116100235760209161159b918501610631565b92013561064c81610267565b9035601e198236030181121561002357016020813591019167ffffffffffffffff821161002357813603831361002357565b908060209392818452848401376000828201840152601f01601f1916010190565b9291906116ec611657602092604087526116276040880161161a83610278565b6001600160a01b03169052565b8381013560608801526116dc61164060408301836115a7565b9390610160948560808c01526101a08b01916115d9565b916116d361167f61166b60608401846115a7565b603f198d8803810160a08f015296916115d9565b608083013560c08c015260a083013560e08c01528a6101009660c0850135888301526116c361012060e087013581850152610140998701358a8501528601866115a7565b92909188828603019101526115d9565b938101906115a7565b91888403016101808901526115d9565b930152565b806116f95750565b600080808093338219f1503d15610283573d611714816105cf565b9061172260405192836105ad565b8152600060203d92013e565b50634e487b7160e01b600052603260045260246000fd5b9190811015611756575b60051b0190565b61175e61172e565b61174f565b3561064c81610267565b90916117869281101561178a575b60051b81019061153d565b9091565b61179261172e565b61177b565b919060408382031261002357825167ffffffffffffffff81116100235783019080601f83011215610023578151916117ce836105cf565b916117dc60405193846105ad565b83835260208483010111610023576020926117fc91848085019101610c63565b92015161064c81610267565b90816020910312610023575161064c8161044f565b60409061064c939281528160208201520190610c86565b906118489060208082518301019101611797565b90916001600160a01b03809216916118766109d3846001600160a01b03166000526000602052604060002090565b16156118ec57916020916118a093604051809581948293630b135d3f60e11b84526004840161181d565b03915afa9081156118df575b6000916118b7575090565b61064c915060203d81116118d8575b6118d081836105ad565b810190611808565b503d6118c6565b6118e76114c6565b6118ac565b6040516326cc3fab60e21b81526001600160a01b0383166004820152602490fd5b916000928392602083519301915af1604051903d6000833e1561192d5750565b3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141580611982575b61196a57565b604051634776242160e01b8152336004820152602490fd5b5030331415611964565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036119be57565b60405163e6fce6a560e01b8152336004820152602490fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d4548015610021576000808092368280373360601b3652818060143601925af13d82803e1561192d573d90f35b6001600160a01b03808216918215611a84577f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d49081549155167f06be9a1bea257286cf2afa8205ed494ca9d6a4b41aa58d04238deebada20fb0c600080a3565b60405163dd449f5f60e01b8152600490fd5b60209067ffffffffffffffff8111611aaf5760051b0190565b61175e610575565b6020918151811015611acc575b60051b010190565b611ad461172e565b611ac4565b6000198114611ae85760010190565b634e487b7160e01b600052601160045260246000fd5b611b1690602060405192828480945193849201610c63565b810103902090565b906002821015611b2b5752565b634e487b7160e01b600052602160045260246000fd5b60209093929193611b56816040810196611b1e565b0152565b9493929091946002821015611b2b5760018203611c05576000808751602089018488f4955b8615611bcf577f81d12fffced46c214dfae8ab8fa0b9f7b69f70c9d500e33f612f2105deb261ee91611bca611bbb6001600160a01b0393611afe565b96604051938493169583611b41565b0390a4565b7f3ddd038f78c876172d5dbfd730b14c9f8692dfa197ef104eaac6df3f85a0874a91611bca611bbb6001600160a01b0393611afe565b600080875160208901868589f195611b7f565b3561064c816106a1565b9497969391929795909560009887158015611d5e575b8015611d54575b8015611d4a575b611d1b576001978833148015611ceb575b6107335797969594939291906000985b808a10611c7a5750505050505050505050565b9091929394959697899b50611cdb888888611cd589869f8f81611cc0818e611cb98f968f97611cb36103e483611ccd9b611cc89b611745565b9c611745565b359861176d565b989094611745565b611c18565b9436916105fa565b91611eab565b9b01989796959493929190611c67565b506001600160a01b03611d146109d3336001600160a01b03166000526000602052604060002090565b1615611c57565b60405163470c355760e01b81526004810189905260248101919091526044810182905260648101869052608490fd5b5085821415611c46565b5081811415611c3f565b5080881415611c38565b6001600160a01b0381168015908115611ea0575b50611e7d57611da46112786109d3836001600160a01b03166000526000602052604060002090565b611e5a57600160009081526020527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844090611e5590611e21611e047fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d6109d3565b6112ef836001600160a01b03166000526000602052604060002090565b6001600090815260205261133a817fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d6112ef565b0390a1565b60405163b29d459560e01b81526001600160a01b03919091166004820152602490fd5b60405163cadb248f60e01b81526001600160a01b03919091166004820152602490fd5b600191501438611d7c565b939293611ebb5a86858585611b5a565b948515611f4e57611f23611f187f8c014e41cffd68ba64f3e7830b8b2e4ee860509d8deab25ebbcbba2f0405e2da956001600160a01b0395604051968796338852166020870152604086015260a0606086015260a0850190610c86565b916080840190611b1e565b0390a1337f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8600080a2565b50505050337facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375600080a2565b6001600160a01b03811615611fab5781600092918360208194519301915af1604051903d6000833e1561192d575190565b60405162461bcd60e51b815260206004820152601a60248201527f57726f6e67204d6f64756c6520536574757020416464726573730000000000006044820152606490fdfea26469706673582212205e35c32c65281399d0271586e25905b496a0e4ccfd6e3ff9ffae2c43380c16ac64736f6c634300081100330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d27890000"; + +// Will deploy V0.6 BICONOMY_FACTORY_ADDRESS to 0x000000a56Aaca3e9a4C479ea6b6CD0DbcB6634F5 +export const BICONOMY_FACTORY_CREATECALL: Hex = + "0xcdcb760a7c1c210c31a208eb08fc08fed957c699405ac0d6b07eb7864079be38bab0200d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000175b60c0346101445761171b906001600160401b0390601f38849003908101601f1916820190838211838310176100ea57808391604096879485528339810103126101445761006861005a602061005384610149565b9301610149565b6100633361015d565b61015d565b6001600160a01b03811615610100576080528151906104e690818301908111838210176100ea578291611235833903906000f080156100df5760a0525161109090816101a582396080518181816101ed015281816105a70152818161074601526107ef015260a05181818161039e0152610b7c0152f35b50513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b825162461bcd60e51b815260206004820152601d60248201527f696d706c656d656e746174696f6e2063616e6e6f74206265207a65726f0000006044820152606490fd5b600080fd5b51906001600160a01b038216820361014457565b600080546001600160a01b039283166001600160a01b03198216811783559216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe60806040526004361015610013575b600080fd5b60003560e01c80632e7a1a831461010357806331c884df146100fa5780633b3cb143146100f157806345171159146100e85780634a1ce599146100df578063715018a6146100d6578063743b1e03146100cd5780638da5cb5b146100c4578063b36f9705146100bb578063daf0dfc8146100b2578063df20ffbc146100a95763f2fde38b146100a157600080fd5b61000e6108a6565b5061000e61076a565b5061000e610725565b5061000e6106a1565b5061000e610679565b5061000e610533565b5061000e6104cb565b5061000e61045f565b5061000e6103c2565b5061000e61037d565b5061000e61031d565b5061000e61018c565b6001600160a01b0381160361000e57565b9181601f8401121561000e5782359167ffffffffffffffff831161000e576020838186019501011161000e57565b90606060031983011261000e576004356101648161010c565b916024359067ffffffffffffffff821161000e576101849160040161011d565b909160443590565b503461000e576102f66102dc6102d06101b16101a73661014b565b9392919091610b54565b6102c1610120916020926101c6848201610a8e565b90808252610bdb858301396040519461024a61025687610214888201956001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169087610a9e565b0394610228601f19968781018b528a610a5f565b8781519101209260405192839189830195869091604092825260208201520190565b03858101835282610a5f565b519020945190206040517fff000000000000000000000000000000000000000000000000000000000000009481019485523060601b6bffffffffffffffffffffffff191660018601526015850195909552603584015291929182605585015b03908101835282610a5f565b5190206001600160a01b031690565b6001600160a01b031690565b6040516001600160a01b0390911681529081906020820190565b0390f35b60005b83811061030d5750506000910152565b81810151838201526020016102fd565b503461000e57600036600319011261000e5761036f60406101208151906103476020820183610a5f565b8082526020820190610cfb8239825193849260208452518092816020860152858501906102fa565b601f01601f19168101030190f35b503461000e57600036600319011261000e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b506000604036600319011261045c576004356103dd8161010c565b816024359163ffffffff8316809303610458576001600160a01b0390610401610991565b169161040e8315156109e9565b823b1561045857602460405180948193621cb65b60e51b8352600483015234905af1801561044b575b61043f575080f35b61044890610a35565b80f35b610453610a81565b610437565b5080fd5b80fd5b503461000e576000602036600319011261045c57806001600160a01b036004356104888161010c565b610490610991565b1661049c8115156109e9565b803b156104c857819060046040518094819363bb9fe6bf60e01b83525af1801561044b5761043f575080f35b50fd5b503461000e5760008060031936011261045c576104e6610991565b806001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461000e57604036600319011261000e576004356105518161010c565b60243567ffffffffffffffff811161000e5761057190369060040161011d565b6101209161058160208401610a8e565b92808452610e1b60208501396105fe604051926105df846105d16001600160a01b0397887f0000000000000000000000000000000000000000000000000000000000000000169060208401610a9e565b03601f198101865285610a5f565b835160009460200185f092858416966105f9881515610b08565b610b54565b805183918161064c575b50506040519485946102f69416917f9a6cbf173278cf7dfadb45414d824f7828c0c94479f1b15e45453653070cf6579080a36001600160a01b031682526020820190565b8296945090602083920182855af193604051943d82873e1561067557935191936102f638610608565b3d85fd5b503461000e57600036600319011261000e5760206001600160a01b0360005416604051908152f35b503461000e576000604036600319011261045c576004356106c18161010c565b81602435916106cf8361010c565b6106d7610991565b6001600160a01b03809116926106ee8415156109e9565b833b156107215760249083604051958694859363611d2e7560e11b85521660048401525af1801561044b5761043f575080f35b8280fd5b503461000e57600036600319011261000e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461000e5761077c6101a73661014b565b9081519160208082019384209260405193846107a78385830193849091604092825260208201520190565b03946107bb601f1996878101835282610a5f565b519020610120946107cd848701610a8e565b95808752610f3b8588013961081860405191826102b56001600160a01b03998a7f00000000000000000000000000000000000000000000000000000000000000001690898401610a9e565b8051906000940184f591848316610830811515610abc565b8194518061087d575b50604051965086956102f69516917f8967dcaa00d8fcb9bb2b5beff4aaf8c020063512cf08fbe11fec37a1e3a150f29080a46001600160a01b031682526020820190565b82978380939750865af194604051953d82883e156108a2579451939485949338610839565b3d86fd5b503461000e57602036600319011261000e576004356108c48161010c565b6108cc610991565b6001600160a01b0380911680156109265760009182548273ffffffffffffffffffffffffffffffffffffffff198216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608490fd5b6001600160a01b036000541633036109a557565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b156109f057565b60405162461bcd60e51b815260206004820152601260248201527f496e76616c6964204550206164647265737300000000000000000000000000006044820152606490fd5b67ffffffffffffffff8111610a4957604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610a4957604052565b506040513d6000823e3d90fd5b90610a9c6040519283610a5f565b565b6020929190610ab48492828151948592016102fa565b019081520190565b15610ac357565b60405162461bcd60e51b815260206004820152601360248201527f437265617465322063616c6c206661696c6564000000000000000000000000006044820152606490fd5b15610b0f57565b60405162461bcd60e51b815260206004820152601260248201527f4372656174652063616c6c206661696c656400000000000000000000000000006044820152606490fd5b60a490610bd7929380604051958693631bc6fec760e11b60208601526001600160a01b0390817f000000000000000000000000000000000000000000000000000000000000000016602487015216604485015260606064850152816084850152848401376000838284010152601f80199101168101036084810184520182610a5f565b9056fe6080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c634300081100336080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c634300081100336080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c634300081100336080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c63430008110033a2646970667358221220cc3855215776915d9c3562b4380fe9fbf7afb53b9434cabc4802d531f12df64364736f6c6343000811003360808060405234610016576104ca908161001c8239f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c90816223de291461031b57816301ffc9a71461029457508063150b7a021461023d578063a3f4df7e146101d6578063bc197c811461014c578063f23a6e61146100f25763ffa1ad741461007157600080fd5b346100ee57816003193601126100ee578051918183019083821067ffffffffffffffff8311176100db57506100d793508152600582527f312e302e300000000000000000000000000000000000000000000000000000006020830152519182918261041a565b0390f35b634e487b7160e01b815260418552602490fd5b5080fd5b5090346101495760a03660031901126101495761010d6103a1565b506101166103c9565b506084359067ffffffffffffffff8211610149575060209261013a913691016103ec565b50505163f23a6e6160e01b8152f35b80fd5b5090346101495760a0366003190112610149576101676103a1565b506101706103c9565b5067ffffffffffffffff906044358281116100ee576101929036908601610463565b50506064358281116100ee576101ab9036908601610463565b505060843591821161014957506020926101c7913691016103ec565b50505163bc197c8160e01b8152f35b50346100ee57816003193601126100ee578051918183019083821067ffffffffffffffff8311176100db57506100d793508152601882527f44656661756c742043616c6c6261636b2048616e646c657200000000000000006020830152519182918261041a565b509034610149576080366003190112610149576102586103a1565b506102616103c9565b506064359067ffffffffffffffff82116101495750602092610285913691016103ec565b505051630a85bd0160e11b8152f35b83908534610317576020366003190112610317573563ffffffff60e01b81168091036103175760209250630271189760e51b8114908115610306575b81156102f6575b81156102e5575b5015158152f35b6301ffc9a760e01b149050836102de565b6223de2960e01b811491506102d7565b630a85bd0160e11b811491506102d0565b8280fd5b8385346100ee5760c03660031901126100ee576103366103a1565b5061033f6103c9565b5060443573ffffffffffffffffffffffffffffffffffffffff8116036100ee5767ffffffffffffffff9060843582811161039d5761038090369083016103ec565b505060a43591821161031757610398913691016103ec565b505080f35b8380fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103c457565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036103c457565b9181601f840112156103c45782359167ffffffffffffffff83116103c457602083818601950101116103c457565b6020808252825181830181905290939260005b82811061044f57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161042d565b9181601f840112156103c45782359167ffffffffffffffff83116103c4576020808501948460051b0101116103c45756fea2646970667358221220e22ad453b03efac358b2f092a996c1bf999c6cba4b1e5c7d1e917139d697fca764736f6c634300081100330000000000000000000000000000002512019dafb59528b82cb92d3c5d2423ac0000000000000000000000002cf491602ad22944d9047282abc00d3e52f56b370000000000"; + +// Will deploy V0.6 BICONOMY_DEFAULT_FALLBACK_HANDLER_ADDRESS to 0x0bBa6d96BD616BedC6BFaa341742FD43c60b83C1 +export const BICONOMY_DEFAULT_FALLBACK_HANDLER_CREATECALL: Hex = + "0xcdcb760a7c1c210c31a208eb08fc08fed957c699405ac0d6b07eb7864079be38bab0200d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000175b60c0346101445761171b906001600160401b0390601f38849003908101601f1916820190838211838310176100ea57808391604096879485528339810103126101445761006861005a602061005384610149565b9301610149565b6100633361015d565b61015d565b6001600160a01b03811615610100576080528151906104e690818301908111838210176100ea578291611235833903906000f080156100df5760a0525161109090816101a582396080518181816101ed015281816105a70152818161074601526107ef015260a05181818161039e0152610b7c0152f35b50513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b825162461bcd60e51b815260206004820152601d60248201527f696d706c656d656e746174696f6e2063616e6e6f74206265207a65726f0000006044820152606490fd5b600080fd5b51906001600160a01b038216820361014457565b600080546001600160a01b039283166001600160a01b03198216811783559216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe60806040526004361015610013575b600080fd5b60003560e01c80632e7a1a831461010357806331c884df146100fa5780633b3cb143146100f157806345171159146100e85780634a1ce599146100df578063715018a6146100d6578063743b1e03146100cd5780638da5cb5b146100c4578063b36f9705146100bb578063daf0dfc8146100b2578063df20ffbc146100a95763f2fde38b146100a157600080fd5b61000e6108a6565b5061000e61076a565b5061000e610725565b5061000e6106a1565b5061000e610679565b5061000e610533565b5061000e6104cb565b5061000e61045f565b5061000e6103c2565b5061000e61037d565b5061000e61031d565b5061000e61018c565b6001600160a01b0381160361000e57565b9181601f8401121561000e5782359167ffffffffffffffff831161000e576020838186019501011161000e57565b90606060031983011261000e576004356101648161010c565b916024359067ffffffffffffffff821161000e576101849160040161011d565b909160443590565b503461000e576102f66102dc6102d06101b16101a73661014b565b9392919091610b54565b6102c1610120916020926101c6848201610a8e565b90808252610bdb858301396040519461024a61025687610214888201956001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169087610a9e565b0394610228601f19968781018b528a610a5f565b8781519101209260405192839189830195869091604092825260208201520190565b03858101835282610a5f565b519020945190206040517fff000000000000000000000000000000000000000000000000000000000000009481019485523060601b6bffffffffffffffffffffffff191660018601526015850195909552603584015291929182605585015b03908101835282610a5f565b5190206001600160a01b031690565b6001600160a01b031690565b6040516001600160a01b0390911681529081906020820190565b0390f35b60005b83811061030d5750506000910152565b81810151838201526020016102fd565b503461000e57600036600319011261000e5761036f60406101208151906103476020820183610a5f565b8082526020820190610cfb8239825193849260208452518092816020860152858501906102fa565b601f01601f19168101030190f35b503461000e57600036600319011261000e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b506000604036600319011261045c576004356103dd8161010c565b816024359163ffffffff8316809303610458576001600160a01b0390610401610991565b169161040e8315156109e9565b823b1561045857602460405180948193621cb65b60e51b8352600483015234905af1801561044b575b61043f575080f35b61044890610a35565b80f35b610453610a81565b610437565b5080fd5b80fd5b503461000e576000602036600319011261045c57806001600160a01b036004356104888161010c565b610490610991565b1661049c8115156109e9565b803b156104c857819060046040518094819363bb9fe6bf60e01b83525af1801561044b5761043f575080f35b50fd5b503461000e5760008060031936011261045c576104e6610991565b806001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461000e57604036600319011261000e576004356105518161010c565b60243567ffffffffffffffff811161000e5761057190369060040161011d565b6101209161058160208401610a8e565b92808452610e1b60208501396105fe604051926105df846105d16001600160a01b0397887f0000000000000000000000000000000000000000000000000000000000000000169060208401610a9e565b03601f198101865285610a5f565b835160009460200185f092858416966105f9881515610b08565b610b54565b805183918161064c575b50506040519485946102f69416917f9a6cbf173278cf7dfadb45414d824f7828c0c94479f1b15e45453653070cf6579080a36001600160a01b031682526020820190565b8296945090602083920182855af193604051943d82873e1561067557935191936102f638610608565b3d85fd5b503461000e57600036600319011261000e5760206001600160a01b0360005416604051908152f35b503461000e576000604036600319011261045c576004356106c18161010c565b81602435916106cf8361010c565b6106d7610991565b6001600160a01b03809116926106ee8415156109e9565b833b156107215760249083604051958694859363611d2e7560e11b85521660048401525af1801561044b5761043f575080f35b8280fd5b503461000e57600036600319011261000e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461000e5761077c6101a73661014b565b9081519160208082019384209260405193846107a78385830193849091604092825260208201520190565b03946107bb601f1996878101835282610a5f565b519020610120946107cd848701610a8e565b95808752610f3b8588013961081860405191826102b56001600160a01b03998a7f00000000000000000000000000000000000000000000000000000000000000001690898401610a9e565b8051906000940184f591848316610830811515610abc565b8194518061087d575b50604051965086956102f69516917f8967dcaa00d8fcb9bb2b5beff4aaf8c020063512cf08fbe11fec37a1e3a150f29080a46001600160a01b031682526020820190565b82978380939750865af194604051953d82883e156108a2579451939485949338610839565b3d86fd5b503461000e57602036600319011261000e576004356108c48161010c565b6108cc610991565b6001600160a01b0380911680156109265760009182548273ffffffffffffffffffffffffffffffffffffffff198216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608490fd5b6001600160a01b036000541633036109a557565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b156109f057565b60405162461bcd60e51b815260206004820152601260248201527f496e76616c6964204550206164647265737300000000000000000000000000006044820152606490fd5b67ffffffffffffffff8111610a4957604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610a4957604052565b506040513d6000823e3d90fd5b90610a9c6040519283610a5f565b565b6020929190610ab48492828151948592016102fa565b019081520190565b15610ac357565b60405162461bcd60e51b815260206004820152601360248201527f437265617465322063616c6c206661696c6564000000000000000000000000006044820152606490fd5b15610b0f57565b60405162461bcd60e51b815260206004820152601260248201527f4372656174652063616c6c206661696c656400000000000000000000000000006044820152606490fd5b60a490610bd7929380604051958693631bc6fec760e11b60208601526001600160a01b0390817f000000000000000000000000000000000000000000000000000000000000000016602487015216604485015260606064850152816084850152848401376000838284010152601f80199101168101036084810184520182610a5f565b9056fe6080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c634300081100336080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c634300081100336080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c634300081100336080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c63430008110033a2646970667358221220cc3855215776915d9c3562b4380fe9fbf7afb53b9434cabc4802d531f12df64364736f6c6343000811003360808060405234610016576104ca908161001c8239f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c90816223de291461031b57816301ffc9a71461029457508063150b7a021461023d578063a3f4df7e146101d6578063bc197c811461014c578063f23a6e61146100f25763ffa1ad741461007157600080fd5b346100ee57816003193601126100ee578051918183019083821067ffffffffffffffff8311176100db57506100d793508152600582527f312e302e300000000000000000000000000000000000000000000000000000006020830152519182918261041a565b0390f35b634e487b7160e01b815260418552602490fd5b5080fd5b5090346101495760a03660031901126101495761010d6103a1565b506101166103c9565b506084359067ffffffffffffffff8211610149575060209261013a913691016103ec565b50505163f23a6e6160e01b8152f35b80fd5b5090346101495760a0366003190112610149576101676103a1565b506101706103c9565b5067ffffffffffffffff906044358281116100ee576101929036908601610463565b50506064358281116100ee576101ab9036908601610463565b505060843591821161014957506020926101c7913691016103ec565b50505163bc197c8160e01b8152f35b50346100ee57816003193601126100ee578051918183019083821067ffffffffffffffff8311176100db57506100d793508152601882527f44656661756c742043616c6c6261636b2048616e646c657200000000000000006020830152519182918261041a565b509034610149576080366003190112610149576102586103a1565b506102616103c9565b506064359067ffffffffffffffff82116101495750602092610285913691016103ec565b505051630a85bd0160e11b8152f35b83908534610317576020366003190112610317573563ffffffff60e01b81168091036103175760209250630271189760e51b8114908115610306575b81156102f6575b81156102e5575b5015158152f35b6301ffc9a760e01b149050836102de565b6223de2960e01b811491506102d7565b630a85bd0160e11b811491506102d0565b8280fd5b8385346100ee5760c03660031901126100ee576103366103a1565b5061033f6103c9565b5060443573ffffffffffffffffffffffffffffffffffffffff8116036100ee5767ffffffffffffffff9060843582811161039d5761038090369083016103ec565b505060a43591821161031757610398913691016103ec565b505080f35b8380fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103c457565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036103c457565b9181601f840112156103c45782359167ffffffffffffffff83116103c457602083818601950101116103c457565b6020808252825181830181905290939260005b82811061044f57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161042d565b9181601f840112156103c45782359167ffffffffffffffff83116103c4576020808501948460051b0101116103c45756fea2646970667358221220e22ad453b03efac358b2f092a996c1bf999c6cba4b1e5c7d1e917139d697fca764736f6c634300081100330000000000000000000000000000002512019dafb59528b82cb92d3c5d2423ac0000000000000000000000002cf491602ad22944d9047282abc00d3e52f56b370000000000"; + +/* ========= KERNEL ECDSA RELATED ========= */ + +// Will deploy V0.6 KERNEL_ECDSA_VALIDATOR to 0xd9AB5096a832b9ce79914329DAEE236f8Eea0390 +export const KERNEL_V06_ECDSA_VALIDATOR_V2_2_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060808060405234610016576104ee908161001c8239f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c80630c959556146101d557806320709efc1461019b578063333daf921461015b5780633a871cdd1461010d578381638fc925aa146100c85750639ea9bd591461006457600080fd5b346100c457806003193601126100c45761007c610296565b9160243567ffffffffffffffff81116100c057936100a08392602096369101610263565b5050338152808552205490516001600160a01b0392831691909216148152f35b8480fd5b8280fd5b92905060203660031901126101095780359067ffffffffffffffff8211610104576100f591369101610263565b50503382528160205281205580f35b505050fd5b5050fd5b50600319836060368301126101545783359167ffffffffffffffff831161015757610160908336030112610154575060209261014d916024359101610348565b9051908152f35b80fd5b5080fd5b5082346101545781600319360112610154576024359067ffffffffffffffff8211610154575060209261019461014d9236908301610263565b9135610464565b838234610157576020366003190112610157576020916001600160a01b03908290826101c5610296565b1681528085522054169051908152f35b509060203660031901126100c45780359067ffffffffffffffff821161025f5761020191369101610263565b6014116100c4573560601c90338352826020528220805490826bffffffffffffffffffffffff60a01b831617905560018060a01b0316337f381c0d11398486654573703c51ee8210ce9461764d133f9f0e53b6a5397053318480a480f35b8380fd5b9181601f840112156102915782359167ffffffffffffffff8311610291576020838186019501011161029157565b600080fd5b600435906001600160a01b038216820361029157565b903590601e1981360301821215610291570180359067ffffffffffffffff82116102915760200191813603831361029157565b92919267ffffffffffffffff918281116103325760405192601f8201601f19908116603f011684019081118482101761033257604052829481845281830111610291578281602093846000960137010152565b634e487b7160e01b600052604160045260246000fd5b600092916001600160a01b039084833583811690819003610157578152806020528260408220541693826020527b19457468657265756d205369676e6564204d6573736167653a0a33328252603c60042091846103be6101408401946103b86103b187876102ac565b36916102df565b906103ee565b1686146103e557506103b16103d793926103b8926102ac565b16036103df57565b60019150565b96505050505050565b60207f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a19392608060405193838301516040526040830151928360605260416000988995869485526060840151851a885210915114165afa508251923d1561045757606052604052565b638baa579f90526004601cfd5b3360009081526020819052604081205490936001600160a01b03918216939192836104996104933685876102df565b836103ee565b1685146104e6576104d7926103b8916020527b19457468657265756d205369676e6564204d6573736167653a0a33328752603c6004209236916102df565b16036104e05790565b50600190565b50505050509056"; + +// Will deploy V0.6 KERNEL_ACCOUNT_V2_2_LOGIC to 0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5 +export const KERNEL_V06_ACCOUNT_V2_2_LOGIC_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000061014034620001b757601f620021e238819003918201601f19168301916001600160401b03831184841017620001bc57808492602094604052833981010312620001b757516001600160a01b0381168103620001b757306080524660a05260a062000069620001d2565b600681526005602082016512d95c9b995b60d21b815260206200008b620001d2565b838152019264181719171960d91b845251902091208160c0528060e052604051917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83526020830152604082015246606082015230608082015220906101009182526101209081527f439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dd96a010000000000000000000080600160f01b031982541617905560405190611fef9283620001f3843960805183611a6a015260a05183611a8d015260c05183611aff015260e05183611b2501525182611a490152518181816104db0152818161079a015281816108a701528181610a3201528181610b5a01528181610d5401528181610e7501528181610f740152818161109e01528181611147015261148e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620001bc5760405256fe6080604052600436101561001d575b366110815761001b611ece565b005b60003560e01c806306fdde031461018d5780630b3dc35414610188578063150b7a02146101835780631626ba7e1461017e57806329f8b17414610179578063333daf921461017457806334fcd5be1461016f5780633659cfe61461016a5780633a871cdd146101655780633e1b08121461016057806351166ba01461015b578063519454471461015657806354fd4d501461015157806355b14f501461014c57806357b750471461014757806384b0196e1461014257806388e7fd061461013d578063b0d691fe14610138578063bc197c8114610133578063d087d2881461012e578063d1f5789414610129578063d5416221146101245763f23a6e610361000e57610fef565b610f5d565b610ec1565b610e42565b610db3565b610d3e565b610d09565b610c61565b610c2a565b610b44565b610af0565b6109eb565b610922565b61085e565b61081c565b610776565b610693565b61060e565b610466565b610413565b610386565b610307565b6102d3565b600091031261019d57565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101cb57604052565b6101a2565b606081019081106001600160401b038211176101cb57604052565b608081019081106001600160401b038211176101cb57604052565b604081019081106001600160401b038211176101cb57604052565b90601f801991011681019081106001600160401b038211176101cb57604052565b6040519061024f826101eb565b565b6040519061016082018281106001600160401b038211176101cb57604052565b6040519061027e82610206565b600682526512d95c9b995b60d21b6020830152565b919082519283825260005b8481106102bf575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161029e565b3461019d57600036600319011261019d576103036102ef610271565b604051918291602083526020830190610293565b0390f35b3461019d57600036600319011261019d576020600080516020611fcf8339815191525460501c6040519060018060a01b03168152f35b6001600160a01b0381160361019d57565b359061024f8261033d565b9181601f8401121561019d578235916001600160401b03831161019d576020838186019501011161019d57565b3461019d57608036600319011261019d576103a260043561033d565b6103ad60243561033d565b6064356001600160401b03811161019d576103cc903690600401610359565b5050604051630a85bd0160e11b8152602090f35b90604060031983011261019d5760043591602435906001600160401b03821161019d5761040f91600401610359565b9091565b3461019d57602061042c610426366103e0565b91611b5b565b6040516001600160e01b03199091168152f35b600435906001600160e01b03198216820361019d57565b65ffffffffffff81160361019d57565b60c036600319011261019d5761047a61043f565b602435906104878261033d565b604435906104948261033d565b6064356104a081610456565b608435936104ad85610456565b60a4356001600160401b03811161019d576104cc903690600401610359565b9590946001600160a01b0393337f00000000000000000000000000000000000000000000000000000000000000008616141580610604575b6105f25784926105396105659261052a61051c610242565b65ffffffffffff9094168452565b65ffffffffffff166020830152565b6001600160a01b03851660408201526001600160a01b038316606082015261056087611049565b61172b565b1693843b1561019d576040519063064acaab60e11b8252818061058f6000998a94600484016117de565b038183895af180156105ed576105d4575b5016906001600160e01b0319167fed03d2572564284398470d3f266a693e29ddfff3eba45fc06c5e91013d3213538480a480f35b806105e16105e7926101b8565b80610192565b386105a0565b611475565b604051637046c88d60e01b8152600490fd5b5030331415610504565b3461019d576020610627610621366103e0565b91611e13565b604051908152f35b9291926001600160401b0382116101cb5760405191610658601f8201601f191660200184610221565b82948184528183011161019d578281602093846000960137010152565b9080601f8301121561019d578160206106909335910161062f565b90565b60208060031936011261019d576001600160401b0360043581811161019d573660238201121561019d578060040135918083116101cb578260051b906040908151946106e187850187610221565b855285850191602480948601019436861161019d57848101935b86851061070b5761001b88611144565b843584811161019d5782016060602319823603011261019d57835191610730836101d0565b8782013561073d8161033d565b835260448201358b84015260648201359286841161019d576107678c94938a869536920101610675565b868201528152019401936106fb565b602036600319011261019d5760043561078e8161033d565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610812575b6105f257807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2005b50303314156107c3565b60031960603682011261019d57600435906001600160401b03821161019d5761016090823603011261019d576106276020916044359060243590600401611481565b3461019d57602036600319011261019d576004356001600160c01b0381169081900361019d57604051631aab3f0d60e11b815230600482015260248101919091526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156105ed57610303916000916108f4575b506040519081529081906020820190565b610915915060203d811161091b575b61090d8183610221565b810190611396565b386108e3565b503d610903565b3461019d57602036600319011261019d5761030361096761094161043f565b60006060604051610951816101eb565b8281528260208201528260408201520152611049565b60405190610974826101eb565b805465ffffffffffff80821684528160301c16602084015260601c60408301526001808060a01b03910154166060820152604051918291829190916060608082019365ffffffffffff80825116845260208201511660208401528160018060a01b0391826040820151166040860152015116910152565b608036600319011261019d57600435610a038161033d565b6044356001600160401b03811161019d57610a22903690600401610675565b90606435600281101561019d57337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580610ac5575b80610ab0575b6105f257610a75816110fa565b610a9e576000828193926020839451920190602435905af13d82803e15610a9a573d90f35b3d90fd5b6040516367ce775960e01b8152600490fd5b50610ac0610abc611c13565b1590565b610a68565b5030331415610a62565b60405190610adc82610206565b6005825264181719171960d91b6020830152565b3461019d57600036600319011261019d576103036102ef610acf565b90604060031983011261019d57600435610b258161033d565b91602435906001600160401b03821161019d5761040f91600401610359565b610b4d36610b0c565b90916001600160a01b03337f00000000000000000000000000000000000000000000000000000000000000008216141580610c20575b6105f25780600080516020611fcf8339815191525460501c1691610ba681611eff565b1692836040519360009586947fa35f5cdc5fbabb614b4cd5064ce5543f43dc8fab0e4da41255230eb8aba2531c8680a3813b15610c1c578385610bfa819593829463064acaab60e11b8452600484016117de565b03925af180156105ed57610c0c575080f35b806105e1610c19926101b8565b80f35b8380fd5b5030331415610b83565b3461019d57600036600319011261019d576020600080516020611fcf8339815191525460e01b6040519063ffffffff60e01b168152f35b3461019d57600036600319011261019d57610cb7610c7d610271565b610c85610acf565b90604051928392600f60f81b8452610ca960209360e08587015260e0860190610293565b908482036040860152610293565b90466060840152306080840152600060a084015282820360c08401528060605192838152019160809160005b828110610cf257505050500390f35b835185528695509381019392810192600101610ce3565b3461019d57600036600319011261019d576020600080516020611fcf8339815191525465ffffffffffff60405191831c168152f35b3461019d57600036600319011261019d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f8401121561019d578235916001600160401b03831161019d576020808501948460051b01011161019d57565b3461019d5760a036600319011261019d57610dcf60043561033d565b610dda60243561033d565b6001600160401b0360443581811161019d57610dfa903690600401610d83565b505060643581811161019d57610e14903690600401610d83565b505060843590811161019d57610e2e903690600401610359565b505060405163bc197c8160e01b8152602090f35b3461019d57600036600319011261019d57604051631aab3f0d60e11b8152306004820152600060248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156105ed57610303916000916108f457506040519081529081906020820190565b610eca36610b0c565b600080516020611fcf83398151915254919290916001600160a01b03919060501c8216610f4c57610efa81611eff565b1691823b1561019d57610f2f926000928360405180968195829463064acaab60e11b84526020600485015260248401916117bd565b03925af180156105ed57610f3f57005b806105e161001b926101b8565b60405162dc149f60e41b8152600490fd5b602036600319011261019d57610f7161043f565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580610fe5575b6105f257600080516020611fcf83398151915290815469ffffffffffff000000004260201b169160e01c9069ffffffffffffffffffff191617179055600080f35b5030331415610fa4565b3461019d5760a036600319011261019d5761100b60043561033d565b61101660243561033d565b6084356001600160401b03811161019d57611035903690600401610359565b505060405163f23a6e6160e01b8152602090f35b63ffffffff60e01b166000527f439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dda602052604060002090565b600061109781356001600160e01b031916611049565b5460601c337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806110eb575b6105f257818091368280378136915af43d82803e15610a9a573d90f35b506110f4611c13565b156110ce565b6002111561110457565b634e487b7160e01b600052602160045260246000fd5b805182101561112e5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806111d1575b6105f25780519060005b82811061118d57505050565b60008061119a838561111a565b5180516001600160a01b03166020916040838201519101519283519301915af13d6000803e156111cc57600101611181565b3d6000fd5b506111dd610abc611c13565b611177565b9060041161019d5790600490565b909291928360041161019d57831161019d57600401916003190190565b9060241161019d5760100190601490565b9060581161019d5760380190602090565b9060241161019d5760040190602090565b9060381161019d5760240190601490565b90600a1161019d5760040190600690565b9060101161019d57600a0190600690565b9093929384831161019d57841161019d578101920390565b6001600160e01b031990358181169392600481106112a857505050565b60040360031b82901b16169150565b91906101608382031261019d576112cc610251565b926112d68161034e565b8452602081013560208501526040810135916001600160401b039283811161019d5781611304918401610675565b6040860152606082013583811161019d5781611321918401610675565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e082013560e086015261010080830135908601526101208083013584811161019d5782611373918501610675565b90860152610140928383013590811161019d576113909201610675565b90830152565b9081602091031261019d575190565b606080825282516001600160a01b0316908201529193929160409161146b9060208101516080840152838101516113ea610160918260a08701526101c0860190610293565b9061145861140a606085015193605f1994858983030160c08a0152610293565b608085015160e088015260a085015192610100938489015260c08601519061012091828a015260e08701519461014095868b0152870151908901528501518488830301610180890152610293565b92015190848303016101a0850152610293565b9460208201520152565b6040513d6000823e3d90fd5b6001600160a01b039392917f00000000000000000000000000000000000000000000000000000000000000008516330361169f576004948535928361014481013501918760248401930135946114e06114da87866111e2565b9061128b565b926001600160e01b031980851691821561167c576114ff9036906112b7565b94611519600080516020611fcf8339815191525460e01b90565b1616156115315760405163fc2f51c560e01b81528a90fd5b97989697600160e01b810361162b575090602095966115bb61158961157061156b6114da87606460009901350160248782013591016111e2565b611049565b6001810154909a9081906001600160a01b0316986111f0565b995460d081901b6001600160d01b03191660709190911b65ffffffffffff60a01b1617995b8b61161d575b369161062f565b6101408501526115df604051998a9788968794633a871cdd60e01b865285016113a5565b0393165af19081156105ed57610690926000926115fd575b50611f4c565b61161691925060203d811161091b5761090d8183610221565b90386115f7565b348080808f335af1506115b4565b9095939190600160e11b0361166f576116656115bb946000936116606114da8a606460209c01350160248d82013591016111e2565b6117ef565b91999296916115ae565b5050505050505050600190565b9697505050505050506106909394508215611d47573434343486335af150611d47565b604051636b31ba1560e11b8152600490fd5b6bffffffffffffffffffffffff1990358181169392601481106116d357505050565b60140360031b82901b16169150565b3590602081106116f0575090565b6000199060200360031b1b1690565b6001600160d01b0319903581811693926006811061171c57505050565b60060360031b82901b16169150565b81516020830151604084015160309190911b6bffffffffffff0000000000001665ffffffffffff9290921691909117606091821b6bffffffffffffffffffffffff19161782559091015160019190910180546001600160a01b0319166001600160a01b0392909216919091179055565b90602091808252806000848401376000828201840152601f01601f1916010190565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206106909381815201916117bd565b91906117fb828261120d565b611804916116b1565b60601c93611812838361121e565b61181b916116e2565b605883016078820194858360580190611835918388611273565b61183e916116e2565b611848828761122f565b611851916116e2565b61185b8388611240565b611864916116b1565b60601c61187236878761062f565b8051602091820120604080517f3ce406685c1b3551d706d85a68afdaa49ac4e07b451ad9b8ff8b58c3ee9641769381019384526001600160e01b03198e169181019190915260608101949094526001600160a01b0392909216608084015260a080840192909252908252906118e860c082610221565b5190206118f490611a47565b9084019660788801611907918489611273565b9061191192611e13565b61191b828761122f565b6001600160a01b03199161192f91906116e2565b1661193991611f4c565b9660788688010196820360771901956119528382611251565b61195b916116ff565b60d01c926119698183611262565b611972916116ff565b60d01c916119808282611240565b611989916116b1565b60601c916119969161120d565b61199f916116b1565b60601c916119ab610242565b65ffffffffffff909516855265ffffffffffff1660208501526001600160a01b031660408401526001600160a01b031660608301526119e990611049565b906119f39161172b565b6001600160a01b03871691823b1561019d57611a29926000928360405180968195829463064acaab60e11b8452600484016117de565b03925af180156105ed57611a3a5750565b806105e161024f926101b8565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615611ad4575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f0000000000000000000000000000000000000000000000000000000000000000604082015246606082015230608082015220611ab5565b90611b669291611e13565b65ffffffffffff808260a01c16908115600114611bd1575b428360d01c11611bc15742911610611bb4576001600160a01b0316611ba857630b135d3f60e11b90565b6001600160e01b031990565b506001600160e01b031990565b506001600160e01b031992915050565b905080611b7e565b9081602091031261019d5751801515810361019d5790565b6001600160a01b0390911681526040602082018190526106909291019061179b565b611c1d3633611e7b565b611d4257611c366000356001600160e01b031916611049565b6001810154611c55906001600160a01b03165b6001600160a01b031690565b906001600160a01b03821615908115611d06575b8115611cdb575b5015611c7c5750600090565b60206040518092639ea9bd5960e01b82528180611c9d363360048401611bf1565b03915afa9081156105ed57600091611cb3575090565b610690915060203d8111611cd4575b611ccc8183610221565b810190611bd9565b503d611cc2565b54611cf5915065ffffffffffff165b65ffffffffffff1690565b65ffffffffffff4291161138611c70565b905065ffffffffffff611d26611cea835465ffffffffffff9060301c1690565b168015159081611d38575b5090611c69565b9050421138611d31565b600190565b9091611d5336836112b7565b610140928381013590601e198136030182121561019d5701938435946001600160401b03861161019d5760200193853603851361019d57611d9d6115b487611de5986020986111f0565b908301526000611dc7611c49600080516020611fcf8339815191525460501c60018060a01b031690565b9260405196879586948593633a871cdd60e01b8552600485016113a5565b03925af19081156105ed57600091611dfb575090565b610690915060203d811161091b5761090d8183610221565b600080516020611fcf833981519152546040805163199ed7c960e11b8152600481019390935260248301529092602092849260501c6001600160a01b03169183918291611e65916044840191906117bd565b03915afa9081156105ed57600091611dfb575090565b600080516020611fcf8339815191525460408051639ea9bd5960e01b81526001600160a01b039384166004820152602481019190915292602092849260501c169082908190611c9d90604483019061179b565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b600080516020611fcf83398151915280547fffff0000000000000000000000000000000000000000ffffffffffffffffffff1660509290921b600160501b600160f01b0316919091179055565b8082186001600160a01b031615600114611f67575050600190565b65ffffffffffff60a01b8181169265ffffffffffff60a01b1992831692811691908415611fc5575b81168015611fbe575b848110908518028085189414611fb6575b5081811190821802181790565b925038611fa9565b5080611f98565b93508093611f8f56fe439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dd90000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789"; + +// Will deploy V0.6 KERNEL_FACTORY_ADDRESS to 0x5de4839a76cf55d0c90e2061ef4386d962E15ae3 +export const KERNEL_V06_FACTORY_CREATECALL: Hex = + "0x00000000000000000000000000000000000000000000000000000000000000006080346100b257601f610b2d38819003918201601f19168301916001600160401b038311848410176100b75780849260409485528339810103126100b25780516001600160a01b0391828216918290036100b257602001519182168092036100b25780638b78c6d8195560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3600080546001600160a01b031916919091179055604051610a5f90816100ce8239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6040608081526004908136101561001557600080fd5b600091823560e01c9081630396cb60146107d45781632569296214610789578163296601cd1461059d5781634d6cb7001461052b5781635414dff0146104fa57816354d1f13d146104b4578163584465f2146104745781636544c82814610436578163715018a6146103f05781638da5cb5b146103c3578163b0d691fe1461039b578163bb30a9741461034557838263bb9fe6bf146102ec578263c23a5cea1461026157508163d7533f0214610243578163db4c545e14610219578163f04e283e14610199578163f2fde38b1461012c575063fee81cf4146100f657600080fd5b3461012857602036600319011261012857602091610112610845565b9063389a75e1600c525281600c20549051908152f35b5080fd5b8390602036600319011261012857610142610845565b9061014b61088e565b8160601b1561018e575060018060a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a35580f35b637448fbae8352601cfd5b83906020366003190112610128576101af610845565b906101b861088e565b63389a75e1600c528183526020600c20908154421161020e575082905560018060a01b0316638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a35580f35b636f5e88188452601cfd5b5050346101285781600319360112610128576020906089601361023a6108d8565b01209051908152f35b505034610128578160031936011261012857602090516202a3008152f35b809184346102e85760203660031901126102e85781356001600160a01b0381811693918490036102e45761029361088e565b84541692833b156102e45760248592838551968794859363611d2e7560e11b85528401525af19081156102db57506102c85750f35b6102d190610a13565b6102d85780f35b80fd5b513d84823e3d90fd5b8480fd5b5050fd5b809184346102e857826003193601126102e85761030761088e565b82546001600160a01b031691823b1561034057815163bb9fe6bf60e01b81529284918491829084905af19081156102db57506102c85750f35b505050fd5b50503461012857806003193601126101285761035f610845565b90602435918215158093036103975761037661088e565b60018060a01b03168352600160205282209060ff8019835416911617905580f35b8380fd5b505034610128578160031936011261012857905490516001600160a01b039091168152602090f35b505034610128578160031936011261012857638b78c6d8195490516001600160a01b039091168152602090f35b83806003193601126102d85761040461088e565b80638b78c6d8198181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35580f35b5050346101285760203660031901126101285760209160ff9082906001600160a01b03610461610845565b1681526001855220541690519015158152f35b83903461012857602036600319011261012857356001600160a01b03811690819003610128576104a261088e565b81546001600160a01b03191617815580f35b83806003193601126102d85763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b8284346102d85760203660031901126102d8575061051a602092356108ab565b90516001600160a01b039091168152f35b8284346102d857816003193601126102d85782359067ffffffffffffffff82116102d857506bffffffffffffffffffffffff61056f60209461051a93369101610860565b6105948580518381948a830196873781016024358a8201520388810184520182610a3d565b519020166108ab565b828460603660031901126102d8576105b3610845565b9160243567ffffffffffffffff8111610785576105d39036908601610860565b9360018060a01b039384821681526020966001885260ff858320541615610730576bffffffffffffffffffffffff8551898101908987833761062988828d8d82019060443590820152038d810184520182610a3d565b5190201696331560011715610724576106406108d8565b90601382019860898a2060ff86536035523060601b600152806015526055852099856035528a3b15610678575b8b8b8b8b5191168152f35b856089929394959697989b50f597881561071857918185939284938884527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8d85015289840137870190348a5af1156106fe57507f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec20818692a3848080808080808061066d565b3d1561070d57503d81803e3d90fd5b63301164258252601cfd5b8363301164258652601cfd5b50632f6348368252601cfd5b845162461bcd60e51b8152908101889052602960248201527f4b65726e656c466163746f72793a20696d706c656d656e746174696f6e206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608490fd5b8280fd5b83806003193601126102d85763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b91905060203660031901126107855782823563ffffffff8116809103610128576107fc61088e565b81546001600160a01b031693843b156107855760249084519586938492621cb65b60e51b845283015234905af19081156102db5750610839575080f35b61084290610a13565b80f35b600435906001600160a01b038216820361085b57565b600080fd5b9181601f8401121561085b5782359167ffffffffffffffff831161085b576020838186019501011161085b57565b638b78c6d81954330361089d57565b6382b429006000526004601cfd5b608960136108b76108d8565b012060ff6000536035523060601b6001526015526055600020906000603552565b604051903060701c1561097c57666052573d6000fd607b8301527f3d356020355560408036111560525736038060403d373d3d355af43d6000803e60748301527f3735a920a3ca505d382bbc545af43d6000803e6052573d6000fd5b3d6000f35b60548301527f14605757363d3d37363d7f360894a13ba1a3210667c828492db98dca3e2076cc60348301523060148301526c607f3d8160093d39f33d3d33738252565b66604c573d6000fd60758301527f3d3560203555604080361115604c5736038060403d373d3d355af43d6000803e606e8301527f3735a920a3ca505d382bbc545af43d6000803e604c573d6000fd5b3d6000f35b604e8301527f14605157363d3d37363d7f360894a13ba1a3210667c828492db98dca3e2076cc602e83015230600e8301526c60793d8160093d39f33d3d336d8252565b67ffffffffffffffff8111610a2757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610a2757604052560000000000000000000000009775137314fe595c943712b0b336327dfa80ae8a0000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789"; + +// Will deploy V0.7 KERNEL_ECDSA_VALIDATOR to 0x8104e3Ad430EA6d354d013A6789fDFc71E671c43 +export const KERNEL_V07_ECDSA_VALIDATOR_V3_CREATECALL: Hex = + "0x00000000000000000000000000000000000000000000000000000000000000006080806040523461001657610740908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600090813560e01c90816320709efc14610459575080636d61fe70146103a05780638a91b0e31461032e57806397003203146102e8578063aacbd72a1461028e578063d60b347f14610240578063d68f602514610124578063ecd05961146100e55763f551e2ee1461008757600080fd5b346100e25760603660031901126100e2576100a0610490565b506044359067ffffffffffffffff82116100e257506100c76020936100d0923691016104ab565b9060243561060a565b90516001600160e01b03199091168152f35b80fd5b50919034610120576020366003190112610120576020925081359160018314928315610116575b5050519015158152f35b149150388061010c565b8280fd5b509160603660031901126101205761013a610490565b9267ffffffffffffffff6044358181116101205761015b90369085016104ab565b505033825260208281528483205490956001600160a01b039182169116036101f157835192858401918211848310176101de575083949291945283815282519382859384528251928382860152825b8481106101c857505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016101aa565b634e487b7160e01b835260419052602482fd5b835162461bcd60e51b8152808401869052602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608490fd5b50903461028a57602036600319011261028a57602090610281610261610490565b6001600160a01b0390811660009081526020819052604090205416151590565b90519015158152f35b5080fd5b5082606036600319011261028a5767ffffffffffffffff9080358281116102e4576102bc90369083016104ab565b50506024358015150361012057604435918211610120576102df913691016104ab565b505080f35b8380fd5b506003199082823601126100e25783359167ffffffffffffffff831161028a576101209083360301126100e25750602092610327916024359101610542565b9051908152f35b5091602036600319011261012057803567ffffffffffffffff81116102e45761035a90369083016104ab565b5050336000908152602081905260409020546001600160a01b03161561038a575081903382528160205281205580f35b602491519063f91bd6f160e01b82523390820152fd5b5091602036600319011261012057803567ffffffffffffffff81116102e4576103cc90369083016104ab565b33600090815260208190526040902054919290916001600160a01b03166104425750601411610120573560601c90338352826020528220816bffffffffffffffffffffffff60a01b825416179055337fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca8380a380f35b6024908451906393360fbf60e01b82523390820152fd5b90508234610120576020366003190112610120576020926001600160a01b03919082610483610490565b1681528085522054168152f35b600435906001600160a01b03821682036104a657565b600080fd5b9181601f840112156104a65782359167ffffffffffffffff83116104a657602083818601950101116104a657565b92919267ffffffffffffffff9182811161052c5760405192601f8201601f19908116603f011684019081118482101761052c576040528294818452818301116104a6578281602093846000960137010152565b634e487b7160e01b600052604160045260246000fd5b3360009081526020819052604081205490926001600160a01b03918216926101008101359036819003601e1901821215610606570180359067ffffffffffffffff82116106065760200191813603831361060657836105ab6105a53685876104d9565b836106a2565b1685146105fe576105ef926105e9916020527b19457468657265756d205369676e6564204d6573736167653a0a33328752603c6004209236916104d9565b906106a2565b16036105f85790565b50600190565b505050505090565b8580fd5b919033600052600060205260018060a01b0391826040600020541693836106356105a53685876104d9565b16851461069157610674926105e9916020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c6004209236916104d9565b160361068557630b135d3f60e11b90565b6001600160e01b031990565b50630b135d3f60e11b949350505050565b919091602060016080600082948390604080998151986106e0575b5050505afa51923d156106d257600060605252565b638baa579f6000526004601cfd5b8492835287808201518352828251146107205760418251146107095750505090503888816106bd565b60609384830151901a9052015190523888816106bd565b9250015190601b8260ff1c019052848060ff1b03166060523888816106bd56"; + +// Will deploy V0.7 KERNEL_ACCOUNT_V3_LOGIC to 0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27 +export const KERNEL_V07_ACCOUNT_V3_LOGIC_CREATECALL: Hex = + "0x0000000000000000000000000000000000000000000000000000000000000000610140346200020957601f6200520c38819003918201601f191683019291906001600160401b038411838510176200020e5781602092849260409687528339810103126200020957516001600160a01b03811681036200020957306080524660a05260a08251620000708162000224565b60068152600a602082016512d95c9b995b60d21b815260208651620000958162000224565b838152019269302e332e302d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b825260048152620001208162000224565b5190516001600160581b031991828216919060158110620001f3575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b03198254161790555190614fcb928362000241843960805183614093015260a051836140b6015260c05183614128015260e0518361414e0152518261407201525181818161047a0152818161079e0152818161095401528181610cec01528181611053015281816111c2015281816112220152818161174a015281816118b901526121180152f35b8391925060150360031b1b16168038806200013c565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176200020e5760405256fe6080604052600436101561001d575b366128595761001b612828565b005b60003560e01c8063112d3a7d146101bd57806312af322c146101b85780631626ba7e146101b357806319822f7c146101ae5780631f1b92e3146101a95780633659cfe6146101a457806357b3a5f41461019f5780636e6fa0c61461019a578063721e67f41461019557806384b0196e146101905780638dd7712f1461018b57806390ef8862146101865780639198bdf5146101815780639517e29f1461017c5780639cfd7cff14610177578063a65d69d414610172578063a71763a81461016d578063adb610a314610168578063b8afe17d14610163578063c3e589781461015e578063d03c791414610159578063d691c96414610154578063e6f3d50a1461014f578063e9ae5c531461014a578063f1f7f0f9146101455763f2dc691d0361000e576119ec565b6119b4565b611888565b6116cf565b6115c0565b61150f565b611433565b611351565b61131d565b6111f1565b6111ac565b61114e565b611022565b610f1b565b610dca565b610cb6565b610c14565b610b68565b610b0b565b610a5d565b610914565b61075c565b61043c565b6103dc565b610289565b610251565b6001600160a01b038116036101d357565b600080fd5b35906101e3826101c2565b565b9181601f840112156101d3578235916001600160401b0383116101d357602083818601950101116101d357565b60606003198201126101d3576004359160243561022e816101c2565b91604435906001600160401b0382116101d35761024d916004016101e5565b9091565b346101d357602061026d61026436610212565b92919091611bec565b6040519015158152f35b6001600160581b03198116036101d357565b346101d35760803660031901126101d3576004356102a681610277565b6024356102b2816101c2565b6001600160401b03906044358281116101d3576102d39036906004016101e5565b90926064359081116101d3576102ed9036906004016101e5565b9390926001600160581b031961032d81610326610319600080516020614fab8339815191525460581b90565b6001600160581b03191690565b1615611cb6565b8616156103ca576001600160f81b03198616600160f81b81141590816103bb575b506103a9578561036061001b976129b9565b61038161036b610eea565b60018152925b6001600160a01b03166020840152565b600080516020614fab833981519152805463ffffffff60a81b1916600160a81b179055612a14565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861034e565b604051631a0a9b9f60e21b8152600490fd5b346101d35760403660031901126101d3576024356001600160401b0381116101d35761041a61041160209236906004016101e5565b90600435611dd1565b6040516001600160e01b03199091168152f35b90816101209103126101d35790565b60603660031901126101d357600480356001600160401b0381116101d357610467903690830161042d565b60243590604435906001600160a01b03907f000000000000000000000000000000000000000000000000000000000000000082163303610727578084926104b16020830135612d80565b6001600160f81b0319909116159590939091866106fd575b90846104d59392612f65565b956104e76104e284611b7a565b611efe565b94159485806106bb575b6106aa57602001516001600160a01b031691821690811561069957600192610526610545926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036105f8578261059a575b5050610589576105739250805b610577575b506040519081529081906020820190565b0390f35b3490349034903490335af15038610562565b604051631a0a9b9f60e21b81528390fd5b6105f192506105ed916105cf6105c96105c36105b86105e695611bb3565b936060810190611f2a565b90611a1b565b90611b4e565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b3880610550565b82919291610666575b50610655576105c3816060610617930190611f2a565b638dd7712f60e01b916001600160e01b03199161063391611b4e565b16036106445761057392508061055d565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61069391506105e661067a6105ed92611bb3565b6105cf6105c961068d6060880188611f2a565b90611a0a565b38610601565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff6106f56106ec600080516020614fab8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b9116106104f1565b9350906104d59161071d600080516020614fab8339815191525460581b90565b94909192506104c9565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff821682036101d357565b359063ffffffff821682036101d357565b60203660031901126101d357610770610738565b61079261078c600080516020614fab8339815191525460581b90565b60581c90565b6001600160a01b0390337f0000000000000000000000000000000000000000000000000000000000000000831614158061090a575b156108ff5760405163ecd0596160e01b8152600480820152911690602081602481855afa908115610890576000916108d0575b50156108be5760405163d68f602560e01b8152916000838061082136343360048501611fed565b038183865af192831561089057600093610895575b506108409061310c565b803b156101d357604051635565eb9560e11b815291600091839182908490829061086d9060048301612029565b03925af180156108905761087d57005b8061088a61001b92610e44565b80610bc1565b611dc5565b6108409193506108b7903d806000833e6108af8183610ec9565b810190611f8f565b9290610836565b6040516348f5c3ed60e01b8152600490fd5b6108f2915060203d6020116108f8575b6108ea8183610ec9565b810190611f5c565b386107fa565b503d6108e0565b505061001b9061310c565b50303314156107c7565b60203660031901126101d35760043561092c816101c2565b61094861078c600080516020614fab8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610a41575b15610a365760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561089057600091610a17575b50156108be5760405163d68f602560e01b815291600083806109d736343360048501611fed565b038183865af1928315610890576000936109f6575b5061084090612054565b610840919350610a10903d806000833e6108af8183610ec9565b92906109ec565b610a30915060203d6020116108f8576108ea8183610ec9565b386109b0565b505061001b90612054565b503033141561097d565b6001600160e01b03198116036101d357565b346101d35760203660031901126101d357610573610a9f600435610a8081610a4b565b600060408051610a8f81610e5c565b8281528260208201520152611cf8565b60405190610aac82610e5c565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b346101d35760403660031901126101d357602060ff610b5c600435610b2f81610277565b610b4460243591610b3f83610a4b565b611bb3565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b346101d35760203660031901126101d3576020610b9e600435610b8a816101c2565b6000604051610b9881610e77565b52612992565b60405190610bab82610e77565b546001600160a01b031690819052604051908152f35b60009103126101d357565b60005b838110610bdf5750506000910152565b8181015183820152602001610bcf565b90602091610c0881518092818552858086019101610bcc565b601f01601f1916010190565b346101d35760003660031901126101d357610c63610c306131ec565b90604051928392600f60f81b8452610c5560209360e0602087015260e0860190610bef565b908482036040860152610bef565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610c9f57505050500390f35b835185528695509381019392810192600101610c90565b60403660031901126101d3576004356001600160401b0381116101d357610ce190369060040161042d565b6001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036108be576060906001610d3e610d316024356000526000602052604060002090565b546001600160a01b031690565b93841614159081610d9a575b610d65610d5e826060610d6c940190611f2a565b8091611a29565b9030613338565b92909115610d7d5761001b9361335f565b5091505015610d8857005b60405163f21e646b60e01b8152600490fd5b9150610d6c610d65610d5e610dc0610db8610d5e6060880188611f2a565b9034896132b6565b9492505050610d4a565b346101d35760003660031901126101d357602063ffffffff600080516020614fab8339815191525460c81c16604051908152f35b9181601f840112156101d3578235916001600160401b0383116101d3576020808501948460051b0101116101d357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610e5757604052565b610e2e565b606081019081106001600160401b03821117610e5757604052565b602081019081106001600160401b03821117610e5757604052565b604081019081106001600160401b03821117610e5757604052565b61012081019081106001600160401b03821117610e5757604052565b90601f801991011681019081106001600160401b03821117610e5757604052565b604051906101e382610e92565b604051906101e382610ead565b6001600160401b038111610e575760051b60200190565b60803660031901126101d3576001600160401b036004358181116101d357610f47903690600401610dfe565b906024358381116101d357366023820112156101d3578060040135610f6b81610f04565b91604091610f7c6040519485610ec9565b8084526020906024602086019160061b840101923684116101d357602401905b838210610fe45750505050506044358481116101d357610fc0903690600401610dfe565b916064359586116101d357610fdc61001b963690600401610dfe565b9590946120e9565b84823603126101d3578285918251610ffb81610e92565b6110048561074b565b815282850135611013816101c2565b83820152815201910190610f9c565b61102b36610212565b61104761078c600080516020614fab8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611144575b156111385760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561089057600091611119575b50156108be5760405163d68f602560e01b815293600085806110d736343360048501611fed565b038183885af1948515610890576000956110f8575b506108409394956122a5565b610840949550611112903d806000833e6108af8183610ec9565b94936110ec565b611132915060203d6020116108f8576108ea8183610ec9565b386110b0565b50509161001b936122a5565b503033141561107c565b346101d35760003660031901126101d35761057360405161116e81610e92565b601b81527f6b65726e656c2e616476616e6365642e76302e332e302d6265746100000000006020820152604051918291602083526020830190610bef565b346101d35760003660031901126101d3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6111fa36610212565b61121661078c600080516020614fab8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611313575b156113075760405163ecd0596160e01b815260048082015291169290602081602481875afa908115610890576000916112e8575b50156108be5760405163d68f602560e01b815293600085806112a636343360048501611fed565b038183885af1948515610890576000956112c7575b50610840939495612584565b6108409495506112e1903d806000833e6108af8183610ec9565b94936112bb565b611301915060203d6020116108f8576108ea8183610ec9565b3861127f565b50509161001b93612584565b503033141561124b565b346101d35760003660031901126101d357602063ffffffff600080516020614fab8339815191525460a81c16604051908152f35b346101d35760203660031901126101d357604061138160043561137381610277565b61137b612720565b50611b7a565b602082519161138f83610e92565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611415575050505090565b83516001600160501b03191685529381019392810192600101611407565b346101d3576020806003193601126101d35760043561145181610a4b565b611476604091606083805161146581610e5c565b600081526000878201520152611d30565b9080519161148383610e5c565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106114ed576105738888886114df818e0382610ec9565b8183015251918291826113bb565b845460501b6001600160501b03191689529788019793830193908301906114c6565b346101d35760203660031901126101d357602061026d600435612739565b9060406003198301126101d35760043591602435906001600160401b0382116101d35761024d916004016101e5565b6020808201906020835283518092526040830192602060408460051b8301019501936000915b8483106115925750505050505090565b90919293949584806115b0600193603f198682030187528a51610bef565b9801930193019194939290611582565b6115c93661152d565b916001600160a01b036115db33612992565b54169283156116bd57606090600185141593846116a6575b6115fd92936139ed565b91611611575b60405180610573848261155c565b60405161163381611625856020830161155c565b03601f198101835282610ec9565b833b156101d3576116839361166a6000809460405197889586948593635565eb9560e11b8552606060048601526064850190610bef565b6001602485015283810360031901604485015290610bef565b03925af1918215610890576105739215611603576116a090610e44565b38611603565b6115fd92506116b6363488613232565b92506115f3565b60405163710c949760e01b8152600490fd5b60603660031901126101d35760048035906116e982610277565b6001600160401b03916024358381116101d35761170990369084016101e5565b936044359081116101d35761172190369085016101e5565b9061173e61078c600080516020614fab8339815191525460581b90565b6001600160a01b0390337f0000000000000000000000000000000000000000000000000000000000000000831614158061187e575b1561186e57169560405163ecd0596160e01b81526020818061179c8a8201906004602083019252565b03818b5afa9081156108905760009161184f575b501561183e5760405163d68f602560e01b815293600085806117d63634338d8501611fed565b0381838c5af19485156108905760009561181f575b506117f694956127fb565b823b156101d35761086d9260009283604051809681958294635565eb9560e11b84528301612029565b6117f69550611838903d806000833e6108af8183610ec9565b946117eb565b6040516348f5c3ed60e01b81528690fd5b611868915060203d6020116108f8576108ea8183610ec9565b386117b0565b50509261001b95929194506127fb565b5030331415611773565b6118913661152d565b6118ad61078c600080516020614fab8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806119aa575b1561199e5760405163ecd0596160e01b815260048082015291169190602081602481865afa9081156108905760009161197f575b50156108be5760405163d68f602560e01b8152926000848061193d36343360048501611fed565b038183875af19384156108905760009461195e575b50610840929394612810565b610840939450611978903d806000833e6108af8183610ec9565b9392611952565b611998915060203d6020116108f8576108ea8183610ec9565b38611916565b50509061001b92612810565b50303314156118e2565b346101d35760003660031901126101d3576020600080516020614fab8339815191525460581b604051906001600160581b0319168152f35b346101d35760203660031901126101d357602061026d60043561281b565b906008116101d35760040190600490565b906004116101d35790600490565b90929192836004116101d35783116101d357600401916003190190565b906018116101d35760040190601490565b906014116101d35790601490565b906020116101d35790602090565b90929192836001116101d35783116101d357600101916000190190565b90929192836014116101d35783116101d357601401916013190190565b906016116101d35790601690565b906016116101d35760020190601490565b90929192836016116101d35783116101d357601601916015190190565b906002116101d35790600290565b906009116101d35760010190600890565b90929192836009116101d35783116101d357600901916008190190565b90602c116101d35760180190601490565b909392938483116101d35784116101d3578101920390565b6001600160e01b03199035818116939260048110611b6b57505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611c3b57506001600160a01b0392611c359250611c25915060581b600160581b600160f81b0316600160f81b17611b7a565b5460201c6001600160a01b031690565b16151590565b60028103611c6e57506001600160a01b0392611c359250611c629150610d31908416612992565b6001600160a01b031690565b600303611cae57611c8f611c8a6105c9600193611c9d95611a1b565b611cf8565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611cbd57565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126101d35751611d7d81610a4b565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611d7d949260609260018060a01b0316825260208201528160408201520191611d80565b6040513d6000823e3d90fd5b91611ddb91612c05565b91906001600160f81b031980831615611edd575b6001600160a01b039081611e08611c62611c2587611b7a565b16156103ca578316600160f81b03611e8d57906020939291611e2c611e4a96612d37565b604051637aa8f17760e11b8152968795869485933360048601611da1565b039260581c165afa90811561089057600091611e64575090565b611d7d915060203d602011611e86575b611e7e8183610ec9565b810190611d68565b503d611e74565b509060081b92600160f11b611ebb611eae611ea787611d30565b5460f01b90565b6001600160f01b03191690565b16611ecb57611d7d933390612c86565b604051635b71057960e01b8152600490fd5b9150611ef8600080516020614fab8339815191525460581b90565b91611def565b90604051611f0b81610e92565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e19813603018212156101d357018035906001600160401b0382116101d3576020019181360383136101d357565b908160209103126101d3575180151581036101d35790565b6001600160401b038111610e5757601f01601f191660200190565b6020818303126101d3578051906001600160401b0382116101d3570181601f820112156101d3578051611fc181611f74565b92611fcf6040519485610ec9565b818452602082840101116101d357611d7d9160208085019101610bcc565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b61203d602092606083526060830190610bef565b906001838201526040818303910152600081520190565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b906040516120b581610e5c565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b9592949193909461210c61078c600080516020614fab8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612259575b156122495760405163ecd0596160e01b8152600480820152911695906020816024818a5afa9081156108905760009161222a575b50156108be5760405163d68f602560e01b8152966000888061219c36343360048501611fed565b0381838b5af197881561089057600098612209575b506121bd969798613428565b803b156101d357604051635565eb9560e11b81529160009183918290849082906121ea9060048301612029565b03925af18015610890576121fc575b50565b8061088a6101e392610e44565b6121bd979850612223903d806000833e6108af8183610ec9565b97966121b1565b612243915060203d6020116108f8576108ea8183610ec9565b38612175565b505091939092946101e396613428565b5030331415612141565b916020611d7d938181520191611d80565b6bffffffffffffffffffffffff19903581811693926014811061229657505050565b60140360031b82901b16169150565b9290916001840361234b576101e3935061230e6122f7611c626122f16122eb6122e4600080516020614fab8339815191525463ffffffff9060a81c1690565b9686611a57565b90612274565b60601c90565b610371612302610eea565b63ffffffff9095168552565b603480820135820160148181013595918301948482013590940190810135939201919060581b600160581b600160f81b0316600160f81b17612a14565b919092600281146000146123ad57509161239e6101e393612383611c626122f16122eb60148801358801966034890135890198611a57565b928391601482013591603401906001600160a01b03166136af565b603460148301359201906135e2565b9091906003810361242d5750612428611c626124186101e3958461241360186122f197013582016122f160388401358401996123ec6105c98787611a1b565b9061240d611c626123fd8989611a46565b6018880135976038019691612274565b91613496565b611a46565b6018860135956038019491612274565b6135e2565b9091906004810361246e57506001600160a01b031691823b156101d3576121ea92600092836040518096819582946306d61fe760e41b845260048401612263565b600581036124ac57506001600160a01b031691823b156101d3576121ea92600092836040518096819582946306d61fe760e41b845260048401612263565b6006036124e8576001600160a01b031691823b156101d3576121ea92600092836040518096819582946306d61fe760e41b845260048401612263565b604051631092ef5760e11b8152600490fd5b6040519061250782610e77565b60008252565b35906020811061251b575090565b6000199060200360031b1b1690565b91906040519061253982610e77565b819360008352116101d35760206000910152565b92919261255982611f74565b916125676040519384610ec9565b8294818452818301116101d3578281602093846000960137010152565b929190600184036125ae576121f9935060581b600160581b600160f81b0316600160f81b176138a1565b600284036125c9576121f993506001600160a01b0316613857565b909190600384036125f857506121f9925080806125ec6105c96125f29486611a1b565b93611a29565b916137fd565b91926004810361267e57506121f99261264b91612624600080516020614fab8339815191525460581b90565b612630611c2582611b7a565b6001600160a01b03868116911614612651575b50369161254d565b9061374e565b61265d61267891611b7a565b8054640100000000600160c01b031916640100000000179055565b38612643565b600581036127015750600080516020614fab8339815191525460581b5b6126ae6126a88386611a65565b9061250d565b906001600160f81b03198116600160f91b146126d6575b50506121f99261264b91369161254d565b60081b6001600160e01b031916146126ef5738806126c5565b6040516313002bdd60e31b8152600490fd5b6006036124e857600080516020614fab8339815191525460581b61269b565b6040519061272d82610e92565b60006020838281520152565b61274d818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816127f1575b816127e6575b816127d7575b506127cd57169081141590816127c3575b506127bc576001600160e01b0319166127b6576001600160501b0319166127b157600190565b600090565b50600090565b5050600090565b905015153861278b565b5050505050600090565b607f60f91b141590503861277a565b838114159150612774565b801515915061276e565b9161280b916101e39594936138a1565b613b57565b906121f992916139ed565b600711156127b157600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6128766128716000356001600160e01b031916611cf8565b6120a8565b80516001600160a01b03908116918260008161289e57604051631cd4b64760e21b8152600490fd5b5060016060940361297c575b5060408101516001600160f81b03199081168061293257505060208101516001936128fb939290916128e4906001600160a01b0316613bb4565b9290929586939586935b516001600160a01b031690565b94851603612920575b505050501560001461291857602081519101fd5b602081519101f35b6129299361335f565b38828282612904565b9192910361296a5760208201516001936128fb93909161295c906001600160a01b03163690613311565b9290929586939586936128ee565b604051632d6a6bb760e01b8152600490fd5b61298b91935036903490613232565b91386128aa565b6001600160a01b03166000908152600080516020614f8b8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae8891600080516020614fab8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612a2f612a2584611b7a565b5463ffffffff1690565b93600080516020614fab83398151915294612a52865463ffffffff9060a81c1690565b63ffffffff809281808416911614612bc7575b50506020820180516001600160a01b0397919291612a9291891615612bbe575b5460a81c63ffffffff1690565b81612aa46106ec865163ffffffff1690565b91161490811591612b94575b50612b82576128ee612aff92612ac587611b7a565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612b71575b5050506001600160f81b03198116600160f81b8103612b55575060581c1691823b156101d3576121ea92600092836040518096819582946306d61fe760e41b845260048401612263565b909350600160f91b141590506103a9576101e39160081b613cf3565b612b7a926135e2565b388080612b0b565b604051633ab3447f60e11b8152600490fd5b9050612ba2612a2587611b7a565b90612bb46106ec855163ffffffff1690565b9116101538612ab0565b60018452612a85565b600080516020614fab833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612a65565b9182358060f81c80600014612c4b5780600114612c3e57600214612c2857600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611d7d9694835260018060a01b0316602083015260408201528160608201520191611d80565b909192612ca594612c9991858585613f53565b94929391969096614047565b509065ffffffffffff8091164210918215612d2b575b5050612d1857612cf9612ccf602096612d37565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612c5b565b03916001600160a01b03165afa90811561089057600091611e64575090565b506001600160e01b031995945050505050565b16421190503880612cbb565b611d7d9060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612d7881610e5c565b519020614070565b90818060081b9160ff839260f01c16600214612d9857565b6001600160d81b031983169150565b9080601f830112156101d357816020611d7d9335910161254d565b9190610120838203126101d357612dd7610ef7565b92612de1816101d8565b8452602081013560208501526040810135916001600160401b03928381116101d35781612e0f918401612da7565b604086015260608201358381116101d35781612e2c918401612da7565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116101d35781612e67918401612da7565b60e086015261010092838301359081116101d357612e859201612da7565b90830152565b908160209103126101d3575190565b80516001600160a01b03168252611d7d9190612f18612ee8612ed661012060208501516020870152604085015190806040880152860190610bef565b60608401518582036060870152610bef565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610bef565b916101008092015191818403910152610bef565b939291612f49906040928652606060208701526060860190612e9a565b930152565b929190612f49602091604086526040860190612e9a565b929092600092612f753682612dc2565b916101009182810191612f888383611f2a565b90949093600160f81b936001600160f81b031993841685146130d1575b505050871603613032575050604051639700320360e01b815293602092859283916000918391612fd89160048401612f4e565b039260581c6001600160a01b03165af190811561089057611d7d92600092613001575b5061456e565b61302491925060203d60201161302b575b61301c8183610ec9565b810190612e8b565b9038612ffb565b503d613012565b909460081b93909291600160f01b61304f611eae611ea788611d30565b166130bf57600061307061306a60209661309a99858a61436e565b9461456e565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501612f2c565b03926001600160a01b03165af190811561089057611d7d92600092613001575061456e565b6040516314b9743f60e01b8152600490fd5b909195506130ed9398506130e6929450611f2a565b9088614184565b969192909361310085899599369161254d565b90860152388080612fa5565b600080516020614fab83398151915280549163ffffffff92600a848260a81c1601908482116131d65782851691851682116131c45760c81c84161015612b8257600080516020614fab833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106131925750565b600080516020614fab833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b6040516131f881610e92565b600681526512d95c9b995b60d21b60208201529060405161321881610e92565b600a815269302e332e302d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156108905780926132a257505090565b611d7d92503d8091833e6108af8183610ec9565b600092836132dd95936040519687958694859363d68f602560e01b85523360048601611da1565b03926001600160a01b03165af1908115610890576000916132fc575090565b611d7d91503d806000833e6108af8183610ec9565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b919290916001600160a01b0316803b156101d3576133a2600080946133bb60405197889687958694635565eb9560e11b8652606060048701526064860190610bef565b9115156024850152838203600319016044850152610bef565b03925af18015610890576133cc5750565b6101e390610e44565b634e487b7160e01b600052603260045260246000fd5b8051156133f85760200190565b6133d5565b80518210156133f85760209160051b010190565b908210156133f85761024d9160051b810190611f2a565b96959192939694909460005b86811061344657505050505050509050565b806134878a60019360051b85013561345d81610277565b6134738461346b818c6133fd565b51938c613411565b9061347f868b8b613411565b949093612a14565b01613434565b90156133f85790565b6001600160a01b039391929190848316156135d9575b6134b590611cf8565b946134e16134d46134c6838561348d565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806135ba575050908061350392861693611a73565b823b156101d35761352e92600092836040518096819582946306d61fe760e41b845260048401612263565b03925af19485156108905761356a61358a936001936101e3986135a7575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b8061088a6135b492610e44565b3861354c565b92509250509491940361296a57600161358a9161356a6101e39661354e565b600192506134ac565b6001600160a01b031691821580156136a5575b6136a05760405163d60b347f60e01b8152306004820152602081602481875afa90811561089057600091613681575b501561364c576001600160f81b0319806136416134c6848661348d565b161461364c57505050565b8061365692611a73565b823b156101d3576121ea92600092836040518096819582946306d61fe760e41b845260048401612263565b61369a915060203d6020116108f8576108ea8183610ec9565b38613624565b505050565b50600183146135f5565b919392916001600160a01b039081841615613734575b166000818152600080516020614f8b8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613730576133bb9394836040518096819582946306d61fe760e41b8452602060048501526024840191611d80565b8280fd5b600193506136c5565b906020611d7d928181520190610bef565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a8251956137ae876137a06020820193638a91b0e360e01b8552602060248401526044830190610bef565b03601f198101895288610ec9565b6000918291828587519a6137c18c610e77565b828c525193f1943d90816137f4575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b600091506137d0565b61380d6138409194939294611cf8565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161264b9136919061254d565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b039081166000818152600080516020614f8b8339815191526020526040902080546001600160a01b0319811690915590911693926121f99261264b91369161254d565b909291926138d36138c1600080516020614fab8339815191525460581b90565b6001600160581b031980851691161490565b6126ef576138e3611c2583611b7a565b936139046138f084611b7a565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b810361393d57506121f9929161392b91369161254d565b9060581c6001600160a01b031661374e565b600160f91b141590506103a9576101e39160081b614609565b60405161396281610e92565b600181528060005b6020808210156139855790606060209282850101520161396a565b50505090565b9061399582610f04565b6139a26040519182610ec9565b82815280926139b3601f1991610f04565b019060005b8281106139c457505050565b8060606020809385010152016139b8565b906040611d7d92600081528160208201520190610bef565b600881901b926001600160f81b031992600160f81b929091906060908516808601613a7f57505050613a26908035019060208201913590565b929093168015600014613a3e575050611d7d91614887565b03613a4c57611d7d916147ca565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b95969591929180613b2257505090613a969161471e565b93909294613aa2613956565b971680613ac7575050613ab49361476f565b613abd836133eb565b526121f9826133eb565b03613a4c57613ad593614746565b613ade846133eb565b526101e3577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613b1d613b10846133eb565b51604051918291826139d5565b0390a1565b909650919390925003613a4c57613b4d8280613b476122f16122eb613b539787611a57565b93611a90565b91613338565b5050565b6001600160a01b03169081158015613baa575b6136a05782156133f8576001600160f81b03198135811614613b8b57505050565b826001116101d3576121f99261264b913691600019019060010161254d565b5060018214613b6a565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613c0857505050565b6000526020600020918201915b828110613c2157505050565b818155600101613c15565b6001600160501b03199035818116939260168110613c4957505050565b60160360031b82901b16169150565b80548210156133f85760005260206000200190600090565b805468010000000000000000811015610e5757613c9291600182018155613c58565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613ce457505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015613f4b575b613f3957600180613d1a85611d30565b0154613f20575b60001982019260005b848110613e435750613e089594613e16949093613dec9350613de59250613d85613dd6613dbd611eae613db7613db187878e613dac8e613d7d611c626122f16122eb613d77898989613411565b90611abb565b9a8b91611d30565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b613411565b90611ae9565b90613cc7565b613dc688611d30565b9060f01c61ffff19825416179055565b6001600160a01b031696613411565b8091611acc565b6040519586939092906001600160e01b03191660208501613cb1565b03601f198101845283610ec9565b803b156101d3576040516306d61fe760e41b81529160009183918290849082906121ea906004830161373d565b613e9a611c62611c626122f16122eb613d77868a8e613dac8f613e668e91611d30565b01613e94613e87613e81613e7b888888613411565b90611aad565b90613c2c565b6001600160501b03191690565b90613c70565b90613ea9613de582878b613411565b90613eca604091613e0883519485928d63ffffffff60e01b168a8501613cb1565b833b156101d3576000938492613ef492519586809481936306d61fe760e41b83526004830161373d565b03925af1918215610890578492613f0d575b5001613d2a565b8061088a613f1a92610e44565b38613f06565b613f346001613f2e86611d30565b01613bf4565b613d21565b60405163b62d956d60e01b8152600490fd5b508015613d0a565b8484613fd692613fc1979694989560405191613f6e83610ead565b613fd060009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614920565b60ff80613fef613fe96134c6878661348d565b60f81c90565b16036140355761401e614009846140199561402e94611a73565b9490955163ffffffff60e01b1690565b611d30565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614068575b5060d01c92565b925038614061565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f0000000000000000000000000000000000000000000000000000000000000000461416156140fd575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206140de565b91929092614190612720565b9061419b9085611a57565b6141a491612274565b60601c60208201819052600080516020614fab8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d8436906142159261254d565b80519060200120913661422990888861254d565b805190602001203661423c908b8d61254d565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906142c861010082610ec9565b5190206142d490614070565b607489013589018d8b82013591016142eb92614b72565b9a6142f69488612a14565b6143008183614d0f565b61430991611a1b565b61431291611b4e565b61431b91614ec9565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061434857505050565b60080360031b82901b16169150565b604090611d7d939281528160208201520190612e9a565b60009493916001868161438085611d30565b016000835b6143cd575b5050505060ff806143a1613fe96134c6878961348d565b1603614035576101006143c56143be8561401e96611d7d98611a73565b369161254d565b910152611d30565b8197969754811015614566576143fe6143f66143e98385613c58565b90549060031b1c60501b90565b908160501c90565b98909761441a614414613fe96134c6858561348d565b60ff1690565b808403614535575090818161445361444761444161443b8461447098611af7565b9061432b565b60c01c90565b6001600160401b031690565b600901916144656143be848484611b08565b6101008b0152611b36565b989098975b600160f01b161561448a575b50830183614385565b99866144c7929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d8401614357565b0393165af1958615610890578896614516575b505084166144fc5750506144f285949392859261456e565b9a91929350614481565b51631f24c1fb60e11b81529081018c815281906020010390fd5b61452d929650803d1061302b5761301c8183610ec9565b9338806144da565b909991989083111561455357604051630760bdcf60e11b8152600490fd5b61455b6124fa565b610100880152614475565b96959661438a565b6001600160a01b03818318811615606083811b848601821b9081149186901b14171760011461459f57505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614601575b83811680156145fa575b8781109088180280881897146145f2575b508181119082180218921716171790565b9550386145e1565b50806145d0565b9550856145c6565b9190803501916020906020840193359061462281611d30565b9260019060018501906001825401850361470c57906000835b61469e575b5050505061468d9161468882613dec6101e397986146656001613f2e613e0898611d30565b875461467c9060101c6001600160a01b0316611c62565b94600019810191613411565b61374e565b5080546001600160b01b0319169055565b8154811015614707579083826146fd613e088c6146ef8a6146d4868e6146cc6143f66143e98c9f9e8e613c58565b969050613411565b6040519586939092906001600160e01b0319168c8501613cb1565b6001600160a01b031661374e565b500190919261463b565b614640565b60405163013dcc8d60e31b8152600490fd5b90806014116101d357813560601c92816034116101d357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af11561479e573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156133f85760051b81013590605e19813603018212156101d3570190565b9190916147d68361398b565b9260005b8181106147e657505050565b806147f460019284866147a8565b80356147ff816101c2565b6148206020809360409361481585830183611f2a565b939092013590614746565b61482a858b6133fd565b5215614839575b5050016147da565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb79161487d614868858b6133fd565b51838051948594888652850152830190610bef565b0390a13880614831565b9190916148938361398b565b9260005b8181106148a357505050565b806148d960206148b660019486886147a8565b80356148c1816101c2565b6148ce6040830183611f2a565b93909201359061476f565b6148e382886133fd565b526148ee81876133fd565b5001614897565b9092608092611d7d9594835260018060a01b0316602083015260408201528160608201520190610bef565b919060608301600193600161493f614019845163ffffffff60e01b1690565b01936000936000958054965b87811061495d57505050505050505050565b8061496f6143f66143e98c9486613c58565b6001600160a01b031660a0880190815260808801959091614998906001600160f01b0319168752565b6149b26149ab613fe96134c68a8561348d565b60ff168952565b6149c0614414895160ff1690565b808403614b3a57508681816149e561444761444161443b614a399c9d614a0c98611af7565b60208c018181528c60c0614a016143be60099586018789611b08565b910152510191611b36565b959095965b51600160f11b90614a2b906001600160f01b031916611eae565b166001600160f01b03191690565b15614a46575b500161494b565b51909150614a5c906001600160a01b0316611c62565b8651614a8090614a73906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ac56101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b86016148f5565b03915afa938415610890578b94614b1b575b50506001600160a01b038316614b005750860180518b9392614af89161456e565b905238614a3f565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614b32929450803d1061302b5761301c8183610ec9565b913880614ad7565b839196945010600014614b5957604051630760bdcf60e11b8152600490fd5b614a398b93614b68368861252a565b60c08a0152614a11565b600080516020614fab8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614c355750604051637aa8f17760e11b8152936020938593909284928392614bca923060048601611da1565b039160581c6001600160a01b03165afa90811561089057600091614c16575b505b6001600160e01b0319166374eca2c160e11b01614c0457565b6040516362467c7760e11b8152600490fd5b614c2f915060203d602011611e8657611e7e8183610ec9565b38614be9565b919550929190600160f91b036103a957602091614c589160081b95843088613f53565b60405163392dffaf60e01b81529297929586949385938493614c8b93909230906001600160e01b03191660048701612c5b565b03916001600160a01b03165afa90811561089057600091614cad575b50614beb565b614cc6915060203d602011611e8657611e7e8183610ec9565b38614ca7565b15614cd357565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614d1c6105c98383611a1b565b906004831015614d2b57505050565b602c8310614ebb57614d46611c626122f16122eb8685611a46565b602c8201358201602c604c820191013591604c840135840194614d80614d726134d46134c6878761348d565b6001600160f81b0319161590565b80614e2a575b94614dc761242895611c6295614dcc956101e39b956122f19a614ddc575b614db7611c626122f16122eb8a8a611b25565b916001600160a01b031690613496565b611b25565b602c86013595604c019491612274565b614e25606c8701358701614e1f602c604c830192013580614e06611c626122f16122eb8488611a57565b93614e1a856001600160a01b038a16614f2e565b611a90565b916135e2565b614da4565b5091939092956040519163ecd0596160e01b835260208380614e5460048201906002602083019252565b03816001600160a01b0389165afa928315610890576101e3986122f19761242897611c6297614dcc97614dc795600091614e9c575b50959a50959b5095509550955050614d86565b614eb5915060203d6020116108f8576108ea8183610ec9565b38614e89565b505060046101e39114614ccc565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a91606091614efb82610b4483611bb3565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b6101e391906001600160a01b039081831615614f81575b16600052600080516020614f8b83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b60019250614f4556fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032"; + +// Will deploy V0.7 KERNEL_FACTORY_V3_ADDRESS to 0x6723b44Abeec4E71eBE3232BD5B455805baDD22f +export const KERNEL_V07_FACTORY_V3_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a03461007757601f61047038819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007757516001600160a01b0381168103610077576080526040516103dd9081610093823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd00000000000000000000000094f097e1ebeb4eca3aae54cabb08905b239a7d27"; + +// Will deploy V0.7 KERNEL_FACTORY_ADDRESS to 0xd703aaE79538628d27099B8c4f621bE4CCd142d5 +export const KERNEL_V07_META_FACTORY_CREATECALL: Hex = + "0x0000000000000000000000000000000000000000000000000000000000000000608060405234801561001057600080fd5b5060405161080838038061080883398101604081905261002f9161007a565b6100388161003e565b506100aa565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b60006020828403121561008c57600080fd5b81516001600160a01b03811681146100a357600080fd5b9392505050565b61074f806100b96000396000f3fe6080604052600436106100c25760003560e01c8063b36f97051161007f578063d8b964e611610059578063d8b964e614610172578063f04e283e146101b2578063f2fde38b146101c5578063fee81cf4146101d857600080fd5b8063b36f970514610139578063c5265d5d1461014c578063c7e55f3e1461015f57600080fd5b806325692962146100c75780634a1ce599146100d157806354d1f13d146100e45780636e7dbabb146100ec578063715018a6146100ff5780638da5cb5b14610107575b600080fd5b6100cf610219565b005b6100cf6100df3660046105a7565b610269565b6100cf6102c7565b6100cf6100fa3660046105cb565b610303565b6100cf610336565b34801561011357600080fd5b50638b78c6d819545b6040516001600160a01b0390911681526020015b60405180910390f35b6100cf610147366004610609565b61034a565b61011c61015a366004610637565b6103b1565b6100cf61016d3660046106c2565b610466565b34801561017e57600080fd5b506101a261018d3660046105a7565b60006020819052908152604090205460ff1681565b6040519015158152602001610130565b6100cf6101c03660046105a7565b6104d2565b6100cf6101d33660046105a7565b610512565b3480156101e457600080fd5b5061020b6101f33660046105a7565b63389a75e1600c908152600091909152602090205490565b604051908152602001610130565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b610271610539565b806001600160a01b031663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156102ac57600080fd5b505af11580156102c0573d6000803e3d6000fd5b5050505050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b61030b610539565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b61033e610539565b6103486000610554565b565b610352610539565b60405163611d2e7560e11b81526001600160a01b03828116600483015283169063c23a5cea90602401600060405180830381600087803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b505050505050565b6001600160a01b03841660009081526020819052604081205460ff166103ea57604051633220d5f360e21b815260040160405180910390fd5b604051633a9b44eb60e21b81526001600160a01b0386169063ea6d13ac9061041a908790879087906004016106f9565b6020604051808303816000875af1158015610439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045d9190610732565b95945050505050565b61046e610539565b604051621cb65b60e51b815263ffffffff821660048201526001600160a01b03831690630396cb609034906024016000604051808303818588803b1580156104b557600080fd5b505af11580156104c9573d6000803e3d6000fd5b50505050505050565b6104da610539565b63389a75e1600c52806000526020600c20805442111561050257636f5e88186000526004601cfd5b6000905561050f81610554565b50565b61051a610539565b8060601b61053057637448fbae6000526004601cfd5b61050f81610554565b638b78c6d819543314610348576382b429006000526004601cfd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6001600160a01b038116811461050f57600080fd5b6000602082840312156105b957600080fd5b81356105c481610592565b9392505050565b600080604083850312156105de57600080fd5b82356105e981610592565b9150602083013580151581146105fe57600080fd5b809150509250929050565b6000806040838503121561061c57600080fd5b823561062781610592565b915060208301356105fe81610592565b6000806000806060858703121561064d57600080fd5b843561065881610592565b9350602085013567ffffffffffffffff8082111561067557600080fd5b818701915087601f83011261068957600080fd5b81358181111561069857600080fd5b8860208285010111156106aa57600080fd5b95986020929092019750949560400135945092505050565b600080604083850312156106d557600080fd5b82356106e081610592565b9150602083013563ffffffff811681146105fe57600080fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b60006020828403121561074457600080fd5b81516105c481610592560000000000000000000000009775137314fe595c943712b0b336327dfa80ae8a"; + +// Will deploy V0.7 KERNEL_ACCOUNT_V3_1_LOGIC to 0xBAC849bB641841b44E965fB01A4Bf5F074f84b4D +export const KERNEL_V07_ACCOUNT_V3_1_LOGIC_CREATECALL: Hex = + "0x00000000000000000000000000000000000000000000000000000000000000006101403461020457601f615b3b38819003918201601f191683019291906001600160401b0384118385101761020957816020928492604096875283398101031261020457516001600160a01b038116810361020457306080524660a05260a082516100698161021f565b600681526005602082016512d95c9b995b60d21b81526020865161008c8161021f565b838152019264302e332e3160d81b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101108161021f565b5190516001600160581b0319918282169190601581106101ef575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b03198254161790555190615900928361023b84396080518361455a015260a0518361457d015260c051836145ef015260e05183614615015251826145390152518181816103af015281816106d30152818161088901528181610c22015281816110020152818161132901528181611491015281816114f101528181611a1901528181611b5f0152818161259d0152612f0d0152f35b8391925060150360031b1b161680388061012b565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102095760405256fe6080604052600436101561001d575b36612dc85761001b612d97565b005b60003560e01c8063112d3a7d146101fd578063150b7a02146101f85780631626ba7e146101f357806319822f7c146101ee5780631f1b92e3146101e95780633659cfe6146101e45780633c3b752b146101df57806352141cd9146101da57806357b3a5f4146101d55780636e6fa0c6146101d0578063721e67f4146101cb57806384b0196e146101c65780638dd7712f146101c157806390ef8862146101bc5780639198bdf5146101b75780639517e29f146101b25780639cfd7cff146101ad578063a65d69d4146101a8578063a71763a8146101a3578063adb610a31461019e578063b8afe17d14610199578063bc197c8114610194578063c3e589781461018f578063d03c79141461018a578063d691c96414610185578063e6f3d50a14610180578063e9ae5c531461017b578063f1f7f0f914610176578063f23a6e61146101715763f2dc691d0361000e57611cec565b611c92565b611c5a565b611b2e565b61199e565b6118ba565b61186d565b611791565b61168a565b611620565b6115ec565b6114c0565b61147b565b611424565b6112f8565b6111f1565b6110d0565b610fcc565b610f2a565b610e7e565b610e21565b610d73565b610b99565b6109c2565b610849565b610691565b610371565b610311565b6102b7565b610291565b6001600160a01b0381160361021357565b600080fd5b359061022382610202565b565b9181601f84011215610213578235916001600160401b038311610213576020838186019501011161021357565b6060600319820112610213576004359160243561026e81610202565b91604435906001600160401b0382116102135761028d91600401610225565b9091565b346102135760206102ad6102a436610252565b92919091611eec565b6040519015158152f35b34610213576080366003190112610213576102d3600435610202565b6102de602435610202565b6064356001600160401b038111610213576102fd903690600401610225565b5050604051630a85bd0160e11b8152602090f35b34610213576040366003190112610213576024356001600160401b0381116102135761034f6103466020923690600401610225565b9060043561209c565b6040516001600160e01b03199091168152f35b90816101209103126102135790565b606036600319011261021357600480356001600160401b0381116102135761039c9036908301610362565b60243590604435906001600160a01b03907f00000000000000000000000000000000000000000000000000000000000000008216330361065c578084926103e66020830135613115565b6001600160f81b031990911615959093909186610632575b908461040a93926132fa565b9561041c61041784611e7a565b6121db565b94159485806105f0575b6105df57602001516001600160a01b03169182169081156105ce5760019261045b61047a926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b0361052d57826104cf575b50506104be576104a89250805b6104ac575b506040519081529081906020820190565b0390f35b3490349034903490335af15038610497565b604051631a0a9b9f60e21b81528390fd5b6105269250610522916105046104fe6104f86104ed61051b95611eb3565b936060810190612207565b90611d1b565b90611e4e565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b3880610485565b8291929161059b575b5061058a576104f881606061054c930190612207565b638dd7712f60e01b916001600160e01b03199161056891611e4e565b1603610579576104a8925080610492565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b6105c8915061051b6105af61052292611eb3565b6105046104fe6105c26060880188612207565b90611d0a565b38610536565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61062a6106216000805160206158e08339815191525463ffffffff9060c81c1690565b63ffffffff1690565b911610610426565b93509061040a916106526000805160206158e08339815191525460581b90565b94909192506103fe565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361021357565b359063ffffffff8216820361021357565b6020366003190112610213576106a561066d565b6106c76106c16000805160206158e08339815191525460581b90565b60581c90565b6001600160a01b0390337f0000000000000000000000000000000000000000000000000000000000000000831614158061083f575b156108345760405163ecd0596160e01b8152600480820152911690602081602481855afa9081156107c557600091610805575b50156107f35760405163d68f602560e01b81529160008380610756363433600485016122ca565b038183865af19283156107c5576000936107ca575b50610775906134a1565b803b1561021357604051630b9dfbed60e11b81529160009183918290849082906107a29060048301612306565b03925af180156107c5576107b257005b806107bf61001b9261111a565b80610ed7565b612090565b6107759193506107ec903d806000833e6107e4818361119f565b81019061226c565b929061076b565b6040516348f5c3ed60e01b8152600490fd5b610827915060203d60201161082d575b61081f818361119f565b810190612239565b3861072f565b503d610815565b505061001b906134a1565b50303314156106fc565b60203660031901126102135760043561086181610202565b61087d6106c16000805160206158e08339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610976575b1561096b5760405163ecd0596160e01b8152600480820152911690602081602481855afa9081156107c55760009161094c575b50156107f35760405163d68f602560e01b8152916000838061090c363433600485016122ca565b038183865af19283156107c55760009361092b575b5061077590612317565b610775919350610945903d806000833e6107e4818361119f565b9290610921565b610965915060203d60201161082d5761081f818361119f565b386108e5565b505061001b90612317565b50303314156108b2565b6001600160581b031981160361021357565b9181601f84011215610213578235916001600160401b038311610213576020808501948460051b01011161021357565b346102135760a03660031901126102135760048035906109e182610980565b602435906109ee82610202565b6001600160401b0360443581811161021357610a0d9036908401610225565b909160643581811161021357610a269036908601610225565b92909160843590811161021357610a409036908701610992565b9490966001600160581b0319610a8081610a79610a6c6000805160206158e08339815191525460581b90565b6001600160581b03191690565b161561236b565b891615610b88576001600160f81b03198916600160f81b8114159081610b79575b50610b685788610ab6610b049798999a61356a565b610ad7610ac16111c0565b60018152925b6001600160a01b03166020840152565b6000805160206158e0833981519152805463ffffffff60a81b1916600160a81b1790556135c5565b6135c5565b60005b818110610b1057005b600080610b1e8385886123f5565b60409391610b30855180938193612411565b039082305af1610b3e612432565b5015610b4d5750600101610b07565b51636534eae560e11b81528084019182529081906020010390fd5b6040516361c4e91b60e11b81528790fd5b600160f91b1415905038610aa1565b604051631a0a9b9f60e21b81528790fd5b6080366003190112610213576004803590610bb382610980565b60243591610bc083610202565b6001600160401b039260443584811161021357610be09036908501610225565b909460643590811161021357610bf99036908601610225565b91610c166106c16000805160206158e08339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610d57575b15610d4657169660405163ecd0596160e01b815260208180610c748b8201906004602083019252565b03818c5afa9081156107c557600091610d27575b5015610d165760405163d68f602560e01b81529460008680610cae3634338e85016122ca565b0381838d5af19586156107c557600096610cf7575b50610cce9596612462565b823b15610213576107a29260009283604051809681958294630b9dfbed60e11b84528301612306565b610cce9650610d10903d806000833e6107e4818361119f565b95610cc3565b6040516348f5c3ed60e01b81528790fd5b610d40915060203d60201161082d5761081f818361119f565b38610c88565b505092909361001b96929550612462565b5030331415610c4b565b6001600160e01b031981160361021357565b34610213576020366003190112610213576104a8610db5600435610d9681610d61565b600060408051610da581611132565b8281528260208201520152611fc3565b60405190610dc282611132565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461021357604036600319011261021357602060ff610e72600435610e4581610980565b610e5a60243591610e5583610d61565b611eb3565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610213576020366003190112610213576020610eb4600435610ea081610202565b6000604051610eae8161114d565b52612f61565b60405190610ec18261114d565b546001600160a01b031690819052604051908152f35b600091031261021357565b60005b838110610ef55750506000910152565b8181015183820152602001610ee5565b90602091610f1e81518092818552858086019101610ee2565b601f01601f1916010190565b3461021357600036600319011261021357610f79610f466137d7565b90604051928392600f60f81b8452610f6b60209360e0602087015260e0860190610f05565b908482036040860152610f05565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610fb557505050500390f35b835185528695509381019392810192600101610fa6565b6040366003190112610213576004356001600160401b03811161021357610ff7903690600401610362565b6001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107f357602435600090815260208190526040902054606091906001906001600160a01b0316938416141590816110a0575b61107261106b826060611079940190612207565b8091611d29565b903061391e565b501561108e5761108557005b61001b91613945565b60405163f21e646b60e01b8152600490fd5b915061107961107261106b6110c66110be61106b6060880188612207565b90348961389c565b9492505050611057565b3461021357600036600319011261021357602063ffffffff6000805160206158e08339815191525460c81c16604051908152f35b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161112d57604052565b611104565b606081019081106001600160401b0382111761112d57604052565b602081019081106001600160401b0382111761112d57604052565b604081019081106001600160401b0382111761112d57604052565b61012081019081106001600160401b0382111761112d57604052565b90601f801991011681019081106001600160401b0382111761112d57604052565b6040519061022382611168565b6040519061022382611183565b6001600160401b03811161112d5760051b60200190565b6080366003190112610213576001600160401b036004358181116102135761121d903690600401610992565b906024358381116102135736602382011215610213578060040135611241816111da565b91604091611252604051948561119f565b8084526020906024602086019160061b8401019236841161021357602401905b8382106112ba57505050505060443584811161021357611296903690600401610992565b91606435958611610213576112b261001b963690600401610992565b95909461256e565b84823603126102135782859182516112d181611168565b6112da85610680565b8152828501356112e981610202565b83820152815201910190611272565b61130136610252565b61131d6106c16000805160206158e08339815191525460581b90565b6001600160a01b0390337f0000000000000000000000000000000000000000000000000000000000000000831614158061141a575b1561140e5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156107c5576000916113ef575b50156107f35760405163d68f602560e01b815293600085806113ad363433600485016122ca565b038183885af19485156107c5576000956113ce575b5061077593949561272a565b6107759495506113e8903d806000833e6107e4818361119f565b94936113c2565b611408915060203d60201161082d5761081f818361119f565b38611386565b50509161001b9361272a565b5030331415611352565b34610213576000366003190112610213576104a860405161144481611168565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610f05565b34610213576000366003190112610213576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6114c936610252565b6114e56106c16000805160206158e08339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806115e2575b156115d65760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156107c5576000916115b7575b50156107f35760405163d68f602560e01b81529360008580611575363433600485016122ca565b038183885af19485156107c557600095611596575b50610775939495612ad9565b6107759495506115b0903d806000833e6107e4818361119f565b949361158a565b6115d0915060203d60201161082d5761081f818361119f565b3861154e565b50509161001b93612ad9565b503033141561151a565b3461021357600036600319011261021357602063ffffffff6000805160206158e08339815191525460a81c16604051908152f35b3461021357602036600319011261021357604061165060043561164281610980565b61164a612c8f565b50611e7a565b602082519161165e83611168565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102135760a0366003190112610213576116a6600435610202565b6116b1602435610202565b6001600160401b03604435818111610213576116d1903690600401610992565b5050606435818111610213576116eb903690600401610992565b505060843590811161021357611705903690600401610225565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611773575050505090565b83516001600160501b03191685529381019392810192600101611765565b3461021357602080600319360112610213576004356117af81610d61565b6117d460409160608380516117c381611132565b600081526000878201520152611ffb565b908051916117e183611132565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b82821061184b576104a888888861183d818e038261119f565b818301525191829182611719565b845460501b6001600160501b0319168952978801979383019390830190611824565b346102135760203660031901126102135760206102ad600435612ca8565b9060406003198301126102135760043591602435906001600160401b0382116102135761028d91600401610225565b6118c33661188b565b916001600160a01b036118d533612f61565b541690811561198c57606060019460018414159485611975575b6118f99293614147565b92611965575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106119385786880387f35b90919293948380611954839a603f198b82030186528951610f05565b99970195949391909101910161192b565b61196e91613945565b38806118ff565b6118f99250611985363487613818565b92506118ef565b60405163710c949760e01b8152600490fd5b60603660031901126102135760048035906119b882610980565b6001600160401b0391602435838111610213576119d89036908401610225565b93604435908111610213576119f09036908501610225565b90611a0d6106c16000805160206158e08339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611b24575b15611b1457169560405163ecd0596160e01b815260208180611a6b8a8201906004602083019252565b03818b5afa9081156107c557600091611af5575b5015611ae45760405163d68f602560e01b81529360008580611aa53634338d85016122ca565b0381838c5af19485156107c557600095611ac5575b50610cce9495612d6a565b610cce9550611ade903d806000833e6107e4818361119f565b94611aba565b6040516348f5c3ed60e01b81528690fd5b611b0e915060203d60201161082d5761081f818361119f565b38611a7f565b50509261001b9592919450612d6a565b5030331415611a42565b611b373661188b565b611b536106c16000805160206158e08339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611c50575b15611c445760405163ecd0596160e01b815260048082015291169190602081602481865afa9081156107c557600091611c25575b50156107f35760405163d68f602560e01b81529260008480611be3363433600485016122ca565b038183875af19384156107c557600094611c04575b50610775929394612d7f565b610775939450611c1e903d806000833e6107e4818361119f565b9392611bf8565b611c3e915060203d60201161082d5761081f818361119f565b38611bbc565b50509061001b92612d7f565b5030331415611b88565b346102135760003660031901126102135760206000805160206158e08339815191525460581b604051906001600160581b0319168152f35b346102135760a036600319011261021357611cae600435610202565b611cb9602435610202565b6084356001600160401b03811161021357611cd8903690600401610225565b505060405163f23a6e6160e01b8152602090f35b346102135760203660031901126102135760206102ad600435612d8a565b906008116102135760040190600490565b906004116102135790600490565b909291928360041161021357831161021357600401916003190190565b906018116102135760040190601490565b906014116102135790601490565b906020116102135790602090565b909291928360011161021357831161021357600101916000190190565b909291928360141161021357831161021357601401916013190190565b906009116102135760010190600890565b909291928360091161021357831161021357600901916008190190565b906016116102135790601690565b906016116102135760020190601490565b909291928360161161021357831161021357601601916015190190565b906002116102135790600290565b90602c116102135760180190601490565b90939293848311610213578411610213578101920390565b6001600160e01b03199035818116939260048110611e6b57505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611f3b57506001600160a01b0392611f359250611f25915060581b600160581b600160f81b0316600160f81b17611e7a565b5460201c6001600160a01b031690565b16151590565b60028103611f7b57506001600160a01b0392611f359250611f6f9150611f62908416612f61565b546001600160a01b031690565b6001600160a01b031690565b600303611fbb57611f9c611f976104fe600193611faa95611d1b565b611fc3565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b90816020910312610213575161204881610d61565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b612048949260609260018060a01b031682526020820152816040820152019161204b565b6040513d6000823e3d90fd5b916120a691612f9a565b91906001600160f81b0319808316156121ba575b6001600160a01b0390816120d3611f6f611f2587611e7a565b16156121a8578316600160f81b03612158579060209392916120f7612115966130cc565b604051637aa8f17760e11b815296879586948593336004860161206c565b039260581c165afa9081156107c55760009161212f575090565b612048915060203d602011612151575b612149818361119f565b810190612033565b503d61213f565b509060081b92600160f11b61218661217961217287611ffb565b5460f01b90565b6001600160f01b03191690565b166121965761204893339061301b565b604051635b71057960e01b8152600490fd5b604051631a0a9b9f60e21b8152600490fd5b91506121d56000805160206158e08339815191525460581b90565b916120ba565b906040516121e881611168565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561021357018035906001600160401b0382116102135760200191813603831361021357565b90816020910312610213575180151581036102135790565b6001600160401b03811161112d57601f01601f191660200190565b602081830312610213578051906001600160401b038211610213570181601f8201121561021357805161229e81612251565b926122ac604051948561119f565b81845260208284010111610213576120489160208085019101610ee2565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020612048928181520190610f05565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b1561237257565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b6000805160206158e0833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b634e487b7160e01b600052603260045260246000fd5b9082101561240c5761028d9160051b810190612207565b6123df565b908092918237016000815290565b6040519061242c8261114d565b60008252565b3d1561245d573d9061244382612251565b91612451604051938461119f565b82523d6000602084013e565b606090565b94939291906001600160581b03198616156121a8576001600160f81b03198616600160f81b811415908161251e575b5061250c5761249f8661356a565b6001600160a01b036124b3611f2588611e7a565b16156124c2575b505050505050565b61250195610aff6124e96000805160206158e08339815191525463ffffffff9060a81c1690565b92610ac76124f56111c0565b63ffffffff9095168552565b3880808080806124ba565b6040516361c4e91b60e11b8152600490fd5b600160f91b1415905038612491565b9060405161253a81611132565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946125916106c16000805160206158e08339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806126de575b156126ce5760405163ecd0596160e01b8152600480820152911695906020816024818a5afa9081156107c5576000916126af575b50156107f35760405163d68f602560e01b81529660008880612621363433600485016122ca565b0381838b5af19788156107c55760009861268e575b506126429697986139be565b803b1561021357604051630b9dfbed60e11b815291600091839182908490829061266f9060048301612306565b03925af180156107c557612681575b50565b806107bf6102239261111a565b6126429798506126a8903d806000833e6107e4818361119f565b9796612636565b6126c8915060203d60201161082d5761081f818361119f565b386125fa565b50509193909294610223966139be565b50303314156125c6565b91602061204893818152019161204b565b6bffffffffffffffffffffffff19903581811693926014811061271b57505050565b60140360031b82901b16169150565b60018103612863575060581b600160581b600160f81b0316600160f81b17906127ee6127c7611f6f6127c16127bb6127b461277161276789611e7a565b5463ffffffff1690565b6000805160206158e083398151915290612793825463ffffffff9060a81c1690565b9063ffffffff9081168183161461284f575b50505460a81c63ffffffff1690565b9786611d57565b906126f9565b60601c90565b6127de6127d26111c0565b63ffffffff9096168652565b6001600160a01b03166020850152565b61282860148201358201916034810135810190605481013501946014860135936034601484013593019160346014830135920190876135c5565b60048114612836575b505050565b6104fe6128499160346102239501611d1b565b90613d9c565b600161285c9201166123ad565b38806127a5565b600281036128bf5750916128b061022393612895611f6f6127c16127bb60148801358801966034890135890198611d57565b928391601482013591603401906001600160a01b0316613d53565b60346014830135920190613ba0565b9091906003810361293f575061293a611f6f61292a610223958461292560186127c197013582016127c160388401358401996128fe6104fe8787611d1b565b9061291f611f6f61290f8989611d46565b60188801359760380196916126f9565b91613a2c565b611d46565b60188601359560380194916126f9565b613ba0565b90600482036129d4576001600160a01b03831693843b156102135761297e94600092836040518098819582946306d61fe760e41b8452600484016126e8565b03925af19283156107c5576000805160206158a0833981519152936129c1575b50604080519182526001600160a01b03909216602082015290819081015b0390a1565b806107bf6129ce9261111a565b3861299e565b60058203612a12576001600160a01b03831693843b156102135761297e94600092836040518098819582946306d61fe760e41b8452600484016126e8565b60068203612a50576001600160a01b03831693843b156102135761297e94600092836040518098819582946306d61fe760e41b8452600484016126e8565b604051631092ef5760e11b8152600490fd5b359060208110612a70575090565b6000199060200360031b1b1690565b919060405190612a8e8261114d565b819360008352116102135760206000910152565b929192612aae82612251565b91612abc604051938461119f565b829481845281830111610213578281602093846000960137010152565b60018103612b02575061267e92919060581b600160581b600160f81b0316600160f81b17613fef565b60028103612b1f575061267e9291906001600160a01b0316613f6a565b60038103612b4a575050612b448280612b3e6104fe61267e9686611d1b565b93611d29565b91613eb0565b909160048203612bde57612bab61299e916000805160206158c083398151915295612b846000805160206158e08339815191525460581b90565b612b90611f2582611e7a565b6001600160a01b03888116911614612bb1575b503691612aa2565b83613e01565b612bbd612bd891611e7a565b8054640100000000600160c01b031916640100000000179055565b38612ba3565b60058203612c6f576000805160206158e08339815191525460581b5b612c0d612c078684611d65565b90612a62565b906001600160f81b03198116600160f91b14612c44575b5050612bab61299e916000805160206158c0833981519152953691612aa2565b60081b6001600160e01b03191614612c5d573880612c24565b6040516313002bdd60e31b8152600490fd5b60068203612a50576000805160206158e08339815191525460581b612bfa565b60405190612c9c82611168565b60006020838281520152565b612cbc818060081b918160301b9160501b90565b929091600160f81b916001600160f81b031991908216838114159081612d60575b81612d55575b81612d46575b50612d3c5716908114159081612d32575b50612d2b576001600160e01b031916612d25576001600160501b031916612d2057600190565b600090565b50600090565b5050600090565b9050151538612cfa565b5050505050600090565b607f60f91b1415905038612ce9565b838114159150612ce3565b8015159150612cdd565b91612d7a91610223959493613fef565b614347565b9061267e9291614147565b60071115612d2057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b612de5612de06000356001600160e01b031916611fc3565b61252d565b80516001600160a01b03908190612dfd908216611f6f565b1615612f4f57815160609082908190612e1e906001600160a01b0316611f6f565b16600181141580612f45575b15612f055750508251612e4a91506001600160a01b031636903490613818565b60408301516001600160f81b031990811680612ece5750506020830151612e79906001600160a01b03166143da565b93905b15612ec657516001600160a01b0316918083169060018214159182612ebb575b5050612eab575b825160208401f35b612eb491613945565b3880612ea3565b141590503880612e9c565b835160208501fd5b03612ef3576020830151612eec906001600160a01b031636906138f7565b9390612e7c565b604051632d6a6bb760e01b8152600490fd5b03612e4a57337f0000000000000000000000000000000000000000000000000000000000000000831614612e4a576040516348f5c3ed60e01b8152600490fd5b5081811415612e2a565b604051631cd4b64760e21b8152600490fd5b6001600160a01b031660009081527f1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b866020526040902090565b9182358060f81c80600014612fe05780600114612fd357600214612fbd57600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b90926080926120489694835260018060a01b031660208301526040820152816060820152019161204b565b90919261303a9461302e9185858561441a565b9492939196909661450e565b509065ffffffffffff80911642109182156130c0575b50506130ad5761308e6130646020966130cc565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612ff0565b03916001600160a01b03165afa9081156107c55760009161212f575090565b506001600160e01b031995945050505050565b16421190503880613050565b6120489060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c83835260408201526040815261310d81611132565b519020614537565b90818060081b9160ff839260f01c1660021461312d57565b6001600160d81b031983169150565b9080601f830112156102135781602061204893359101612aa2565b9190610120838203126102135761316c6111cd565b9261317681610218565b8452602081013560208501526040810135916001600160401b039283811161021357816131a491840161313c565b6040860152606082013583811161021357816131c191840161313c565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e082013583811161021357816131fc91840161313c565b60e086015261010092838301359081116102135761321a920161313c565b90830152565b90816020910312610213575190565b80516001600160a01b0316825261204891906132ad61327d61326b61012060208501516020870152604085015190806040880152860190610f05565b60608401518582036060870152610f05565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610f05565b916101008092015191818403910152610f05565b9392916132de90604092865260606020870152606086019061322f565b930152565b9291906132de60209160408652604086019061322f565b92909260009261330a3682613157565b91610100918281019161331d8383612207565b90949093600160f81b936001600160f81b03199384168514613466575b5050508716036133c7575050604051639700320360e01b81529360209285928391600091839161336d91600484016132e3565b039260581c6001600160a01b03165af19081156107c55761204892600092613396575b50614a46565b6133b991925060203d6020116133c0575b6133b1818361119f565b810190613220565b9038613390565b503d6133a7565b909460081b93909291600160f01b6133e461217961217288611ffb565b166134545760006134056133ff60209661342f99858a61484d565b94614a46565b604051630ccab7a160e01b8152979096889586948593926001600160e01b031916600485016132c1565b03926001600160a01b03165af19081156107c557612048926000926133965750614a46565b6040516314b9743f60e01b8152600490fd5b9091955061348293985061347b929450612207565b908861464b565b9691929093613495858995993691612aa2565b9086015238808061333a565b6000805160206158e083398151915280549163ffffffff92600a848260a81c1601908482116135545782851691851682116135425760c81c84161015613530576000805160206158e0833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106135275750565b610223906123ad565b604051633ab3447f60e11b8152600490fd5b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae88916000805160206158e08339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b91939092946135d661276784611e7a565b936000805160206158e0833981519152946135f9865463ffffffff9060a81c1690565b63ffffffff8092818084169116146137c3575b50506020820180516001600160a01b0397919291613639918916156137ba575b5460a81c63ffffffff1690565b8161364b610621865163ffffffff1690565b91161490811591613790575b50613530576136a66136b39261366c87611e7a565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b516001600160a01b031690565b9160018584160361377f575b5050506001600160f81b03198116600160f81b8103613763575060581c1690813b15610213576040516306d61fe760e41b815292600091849182916137089190600484016126e8565b038183855af19081156107c5576000805160206158a0833981519152926129bc92613750575b5060408051600181526001600160a01b03909216602083015290918291820190565b806107bf61375d9261111a565b3861372e565b909350600160f91b1415905061250c576102239160081b614bc8565b61378892613ba0565b3880806136bf565b905061379e61276787611e7a565b906137b0610621855163ffffffff1690565b9116101538613657565b6001845261362c565b60016137d09201166123ad565b388161360c565b6040516137e381611168565b600681526512d95c9b995b60d21b60208201529060405161380381611168565b6005815264302e332e3160d81b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156107c557809261388857505090565b61204892503d8091833e6107e4818361119f565b600092836138c395936040519687958694859363d68f602560e01b8552336004860161206c565b03926001600160a01b03165af19081156107c5576000916138e2575090565b61204891503d806000833e6107e4818361119f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561021357604051630b9dfbed60e11b815260206004820152916000918391829084908290613983906024830190610f05565b03925af180156107c5576139945750565b6102239061111a565b80511561240c5760200190565b805182101561240c5760209160051b010190565b96959192939694909460005b8681106139dc57505050505050509050565b80613a1d8a60019360051b8501356139f381610980565b613a0984613a01818c6139aa565b51938c6123f5565b90613a15868b8b6123f5565b9490936135c5565b016139ca565b901561240c5790565b6001600160a01b03939192919084831615613b98575b613a4b90611fc3565b94613a77613a6a613a5c8385613a23565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b031980871680613b795750509080613a9992861693611d73565b823b1561021357613ac492600092836040518096819582946306d61fe760e41b8452600484016126e8565b03925af19485156107c557613b29613b499360019361022398613b66575b5060408051600381526001600160a01b03881660208201526000805160206158a08339815191529190a15b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806107bf613b739261111a565b38613ae2565b925092505094919403612ef3576001613b4991613b2961022396613b0d565b849250613a42565b6001600160a01b0316919082158015613d49575b6128315760405163d60b347f60e01b8152306004820152602081602481875afa9081156107c557600091613d2a575b50613c7b579080613bf392611d73565b9190813b15610213576040516306d61fe760e41b81529260009184918291613c1f9190600484016126e8565b038183855af19081156107c5576000805160206158a0833981519152926129bc92613c68575b505b60408051600481526001600160a01b03909216602083015290918291820190565b806107bf613c759261111a565b38613c45565b6001600160f81b031980613c92613a5c8585613a23565b1614613cb3575b50506129bc6000805160206158a083398151915291613c47565b9080613cbe92611d73565b9190813b15610213576040516306d61fe760e41b81529260009184918291613cea9190600484016126e8565b038183855af19081156107c5576000805160206158a0833981519152926129bc92613d17575b5091613c99565b806107bf613d249261111a565b38613d10565b613d43915060203d60201161082d5761081f818361119f565b38613be3565b5060018314613bb4565b9092613d5f9082614ecc565b6001600160a01b031691823b156102135761398392600092836040518096819582946306d61fe760e41b845260206004850152602484019161204b565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a91606091613dce82610e5a83611eb3565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a825195613e6187613e536020820193638a91b0e360e01b8552602060248401526044830190610f05565b03601f19810189528861119f565b6000918291828587519a613e748c61114d565b828c525193f1943d9081613ea7575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b60009150613e83565b613ebd9093929193611fc3565b80546001600160a01b031981168255600190910180546001600160a01b03928316959193909290605884901b6001600160f81b03191615613f0e575b505082546001600160a81b0319169092555050565b6000805160206158c08339815191529382613f31613f5e95613f38943691612aa2565b9116613e01565b5083546040805160038152929091166001600160a01b0316602083015290918291820190565b0390a138808080613ef9565b6001600160a01b0390811660008181527f1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b8660205260409081902080546001600160a01b0319811690915590921694936000805160206158c083398151915293613fdf91613fd991369190612aa2565b82613e01565b50815190600282526020820152a1565b92919061402061400e6000805160206158e08339815191525460581b90565b6001600160581b031980871691161490565b612c5d57614030611f2585611e7a565b9361405161403d82611e7a565b8054640100000000600160c01b0319169055565b6001600160f81b03198116600160f81b810361409757509161372e613fd96129bc936000805160206158c08339815191529560018060a01b039060581c16933691612aa2565b909250600160f91b0361250c576102239160081b614f56565b6040516140bc81611168565b600181528060005b6020808210156140df579060606020928285010152016140c4565b50505090565b906140ef826111da565b6140fc604051918261119f565b828152809261410d601f19916111da565b019060005b82811061411e57505050565b806060602080938501015201614112565b90604061204892600081528160208201520190610f05565b61415b818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b9390925084168381036141e657505061418d908035019060208201913590565b9290931680156000146141a55750506120489161525d565b036141b357612048916151a0565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b949594909190806142835750906141fc916150f4565b939092946142086140b0565b97168061422d57505061421a93615145565b6142238361399d565b5261267e8261399d565b036141b35761423b9361511c565b6142448461399d565b52610223577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb76129bc6142768461399d565b516040519182918261412f565b9195939182036141b3576142ba906142b461429c6140b0565b97806142ae6127c16127bb8387611d57565b93611d90565b9161391e565b6142c68795929561399d565b52169081036143045750156142d757565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb76129bc6142768461399d565b6141b3576102235760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b9091906001600160a01b0316801580156143d0575b61283157811561240c576000805160206158c0833981519152926129bc926001600160f81b031982358116146143b0575b505060408051600481526001600160a01b03909216602083015290918291820190565b6143c181613fd9926143c894611d73565b3691612aa2565b50388061438d565b506001811461435c565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b848461449d9261448897969498956040519161443583611183565b61449760009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b526152f6565b60ff806144b66144b0613a5c8786613a23565b60f81c90565b16036144fc576144e56144d0846144e0956144f594611d73565b9490955163ffffffff60e01b1690565b611ffb565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c1692831560011461452f575b5060d01c92565b925038614528565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f0000000000000000000000000000000000000000000000000000000000000000461416156145c4575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206145a5565b91929092614657612c8f565b906146629085611d57565b61466b916126f9565b60601c602082018190526000805160206158e08339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d8436906146dc92612aa2565b8051906020012091366146f0908888612aa2565b8051906020012036614703908b8d612aa2565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e0808401929092529082529061478f6101008261119f565b51902061479b90614537565b607489013589018d8b82013591016147b292615548565b9a6147bd94886135c5565b6147c781836156e5565b6147d091611d1b565b6147d991611e4e565b6147e291613d9c565b6094810135019293830192013590565b805482101561240c5760005260206000200190600090565b6001600160c01b0319903581811693926008811061482757505050565b60080360031b82901b16169150565b60409061204893928152816020820152019061322f565b60009493916001868161485f85611ffb565b016000835b6148a5575b5050505060ff806148806144b0613a5c8789613a23565b16036144fc5761010061489d6143c1856144e59661204898611d73565b910152611ffb565b8197969754811015614a3e576148d66148ce6148c183856147f2565b90549060031b1c60501b90565b908160501c90565b9890976148f26148ec6144b0613a5c8585613a23565b60ff1690565b808403614a0d575090818161492b61491f6149196149138461494898611dad565b9061480a565b60c01c90565b6001600160401b031690565b6009019161493d6143c1848484611dbe565b6101008b0152611e36565b989098975b600160f01b1615614962575b50830183614864565b998661499f929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d8401614836565b0393165af19586156107c55788966149ee575b505084166149d45750506149ca859493928592614a46565b9a91929350614959565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614a05929650803d106133c0576133b1818361119f565b9338806149b2565b9099919890831115614a2b57604051630760bdcf60e11b8152600490fd5b614a3361241f565b61010088015261494d565b969596614869565b6001600160a01b03818318811615606083811b848601821b9081149186901b141717600114614a7757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614ad9575b8381168015614ad2575b878110908818028088189714614aca575b508181119082180218921716171790565b955038614ab9565b5080614aa8565b955085614a9e565b8054906000906000815582614af557505050565b6000526020600020918201915b828110614b0e57505050565b818155600101614b02565b6001600160501b03199035818116939260168110614b3657505050565b60160360031b82901b16169150565b80546801000000000000000081101561112d57614b67916001820181556147f2565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110614bb957505050565b60020360031b82901b16169150565b91908035016020808201913560fe81118015614ec4575b614eb257600180614bef87611ffb565b0154614e99575b60001982019260005b848110614d6c5750505093614cc0614cb98387614c59614caa614c91612179614c8b614c8587614cdc9e9f8e614c80614cea9f8f90611f6f6127c16127bb614c4b614c519489896123f5565b90611de9565b9a8b91611ffb565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6123f5565b90611e17565b90614b9c565b614c9a88611ffb565b9060f01c61ffff19825416179055565b6001600160a01b0316966123f5565b8091611dfa565b6040519586939092906001600160e01b03191660208501614b86565b03601f19810184528361119f565b803b15610213576000614d1192604051809481926306d61fe760e41b835260048301612306565b038183855af19081156107c5576000805160206158a0833981519152926129bc92614d59575b5060408051600681526001600160a01b03909216602083015290918291820190565b806107bf614d669261111a565b38614d37565b614dad83614d798a611ffb565b01614da7614d9a614d94614d8e868a8d6123f5565b90611ddb565b90614b19565b6001600160501b03191690565b90614b45565b614dc7611f6f611f6f6127c16127bb614c4b868a8d6123f5565b90614dd6614cb982878a6123f5565b92614df78b614cdc604096875195869363ffffffff60e01b168a8501614b86565b803b156102135783516306d61fe760e41b8152916000918391829084908290614e239060048301612306565b03925af180156107c5578593614e5d6127c16127bb614c4b878c8f6000805160206158a083398151915299614e7d99614e86575b506123f5565b9051600581526001600160a01b0390911660208201529081906040820190565b0390a101614bff565b806107bf614e939261111a565b38614e57565b614ead6001614ea788611ffb565b01614ae1565b614bf6565b60405163b62d956d60e01b8152600490fd5b508015614bdf565b6000805160206158a083398151915291604091906001600160a01b0380821615614f4d575b90911660008181527f1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b8660205283902080546001600160a01b0319166001600160a01b0390931692909217909155815190600282526020820152a1565b60019150614ef1565b91908035019160209060208401933590614f6f81611ffb565b926001808501600181540185036150e2576000825b615036575b50505050614fd691614fd182614cc06102239798614fae6001614ea7614cdc98611ffb565b8754614fc59060101c6001600160a01b0316611f6f565b946000198101916123f5565b613e01565b5080546000805160206158c083398151915290615023906150029060101c6001600160a01b0316611f6f565b60408051600681526001600160a01b03909216602083015290918291820190565b0390a180546001600160b01b0319169055565b81548110156150dd579082826000805160206158c08339815191526150d28c6150a46150b28a612bab8d8f8961508a916150798d9f8f6148ce916148c1916147f2565b6001600160a01b03169990506123f5565b60409691875195869463ffffffff60e01b16908501614b86565b03601f19810183528261119f565b5051600581526001600160a01b0390911660208201529081906040820190565b0390a1019091614f84565b614f89565b60405163013dcc8d60e31b8152600490fd5b908060141161021357813560601c928160341161021357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af115615174573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b919081101561240c5760051b81013590605e1981360301821215610213570190565b9190916151ac836140e5565b9260005b8181106151bc57505050565b806151ca600192848661517e565b80356151d581610202565b6151f6602080936040936151eb85830183612207565b93909201359061511c565b615200858b6139aa565b521561520f575b5050016151b0565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb79161525361523e858b6139aa565b51838051948594888652850152830190610f05565b0390a13880615207565b919091615269836140e5565b9260005b81811061527957505050565b806152af602061528c600194868861517e565b803561529781610202565b6152a46040830183612207565b939092013590615145565b6152b982886139aa565b526152c481876139aa565b500161526d565b90926080926120489594835260018060a01b0316602083015260408201528160608201520190610f05565b91906060830160019360016153156144e0845163ffffffff60e01b1690565b01936000936000958054965b87811061533357505050505050505050565b806153456148ce6148c18c94866147f2565b6001600160a01b031660a088019081526080880195909161536e906001600160f01b0319168752565b6153886153816144b0613a5c8a85613a23565b60ff168952565b6153966148ec895160ff1690565b80840361551057508681816153bb61491f61491961491361540f9c9d6153e298611dad565b60208c018181528c60c06153d76143c160099586018789611dbe565b910152510191611e36565b959095965b51600160f11b90615401906001600160f01b031916612179565b166001600160f01b03191690565b1561541c575b5001615321565b51909150615432906001600160a01b0316611f6f565b865161545690615449906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b03169161549b6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b86016152cb565b03915afa9384156107c5578b946154f1575b50506001600160a01b0383166154d65750860180518b93926154ce91614a46565b905238615415565b9051631f24c1fb60e11b815290810183815281906020010390fd5b615508929450803d106133c0576133b1818361119f565b9138806154ad565b83919694501060001461552f57604051630760bdcf60e11b8152600490fd5b61540f8b9361553e3688612a7f565b60c08a01526153e7565b6000805160206158e08339815191525460009493929060581b916001600160f81b03198316600160f81b810361560b5750604051637aa8f17760e11b81529360209385939092849283926155a092306004860161206c565b039160581c6001600160a01b03165afa9081156107c5576000916155ec575b505b6001600160e01b0319166374eca2c160e11b016155da57565b6040516362467c7760e11b8152600490fd5b615605915060203d60201161215157612149818361119f565b386155bf565b919550929190600160f91b0361250c5760209161562e9160081b9584308861441a565b60405163392dffaf60e01b8152929792958694938593849361566193909230906001600160e01b03191660048701612ff0565b03916001600160a01b03165afa9081156107c557600091615683575b506155c1565b61569c915060203d60201161215157612149818361119f565b3861567d565b156156a957565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b6156f26104fe8383611d1b565b90600483101561570157505050565b602c83106158915761571c611f6f6127c16127bb8685611d46565b602c8201358201602c604c820191013591604c840135840194615756615748613a6a613a5c8787613a23565b6001600160f81b0319161590565b80615800575b9461579d61293a95611f6f956157a2956102239b956127c19a6157b2575b61578d611f6f6127c16127bb8a8a611e25565b916001600160a01b031690613a2c565b611e25565b602c86013595604c0194916126f9565b6157fb606c87013587016157f5602c604c8301920135806157dc611f6f6127c16127bb8488611d57565b936157f0856001600160a01b038a16614ecc565b611d90565b91613ba0565b61577a565b5091939092956040519163ecd0596160e01b83526020838061582a60048201906002602083019252565b03816001600160a01b0389165afa9283156107c557610223986127c19761293a97611f6f976157a29761579d95600091615872575b50959a50959b509550955095505061575c565b61588b915060203d60201161082d5761081f818361119f565b3861585f565b5050600461022391146156a256fed21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032"; + +// Will deploy V0.7 KERNEL_FACTORY_V3_1_ADDRESS to 0xaac5D4240AF87249B3f71BC8E4A2cae074A3E419 +export const KERNEL_V07_FACTORY_V3_1_CREATECALL: Hex = + "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000bac849bb641841b44e965fb01a4bf5f074f84b4d"; + +/* ========= ALCHEMY LIGHT ACCOUNT RELATED ========= */ +// Will deploy the LightAccountFactory v1.1.0 to 0x00004EC70002a32400f8ae005A26081065620D20 +export const LIGHT_ACCOUNT_FACTORY_V110_CREATECALL: Hex = + "0x4e59b44847b379578588920ca78fbf26c0b4956c5528f3e2f146000008fabf7760a0346100cb576001600160401b0390601f6130cb38819003918201601f1916830191848311848410176100b5578084926020946040528339810103126100cb57516001600160a01b038116908190036100cb576040519161270590818401908111848210176100b55760209284926109c6843981520301906000f080156100a9576080526040516108f590816100d1823960805181818160e00152818161030601526103f70152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816311464fbe14610096575080635fbfb9cf1461007c57638cb84e181461004257600080fd5b3461007957602061005b61005536610108565b90610363565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b80fd5b503461007957602061005b61009036610108565b90610274565b90503461010457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101045760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60409101126101595760043573ffffffffffffffffffffffffffffffffffffffff81168103610159579060243590565b600080fd5b6060810190811067ffffffffffffffff82111761017a57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761017a57604052565b60005b8381106101fd5750506000910152565b81810151838201526020016101ed565b90601f60609373ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0931684526040602085015261026d81518092816040880152602088880191016101ea565b0116010190565b9061027f8183610363565b803b610347575073ffffffffffffffffffffffffffffffffffffffff9182604051917fc4d66de8000000000000000000000000000000000000000000000000000000006020840152166024820152602481526102da8161015e565b6040519061042c8083019183831067ffffffffffffffff84111761017a57839261032c926104948539867f0000000000000000000000000000000000000000000000000000000000000000169061020d565b03906000f5801561033b571690565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff1692915050565b600b9060559261042c60209061046f61047b83604096875190610388838701836101a9565b85825282820195610494873961041d61044973ffffffffffffffffffffffffffffffffffffffff92838c51917fc4d66de80000000000000000000000000000000000000000000000000000000088840152166024820152602481526103ec8161015e565b8b51928391878301957f0000000000000000000000000000000000000000000000000000000000000000168661020d565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826101a9565b8951958693610460868601998a92519283916101ea565b840191518093868401906101ea565b010380845201826101a9565b5190208351938401528201523081520160ff8153209056fe60406080815261042c908138038061001681610218565b93843982019181818403126102135780516001600160a01b038116808203610213576020838101516001600160401b0394919391858211610213570186601f820112156102135780519061007161006c83610253565b610218565b918083528583019886828401011161021357888661008f930161026e565b813b156101b9577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916841790556000927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28051158015906101b2575b61010b575b855160e790816103458239f35b855194606086019081118682101761019e578697849283926101889952602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b8a8901525190845af4913d15610194573d9061017a61006c83610253565b91825281943d92013e610291565b508038808080806100fe565b5060609250610291565b634e487b7160e01b84526041600452602484fd5b50826100f9565b855162461bcd60e51b815260048101859052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761023d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161023d57601f01601f191660200190565b60005b8381106102815750506000910152565b8181015183820152602001610271565b919290156102f357508151156102a5575090565b3b156102ae5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156103065750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610336815180928160248601526020868601910161026e565b601f01601f19168101030190fdfe60806040523615605f5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f35b3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f3fea26469706673582212205da2750cd2b0cadfd354d8a1ca4752ed7f22214c8069d852f7dc6b8e9e5ee66964736f6c63430008150033a26469706673582212205367f15fddc0d5cbb3b407c1f8fa018b2549200abc34a5978c9abd75b26a675a64736f6c6343000815003360e03462000160576001600160401b0390601f6200270538819003918201601f1916830191848311848410176200016557808492602094604052833981010312620001605751906001600160a01b03821682036200016057306080527f33e4b41198cc5b8053630ed667ea7c0c4c873f7fc8d9a478b5d7259cec0a4a00918260a05260c05281549060ff8260401c166200014e57808083160362000108575b60405161258990816200017c82396080518181816107b201528181610dbd0152610f99015260a0518161141d015260c0518181816109d701528181610bf501528181610cd4015281816111b001528181611387015281816115ff015281816122af01526124b50152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880806200009e565b60405163f92ee8a960e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806223de291461019a57806301ffc9a7146101955780630a1028c414610190578063150b7a021461018b5780631626ba7e1461018657806318dfb3c7146101815780633659cfe61461017c5780633a871cdd1461017757806347e1da2a146101725780634a58db191461016d5780634d44560d146101685780634f1ef2861461016357806352d1902d1461015e5780638da5cb5b14610159578063a786cac914610154578063b0d691fe1461014f578063b61d27f61461014a578063bc197c8114610145578063c399ec8814610140578063c4d66de81461013b578063d087d28814610136578063f23a6e6114610131578063f2fde38b1461012c5763f698da250361000e5761184d565b6116f2565b611661565b611580565b6113e0565b61130f565b611248565b6111d4565b611165565b61113d565b61106e565b610f53565b610d4d565b610c76565b610bb3565b610ac3565b61096d565b61075e565b610672565b6105bb565b61052a565b610504565b61027b565b6101f0565b73ffffffffffffffffffffffffffffffffffffffff8116036101bd57565b600080fd5b9181601f840112156101bd5782359167ffffffffffffffff83116101bd57602083818601950101116101bd57565b346101bd5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5761022a60043561019f565b61023560243561019f565b61024060443561019f565b67ffffffffffffffff6084358181116101bd576102619036906004016101c2565b505060a4359081116101bd576100199036906004016101c2565b346101bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd576004357fffffffff0000000000000000000000000000000000000000000000000000000081168091036101bd57807f150b7a020000000000000000000000000000000000000000000000000000000060209214908115610341575b8115610317575b506040519015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150143861030c565b7f4e2312e00000000000000000000000000000000000000000000000000000000081149150610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff81116103ae57604052565b61036b565b6020810190811067ffffffffffffffff8211176103ae57604052565b6060810190811067ffffffffffffffff8211176103ae57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176103ae57604052565b67ffffffffffffffff81116103ae57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926104728261042c565b9161048060405193846103eb565b8294818452818301116101bd578281602093846000960137010152565b9080601f830112156101bd578160206104b893359101610466565b90565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101bd576004359067ffffffffffffffff82116101bd576104b89160040161049d565b346101bd57602061051c610517366104bb565b611ec8565b818151910120604051908152f35b346101bd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5761056460043561019f565b61056f60243561019f565b60643567ffffffffffffffff81116101bd5761058f9036906004016101c2565b505060206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b346101bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5760243567ffffffffffffffff81116101bd5761061761060f602092369060040161049d565b600435611f6d565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b9181601f840112156101bd5782359167ffffffffffffffff83116101bd576020808501948460051b0101116101bd57565b346101bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5767ffffffffffffffff6004358181116101bd576106c2903690600401610641565b916024359081116101bd576106db903690600401610641565b91906106e561249d565b8284036107345760005b8481106106f857005b8061072e6107096001938887611da0565b356107138161019f565b610728610721848988611e06565b3691610466565b90612514565b016106ef565b60046040517fa24a13a6000000000000000000000000000000000000000000000000000000008152fd5b346101bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd576004356107998161019f565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016916107df833014156118d9565b61080e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611964565b61081661241c565b60405190610823826103b3565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561085d5750506100199150611a7a565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa6000918161093d575b5061092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b0390fd5b6100199361093891146119ef565b611b66565b61095f91925060203d8111610966575b61095781836103eb565b81019061188e565b903861089c565b503d61094d565b346101bd577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101bd576004359067ffffffffffffffff82116101bd576101609082360301126101bd5760443573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610a6557610a10610a28926024359060040161234d565b9080610a2c575b506040519081529081906020820190565b0390f35b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff150610a5e6118a9565b5038610a17565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e74000000006044820152fd5b346101bd5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5767ffffffffffffffff6004358181116101bd57610b13903690600401610641565b6024358381116101bd57610b2b903690600401610641565b936044359081116101bd57610b44903690600401610641565b92610b4d61249d565b838114801590610ba9575b6107345760005b818110610b6857005b80610ba3610b79600193858a611da0565b35610b838161019f565b610b8e838b89611da0565b35610b9d610721858b8a611e06565b9161253c565b01610b5f565b5085811415610b58565b6000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c735773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001681813b15610c7357602491604051928380927fb760faf900000000000000000000000000000000000000000000000000000000825230600483015234905af18015610c6e57610c62575080f35b610c6b9061039a565b80f35b61189d565b80fd5b346101bd57600060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c7357600435610cb38161019f565b610cbb61241c565b8173ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001692833b15610d49576044908360405195869485937f205c287800000000000000000000000000000000000000000000000000000000855216600484015260243560248401525af18015610c6e57610c62575080f35b8280fd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd57600435610d838161019f565b60243567ffffffffffffffff81116101bd57610da390369060040161049d565b9073ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001692610dea843014156118d9565b610e197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc948286541614611964565b610e2161241c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610e575750506100199150611a7a565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610f33575b50610f20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b61001993610f2e91146119ef565b611c45565b610f4c91925060203d81116109665761095781836103eb565b9038610e96565b346101bd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610fea576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b346101bd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd57602073ffffffffffffffffffffffffffffffffffffffff7f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be5122005416604051908152f35b919082519283825260005b8481106111295750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b6020818301810151848301820152016110ea565b346101bd57610a28611151610517366104bb565b6040519182916020835260208301906110df565b346101bd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101bd5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5760043561120f8161019f565b6044359067ffffffffffffffff82116101bd5761123e6112366100199336906004016101c2565b61072161249d565b906024359061253c565b346101bd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5761128260043561019f565b61128d60243561019f565b67ffffffffffffffff6044358181116101bd576112ae903690600401610641565b50506064358181116101bd576112c8903690600401610641565b50506084359081116101bd576112e29036906004016101c2565b50506040517fbc197c81000000000000000000000000000000000000000000000000000000008152602090f35b346101bd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa8015610c6e576020916000916113c3575b50604051908152f35b6113da9150823d81116109665761095781836103eb565b386113ba565b346101bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5760043561141b8161019f565b7f00000000000000000000000000000000000000000000000000000000000000009081549067ffffffffffffffff60ff8360401c1615921680159081611578575b600114908161156e575b159081611565575b5061153b5782547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011783556114aa908261150557612227565b6114b057005b80547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b83547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1668010000000000000000178455612227565b60046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b9050153861146e565b303b159150611466565b83915061145c565b346101bd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd576040517f35567e1a0000000000000000000000000000000000000000000000000000000081523060048201526000602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa8015610c6e57610a289160009161164357506040519081529081906020820190565b61165b915060203d81116109665761095781836103eb565b38610a17565b346101bd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5761169b60043561019f565b6116a660243561019f565b60843567ffffffffffffffff81116101bd576116c69036906004016101c2565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b346101bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd5760043561172d8161019f565b61173561241c565b73ffffffffffffffffffffffffffffffffffffffff908181169182158015611844575b611813577f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be512200541690818314611813576117ec9073ffffffffffffffffffffffffffffffffffffffff7f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be51220091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b602483604051907fb20f76e30000000000000000000000000000000000000000000000000000000082526004820152fd5b50308314611758565b346101bd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101bd576020611886611e21565b604051908152f35b908160209103126101bd575190565b6040513d6000823e3d90fd5b3d156118d4573d906118ba8261042c565b916118c860405193846103eb565b82523d6000602084013e565b606090565b156118e057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561196b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b156119f657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b803b15611ae25773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b90611b7082611a7a565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611c3d575b611bbf575050565b611c3a9160008060405193611bd3856103cf565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4611c346118a9565b91611ca5565b50565b506000611bb7565b90611c4f82611a7a565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611c9d57611bbf575050565b506001611bb7565b91929015611d205750815115611cb9575090565b3b15611cc25790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015611d335750805190602001fd5b610926906040519182917f08c379a00000000000000000000000000000000000000000000000000000000083526020600484015260248301906110df565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9190811015611db05760051b0190565b611d71565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101bd570180359067ffffffffffffffff82116101bd576020019181360383136101bd57565b90821015611db057611e1d9160051b810190611db5565b9091565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527fcbe29a6ace531c23849b5cdb1a6b991866eb7dc20deda15202ba6fd921ed2c0060408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176103ae5760405251902090565b6020815191012060405160208101917f5e3baca2936049843f06038876a12f03627b5edc98025751ecf2ac75626401998352604082015260408152611f0c816103cf565b519020611f17611e21565b90604051917f1901000000000000000000000000000000000000000000000000000000000000602084015260228301526042820152604281526080810181811067ffffffffffffffff8211176103ae5760405290565b60405190602082015260208152604081019080821067ffffffffffffffff8311176103ae57611f9e91604052611ec8565b602081519101209073ffffffffffffffffffffffffffffffffffffffff91827f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be5122005416611fea83836120a3565b600581969296101561207457159485612068575b50508315612056575b505050612032577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b6120609350612166565b388080612007565b16811493503880611ffe565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9060418151146000146120cd57611e1d916020820151906060604084015193015160001a906120d7565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831161215a5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15610c6e57815173ffffffffffffffffffffffffffffffffffffffff811615612154579190565b50600190565b50505050600090600390565b600091929082916040516121e3816121b760208201947f1626ba7e00000000000000000000000000000000000000000000000000000000998a875260248401526040604484015260648301906110df565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826103eb565b51915afa906121f06118a9565b82612219575b8261220057505090565b6122159192506020808251830101910161188e565b1490565b9150602082511015916121f6565b73ffffffffffffffffffffffffffffffffffffffff9081811691821561231c576122ad839273ffffffffffffffffffffffffffffffffffffffff7f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be51220091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b7f0000000000000000000000000000000000000000000000000000000000000000167fec6a23b49d2c363d250c9dda15610e835d428207d15ddb36a6c230e37371ddf1600080a360007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3565b60246040517fb20f76e300000000000000000000000000000000000000000000000000000000815260006004820152fd5b73ffffffffffffffffffffffffffffffffffffffff91827f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be51220054167f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005281601c526123d06123c9610721603c60002095610140810190611db5565b80946120a3565b600581969296101561207457159485612410575b505083156123fe575b5050506123f957600190565b600090565b6124089350612166565b3880806123ed565b168114935038806123e4565b303314158061245c575b61242c57565b60246040517f4a0bfec1000000000000000000000000000000000000000000000000000000008152336004820152fd5b5073ffffffffffffffffffffffffffffffffffffffff7f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be5122005416331415612426565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001633141590816124e6575b5061242c57565b90507f691ec1a18226d004c07c9f8e5c4a6ff15a7b38db267cf7e3c945aef8be5122005416331415386124df565b600091829182602083519301915af161252b6118a9565b90156125345750565b602081519101fd5b916000928392602083519301915af161252b6118a956fea2646970667358221220c5240b5a614209162da17798c4589910308036b820e321c267b03d8cedb5e48164736f6c634300081500330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789"; diff --git a/packages/devnet/src/tasks/deploy-anvil.ts b/packages/devnet/src/tasks/deploy-anvil.ts index 72518cfc..88ab5817 100644 --- a/packages/devnet/src/tasks/deploy-anvil.ts +++ b/packages/devnet/src/tasks/deploy-anvil.ts @@ -23,9 +23,11 @@ const deploy = async ( fs.mkdirSync(path.dirname(exportFile), { recursive: true }); // run anvil - const anvil = spawn("anvil", ["--dump-state", dumpFile], { - stdio: silent ? "pipe" : "inherit", - }); + const args = ["--dump-state", dumpFile]; + if (silent) { + args.push("--silent"); + } + const anvil = spawn("anvil", args, { stdio: "inherit" }); try { // run deployment diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b63240e..a36cf424 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -171,7 +171,7 @@ importers: version: 1.4.0 '@nomicfoundation/hardhat-viem': specifier: ^2.0.3 - version: 2.0.3(hardhat@2.22.6(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3))(typescript@5.5.3))(typescript@5.5.3)(viem@2.17.1(typescript@5.5.3)(zod@3.23.8))(zod@3.23.8) + version: 2.0.3(hardhat@2.22.6(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3))(typescript@5.5.3))(typescript@5.5.3)(viem@2.17.5(typescript@5.5.3)(zod@3.23.8))(zod@3.23.8) '@safe-global/safe-singleton-factory': specifier: ^1.0.28 version: 1.0.28 @@ -199,6 +199,9 @@ importers: typescript: specifier: ^5.5.3 version: 5.5.3 + viem: + specifier: ^2.17.5 + version: 2.17.5(typescript@5.5.3)(zod@3.23.8) packages/eslint-config: devDependencies: @@ -1145,6 +1148,7 @@ packages: '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1152,6 +1156,7 @@ packages: '@humanwhocodes/object-schema@2.0.2': resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + deprecated: Use @eslint/object-schema instead '@humanwhocodes/retry@0.3.0': resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} @@ -3609,6 +3614,7 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -3824,6 +3830,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -5648,6 +5655,14 @@ packages: typescript: optional: true + viem@2.17.5: + resolution: {integrity: sha512-m0QIKQF1uqTFWAYNeAdhNUBFMaIs0Mwhu2VmZuXmBMkzJ0IL0ViblLH13JRwbDnOaY82KYzNhCARmfnLBWVdkA==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + vite-node@1.6.0: resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -7843,13 +7858,13 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-viem@2.0.3(hardhat@2.22.6(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3))(typescript@5.5.3))(typescript@5.5.3)(viem@2.17.1(typescript@5.5.3)(zod@3.23.8))(zod@3.23.8)': + '@nomicfoundation/hardhat-viem@2.0.3(hardhat@2.22.6(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3))(typescript@5.5.3))(typescript@5.5.3)(viem@2.17.5(typescript@5.5.3)(zod@3.23.8))(zod@3.23.8)': dependencies: abitype: 0.9.10(typescript@5.5.3)(zod@3.23.8) hardhat: 2.22.6(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3))(typescript@5.5.3) lodash.memoize: 4.1.2 typescript: 5.5.3 - viem: 2.17.1(typescript@5.5.3)(zod@3.23.8) + viem: 2.17.5(typescript@5.5.3)(zod@3.23.8) transitivePeerDependencies: - zod @@ -13271,6 +13286,23 @@ snapshots: - utf-8-validate - zod + viem@2.17.5(typescript@5.5.3)(zod@3.23.8): + dependencies: + '@adraffy/ens-normalize': 1.10.0 + '@noble/curves': 1.4.0 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + abitype: 1.0.5(typescript@5.5.3)(zod@3.23.8) + isows: 1.0.4(ws@8.17.1) + ws: 8.17.1 + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + vite-node@1.6.0(@types/node@20.14.10): dependencies: cac: 6.7.14