@enclave-e3/contracts 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +4 -4
- package/artifacts/build-info/{solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.json → solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.json} +27 -12
- package/artifacts/build-info/solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.output.json +1 -0
- package/artifacts/contracts/E3RefundManager.sol/E3RefundManager.json +684 -0
- package/artifacts/contracts/E3RefundManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/Enclave.sol/Enclave.json +530 -182
- package/artifacts/contracts/Enclave.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +14 -1
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +55 -5
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
- package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +19 -24
- package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IE3RefundManager.sol/IE3RefundManager.json +470 -0
- package/artifacts/contracts/interfaces/IE3RefundManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +383 -128
- package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/ISlashVerifier.sol/ISlashVerifier.json +1 -1
- package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +1 -1
- package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +1 -1
- package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +16 -3
- package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +91 -25
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
- package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +3 -3
- package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +57 -7
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +57 -7
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
- package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +3 -3
- package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +1 -1
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +21 -26
- package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +1 -1
- package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +3 -3
- package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +14 -22
- package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +10 -10
- package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.json +89 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/CommitmentSchemeLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.json +186 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/FrLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/Honk.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/HonkVerificationKey.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/IVerifier.json +38 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/RelationsLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.json +400 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/artifacts.d.ts +155 -0
- package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +1 -1
- package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +1 -1
- package/contracts/E3RefundManager.sol +365 -0
- package/contracts/Enclave.sol +426 -119
- package/contracts/interfaces/IBondingRegistry.sol +6 -0
- package/contracts/interfaces/ICiphernodeRegistry.sol +29 -7
- package/contracts/interfaces/IE3.sol +2 -6
- package/contracts/interfaces/IE3Program.sol +3 -7
- package/contracts/interfaces/IE3RefundManager.sol +150 -0
- package/contracts/interfaces/IEnclave.sol +186 -64
- package/contracts/registry/BondingRegistry.sol +9 -0
- package/contracts/registry/CiphernodeRegistryOwnable.sol +89 -42
- package/contracts/test/MockCiphernodeRegistry.sol +20 -6
- package/contracts/test/MockE3Program.sol +3 -8
- package/contracts/verifier/DkgPkVerifier.sol +3140 -0
- package/dist/hardhat.config.d.ts.map +1 -1
- package/dist/hardhat.config.js +4 -4
- package/dist/ignition/modules/dkgPkVerifier.d.ts +3 -0
- package/dist/ignition/modules/dkgPkVerifier.d.ts.map +1 -0
- package/dist/ignition/modules/dkgPkVerifier.js +10 -0
- package/dist/ignition/modules/e3RefundManager.d.ts +3 -0
- package/dist/ignition/modules/e3RefundManager.d.ts.map +1 -0
- package/dist/ignition/modules/e3RefundManager.js +23 -0
- package/dist/ignition/modules/enclave.d.ts.map +1 -1
- package/dist/ignition/modules/enclave.js +10 -0
- package/dist/scripts/deployAndSave/e3RefundManager.d.ts +20 -0
- package/dist/scripts/deployAndSave/e3RefundManager.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/e3RefundManager.js +55 -0
- package/dist/scripts/deployAndSave/enclave.d.ts +13 -1
- package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/enclave.js +8 -1
- package/dist/scripts/deployAndSave/verifiers.d.ts +29 -0
- package/dist/scripts/deployAndSave/verifiers.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/verifiers.js +109 -0
- package/dist/scripts/deployEnclave.d.ts.map +1 -1
- package/dist/scripts/deployEnclave.js +36 -0
- package/dist/scripts/deployVerifiers.d.ts +2 -0
- package/dist/scripts/deployVerifiers.d.ts.map +1 -0
- package/dist/scripts/deployVerifiers.js +33 -0
- package/dist/scripts/index.d.ts +1 -0
- package/dist/scripts/index.d.ts.map +1 -1
- package/dist/scripts/index.js +1 -0
- package/dist/tasks/enclave.d.ts +0 -2
- package/dist/tasks/enclave.d.ts.map +1 -1
- package/dist/tasks/enclave.js +8 -72
- package/dist/tasks/program.d.ts +2 -0
- package/dist/tasks/program.d.ts.map +1 -0
- package/dist/tasks/program.js +55 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.d.ts +2 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.d.ts.map +1 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.js +757 -0
- package/dist/test/Enclave.spec.js +83 -406
- package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +133 -59
- package/dist/types/contracts/E3RefundManager.d.ts +379 -0
- package/dist/types/contracts/E3RefundManager.d.ts.map +1 -0
- package/dist/types/contracts/E3RefundManager.js +24 -0
- package/dist/types/contracts/Enclave.d.ts +325 -73
- package/dist/types/contracts/Enclave.d.ts.map +1 -1
- package/dist/types/contracts/Enclave.js +27 -3
- package/dist/types/contracts/index.d.ts +3 -0
- package/dist/types/contracts/index.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +11 -1
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +35 -7
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +4 -0
- package/dist/types/contracts/interfaces/IE3Program.d.ts +16 -18
- package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IE3RefundManager.d.ts +238 -0
- package/dist/types/contracts/interfaces/IE3RefundManager.d.ts.map +1 -0
- package/dist/types/contracts/interfaces/IE3RefundManager.js +16 -0
- package/dist/types/contracts/interfaces/IEnclave.d.ts +290 -62
- package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IEnclave.js +27 -3
- package/dist/types/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/contracts/registry/BondingRegistry.d.ts +11 -1
- package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -1
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +35 -7
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +4 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +35 -7
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +4 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +35 -7
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +4 -0
- package/dist/types/contracts/test/MockE3Program.d.ts +16 -18
- package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts +138 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.js +1 -0
- package/dist/types/contracts/verifier/index.d.ts +3 -0
- package/dist/types/contracts/verifier/index.d.ts.map +1 -0
- package/dist/types/contracts/verifier/index.js +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +1 -1
- package/dist/types/factories/contracts/E3RefundManager__factory.d.ts +540 -0
- package/dist/types/factories/contracts/E3RefundManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/E3RefundManager__factory.js +706 -0
- package/dist/types/factories/contracts/Enclave__factory.d.ts +412 -143
- package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/Enclave__factory.js +528 -180
- package/dist/types/factories/contracts/index.d.ts +2 -0
- package/dist/types/factories/contracts/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/index.js +2 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +10 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +13 -0
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +42 -4
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +54 -4
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +14 -18
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +18 -23
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts +358 -0
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.js +471 -0
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +303 -103
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +382 -127
- package/dist/types/factories/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/index.js +1 -0
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +11 -1
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +14 -1
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +62 -12
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +79 -13
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +1 -1
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +43 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +55 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +43 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +55 -5
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +1 -1
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +15 -19
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.js +19 -24
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +1 -1
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1 -1
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts +66 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.js +90 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts +87 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.js +122 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts +26 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.js +39 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts +323 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.js +422 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.js +7 -0
- package/dist/types/factories/contracts/verifier/index.d.ts +2 -0
- package/dist/types/factories/contracts/verifier/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/index.js +4 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/package.json +17 -3
- package/artifacts/build-info/solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.output.json +0 -1
|
@@ -8,14 +8,14 @@ export interface BondingRegistry$Type {
|
|
|
8
8
|
readonly _format: "hh3-artifact-1";
|
|
9
9
|
readonly contractName: "BondingRegistry";
|
|
10
10
|
readonly sourceName: "contracts/registry/BondingRegistry.sol";
|
|
11
|
-
readonly abi: [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyRegistered","type":"error"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"CiphernodeBanned","type":"error"},{"inputs":[],"name":"ExitInProgress","type":"error"},{"inputs":[],"name":"ExitNotReady","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidConfiguration","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NoPendingDeregistration","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"NotLicensed","type":"error"},{"inputs":[],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"OnlyRewardDistributor","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"TimestampOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"}],"name":"AssetsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"unlockTimestamp","type":"uint64"}],"name":"AssetsQueuedForExit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint64","name":"unlockAt","type":"uint64"}],"name":"CiphernodeDeregistrationRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"ConfigurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"int256","name":"delta","type":"int256"},{"indexed":false,"internalType":"uint256","name":"newBond","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"reason","type":"bytes32"}],"name":"LicenseBondUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"OperatorActivationChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"includedLockedAssets","type":"bool"}],"name":"PendingAssetsSlashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"}],"name":"SlashedFundsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"int256","name":"delta","type":"int256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"reason","type":"bytes32"}],"name":"TicketBalanceUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"availableTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"bondLicense","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTicketAmount","type":"uint256"},{"internalType":"uint256","name":"maxLicenseAmount","type":"uint256"}],"name":"claimExits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"siblingNodes","type":"uint256[]"}],"name":"deregisterOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"rewardToken","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exitDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getLicenseBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLicenseToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getTicketBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getTicketBalanceAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTicketToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"hasExitInProgress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract EnclaveTicketToken","name":"_ticketToken","type":"address"},{"internalType":"contract IERC20","name":"_licenseToken","type":"address"},{"internalType":"contract ICiphernodeRegistry","name":"_registry","type":"address"},{"internalType":"address","name":"_slashedFundsTreasury","type":"address"},{"internalType":"uint256","name":"_ticketPrice","type":"uint256"},{"internalType":"uint256","name":"_licenseRequiredBond","type":"uint256"},{"internalType":"uint256","name":"_minTicketBalance","type":"uint256"},{"internalType":"uint64","name":"_exitDelay","type":"uint64"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isLicensed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"licenseActiveBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"licenseRequiredBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"licenseToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTicketBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"pendingExits","outputs":[{"internalType":"uint256","name":"ticket","type":"uint256"},{"internalType":"uint256","name":"license","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"previewClaimable","outputs":[{"internalType":"uint256","name":"ticket","type":"uint256"},{"internalType":"uint256","name":"license","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registerOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ICiphernodeRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardDistributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"newExitDelay","type":"uint64"}],"name":"setExitDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBps","type":"uint256"}],"name":"setLicenseActiveBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLicenseRequiredBond","type":"uint256"}],"name":"setLicenseRequiredBond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"newLicenseToken","type":"address"}],"name":"setLicenseToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinTicketBalance","type":"uint256"}],"name":"setMinTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ICiphernodeRegistry","name":"newRegistry","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRewardDistributor","type":"address"}],"name":"setRewardDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSlashedFundsTreasury","type":"address"}],"name":"setSlashedFundsTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSlashingManager","type":"address"}],"name":"setSlashingManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTicketPrice","type":"uint256"}],"name":"setTicketPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract EnclaveTicketToken","name":"newTicketToken","type":"address"}],"name":"setTicketToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"requestedSlashAmount","type":"uint256"},{"internalType":"bytes32","name":"slashReason","type":"bytes32"}],"name":"slashLicenseBond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"requestedSlashAmount","type":"uint256"},{"internalType":"bytes32","name":"slashReason","type":"bytes32"}],"name":"slashTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slashedFundsTreasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slashedLicenseBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slashedTicketBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slashingManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ticketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ticketToken","outputs":[{"internalType":"contract EnclaveTicketToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unbondLicense","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"internalType":"uint256","name":"licenseAmount","type":"uint256"}],"name":"withdrawSlashedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"}];
|
|
12
|
-
readonly bytecode: "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6134fb806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610330575f3560e01c80638e05aaae116101b3578063b7e833e0116100f3578063cca3a5011161009e578063dd8c818e11610079578063dd8c818e14610745578063e5da378f14610758578063e8341e891461076b578063f2fde38b14610774575f5ffd5b8063cca3a5011461070d578063d32759ed14610720578063d5ed4d5a14610733575f5ffd5b8063c3c5a547116100ce578063c3c5a547146106b2578063c43b1f34146106e7578063c9ca1acc146106fa575f5ffd5b8063b7e833e014610683578063bb03bd711461068c578063bff232c11461069f575f5ffd5b80639f8dfddd1161015e578063a91ee0dc11610139578063a91ee0dc14610622578063acc2166a14610635578063ada332dd14610648578063b2f3f6691461065b575f5ffd5b80639f8dfddd146105e9578063a1809b95146105fc578063a542c2a41461060f575f5ffd5b80638f9b1d871161018e5780638f9b1d87146105885780639d7555de146105915780639f8a13d7146105a4575f5ffd5b80638e05aaae1461054f5780638e5ce3ad146105625780638e9ddc0314610575575f5ffd5b8063671b93071161027e5780637333fa82116102295780637b103999116102045780637b103999146104e85780637c79a9da146104fb5780638450e44e1461050c5780638da5cb5b1461051f575f5ffd5b80637333fa82146104bc578063752c36c0146104cf578063781545b3146104d8575f5ffd5b806370f868a61161025957806370f868a61461048e578063715018a6146104a15780637264f3f2146104a9575f5ffd5b8063671b9307146104405780636d3c18d3146104685780636ecfef9a1461047b575f5ffd5b80632c98fd3b116102de5780634cabdd3d116102b95780634cabdd3d146103ef57806351ec538214610402578063561df99e1461042d575f5ffd5b80632c98fd3b146103c05780632e8d9930146103c9578063450e9dec146103dc575f5ffd5b806319fb279a1161030e57806319fb279a14610378578063283886301461038b5780632acde098146103b8575f5ffd5b80630691bdcf146103345780631209b1f6146103495780631598165014610365575b5f5ffd5b6103476103423660046130ff565b610787565b005b61035260065481565b6040519081526020015b60405180910390f35b61034761037336600461313e565b610b23565b61034761038636600461313e565b610bb3565b60095461039f9067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161035c565b610347610e7b565b61035260085481565b6103476103d736600461313e565b6110e4565b6103476103ea366004613169565b61117a565b6103476103fd366004613184565b6111a3565b600154610415906001600160a01b031681565b6040516001600160a01b03909116815260200161035c565b61034761043b366004613169565b611412565b61035261044e366004613169565b6001600160a01b03165f908152600b602052604090205490565b610347610476366004613169565b611463565b610352610489366004613169565b61148d565b61034761049c36600461313e565b61150f565b610347611577565b6103476104b73660046131b6565b61158a565b6103476104ca3660046131f2565b6116d5565b61035260075481565b5f546001600160a01b0316610415565b600254610415906001600160a01b031681565b6001546001600160a01b0316610415565b61034761051a366004613289565b611870565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610415565b61034761055d36600461313e565b6118f8565b600354610415906001600160a01b031681565b610347610583366004613184565b611ae8565b610352600a5481565b61034761059f36600461313e565b611c3d565b6105d96105b2366004613169565b6001600160a01b03165f908152600b6020526040902060010154600160501b900460ff1690565b604051901515815260200161035c565b6103476105f73660046131b6565b611e88565b61034761060a366004613169565b611f4d565b6105d961061d366004613169565b611f77565b610347610630366004613169565b611fa3565b600454610415906001600160a01b031681565b61034761065636600461313e565b611fcd565b61066e610669366004613169565b612157565b6040805192835260208301919091520161035c565b610352600c5481565b61035261069a3660046132a2565b61216d565b6103476106ad366004613169565b6121e7565b6105d96106c0366004613169565b6001600160a01b03165f908152600b6020526040902060010154600160401b900460ff1690565b6103476106f536600461313e565b612211565b61066e610708366004613169565b612299565b600554610415906001600160a01b031681565b6105d961072e366004613169565b6122a6565b5f54610415906001600160a01b031681565b6103476107533660046132cc565b61233a565b610352610766366004613169565b61247a565b610352600d5481565b610347610782366004613169565b6124e6565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b909304909316151560808201529161080e5750806020015167ffffffffffffffff1642105b1561082c5760405163376d91e160e21b815260040160405180910390fd5b335f908152600b602052604090206001810154600160401b900460ff166108665760405163aba4733960e01b815260040160405180910390fd5b60018101805469ffff00000000000000001916600160481b1790556009546108989067ffffffffffffffff1642613362565b60018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790555f80546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610902573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109269190613382565b825490915081156109e7575f5460405163216f226360e21b8152336004820152602481018490526001600160a01b03909116906385bc898c906044015f604051808303815f87803b158015610979575f5ffd5b505af115801561098b573d5f5f3e3d5ffd5b5050505067574954484452415760c01b336001600160a01b03167f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e846109d090613399565b604080519182525f60208301520160405180910390a35b8015610a3c575f83556515539093d39160d21b337f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6610a2584613399565b604080519182525f60208301520160405180910390a35b81151580610a4957508015155b15610a6b57600954610a6b90600e90339067ffffffffffffffff168585612528565b60025460405163a04e606560e01b81526001600160a01b039091169063a04e606590610a9f9033908b908b906004016133b3565b5f604051808303815f87803b158015610ab6575f5ffd5b505af1158015610ac8573d5f5f3e3d5ffd5b50505050600183015460405167ffffffffffffffff909116815233907f55278ae09e344fb61a9a1d094010b3ce004a7eacca9b11e10f0f119d03f1f38f9060200160405180910390a2610b1a336126ec565b50505050505050565b610b2b612839565b805f03610b4b5760405163c52a9bd360e01b815260040160405180910390fd5b600680549082905560408051828152602081018490527f7469636b65745072696365000000000000000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a91015b60405180910390a25050565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610c3a5750806020015167ffffffffffffffff1642105b15610c585760405163376d91e160e21b815260040160405180910390fd5b825f03610c7857604051631f2a200560e01b815260040160405180910390fd5b335f908152600b6020526040902060010154600160401b900460ff16610cb15760405163aba4733960e01b815260040160405180910390fd5b5f546040516370a0823160e01b815233600482015284916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cf6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1a9190613382565b1015610d3957604051631e9acf1760e31b815260040160405180910390fd5b5f5460405163216f226360e21b8152336004820152602481018590526001600160a01b03909116906385bc898c906044015f604051808303815f87803b158015610d81575f5ffd5b505af1158015610d93573d5f5f3e3d5ffd5b5050600954610db39250600e9150339067ffffffffffffffff1686612894565b67574954484452415760c01b337f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e610dea86613399565b5f546040516370a0823160e01b81523360048201526001600160a01b03909116906370a08231906024015b602060405180830381865afa158015610e30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e549190613382565b604080519283526020830191909152015b60405180910390a3610e76336126ec565b505050565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610f025750806020015167ffffffffffffffff1642105b15610f205760405163376d91e160e21b815260040160405180910390fd5b335f908152600b6020526040902060010154600160481b900460ff1615610f6457335f908152600b60205260409020600101805469ff00ffffffffffffffff191690555b6003546040516397f735d560e01b81523360048201526001600160a01b03909116906397f735d590602401602060405180830381865afa158015610faa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fce9190613413565b15610fec576040516359b217d560e01b815260040160405180910390fd5b335f908152600b6020526040902060010154600160401b900460ff161561102657604051630ea075bf60e21b815260040160405180910390fd5b600754335f908152600b60205260409020541015611057576040516396dcc1ef60e01b815260040160405180910390fd5b335f818152600b602052604090819020600101805468ff00000000000000001916600160401b1790556002549051638a78bb1560e01b815260048101929092526001600160a01b031690638a78bb15906024015f604051808303815f87803b1580156110c1575f5ffd5b505af11580156110d3573d5f5f3e3d5ffd5b505050506110e0336126ec565b5050565b6110ec612839565b5f811180156110fd57506127108111155b61111a5760405163c52a9bd360e01b815260040160405180910390fd5b600a80549082905560408051828152602081018490527f6c6963656e736541637469766542707300000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a9101610ba7565b611182612839565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146111cd576040516282b42960e81b815260040160405180910390fd5b815f036111ed57604051631f2a200560e01b815260040160405180910390fd5b5f6111f9600e856128a1565b505f80546040516370a0823160e01b81526001600160a01b038881166004830152939450919216906370a0823190602401602060405180830381865afa158015611245573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112699190613382565b90505f6112768383613432565b90505f61128386836128ca565b9050805f036112955750505050505050565b5f6112a082856128ca565b90508015611309575f5460405163216f226360e21b81526001600160a01b038a8116600483015260248201849052909116906385bc898c906044015f604051808303815f87803b1580156112f2575f5ffd5b505af1158015611304573d5f5f3e3d5ffd5b505050505b5f6113148284613445565b9050801561132e5761132b600e8a835f60016128d9565b50505b82600c5f82825461133f9190613432565b909155508790506001600160a01b038a167f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e61137a86613399565b5f546040516370a0823160e01b81526001600160a01b038f81166004830152909116906370a0823190602401602060405180830381865afa1580156113c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e59190613382565b604080519283526020830191909152015b60405180910390a3611407896126ec565b505050505050505050565b61141a612839565b6001600160a01b0381166114415760405163d92e233d60e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61146b612839565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6006545f80546040516370a0823160e01b81526001600160a01b038581166004830152929392909116906370a0823190602401602060405180830381865afa1580156114db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ff9190613382565b6115099190613458565b92915050565b611517612839565b600880549082905560408051828152602081018490527f6d696e5469636b657442616c616e636500000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a9101610ba7565b61157f612839565b6115885f6129e7565b565b611592612839565b600c548211156115b557604051631e9acf1760e31b815260040160405180910390fd5b600d548111156115d857604051631e9acf1760e31b815260040160405180910390fd5b81156116575781600c5f8282546115ef9190613445565b90915550505f5460055460405163117de2fd60e01b81526001600160a01b0391821660048201526024810185905291169063117de2fd906044015f604051808303815f87803b158015611640575f5ffd5b505af1158015611652573d5f5f3e3d5ffd5b505050505b80156116905780600d5f82825461166e9190613445565b9091555050600554600154611690916001600160a01b03918216911683612a57565b60055460408051848152602081018490526001600160a01b03909216917f402cfba2a3f22a9ea7e8ad10259b9b4c638cc9c44444b06d6d0927c9e0275b119101610ba7565b5f6116de612acb565b805490915060ff600160401b820416159067ffffffffffffffff165f811580156117055750825b90505f8267ffffffffffffffff1660011480156117215750303b155b90508115801561172f575080155b1561174d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561177c57845468ff00000000000000001916600160401b1785555b61178533612af3565b61178e8d61117a565b6117978c611463565b6117a08b611fa3565b6117a98a611412565b6117b289610b23565b6117bb88612211565b6117c48761150f565b6117cd86611870565b6117d8611f406110e4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038f8116911614611815576118158e6124e6565b831561186057845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050505050565b611878612839565b6009805467ffffffffffffffff83811667ffffffffffffffff19831681179093556040519116917f6578697444656c61790000000000000000000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a91610ba791859190918252602082015260400190565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b909304909316151560808201529161197f5750806020015167ffffffffffffffff1642105b1561199d5760405163376d91e160e21b815260040160405180910390fd5b825f036119bd57604051631f2a200560e01b815260040160405180910390fd5b335f908152600b6020526040902060010154600160401b900460ff166119f65760405163aba4733960e01b815260040160405180910390fd5b5f546040516368a9674d60e01b815233600482018190526024820152604481018590526001600160a01b03909116906368a9674d906064016020604051808303815f875af1158015611a4a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613413565b505f546040516370a0823160e01b815233600482018190527f4445504f534954000000000000000000000000000000000000000000000000009290917f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e9187916001600160a01b03909116906370a0823190602401610e15565b6003546001600160a01b03163314611b12576040516282b42960e81b815260040160405180910390fd5b815f03611b3257604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0383165f908152600b6020526040812090611b55600e866128a1565b9150505f81835f0154611b689190613432565b90505f611b7586836128ca565b9050805f03611b875750505050505050565b5f611b9582865f01546128ca565b90508015611bb55780855f015f828254611baf9190613445565b90915550505b5f611bc08284613445565b90508015611bda57611bd7600e8a5f8460016128d9565b50505b82600d5f828254611beb9190613432565b909155508790506001600160a01b038a167f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6611c2686613399565b8954604080519283526020830191909152016113f6565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611cc45750806020015167ffffffffffffffff1642105b15611ce25760405163376d91e160e21b815260040160405180910390fd5b825f03611d0257604051631f2a200560e01b815260040160405180910390fd5b6001546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611d48573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6c9190613382565b600154909150611d87906001600160a01b0316333087612b04565b6001546040516370a0823160e01b81523060048201525f9183916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611dd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df59190613382565b611dff9190613445565b335f908152600b6020526040812080549293508392909190611e22908490613432565b9091555050335f818152600b602090815260409182902054825185815291820152631093d39160e21b92917f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6910160405180910390a3611e81336126ec565b5050505050565b5f80611e97600e338686612b3d565b915091505f821180611ea857505f81115b611ec5576040516353d8d5b960e01b815260040160405180910390fd5b8115611f2a575f5460405163117de2fd60e01b8152336004820152602481018490526001600160a01b039091169063117de2fd906044015f604051808303815f87803b158015611f13575f5ffd5b505af1158015611f25573d5f5f3e3d5ffd5b505050505b8015611f4757600154611f47906001600160a01b03163383612a57565b50505050565b611f55612839565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f611f80612c41565b6001600160a01b039092165f908152600b60205260409020549190911015919050565b611fab612839565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b90930490931615156080820152916120545750806020015167ffffffffffffffff1642105b156120725760405163376d91e160e21b815260040160405180910390fd5b825f0361209257604051631f2a200560e01b815260040160405180910390fd5b335f908152600b60205260409020548311156120c157604051631e9acf1760e31b815260040160405180910390fd5b335f908152600b6020526040812080548592906120df908490613445565b909155505060095461210090600e90339067ffffffffffffffff1686612c64565b6515539093d39160d21b337f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d661213586613399565b335f908152600b60209081526040918290205482519384529083015201610e65565b5f80612164600e846128a1565b91509150915091565b5f8054604051630748d63560e31b81526001600160a01b0385811660048301526024820185905290911690633a46b1a890604401602060405180830381865afa1580156121bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121e09190613382565b9392505050565b6121ef612839565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b612219612839565b805f036122395760405163c52a9bd360e01b815260040160405180910390fd5b600780549082905560408051828152602081018490527f6c6963656e73655265717569726564426f6e6400000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a9101610ba7565b5f80612164600e84612c71565b6001600160a01b0381165f908152600b60209081526040808320815160a0810183528154815260019091015467ffffffffffffffff81169382019390935260ff600160401b84048116151592820192909252600160481b8304821615801560608301819052600160501b9094049092161515608082015291906121e057506020015167ffffffffffffffff16421092915050565b6004546001600160a01b03163314612365576040516301e803c360e01b815260040160405180910390fd5b8281146123855760405163512509d360e11b815260040160405180910390fd5b825f5b81811015610b1a575f8484838181106123a3576123a3613477565b905060200201351180156124035750600b5f8787848181106123c7576123c7613477565b90506020020160208101906123dc9190613169565b6001600160a01b0316815260208101919091526040015f2060010154600160401b900460ff165b1561247257600454612472906001600160a01b031687878481811061242a5761242a613477565b905060200201602081019061243f9190613169565b86868581811061245157612451613477565b905060200201358a6001600160a01b0316612b04909392919063ffffffff16565b600101612388565b5f80546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a0823190602401602060405180830381865afa1580156124c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115099190613382565b6124ee612839565b6001600160a01b03811661251c57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b612525816129e7565b50565b81158015612534575080155b611e81574261254b8467ffffffffffffffff61348b565b67ffffffffffffffff168167ffffffffffffffff16111561257f5760405163549a019760e01b815260040160405180910390fd5b5f61258a8583613362565b6001600160a01b0387165f908152602089905260408120805492935091908115612637575f836125bb600185613445565b815481106125cb576125cb613477565b5f9182526020909120600390910201805490915067ffffffffffffffff8087169116036126355787156126115787816001015f82825461260b9190613432565b90915550505b86156126305786816002015f82825461262a9190613432565b90915550505b600191505b505b8061267d578254600180820185555f858152602090206003909202909101805467ffffffffffffffff191667ffffffffffffffff87161781559081018890556002018690555b61268b8a8a89896001612d15565b604080518881526020810188905267ffffffffffffffff86168183015290516001600160a01b038b16917fa798fa3372862b9279e9279338081d2e0828e908501dbdf4cf8e2ef83867649d919081900360600190a250505050505050505050565b6001600160a01b0381165f908152600b602052604081206001810154909190600160401b900460ff1680156127295750612724612c41565b825410155b80156127ae57506008546006545f546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa15801561277d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127a19190613382565b6127ab9190613458565b10155b600183015490915060ff600160501b90910416151581151514610e7657600182018054821515600160501b026aff00000000000000000000199091161790556040516001600160a01b038416907f1e5cd4157c0bec375761492bfd692468cecd66e6cb75f397a5195b570692d9059061282c90841515815260200190565b60405180910390a2505050565b3361286b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146115885760405163118cdaa760e01b8152336004820152602401612513565b611f47848484845f612528565b6001600160a01b0381165f908152600283016020526040902080546001909101545b9250929050565b5f8282188284100282186121e0565b5f808415612925576128ee8787875f87612dc3565b91508115612925576001600160a01b0386165f9081526002880160205260408120805484929061291f908490613445565b90915550505b831561297357612939878786600187612dc3565b90508015612973576001600160a01b0386165f9081526002880160205260408120600101805483929061296d908490613445565b90915550505b5f82118061298057505f81115b156129dd5761298f8787612f66565b60408051838152602081018390528415158183015290516001600160a01b038816917faaff5d2d15d2258450693fb56a7e9be67429e9a925525019086c620c5323fd9b919081900360600190a25b9550959350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6040516001600160a01b03838116602483015260448201839052610e7691859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061300c565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00611509565b612afb613078565b6125258161309d565b6040516001600160a01b038481166024830152838116604483015260648201839052611f479186918216906323b872dd90608401612a84565b5f808315612b8957612b528686865f5f612dc3565b91508115612b89576001600160a01b0385165f90815260028701602052604081208054849290612b83908490613445565b90915550505b8215612bd757612b9d86868560015f612dc3565b90508015612bd7576001600160a01b0385165f90815260028701602052604081206001018054839290612bd1908490613445565b90915550505b5f821180612be457505f81115b15612c3857612bf38686612f66565b60408051838152602081018390526001600160a01b038716917fbd58523b9978b5fb3c6487ecc5b6a8ef9cd69c5fb07fb39e0af1e45ef2855fcc910160405180910390a25b94509492505050565b5f612710600a54600754612c5591906134ab565b612c5f9190613458565b905090565b611f478484845f85612528565b6001600160a01b0381165f9081526020838152604080832060018601909252822054829190805b8254811015612d0b575f838281548110612cb457612cb4613477565b5f9182526020909120600390910201805490915067ffffffffffffffff16421015612cdf5750612d0b565b6001810154612cee9087613432565b9550806002015485612d009190613432565b945050600101612c98565b5050509250929050565b82821715611e81576001600160a01b0384165f90815260028601602052604090208115612d7e578315612d5a5783815f015f828254612d549190613432565b90915550505b8215612d795782816001015f828254612d739190613432565b90915550505b612dbb565b8315612d9c5783815f015f828254612d969190613445565b90915550505b8215612dbb5782816001015f828254612db59190613445565b90915550505b505050505050565b5f835f03612dd257505f612f5d565b6001600160a01b0385165f9081526020878152604080832060018a01909252909120548154865b5f81118015612e0757508183105b15612f3f575f848481548110612e1f57612e1f613477565b905f5260205f209060030201905086158015612e455750805467ffffffffffffffff1642105b15612e505750612f3f565b5f80896001811115612e6457612e646134c2565b03612e7457506001810154612e7b565b5060028101545b805f03612e965784612e8c816134d6565b9550505050612df9565b5f818410612ea45781612ea6565b835b90505f8a6001811115612ebb57612ebb6134c2565b03612ede5780836001015f828254612ed39190613445565b90915550612ef79050565b80836002015f828254612ef19190613445565b90915550505b612f018185613445565b9350612f0d8189613432565b975082600101545f148015612f2457506002830154155b15612f375785612f33816134d6565b9650505b505050612df9565b50506001600160a01b0387165f908152600189016020526040902055505b95945050505050565b6001600160a01b0381165f9081526020838152604080832060018601909252909120545b8154811015612fec575f828281548110612fa657612fa6613477565b905f5260205f209060030201905080600101545f148015612fc957506002810154155b15612fe05781612fd8816134d6565b925050612fe6565b50612fec565b50612f8a565b6001600160a01b039092165f908152600190930160205250604090912055565b5f5f60205f8451602086015f885af18061302b576040513d5f823e3d81fd5b50505f513d9150811561304257806001141561304f565b6001600160a01b0384163b155b15611f4757604051635274afe760e01b81526001600160a01b0385166004820152602401612513565b6130806130a5565b61158857604051631afcd79f60e31b815260040160405180910390fd5b6124ee613078565b5f6130ae612acb565b54600160401b900460ff16919050565b5f5f83601f8401126130ce575f5ffd5b50813567ffffffffffffffff8111156130e5575f5ffd5b6020830191508360208260051b85010111156128c3575f5ffd5b5f5f60208385031215613110575f5ffd5b823567ffffffffffffffff811115613126575f5ffd5b613132858286016130be565b90969095509350505050565b5f6020828403121561314e575f5ffd5b5035919050565b6001600160a01b0381168114612525575f5ffd5b5f60208284031215613179575f5ffd5b81356121e081613155565b5f5f5f60608486031215613196575f5ffd5b83356131a181613155565b95602085013595506040909401359392505050565b5f5f604083850312156131c7575f5ffd5b50508035926020909101359150565b803567ffffffffffffffff811681146131ed575f5ffd5b919050565b5f5f5f5f5f5f5f5f5f6101208a8c03121561320b575f5ffd5b893561321681613155565b985060208a013561322681613155565b975060408a013561323681613155565b965060608a013561324681613155565b955060808a013561325681613155565b945060a08a0135935060c08a0135925060e08a0135915061327a6101008b016131d6565b90509295985092959850929598565b5f60208284031215613299575f5ffd5b6121e0826131d6565b5f5f604083850312156132b3575f5ffd5b82356132be81613155565b946020939093013593505050565b5f5f5f5f5f606086880312156132e0575f5ffd5b85356132eb81613155565b9450602086013567ffffffffffffffff811115613306575f5ffd5b613312888289016130be565b909550935050604086013567ffffffffffffffff811115613331575f5ffd5b61333d888289016130be565b969995985093965092949392505050565b634e487b7160e01b5f52601160045260245ffd5b67ffffffffffffffff81811683821601908111156115095761150961334e565b5f60208284031215613392575f5ffd5b5051919050565b5f600160ff1b82016133ad576133ad61334e565b505f0390565b6001600160a01b0384168152604060208201528160408201525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156133f9575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215613423575f5ffd5b815180151581146121e0575f5ffd5b808201808211156115095761150961334e565b818103818111156115095761150961334e565b5f8261347257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b67ffffffffffffffff82811682821603908111156115095761150961334e565b80820281158282048414176115095761150961334e565b634e487b7160e01b5f52602160045260245ffd5b5f600182016134e7576134e761334e565b506001019056fea164736f6c634300081c000a";
|
|
13
|
-
readonly deployedBytecode: "0x608060405234801561000f575f5ffd5b5060043610610330575f3560e01c80638e05aaae116101b3578063b7e833e0116100f3578063cca3a5011161009e578063dd8c818e11610079578063dd8c818e14610745578063e5da378f14610758578063e8341e891461076b578063f2fde38b14610774575f5ffd5b8063cca3a5011461070d578063d32759ed14610720578063d5ed4d5a14610733575f5ffd5b8063c3c5a547116100ce578063c3c5a547146106b2578063c43b1f34146106e7578063c9ca1acc146106fa575f5ffd5b8063b7e833e014610683578063bb03bd711461068c578063bff232c11461069f575f5ffd5b80639f8dfddd1161015e578063a91ee0dc11610139578063a91ee0dc14610622578063acc2166a14610635578063ada332dd14610648578063b2f3f6691461065b575f5ffd5b80639f8dfddd146105e9578063a1809b95146105fc578063a542c2a41461060f575f5ffd5b80638f9b1d871161018e5780638f9b1d87146105885780639d7555de146105915780639f8a13d7146105a4575f5ffd5b80638e05aaae1461054f5780638e5ce3ad146105625780638e9ddc0314610575575f5ffd5b8063671b93071161027e5780637333fa82116102295780637b103999116102045780637b103999146104e85780637c79a9da146104fb5780638450e44e1461050c5780638da5cb5b1461051f575f5ffd5b80637333fa82146104bc578063752c36c0146104cf578063781545b3146104d8575f5ffd5b806370f868a61161025957806370f868a61461048e578063715018a6146104a15780637264f3f2146104a9575f5ffd5b8063671b9307146104405780636d3c18d3146104685780636ecfef9a1461047b575f5ffd5b80632c98fd3b116102de5780634cabdd3d116102b95780634cabdd3d146103ef57806351ec538214610402578063561df99e1461042d575f5ffd5b80632c98fd3b146103c05780632e8d9930146103c9578063450e9dec146103dc575f5ffd5b806319fb279a1161030e57806319fb279a14610378578063283886301461038b5780632acde098146103b8575f5ffd5b80630691bdcf146103345780631209b1f6146103495780631598165014610365575b5f5ffd5b6103476103423660046130ff565b610787565b005b61035260065481565b6040519081526020015b60405180910390f35b61034761037336600461313e565b610b23565b61034761038636600461313e565b610bb3565b60095461039f9067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161035c565b610347610e7b565b61035260085481565b6103476103d736600461313e565b6110e4565b6103476103ea366004613169565b61117a565b6103476103fd366004613184565b6111a3565b600154610415906001600160a01b031681565b6040516001600160a01b03909116815260200161035c565b61034761043b366004613169565b611412565b61035261044e366004613169565b6001600160a01b03165f908152600b602052604090205490565b610347610476366004613169565b611463565b610352610489366004613169565b61148d565b61034761049c36600461313e565b61150f565b610347611577565b6103476104b73660046131b6565b61158a565b6103476104ca3660046131f2565b6116d5565b61035260075481565b5f546001600160a01b0316610415565b600254610415906001600160a01b031681565b6001546001600160a01b0316610415565b61034761051a366004613289565b611870565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610415565b61034761055d36600461313e565b6118f8565b600354610415906001600160a01b031681565b610347610583366004613184565b611ae8565b610352600a5481565b61034761059f36600461313e565b611c3d565b6105d96105b2366004613169565b6001600160a01b03165f908152600b6020526040902060010154600160501b900460ff1690565b604051901515815260200161035c565b6103476105f73660046131b6565b611e88565b61034761060a366004613169565b611f4d565b6105d961061d366004613169565b611f77565b610347610630366004613169565b611fa3565b600454610415906001600160a01b031681565b61034761065636600461313e565b611fcd565b61066e610669366004613169565b612157565b6040805192835260208301919091520161035c565b610352600c5481565b61035261069a3660046132a2565b61216d565b6103476106ad366004613169565b6121e7565b6105d96106c0366004613169565b6001600160a01b03165f908152600b6020526040902060010154600160401b900460ff1690565b6103476106f536600461313e565b612211565b61066e610708366004613169565b612299565b600554610415906001600160a01b031681565b6105d961072e366004613169565b6122a6565b5f54610415906001600160a01b031681565b6103476107533660046132cc565b61233a565b610352610766366004613169565b61247a565b610352600d5481565b610347610782366004613169565b6124e6565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b909304909316151560808201529161080e5750806020015167ffffffffffffffff1642105b1561082c5760405163376d91e160e21b815260040160405180910390fd5b335f908152600b602052604090206001810154600160401b900460ff166108665760405163aba4733960e01b815260040160405180910390fd5b60018101805469ffff00000000000000001916600160481b1790556009546108989067ffffffffffffffff1642613362565b60018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790555f80546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610902573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109269190613382565b825490915081156109e7575f5460405163216f226360e21b8152336004820152602481018490526001600160a01b03909116906385bc898c906044015f604051808303815f87803b158015610979575f5ffd5b505af115801561098b573d5f5f3e3d5ffd5b5050505067574954484452415760c01b336001600160a01b03167f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e846109d090613399565b604080519182525f60208301520160405180910390a35b8015610a3c575f83556515539093d39160d21b337f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6610a2584613399565b604080519182525f60208301520160405180910390a35b81151580610a4957508015155b15610a6b57600954610a6b90600e90339067ffffffffffffffff168585612528565b60025460405163a04e606560e01b81526001600160a01b039091169063a04e606590610a9f9033908b908b906004016133b3565b5f604051808303815f87803b158015610ab6575f5ffd5b505af1158015610ac8573d5f5f3e3d5ffd5b50505050600183015460405167ffffffffffffffff909116815233907f55278ae09e344fb61a9a1d094010b3ce004a7eacca9b11e10f0f119d03f1f38f9060200160405180910390a2610b1a336126ec565b50505050505050565b610b2b612839565b805f03610b4b5760405163c52a9bd360e01b815260040160405180910390fd5b600680549082905560408051828152602081018490527f7469636b65745072696365000000000000000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a91015b60405180910390a25050565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610c3a5750806020015167ffffffffffffffff1642105b15610c585760405163376d91e160e21b815260040160405180910390fd5b825f03610c7857604051631f2a200560e01b815260040160405180910390fd5b335f908152600b6020526040902060010154600160401b900460ff16610cb15760405163aba4733960e01b815260040160405180910390fd5b5f546040516370a0823160e01b815233600482015284916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cf6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1a9190613382565b1015610d3957604051631e9acf1760e31b815260040160405180910390fd5b5f5460405163216f226360e21b8152336004820152602481018590526001600160a01b03909116906385bc898c906044015f604051808303815f87803b158015610d81575f5ffd5b505af1158015610d93573d5f5f3e3d5ffd5b5050600954610db39250600e9150339067ffffffffffffffff1686612894565b67574954484452415760c01b337f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e610dea86613399565b5f546040516370a0823160e01b81523360048201526001600160a01b03909116906370a08231906024015b602060405180830381865afa158015610e30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e549190613382565b604080519283526020830191909152015b60405180910390a3610e76336126ec565b505050565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610f025750806020015167ffffffffffffffff1642105b15610f205760405163376d91e160e21b815260040160405180910390fd5b335f908152600b6020526040902060010154600160481b900460ff1615610f6457335f908152600b60205260409020600101805469ff00ffffffffffffffff191690555b6003546040516397f735d560e01b81523360048201526001600160a01b03909116906397f735d590602401602060405180830381865afa158015610faa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fce9190613413565b15610fec576040516359b217d560e01b815260040160405180910390fd5b335f908152600b6020526040902060010154600160401b900460ff161561102657604051630ea075bf60e21b815260040160405180910390fd5b600754335f908152600b60205260409020541015611057576040516396dcc1ef60e01b815260040160405180910390fd5b335f818152600b602052604090819020600101805468ff00000000000000001916600160401b1790556002549051638a78bb1560e01b815260048101929092526001600160a01b031690638a78bb15906024015f604051808303815f87803b1580156110c1575f5ffd5b505af11580156110d3573d5f5f3e3d5ffd5b505050506110e0336126ec565b5050565b6110ec612839565b5f811180156110fd57506127108111155b61111a5760405163c52a9bd360e01b815260040160405180910390fd5b600a80549082905560408051828152602081018490527f6c6963656e736541637469766542707300000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a9101610ba7565b611182612839565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146111cd576040516282b42960e81b815260040160405180910390fd5b815f036111ed57604051631f2a200560e01b815260040160405180910390fd5b5f6111f9600e856128a1565b505f80546040516370a0823160e01b81526001600160a01b038881166004830152939450919216906370a0823190602401602060405180830381865afa158015611245573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112699190613382565b90505f6112768383613432565b90505f61128386836128ca565b9050805f036112955750505050505050565b5f6112a082856128ca565b90508015611309575f5460405163216f226360e21b81526001600160a01b038a8116600483015260248201849052909116906385bc898c906044015f604051808303815f87803b1580156112f2575f5ffd5b505af1158015611304573d5f5f3e3d5ffd5b505050505b5f6113148284613445565b9050801561132e5761132b600e8a835f60016128d9565b50505b82600c5f82825461133f9190613432565b909155508790506001600160a01b038a167f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e61137a86613399565b5f546040516370a0823160e01b81526001600160a01b038f81166004830152909116906370a0823190602401602060405180830381865afa1580156113c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e59190613382565b604080519283526020830191909152015b60405180910390a3611407896126ec565b505050505050505050565b61141a612839565b6001600160a01b0381166114415760405163d92e233d60e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61146b612839565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6006545f80546040516370a0823160e01b81526001600160a01b038581166004830152929392909116906370a0823190602401602060405180830381865afa1580156114db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ff9190613382565b6115099190613458565b92915050565b611517612839565b600880549082905560408051828152602081018490527f6d696e5469636b657442616c616e636500000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a9101610ba7565b61157f612839565b6115885f6129e7565b565b611592612839565b600c548211156115b557604051631e9acf1760e31b815260040160405180910390fd5b600d548111156115d857604051631e9acf1760e31b815260040160405180910390fd5b81156116575781600c5f8282546115ef9190613445565b90915550505f5460055460405163117de2fd60e01b81526001600160a01b0391821660048201526024810185905291169063117de2fd906044015f604051808303815f87803b158015611640575f5ffd5b505af1158015611652573d5f5f3e3d5ffd5b505050505b80156116905780600d5f82825461166e9190613445565b9091555050600554600154611690916001600160a01b03918216911683612a57565b60055460408051848152602081018490526001600160a01b03909216917f402cfba2a3f22a9ea7e8ad10259b9b4c638cc9c44444b06d6d0927c9e0275b119101610ba7565b5f6116de612acb565b805490915060ff600160401b820416159067ffffffffffffffff165f811580156117055750825b90505f8267ffffffffffffffff1660011480156117215750303b155b90508115801561172f575080155b1561174d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561177c57845468ff00000000000000001916600160401b1785555b61178533612af3565b61178e8d61117a565b6117978c611463565b6117a08b611fa3565b6117a98a611412565b6117b289610b23565b6117bb88612211565b6117c48761150f565b6117cd86611870565b6117d8611f406110e4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038f8116911614611815576118158e6124e6565b831561186057845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050505050565b611878612839565b6009805467ffffffffffffffff83811667ffffffffffffffff19831681179093556040519116917f6578697444656c61790000000000000000000000000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a91610ba791859190918252602082015260400190565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b909304909316151560808201529161197f5750806020015167ffffffffffffffff1642105b1561199d5760405163376d91e160e21b815260040160405180910390fd5b825f036119bd57604051631f2a200560e01b815260040160405180910390fd5b335f908152600b6020526040902060010154600160401b900460ff166119f65760405163aba4733960e01b815260040160405180910390fd5b5f546040516368a9674d60e01b815233600482018190526024820152604481018590526001600160a01b03909116906368a9674d906064016020604051808303815f875af1158015611a4a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613413565b505f546040516370a0823160e01b815233600482018190527f4445504f534954000000000000000000000000000000000000000000000000009290917f51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e9187916001600160a01b03909116906370a0823190602401610e15565b6003546001600160a01b03163314611b12576040516282b42960e81b815260040160405180910390fd5b815f03611b3257604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0383165f908152600b6020526040812090611b55600e866128a1565b9150505f81835f0154611b689190613432565b90505f611b7586836128ca565b9050805f03611b875750505050505050565b5f611b9582865f01546128ca565b90508015611bb55780855f015f828254611baf9190613445565b90915550505b5f611bc08284613445565b90508015611bda57611bd7600e8a5f8460016128d9565b50505b82600d5f828254611beb9190613432565b909155508790506001600160a01b038a167f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6611c2686613399565b8954604080519283526020830191909152016113f6565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611cc45750806020015167ffffffffffffffff1642105b15611ce25760405163376d91e160e21b815260040160405180910390fd5b825f03611d0257604051631f2a200560e01b815260040160405180910390fd5b6001546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611d48573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6c9190613382565b600154909150611d87906001600160a01b0316333087612b04565b6001546040516370a0823160e01b81523060048201525f9183916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611dd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df59190613382565b611dff9190613445565b335f908152600b6020526040812080549293508392909190611e22908490613432565b9091555050335f818152600b602090815260409182902054825185815291820152631093d39160e21b92917f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6910160405180910390a3611e81336126ec565b5050505050565b5f80611e97600e338686612b3d565b915091505f821180611ea857505f81115b611ec5576040516353d8d5b960e01b815260040160405180910390fd5b8115611f2a575f5460405163117de2fd60e01b8152336004820152602481018490526001600160a01b039091169063117de2fd906044015f604051808303815f87803b158015611f13575f5ffd5b505af1158015611f25573d5f5f3e3d5ffd5b505050505b8015611f4757600154611f47906001600160a01b03163383612a57565b50505050565b611f55612839565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f611f80612c41565b6001600160a01b039092165f908152600b60205260409020549190911015919050565b611fab612839565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b335f818152600b6020908152604091829020825160a0810184528154815260019091015467ffffffffffffffff81169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b90930490931615156080820152916120545750806020015167ffffffffffffffff1642105b156120725760405163376d91e160e21b815260040160405180910390fd5b825f0361209257604051631f2a200560e01b815260040160405180910390fd5b335f908152600b60205260409020548311156120c157604051631e9acf1760e31b815260040160405180910390fd5b335f908152600b6020526040812080548592906120df908490613445565b909155505060095461210090600e90339067ffffffffffffffff1686612c64565b6515539093d39160d21b337f4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d661213586613399565b335f908152600b60209081526040918290205482519384529083015201610e65565b5f80612164600e846128a1565b91509150915091565b5f8054604051630748d63560e31b81526001600160a01b0385811660048301526024820185905290911690633a46b1a890604401602060405180830381865afa1580156121bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121e09190613382565b9392505050565b6121ef612839565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b612219612839565b805f036122395760405163c52a9bd360e01b815260040160405180910390fd5b600780549082905560408051828152602081018490527f6c6963656e73655265717569726564426f6e6400000000000000000000000000917f267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0a9101610ba7565b5f80612164600e84612c71565b6001600160a01b0381165f908152600b60209081526040808320815160a0810183528154815260019091015467ffffffffffffffff81169382019390935260ff600160401b84048116151592820192909252600160481b8304821615801560608301819052600160501b9094049092161515608082015291906121e057506020015167ffffffffffffffff16421092915050565b6004546001600160a01b03163314612365576040516301e803c360e01b815260040160405180910390fd5b8281146123855760405163512509d360e11b815260040160405180910390fd5b825f5b81811015610b1a575f8484838181106123a3576123a3613477565b905060200201351180156124035750600b5f8787848181106123c7576123c7613477565b90506020020160208101906123dc9190613169565b6001600160a01b0316815260208101919091526040015f2060010154600160401b900460ff165b1561247257600454612472906001600160a01b031687878481811061242a5761242a613477565b905060200201602081019061243f9190613169565b86868581811061245157612451613477565b905060200201358a6001600160a01b0316612b04909392919063ffffffff16565b600101612388565b5f80546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a0823190602401602060405180830381865afa1580156124c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115099190613382565b6124ee612839565b6001600160a01b03811661251c57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b612525816129e7565b50565b81158015612534575080155b611e81574261254b8467ffffffffffffffff61348b565b67ffffffffffffffff168167ffffffffffffffff16111561257f5760405163549a019760e01b815260040160405180910390fd5b5f61258a8583613362565b6001600160a01b0387165f908152602089905260408120805492935091908115612637575f836125bb600185613445565b815481106125cb576125cb613477565b5f9182526020909120600390910201805490915067ffffffffffffffff8087169116036126355787156126115787816001015f82825461260b9190613432565b90915550505b86156126305786816002015f82825461262a9190613432565b90915550505b600191505b505b8061267d578254600180820185555f858152602090206003909202909101805467ffffffffffffffff191667ffffffffffffffff87161781559081018890556002018690555b61268b8a8a89896001612d15565b604080518881526020810188905267ffffffffffffffff86168183015290516001600160a01b038b16917fa798fa3372862b9279e9279338081d2e0828e908501dbdf4cf8e2ef83867649d919081900360600190a250505050505050505050565b6001600160a01b0381165f908152600b602052604081206001810154909190600160401b900460ff1680156127295750612724612c41565b825410155b80156127ae57506008546006545f546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa15801561277d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127a19190613382565b6127ab9190613458565b10155b600183015490915060ff600160501b90910416151581151514610e7657600182018054821515600160501b026aff00000000000000000000199091161790556040516001600160a01b038416907f1e5cd4157c0bec375761492bfd692468cecd66e6cb75f397a5195b570692d9059061282c90841515815260200190565b60405180910390a2505050565b3361286b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146115885760405163118cdaa760e01b8152336004820152602401612513565b611f47848484845f612528565b6001600160a01b0381165f908152600283016020526040902080546001909101545b9250929050565b5f8282188284100282186121e0565b5f808415612925576128ee8787875f87612dc3565b91508115612925576001600160a01b0386165f9081526002880160205260408120805484929061291f908490613445565b90915550505b831561297357612939878786600187612dc3565b90508015612973576001600160a01b0386165f9081526002880160205260408120600101805483929061296d908490613445565b90915550505b5f82118061298057505f81115b156129dd5761298f8787612f66565b60408051838152602081018390528415158183015290516001600160a01b038816917faaff5d2d15d2258450693fb56a7e9be67429e9a925525019086c620c5323fd9b919081900360600190a25b9550959350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6040516001600160a01b03838116602483015260448201839052610e7691859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061300c565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00611509565b612afb613078565b6125258161309d565b6040516001600160a01b038481166024830152838116604483015260648201839052611f479186918216906323b872dd90608401612a84565b5f808315612b8957612b528686865f5f612dc3565b91508115612b89576001600160a01b0385165f90815260028701602052604081208054849290612b83908490613445565b90915550505b8215612bd757612b9d86868560015f612dc3565b90508015612bd7576001600160a01b0385165f90815260028701602052604081206001018054839290612bd1908490613445565b90915550505b5f821180612be457505f81115b15612c3857612bf38686612f66565b60408051838152602081018390526001600160a01b038716917fbd58523b9978b5fb3c6487ecc5b6a8ef9cd69c5fb07fb39e0af1e45ef2855fcc910160405180910390a25b94509492505050565b5f612710600a54600754612c5591906134ab565b612c5f9190613458565b905090565b611f478484845f85612528565b6001600160a01b0381165f9081526020838152604080832060018601909252822054829190805b8254811015612d0b575f838281548110612cb457612cb4613477565b5f9182526020909120600390910201805490915067ffffffffffffffff16421015612cdf5750612d0b565b6001810154612cee9087613432565b9550806002015485612d009190613432565b945050600101612c98565b5050509250929050565b82821715611e81576001600160a01b0384165f90815260028601602052604090208115612d7e578315612d5a5783815f015f828254612d549190613432565b90915550505b8215612d795782816001015f828254612d739190613432565b90915550505b612dbb565b8315612d9c5783815f015f828254612d969190613445565b90915550505b8215612dbb5782816001015f828254612db59190613445565b90915550505b505050505050565b5f835f03612dd257505f612f5d565b6001600160a01b0385165f9081526020878152604080832060018a01909252909120548154865b5f81118015612e0757508183105b15612f3f575f848481548110612e1f57612e1f613477565b905f5260205f209060030201905086158015612e455750805467ffffffffffffffff1642105b15612e505750612f3f565b5f80896001811115612e6457612e646134c2565b03612e7457506001810154612e7b565b5060028101545b805f03612e965784612e8c816134d6565b9550505050612df9565b5f818410612ea45781612ea6565b835b90505f8a6001811115612ebb57612ebb6134c2565b03612ede5780836001015f828254612ed39190613445565b90915550612ef79050565b80836002015f828254612ef19190613445565b90915550505b612f018185613445565b9350612f0d8189613432565b975082600101545f148015612f2457506002830154155b15612f375785612f33816134d6565b9650505b505050612df9565b50506001600160a01b0387165f908152600189016020526040902055505b95945050505050565b6001600160a01b0381165f9081526020838152604080832060018601909252909120545b8154811015612fec575f828281548110612fa657612fa6613477565b905f5260205f209060030201905080600101545f148015612fc957506002810154155b15612fe05781612fd8816134d6565b925050612fe6565b50612fec565b50612f8a565b6001600160a01b039092165f908152600190930160205250604090912055565b5f5f60205f8451602086015f885af18061302b576040513d5f823e3d81fd5b50505f513d9150811561304257806001141561304f565b6001600160a01b0384163b155b15611f4757604051635274afe760e01b81526001600160a01b0385166004820152602401612513565b6130806130a5565b61158857604051631afcd79f60e31b815260040160405180910390fd5b6124ee613078565b5f6130ae612acb565b54600160401b900460ff16919050565b5f5f83601f8401126130ce575f5ffd5b50813567ffffffffffffffff8111156130e5575f5ffd5b6020830191508360208260051b85010111156128c3575f5ffd5b5f5f60208385031215613110575f5ffd5b823567ffffffffffffffff811115613126575f5ffd5b613132858286016130be565b90969095509350505050565b5f6020828403121561314e575f5ffd5b5035919050565b6001600160a01b0381168114612525575f5ffd5b5f60208284031215613179575f5ffd5b81356121e081613155565b5f5f5f60608486031215613196575f5ffd5b83356131a181613155565b95602085013595506040909401359392505050565b5f5f604083850312156131c7575f5ffd5b50508035926020909101359150565b803567ffffffffffffffff811681146131ed575f5ffd5b919050565b5f5f5f5f5f5f5f5f5f6101208a8c03121561320b575f5ffd5b893561321681613155565b985060208a013561322681613155565b975060408a013561323681613155565b965060608a013561324681613155565b955060808a013561325681613155565b945060a08a0135935060c08a0135925060e08a0135915061327a6101008b016131d6565b90509295985092959850929598565b5f60208284031215613299575f5ffd5b6121e0826131d6565b5f5f604083850312156132b3575f5ffd5b82356132be81613155565b946020939093013593505050565b5f5f5f5f5f606086880312156132e0575f5ffd5b85356132eb81613155565b9450602086013567ffffffffffffffff811115613306575f5ffd5b613312888289016130be565b909550935050604086013567ffffffffffffffff811115613331575f5ffd5b61333d888289016130be565b969995985093965092949392505050565b634e487b7160e01b5f52601160045260245ffd5b67ffffffffffffffff81811683821601908111156115095761150961334e565b5f60208284031215613392575f5ffd5b5051919050565b5f600160ff1b82016133ad576133ad61334e565b505f0390565b6001600160a01b0384168152604060208201528160408201525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156133f9575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215613423575f5ffd5b815180151581146121e0575f5ffd5b808201808211156115095761150961334e565b818103818111156115095761150961334e565b5f8261347257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b67ffffffffffffffff82811682821603908111156115095761150961334e565b80820281158282048414176115095761150961334e565b634e487b7160e01b5f52602160045260245ffd5b5f600182016134e7576134e761334e565b506001019056fea164736f6c634300081c000a";
|
|
11
|
+
readonly abi: [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyRegistered","type":"error"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"CiphernodeBanned","type":"error"},{"inputs":[],"name":"ExitInProgress","type":"error"},{"inputs":[],"name":"ExitNotReady","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidConfiguration","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NoPendingDeregistration","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"NotLicensed","type":"error"},{"inputs":[],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"OnlyRewardDistributor","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"TimestampOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"}],"name":"AssetsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"unlockTimestamp","type":"uint64"}],"name":"AssetsQueuedForExit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint64","name":"unlockAt","type":"uint64"}],"name":"CiphernodeDeregistrationRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"ConfigurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"int256","name":"delta","type":"int256"},{"indexed":false,"internalType":"uint256","name":"newBond","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"reason","type":"bytes32"}],"name":"LicenseBondUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"OperatorActivationChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"includedLockedAssets","type":"bool"}],"name":"PendingAssetsSlashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"licenseAmount","type":"uint256"}],"name":"SlashedFundsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"int256","name":"delta","type":"int256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"reason","type":"bytes32"}],"name":"TicketBalanceUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"availableTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"bondLicense","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTicketAmount","type":"uint256"},{"internalType":"uint256","name":"maxLicenseAmount","type":"uint256"}],"name":"claimExits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"siblingNodes","type":"uint256[]"}],"name":"deregisterOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"rewardToken","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exitDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getLicenseBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLicenseToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getTicketBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getTicketBalanceAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTicketToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"hasExitInProgress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract EnclaveTicketToken","name":"_ticketToken","type":"address"},{"internalType":"contract IERC20","name":"_licenseToken","type":"address"},{"internalType":"contract ICiphernodeRegistry","name":"_registry","type":"address"},{"internalType":"address","name":"_slashedFundsTreasury","type":"address"},{"internalType":"uint256","name":"_ticketPrice","type":"uint256"},{"internalType":"uint256","name":"_licenseRequiredBond","type":"uint256"},{"internalType":"uint256","name":"_minTicketBalance","type":"uint256"},{"internalType":"uint64","name":"_exitDelay","type":"uint64"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isLicensed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"licenseActiveBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"licenseRequiredBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"licenseToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTicketBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numActiveOperators","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"pendingExits","outputs":[{"internalType":"uint256","name":"ticket","type":"uint256"},{"internalType":"uint256","name":"license","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"previewClaimable","outputs":[{"internalType":"uint256","name":"ticket","type":"uint256"},{"internalType":"uint256","name":"license","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registerOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ICiphernodeRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardDistributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"newExitDelay","type":"uint64"}],"name":"setExitDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBps","type":"uint256"}],"name":"setLicenseActiveBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLicenseRequiredBond","type":"uint256"}],"name":"setLicenseRequiredBond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"newLicenseToken","type":"address"}],"name":"setLicenseToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinTicketBalance","type":"uint256"}],"name":"setMinTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ICiphernodeRegistry","name":"newRegistry","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRewardDistributor","type":"address"}],"name":"setRewardDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSlashedFundsTreasury","type":"address"}],"name":"setSlashedFundsTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSlashingManager","type":"address"}],"name":"setSlashingManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTicketPrice","type":"uint256"}],"name":"setTicketPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract EnclaveTicketToken","name":"newTicketToken","type":"address"}],"name":"setTicketToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"requestedSlashAmount","type":"uint256"},{"internalType":"bytes32","name":"slashReason","type":"bytes32"}],"name":"slashLicenseBond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"requestedSlashAmount","type":"uint256"},{"internalType":"bytes32","name":"slashReason","type":"bytes32"}],"name":"slashTicketBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slashedFundsTreasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slashedLicenseBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slashedTicketBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slashingManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ticketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ticketToken","outputs":[{"internalType":"contract EnclaveTicketToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unbondLicense","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ticketAmount","type":"uint256"},{"internalType":"uint256","name":"licenseAmount","type":"uint256"}],"name":"withdrawSlashedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"}];
|
|
12
|
+
readonly bytecode: "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6133a4806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106102c3575f3560e01c80638e05aaae11610177578063b7e833e0116100d5578063cca3a5011161008f578063cca3a50114610674578063d32759ed14610687578063d5ed4d5a1461069a578063dd8c818e146106ac578063e5da378f146106bf578063e8341e89146106d2578063f2fde38b146106db575f5ffd5b8063b7e833e0146105ea578063bb03bd71146105f3578063bff232c114610606578063c3c5a54714610619578063c43b1f341461064e578063c9ca1acc14610661575f5ffd5b80639f8dfddd116101315780639f8dfddd14610550578063a1809b9514610563578063a542c2a414610576578063a91ee0dc14610589578063acc2166a1461059c578063ada332dd146105af578063b2f3f669146105c2575f5ffd5b80638e05aaae146104b65780638e5ce3ad146104c95780638e9ddc03146104dc5780638f9b1d87146104ef5780639d7555de146104f85780639f8a13d71461050b575f5ffd5b8063671b9307116102245780637333fa82116101de5780637333fa821461044b578063752c36c01461045e578063781545b3146104675780637b103999146104775780637c79a9da1461048a5780638450e44e1461049b5780638da5cb5b146104ae575f5ffd5b8063671b9307146103cf5780636d3c18d3146103f75780636ecfef9a1461040a57806370f868a61461041d578063715018a6146104305780637264f3f214610438575f5ffd5b80632acde098116102805780632acde098146103525780632c98fd3b1461035a5780632e8d993014610363578063450e9dec146103765780634cabdd3d1461038957806351ec53821461039c578063561df99e146103bc575f5ffd5b80630691bdcf146102c75780631209b1f6146102dc57806315981650146102f85780631986fb1e1461030b57806319fb279a146103145780632838863014610327575b5f5ffd5b6102da6102d5366004612f00565b6106ee565b005b6102e560065481565b6040519081526020015b60405180910390f35b6102da610306366004612f3e565b610a5e565b6102e5600b5481565b6102da610322366004612f3e565b610ac9565b60095461033a906001600160401b031681565b6040516001600160401b0390911681526020016102ef565b6102da610d84565b6102e560085481565b6102da610371366004612f3e565b610ff0565b6102da610384366004612f69565b611066565b6102da610397366004612f84565b61108f565b6001546103af906001600160a01b031681565b6040516102ef9190612fb6565b6102da6103ca366004612f69565b611301565b6102e56103dd366004612f69565b6001600160a01b03165f908152600c602052604090205490565b6102da610405366004612f69565b611352565b6102e5610418366004612f69565b61137c565b6102da61042b366004612f3e565b611401565b6102da611449565b6102da610446366004612fca565b61145c565b6102da610459366004613005565b6115a7565b6102e560075481565b5f546001600160a01b03166103af565b6002546103af906001600160a01b031681565b6001546001600160a01b03166103af565b6102da6104a936600461309c565b611722565b6103af611782565b6102da6104c4366004612f3e565b6117b0565b6003546103af906001600160a01b031681565b6102da6104ea366004612f84565b61196e565b6102e5600a5481565b6102da610506366004612f3e565b611ab0565b610540610519366004612f69565b6001600160a01b03165f908152600c6020526040902060010154600160501b900460ff1690565b60405190151581526020016102ef565b6102da61055e366004612fca565b611cf0565b6102da610571366004612f69565b611db5565b610540610584366004612f69565b611ddf565b6102da610597366004612f69565b611e0b565b6004546103af906001600160a01b031681565b6102da6105bd366004612f3e565b611e35565b6105d56105d0366004612f69565b611fa9565b604080519283526020830191909152016102ef565b6102e5600d5481565b6102e56106013660046130b5565b611fbf565b6102da610614366004612f69565b612037565b610540610627366004612f69565b6001600160a01b03165f908152600c6020526040902060010154600160401b900460ff1690565b6102da61065c366004612f3e565b612061565b6105d561066f366004612f69565b6120cc565b6005546103af906001600160a01b031681565b610540610695366004612f69565b6120d9565b5f546103af906001600160a01b031681565b6102da6106ba3660046130df565b61216b565b6102e56106cd366004612f69565b6122ab565b6102e5600e5481565b6102da6106e9366004612f69565b61231a565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610773575080602001516001600160401b031642105b156107915760405163376d91e160e21b815260040160405180910390fd5b335f908152600c602052604090206001810154600160401b900460ff166107cb5760405163aba4733960e01b815260040160405180910390fd5b60018101805461ffff60401b1916600160481b1790556009546107f7906001600160401b031642613173565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790555f80546040516370a0823160e01b81526001600160a01b03909116906370a082319061084a903390600401612fb6565b602060405180830381865afa158015610865573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108899190613192565b82549091508115610937575f5460405163216f226360e21b81526001600160a01b03909116906385bc898c906108c590339086906004016131a9565b5f604051808303815f87803b1580156108dc575f5ffd5b505af11580156108ee573d5f5f3e3d5ffd5b5050505067574954484452415760c01b336001600160a01b03165f5160206133385f395f51905f5284610920906131c2565b604080519182525f60208301520160405180910390a35b8015610979575f83556515539093d39160d21b335f5160206133585f395f51905f52610962846131c2565b604080519182525f60208301520160405180910390a35b8115158061098657508015155b156109a7576009546109a790600f9033906001600160401b03168585612360565b60025460405163a04e606560e01b81526001600160a01b039091169063a04e6065906109db9033908b908b906004016131dc565b5f604051808303815f87803b1580156109f2575f5ffd5b505af1158015610a04573d5f5f3e3d5ffd5b5050505060018301546040516001600160401b03909116815233907f55278ae09e344fb61a9a1d094010b3ce004a7eacca9b11e10f0f119d03f1f38f9060200160405180910390a2610a553361251e565b50505050505050565b610a6661269c565b805f03610a865760405163c52a9bd360e01b815260040160405180910390fd5b600680549082905560408051828152602081018490526a7469636b6574507269636560a81b915f5160206133785f395f51905f5291015b60405180910390a25050565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610b4e575080602001516001600160401b031642105b15610b6c5760405163376d91e160e21b815260040160405180910390fd5b825f03610b8c57604051631f2a200560e01b815260040160405180910390fd5b335f908152600c6020526040902060010154600160401b900460ff16610bc55760405163aba4733960e01b815260040160405180910390fd5b5f546040516370a0823160e01b815284916001600160a01b0316906370a0823190610bf4903390600401612fb6565b602060405180830381865afa158015610c0f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c339190613192565b1015610c5257604051631e9acf1760e31b815260040160405180910390fd5b5f5460405163216f226360e21b81526001600160a01b03909116906385bc898c90610c8390339087906004016131a9565b5f604051808303815f87803b158015610c9a575f5ffd5b505af1158015610cac573d5f5f3e3d5ffd5b5050600954610ccb9250600f915033906001600160401b0316866126ce565b67574954484452415760c01b335f5160206133385f395f51905f52610cef866131c2565b5f546040516370a0823160e01b81526001600160a01b03909116906370a0823190610d1e903390600401612fb6565b602060405180830381865afa158015610d39573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5d9190613192565b604080519283526020830191909152015b60405180910390a3610d7f3361251e565b505050565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610e09575080602001516001600160401b031642105b15610e275760405163376d91e160e21b815260040160405180910390fd5b335f908152600c6020526040902060010154600160481b900460ff1615610e6b57335f908152600c60205260409020600101805469ff00ffffffffffffffff191690555b6003546040516397f735d560e01b81526001600160a01b03909116906397f735d590610e9b903390600401612fb6565b602060405180830381865afa158015610eb6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eda9190613224565b15610ef8576040516359b217d560e01b815260040160405180910390fd5b335f908152600c6020526040902060010154600160401b900460ff1615610f3257604051630ea075bf60e21b815260040160405180910390fd5b600754335f908152600c60205260409020541015610f63576040516396dcc1ef60e01b815260040160405180910390fd5b335f818152600c602052604090819020600101805460ff60401b1916600160401b1790556002549051638a78bb1560e01b81526001600160a01b039190911691638a78bb1591610fb69190600401612fb6565b5f604051808303815f87803b158015610fcd575f5ffd5b505af1158015610fdf573d5f5f3e3d5ffd5b50505050610fec3361251e565b5050565b610ff861269c565b5f8111801561100957506127108111155b6110265760405163c52a9bd360e01b815260040160405180910390fd5b600a80549082905560408051828152602081018490526f6c6963656e736541637469766542707360801b915f5160206133785f395f51905f529101610abd565b61106e61269c565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146110b9576040516282b42960e81b815260040160405180910390fd5b815f036110d957604051631f2a200560e01b815260040160405180910390fd5b5f6110e5600f856126db565b505f80546040516370a0823160e01b815292935090916001600160a01b03909116906370a082319061111b908890600401612fb6565b602060405180830381865afa158015611136573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115a9190613192565b90505f6111678383613243565b90505f6111748683612704565b9050805f036111865750505050505050565b5f6111918285612704565b905080156111f8575f5460405163216f226360e21b81526001600160a01b03909116906385bc898c906111ca908b9085906004016131a9565b5f604051808303815f87803b1580156111e1575f5ffd5b505af11580156111f3573d5f5f3e3d5ffd5b505050505b5f6112038284613256565b9050801561121d5761121a600f8a835f6001612713565b50505b82600d5f82825461122e9190613243565b909155508790506001600160a01b038a165f5160206133385f395f51905f52611256866131c2565b5f5f9054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016112959190612fb6565b602060405180830381865afa1580156112b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d49190613192565b604080519283526020830191909152015b60405180910390a36112f68961251e565b505050505050505050565b61130961269c565b6001600160a01b0381166113305760405163d92e233d60e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61135a61269c565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6006545f80546040516370a0823160e01b81529192916001600160a01b03909116906370a08231906113b2908690600401612fb6565b602060405180830381865afa1580156113cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f19190613192565b6113fb9190613269565b92915050565b61140961269c565b600880549082905560408051828152602081018490526f6d696e5469636b657442616c616e636560801b915f5160206133785f395f51905f529101610abd565b61145161269c565b61145a5f612821565b565b61146461269c565b600d5482111561148757604051631e9acf1760e31b815260040160405180910390fd5b600e548111156114aa57604051631e9acf1760e31b815260040160405180910390fd5b81156115295781600d5f8282546114c19190613256565b90915550505f5460055460405163117de2fd60e01b81526001600160a01b039283169263117de2fd926114fb9291169086906004016131a9565b5f604051808303815f87803b158015611512575f5ffd5b505af1158015611524573d5f5f3e3d5ffd5b505050505b80156115625780600e5f8282546115409190613256565b9091555050600554600154611562916001600160a01b03918216911683612891565b60055460408051848152602081018490526001600160a01b03909216917f402cfba2a3f22a9ea7e8ad10259b9b4c638cc9c44444b06d6d0927c9e0275b119101610abd565b5f6115b06128e9565b805490915060ff600160401b82041615906001600160401b03165f811580156115d65750825b90505f826001600160401b031660011480156115f15750303b155b9050811580156115ff575080155b1561161d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561164757845460ff60401b1916600160401b1785555b61165033612911565b6116598d611066565b6116628c611352565b61166b8b611e0b565b6116748a611301565b61167d89610a5e565b61168688612061565b61168f87611401565b61169886611722565b6116a3611f40610ff0565b6116ab611782565b6001600160a01b03168e6001600160a01b0316146116cc576116cc8e61231a565b831561171257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050505050565b61172a61269c565b600980546001600160401b0383811667ffffffffffffffff1983168117909355604051911691686578697444656c617960b81b915f5160206133785f395f51905f5291610abd91859190918252602082015260400190565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611835575080602001516001600160401b031642105b156118535760405163376d91e160e21b815260040160405180910390fd5b825f0361187357604051631f2a200560e01b815260040160405180910390fd5b335f908152600c6020526040902060010154600160401b900460ff166118ac5760405163aba4733960e01b815260040160405180910390fd5b5f546040516368a9674d60e01b81526001600160a01b03909116906368a9674d906118df90339081908890600401613288565b6020604051808303815f875af11580156118fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191f9190613224565b505f546040516370a0823160e01b81526611115413d4d25560ca1b9133915f5160206133385f395f51905f529187916001600160a01b03909116906370a0823190610d1e908690600401612fb6565b6003546001600160a01b03163314611998576040516282b42960e81b815260040160405180910390fd5b815f036119b857604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0383165f908152600c60205260408120906119db600f866126db565b9150505f81835f01546119ee9190613243565b90505f6119fb8683612704565b9050805f03611a0d5750505050505050565b5f611a1b82865f0154612704565b90508015611a3b5780855f015f828254611a359190613256565b90915550505b5f611a468284613256565b90508015611a6057611a5d600f8a5f846001612713565b50505b82600e5f828254611a719190613243565b909155508790506001600160a01b038a165f5160206133585f395f51905f52611a99866131c2565b8954604080519283526020830191909152016112e5565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611b35575080602001516001600160401b031642105b15611b535760405163376d91e160e21b815260040160405180910390fd5b825f03611b7357604051631f2a200560e01b815260040160405180910390fd5b6001546040516370a0823160e01b81525f916001600160a01b0316906370a0823190611ba3903090600401612fb6565b602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be29190613192565b600154909150611bfd906001600160a01b0316333087612922565b6001546040516370a0823160e01b81525f9183916001600160a01b03909116906370a0823190611c31903090600401612fb6565b602060405180830381865afa158015611c4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c709190613192565b611c7a9190613256565b335f908152600c6020526040812080549293508392909190611c9d908490613243565b9091555050335f818152600c602090815260409182902054825185815291820152631093d39160e21b92915f5160206133585f395f51905f52910160405180910390a3611ce93361251e565b5050505050565b5f80611cff600f33868661294a565b915091505f821180611d1057505f81115b611d2d576040516353d8d5b960e01b815260040160405180910390fd5b8115611d92575f5460405163117de2fd60e01b81526001600160a01b039091169063117de2fd90611d6490339086906004016131a9565b5f604051808303815f87803b158015611d7b575f5ffd5b505af1158015611d8d573d5f5f3e3d5ffd5b505050505b8015611daf57600154611daf906001600160a01b03163383612891565b50505050565b611dbd61269c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f611de8612a4e565b6001600160a01b039092165f908152600c60205260409020549190911015919050565b611e1361269c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611eba575080602001516001600160401b031642105b15611ed85760405163376d91e160e21b815260040160405180910390fd5b825f03611ef857604051631f2a200560e01b815260040160405180910390fd5b335f908152600c6020526040902054831115611f2757604051631e9acf1760e31b815260040160405180910390fd5b335f908152600c602052604081208054859290611f45908490613256565b9091555050600954611f6590600f9033906001600160401b031686612a71565b6515539093d39160d21b335f5160206133585f395f51905f52611f87866131c2565b335f908152600c60209081526040918290205482519384529083015201610d6e565b5f80611fb6600f846126db565b91509150915091565b5f8054604051630748d63560e31b81526001600160a01b0390911690633a46b1a890611ff190869086906004016131a9565b602060405180830381865afa15801561200c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120309190613192565b9392505050565b61203f61269c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b61206961269c565b805f036120895760405163c52a9bd360e01b815260040160405180910390fd5b60078054908290556040805182815260208101849052721b1a58d95b9cd954995c5d5a5c9959109bdb99606a1b915f5160206133785f395f51905f529101610abd565b5f80611fb6600f84612a7e565b6001600160a01b0381165f908152600c60209081526040808320815160a081018352815481526001909101546001600160401b0381169382019390935260ff600160401b84048116151592820192909252600160481b8304821615801560608301819052600160501b9094049092161515608082015291906120305750602001516001600160401b0316421092915050565b6004546001600160a01b03163314612196576040516301e803c360e01b815260040160405180910390fd5b8281146121b65760405163512509d360e11b815260040160405180910390fd5b825f5b81811015610a55575f8484838181106121d4576121d46132ac565b905060200201351180156122345750600c5f8787848181106121f8576121f86132ac565b905060200201602081019061220d9190612f69565b6001600160a01b0316815260208101919091526040015f2060010154600160401b900460ff165b156122a3576004546122a3906001600160a01b031687878481811061225b5761225b6132ac565b90506020020160208101906122709190612f69565b868685818110612282576122826132ac565b905060200201358a6001600160a01b0316612922909392919063ffffffff16565b6001016121b9565b5f80546040516370a0823160e01b81526001600160a01b03909116906370a08231906122db908590600401612fb6565b602060405180830381865afa1580156122f6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb9190613192565b61232261269c565b6001600160a01b038116612354575f604051631e4fbdf760e01b815260040161234b9190612fb6565b60405180910390fd5b61235d81612821565b50565b8115801561236c575080155b611ce95742612382846001600160401b036132c0565b6001600160401b0316816001600160401b031611156123b45760405163549a019760e01b815260040160405180910390fd5b5f6123bf8583613173565b6001600160a01b0387165f90815260208990526040812080549293509190811561246b575f836123f0600185613256565b81548110612400576124006132ac565b5f918252602090912060039091020180549091506001600160401b038087169116036124695787156124455787816001015f82825461243f9190613243565b90915550505b86156124645786816002015f82825461245e9190613243565b90915550505b600191505b505b806124b0578254600180820185555f858152602090206003909202909101805467ffffffffffffffff19166001600160401b0387161781559081018890556002018690555b6124be8a8a89896001612b21565b60408051888152602081018890526001600160401b0386168183015290516001600160a01b038b16917fa798fa3372862b9279e9279338081d2e0828e908501dbdf4cf8e2ef83867649d919081900360600190a250505050505050505050565b6001600160a01b0381165f908152600c602052604081206001810154909190600160401b900460ff16801561255b5750612556612a4e565b825410155b80156125e357506008546006545f546040516370a0823160e01b81526001600160a01b03909116906370a0823190612597908890600401612fb6565b602060405180830381865afa1580156125b2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d69190613192565b6125e09190613269565b10155b600183015490915060ff600160501b90910416151581151514610d7f5760018201805482158015600160501b0260ff60501b199092169190911790915561263d57600b8054905f612633836132df565b9190505550612652565b600b8054905f61264c836132f7565b91905055505b826001600160a01b03167f1e5cd4157c0bec375761492bfd692468cecd66e6cb75f397a5195b570692d9058260405161268f911515815260200190565b60405180910390a2505050565b336126a5611782565b6001600160a01b03161461145a573360405163118cdaa760e01b815260040161234b9190612fb6565b611daf848484845f612360565b6001600160a01b0381165f908152600283016020526040902080546001909101545b9250929050565b5f828218828410028218612030565b5f80841561275f576127288787875f87612bcf565b9150811561275f576001600160a01b0386165f90815260028801602052604081208054849290612759908490613256565b90915550505b83156127ad57612773878786600187612bcf565b905080156127ad576001600160a01b0386165f908152600288016020526040812060010180548392906127a7908490613256565b90915550505b5f8211806127ba57505f81115b15612817576127c98787612d71565b60408051838152602081018390528415158183015290516001600160a01b038816917faaff5d2d15d2258450693fb56a7e9be67429e9a925525019086c620c5323fd9b919081900360600190a25b9550959350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b610d7f83846001600160a01b031663a9059cbb85856040516024016128b79291906131a9565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612e17565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006113fb565b612919612e7a565b61235d81612e9f565b611daf84856001600160a01b03166323b872dd8686866040516024016128b793929190613288565b5f8083156129965761295f8686865f5f612bcf565b91508115612996576001600160a01b0385165f90815260028701602052604081208054849290612990908490613256565b90915550505b82156129e4576129aa86868560015f612bcf565b905080156129e4576001600160a01b0385165f908152600287016020526040812060010180548392906129de908490613256565b90915550505b5f8211806129f157505f81115b15612a4557612a008686612d71565b60408051838152602081018390526001600160a01b038716917fbd58523b9978b5fb3c6487ecc5b6a8ef9cd69c5fb07fb39e0af1e45ef2855fcc910160405180910390a25b94509492505050565b5f612710600a54600754612a62919061330c565b612a6c9190613269565b905090565b611daf8484845f85612360565b6001600160a01b0381165f9081526020838152604080832060018601909252822054829190805b8254811015612b17575f838281548110612ac157612ac16132ac565b5f918252602090912060039091020180549091506001600160401b0316421015612aeb5750612b17565b6001810154612afa9087613243565b9550806002015485612b0c9190613243565b945050600101612aa5565b5050509250929050565b82821715611ce9576001600160a01b0384165f90815260028601602052604090208115612b8a578315612b665783815f015f828254612b609190613243565b90915550505b8215612b855782816001015f828254612b7f9190613243565b90915550505b612bc7565b8315612ba85783815f015f828254612ba29190613256565b90915550505b8215612bc75782816001015f828254612bc19190613256565b90915550505b505050505050565b5f835f03612bde57505f612d68565b6001600160a01b0385165f9081526020878152604080832060018a01909252909120548154865b5f81118015612c1357508183105b15612d4a575f848481548110612c2b57612c2b6132ac565b905f5260205f209060030201905086158015612c50575080546001600160401b031642105b15612c5b5750612d4a565b5f80896001811115612c6f57612c6f613323565b03612c7f57506001810154612c86565b5060028101545b805f03612ca15784612c97816132df565b9550505050612c05565b5f818410612caf5781612cb1565b835b90505f8a6001811115612cc657612cc6613323565b03612ce95780836001015f828254612cde9190613256565b90915550612d029050565b80836002015f828254612cfc9190613256565b90915550505b612d0c8185613256565b9350612d188189613243565b975082600101545f148015612d2f57506002830154155b15612d425785612d3e816132df565b9650505b505050612c05565b50506001600160a01b0387165f908152600189016020526040902055505b95945050505050565b6001600160a01b0381165f9081526020838152604080832060018601909252909120545b8154811015612df7575f828281548110612db157612db16132ac565b905f5260205f209060030201905080600101545f148015612dd457506002810154155b15612deb5781612de3816132df565b925050612df1565b50612df7565b50612d95565b6001600160a01b039092165f908152600190930160205250604090912055565b5f5f60205f8451602086015f885af180612e36576040513d5f823e3d81fd5b50505f513d91508115612e4d578060011415612e5a565b6001600160a01b0384163b155b15611daf5783604051635274afe760e01b815260040161234b9190612fb6565b612e82612ea7565b61145a57604051631afcd79f60e31b815260040160405180910390fd5b612322612e7a565b5f612eb06128e9565b54600160401b900460ff16919050565b5f5f83601f840112612ed0575f5ffd5b5081356001600160401b03811115612ee6575f5ffd5b6020830191508360208260051b85010111156126fd575f5ffd5b5f5f60208385031215612f11575f5ffd5b82356001600160401b03811115612f26575f5ffd5b612f3285828601612ec0565b90969095509350505050565b5f60208284031215612f4e575f5ffd5b5035919050565b6001600160a01b038116811461235d575f5ffd5b5f60208284031215612f79575f5ffd5b813561203081612f55565b5f5f5f60608486031215612f96575f5ffd5b8335612fa181612f55565b95602085013595506040909401359392505050565b6001600160a01b0391909116815260200190565b5f5f60408385031215612fdb575f5ffd5b50508035926020909101359150565b80356001600160401b0381168114613000575f5ffd5b919050565b5f5f5f5f5f5f5f5f5f6101208a8c03121561301e575f5ffd5b893561302981612f55565b985060208a013561303981612f55565b975060408a013561304981612f55565b965060608a013561305981612f55565b955060808a013561306981612f55565b945060a08a0135935060c08a0135925060e08a0135915061308d6101008b01612fea565b90509295985092959850929598565b5f602082840312156130ac575f5ffd5b61203082612fea565b5f5f604083850312156130c6575f5ffd5b82356130d181612f55565b946020939093013593505050565b5f5f5f5f5f606086880312156130f3575f5ffd5b85356130fe81612f55565b945060208601356001600160401b03811115613118575f5ffd5b61312488828901612ec0565b90955093505060408601356001600160401b03811115613142575f5ffd5b61314e88828901612ec0565b969995985093965092949392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908111156113fb576113fb61315f565b5f602082840312156131a2575f5ffd5b5051919050565b6001600160a01b03929092168252602082015260400190565b5f600160ff1b82016131d6576131d661315f565b505f0390565b6001600160a01b038416815260406020820181905281018290525f6001600160fb1b0383111561320a575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215613234575f5ffd5b81518015158114612030575f5ffd5b808201808211156113fb576113fb61315f565b818103818111156113fb576113fb61315f565b5f8261328357634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0382811682821603908111156113fb576113fb61315f565b5f600182016132f0576132f061315f565b5060010190565b5f816133055761330561315f565b505f190190565b80820281158282048414176113fb576113fb61315f565b634e487b7160e01b5f52602160045260245ffdfe51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0aa164736f6c634300081c000a";
|
|
13
|
+
readonly deployedBytecode: "0x608060405234801561000f575f5ffd5b50600436106102c3575f3560e01c80638e05aaae11610177578063b7e833e0116100d5578063cca3a5011161008f578063cca3a50114610674578063d32759ed14610687578063d5ed4d5a1461069a578063dd8c818e146106ac578063e5da378f146106bf578063e8341e89146106d2578063f2fde38b146106db575f5ffd5b8063b7e833e0146105ea578063bb03bd71146105f3578063bff232c114610606578063c3c5a54714610619578063c43b1f341461064e578063c9ca1acc14610661575f5ffd5b80639f8dfddd116101315780639f8dfddd14610550578063a1809b9514610563578063a542c2a414610576578063a91ee0dc14610589578063acc2166a1461059c578063ada332dd146105af578063b2f3f669146105c2575f5ffd5b80638e05aaae146104b65780638e5ce3ad146104c95780638e9ddc03146104dc5780638f9b1d87146104ef5780639d7555de146104f85780639f8a13d71461050b575f5ffd5b8063671b9307116102245780637333fa82116101de5780637333fa821461044b578063752c36c01461045e578063781545b3146104675780637b103999146104775780637c79a9da1461048a5780638450e44e1461049b5780638da5cb5b146104ae575f5ffd5b8063671b9307146103cf5780636d3c18d3146103f75780636ecfef9a1461040a57806370f868a61461041d578063715018a6146104305780637264f3f214610438575f5ffd5b80632acde098116102805780632acde098146103525780632c98fd3b1461035a5780632e8d993014610363578063450e9dec146103765780634cabdd3d1461038957806351ec53821461039c578063561df99e146103bc575f5ffd5b80630691bdcf146102c75780631209b1f6146102dc57806315981650146102f85780631986fb1e1461030b57806319fb279a146103145780632838863014610327575b5f5ffd5b6102da6102d5366004612f00565b6106ee565b005b6102e560065481565b6040519081526020015b60405180910390f35b6102da610306366004612f3e565b610a5e565b6102e5600b5481565b6102da610322366004612f3e565b610ac9565b60095461033a906001600160401b031681565b6040516001600160401b0390911681526020016102ef565b6102da610d84565b6102e560085481565b6102da610371366004612f3e565b610ff0565b6102da610384366004612f69565b611066565b6102da610397366004612f84565b61108f565b6001546103af906001600160a01b031681565b6040516102ef9190612fb6565b6102da6103ca366004612f69565b611301565b6102e56103dd366004612f69565b6001600160a01b03165f908152600c602052604090205490565b6102da610405366004612f69565b611352565b6102e5610418366004612f69565b61137c565b6102da61042b366004612f3e565b611401565b6102da611449565b6102da610446366004612fca565b61145c565b6102da610459366004613005565b6115a7565b6102e560075481565b5f546001600160a01b03166103af565b6002546103af906001600160a01b031681565b6001546001600160a01b03166103af565b6102da6104a936600461309c565b611722565b6103af611782565b6102da6104c4366004612f3e565b6117b0565b6003546103af906001600160a01b031681565b6102da6104ea366004612f84565b61196e565b6102e5600a5481565b6102da610506366004612f3e565b611ab0565b610540610519366004612f69565b6001600160a01b03165f908152600c6020526040902060010154600160501b900460ff1690565b60405190151581526020016102ef565b6102da61055e366004612fca565b611cf0565b6102da610571366004612f69565b611db5565b610540610584366004612f69565b611ddf565b6102da610597366004612f69565b611e0b565b6004546103af906001600160a01b031681565b6102da6105bd366004612f3e565b611e35565b6105d56105d0366004612f69565b611fa9565b604080519283526020830191909152016102ef565b6102e5600d5481565b6102e56106013660046130b5565b611fbf565b6102da610614366004612f69565b612037565b610540610627366004612f69565b6001600160a01b03165f908152600c6020526040902060010154600160401b900460ff1690565b6102da61065c366004612f3e565b612061565b6105d561066f366004612f69565b6120cc565b6005546103af906001600160a01b031681565b610540610695366004612f69565b6120d9565b5f546103af906001600160a01b031681565b6102da6106ba3660046130df565b61216b565b6102e56106cd366004612f69565b6122ab565b6102e5600e5481565b6102da6106e9366004612f69565b61231a565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610773575080602001516001600160401b031642105b156107915760405163376d91e160e21b815260040160405180910390fd5b335f908152600c602052604090206001810154600160401b900460ff166107cb5760405163aba4733960e01b815260040160405180910390fd5b60018101805461ffff60401b1916600160481b1790556009546107f7906001600160401b031642613173565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790555f80546040516370a0823160e01b81526001600160a01b03909116906370a082319061084a903390600401612fb6565b602060405180830381865afa158015610865573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108899190613192565b82549091508115610937575f5460405163216f226360e21b81526001600160a01b03909116906385bc898c906108c590339086906004016131a9565b5f604051808303815f87803b1580156108dc575f5ffd5b505af11580156108ee573d5f5f3e3d5ffd5b5050505067574954484452415760c01b336001600160a01b03165f5160206133385f395f51905f5284610920906131c2565b604080519182525f60208301520160405180910390a35b8015610979575f83556515539093d39160d21b335f5160206133585f395f51905f52610962846131c2565b604080519182525f60208301520160405180910390a35b8115158061098657508015155b156109a7576009546109a790600f9033906001600160401b03168585612360565b60025460405163a04e606560e01b81526001600160a01b039091169063a04e6065906109db9033908b908b906004016131dc565b5f604051808303815f87803b1580156109f2575f5ffd5b505af1158015610a04573d5f5f3e3d5ffd5b5050505060018301546040516001600160401b03909116815233907f55278ae09e344fb61a9a1d094010b3ce004a7eacca9b11e10f0f119d03f1f38f9060200160405180910390a2610a553361251e565b50505050505050565b610a6661269c565b805f03610a865760405163c52a9bd360e01b815260040160405180910390fd5b600680549082905560408051828152602081018490526a7469636b6574507269636560a81b915f5160206133785f395f51905f5291015b60405180910390a25050565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610b4e575080602001516001600160401b031642105b15610b6c5760405163376d91e160e21b815260040160405180910390fd5b825f03610b8c57604051631f2a200560e01b815260040160405180910390fd5b335f908152600c6020526040902060010154600160401b900460ff16610bc55760405163aba4733960e01b815260040160405180910390fd5b5f546040516370a0823160e01b815284916001600160a01b0316906370a0823190610bf4903390600401612fb6565b602060405180830381865afa158015610c0f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c339190613192565b1015610c5257604051631e9acf1760e31b815260040160405180910390fd5b5f5460405163216f226360e21b81526001600160a01b03909116906385bc898c90610c8390339087906004016131a9565b5f604051808303815f87803b158015610c9a575f5ffd5b505af1158015610cac573d5f5f3e3d5ffd5b5050600954610ccb9250600f915033906001600160401b0316866126ce565b67574954484452415760c01b335f5160206133385f395f51905f52610cef866131c2565b5f546040516370a0823160e01b81526001600160a01b03909116906370a0823190610d1e903390600401612fb6565b602060405180830381865afa158015610d39573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5d9190613192565b604080519283526020830191909152015b60405180910390a3610d7f3361251e565b505050565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291610e09575080602001516001600160401b031642105b15610e275760405163376d91e160e21b815260040160405180910390fd5b335f908152600c6020526040902060010154600160481b900460ff1615610e6b57335f908152600c60205260409020600101805469ff00ffffffffffffffff191690555b6003546040516397f735d560e01b81526001600160a01b03909116906397f735d590610e9b903390600401612fb6565b602060405180830381865afa158015610eb6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eda9190613224565b15610ef8576040516359b217d560e01b815260040160405180910390fd5b335f908152600c6020526040902060010154600160401b900460ff1615610f3257604051630ea075bf60e21b815260040160405180910390fd5b600754335f908152600c60205260409020541015610f63576040516396dcc1ef60e01b815260040160405180910390fd5b335f818152600c602052604090819020600101805460ff60401b1916600160401b1790556002549051638a78bb1560e01b81526001600160a01b039190911691638a78bb1591610fb69190600401612fb6565b5f604051808303815f87803b158015610fcd575f5ffd5b505af1158015610fdf573d5f5f3e3d5ffd5b50505050610fec3361251e565b5050565b610ff861269c565b5f8111801561100957506127108111155b6110265760405163c52a9bd360e01b815260040160405180910390fd5b600a80549082905560408051828152602081018490526f6c6963656e736541637469766542707360801b915f5160206133785f395f51905f529101610abd565b61106e61269c565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146110b9576040516282b42960e81b815260040160405180910390fd5b815f036110d957604051631f2a200560e01b815260040160405180910390fd5b5f6110e5600f856126db565b505f80546040516370a0823160e01b815292935090916001600160a01b03909116906370a082319061111b908890600401612fb6565b602060405180830381865afa158015611136573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115a9190613192565b90505f6111678383613243565b90505f6111748683612704565b9050805f036111865750505050505050565b5f6111918285612704565b905080156111f8575f5460405163216f226360e21b81526001600160a01b03909116906385bc898c906111ca908b9085906004016131a9565b5f604051808303815f87803b1580156111e1575f5ffd5b505af11580156111f3573d5f5f3e3d5ffd5b505050505b5f6112038284613256565b9050801561121d5761121a600f8a835f6001612713565b50505b82600d5f82825461122e9190613243565b909155508790506001600160a01b038a165f5160206133385f395f51905f52611256866131c2565b5f5f9054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016112959190612fb6565b602060405180830381865afa1580156112b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d49190613192565b604080519283526020830191909152015b60405180910390a36112f68961251e565b505050505050505050565b61130961269c565b6001600160a01b0381166113305760405163d92e233d60e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61135a61269c565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6006545f80546040516370a0823160e01b81529192916001600160a01b03909116906370a08231906113b2908690600401612fb6565b602060405180830381865afa1580156113cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f19190613192565b6113fb9190613269565b92915050565b61140961269c565b600880549082905560408051828152602081018490526f6d696e5469636b657442616c616e636560801b915f5160206133785f395f51905f529101610abd565b61145161269c565b61145a5f612821565b565b61146461269c565b600d5482111561148757604051631e9acf1760e31b815260040160405180910390fd5b600e548111156114aa57604051631e9acf1760e31b815260040160405180910390fd5b81156115295781600d5f8282546114c19190613256565b90915550505f5460055460405163117de2fd60e01b81526001600160a01b039283169263117de2fd926114fb9291169086906004016131a9565b5f604051808303815f87803b158015611512575f5ffd5b505af1158015611524573d5f5f3e3d5ffd5b505050505b80156115625780600e5f8282546115409190613256565b9091555050600554600154611562916001600160a01b03918216911683612891565b60055460408051848152602081018490526001600160a01b03909216917f402cfba2a3f22a9ea7e8ad10259b9b4c638cc9c44444b06d6d0927c9e0275b119101610abd565b5f6115b06128e9565b805490915060ff600160401b82041615906001600160401b03165f811580156115d65750825b90505f826001600160401b031660011480156115f15750303b155b9050811580156115ff575080155b1561161d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561164757845460ff60401b1916600160401b1785555b61165033612911565b6116598d611066565b6116628c611352565b61166b8b611e0b565b6116748a611301565b61167d89610a5e565b61168688612061565b61168f87611401565b61169886611722565b6116a3611f40610ff0565b6116ab611782565b6001600160a01b03168e6001600160a01b0316146116cc576116cc8e61231a565b831561171257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050505050565b61172a61269c565b600980546001600160401b0383811667ffffffffffffffff1983168117909355604051911691686578697444656c617960b81b915f5160206133785f395f51905f5291610abd91859190918252602082015260400190565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611835575080602001516001600160401b031642105b156118535760405163376d91e160e21b815260040160405180910390fd5b825f0361187357604051631f2a200560e01b815260040160405180910390fd5b335f908152600c6020526040902060010154600160401b900460ff166118ac5760405163aba4733960e01b815260040160405180910390fd5b5f546040516368a9674d60e01b81526001600160a01b03909116906368a9674d906118df90339081908890600401613288565b6020604051808303815f875af11580156118fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191f9190613224565b505f546040516370a0823160e01b81526611115413d4d25560ca1b9133915f5160206133385f395f51905f529187916001600160a01b03909116906370a0823190610d1e908690600401612fb6565b6003546001600160a01b03163314611998576040516282b42960e81b815260040160405180910390fd5b815f036119b857604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0383165f908152600c60205260408120906119db600f866126db565b9150505f81835f01546119ee9190613243565b90505f6119fb8683612704565b9050805f03611a0d5750505050505050565b5f611a1b82865f0154612704565b90508015611a3b5780855f015f828254611a359190613256565b90915550505b5f611a468284613256565b90508015611a6057611a5d600f8a5f846001612713565b50505b82600e5f828254611a719190613243565b909155508790506001600160a01b038a165f5160206133585f395f51905f52611a99866131c2565b8954604080519283526020830191909152016112e5565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611b35575080602001516001600160401b031642105b15611b535760405163376d91e160e21b815260040160405180910390fd5b825f03611b7357604051631f2a200560e01b815260040160405180910390fd5b6001546040516370a0823160e01b81525f916001600160a01b0316906370a0823190611ba3903090600401612fb6565b602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be29190613192565b600154909150611bfd906001600160a01b0316333087612922565b6001546040516370a0823160e01b81525f9183916001600160a01b03909116906370a0823190611c31903090600401612fb6565b602060405180830381865afa158015611c4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c709190613192565b611c7a9190613256565b335f908152600c6020526040812080549293508392909190611c9d908490613243565b9091555050335f818152600c602090815260409182902054825185815291820152631093d39160e21b92915f5160206133585f395f51905f52910160405180910390a3611ce93361251e565b5050505050565b5f80611cff600f33868661294a565b915091505f821180611d1057505f81115b611d2d576040516353d8d5b960e01b815260040160405180910390fd5b8115611d92575f5460405163117de2fd60e01b81526001600160a01b039091169063117de2fd90611d6490339086906004016131a9565b5f604051808303815f87803b158015611d7b575f5ffd5b505af1158015611d8d573d5f5f3e3d5ffd5b505050505b8015611daf57600154611daf906001600160a01b03163383612891565b50505050565b611dbd61269c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f611de8612a4e565b6001600160a01b039092165f908152600c60205260409020549190911015919050565b611e1361269c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b335f818152600c6020908152604091829020825160a081018452815481526001909101546001600160401b0381169282019290925260ff600160401b83048116151593820193909352600160481b8204831615801560608301819052600160501b9093049093161515608082015291611eba575080602001516001600160401b031642105b15611ed85760405163376d91e160e21b815260040160405180910390fd5b825f03611ef857604051631f2a200560e01b815260040160405180910390fd5b335f908152600c6020526040902054831115611f2757604051631e9acf1760e31b815260040160405180910390fd5b335f908152600c602052604081208054859290611f45908490613256565b9091555050600954611f6590600f9033906001600160401b031686612a71565b6515539093d39160d21b335f5160206133585f395f51905f52611f87866131c2565b335f908152600c60209081526040918290205482519384529083015201610d6e565b5f80611fb6600f846126db565b91509150915091565b5f8054604051630748d63560e31b81526001600160a01b0390911690633a46b1a890611ff190869086906004016131a9565b602060405180830381865afa15801561200c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120309190613192565b9392505050565b61203f61269c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b61206961269c565b805f036120895760405163c52a9bd360e01b815260040160405180910390fd5b60078054908290556040805182815260208101849052721b1a58d95b9cd954995c5d5a5c9959109bdb99606a1b915f5160206133785f395f51905f529101610abd565b5f80611fb6600f84612a7e565b6001600160a01b0381165f908152600c60209081526040808320815160a081018352815481526001909101546001600160401b0381169382019390935260ff600160401b84048116151592820192909252600160481b8304821615801560608301819052600160501b9094049092161515608082015291906120305750602001516001600160401b0316421092915050565b6004546001600160a01b03163314612196576040516301e803c360e01b815260040160405180910390fd5b8281146121b65760405163512509d360e11b815260040160405180910390fd5b825f5b81811015610a55575f8484838181106121d4576121d46132ac565b905060200201351180156122345750600c5f8787848181106121f8576121f86132ac565b905060200201602081019061220d9190612f69565b6001600160a01b0316815260208101919091526040015f2060010154600160401b900460ff165b156122a3576004546122a3906001600160a01b031687878481811061225b5761225b6132ac565b90506020020160208101906122709190612f69565b868685818110612282576122826132ac565b905060200201358a6001600160a01b0316612922909392919063ffffffff16565b6001016121b9565b5f80546040516370a0823160e01b81526001600160a01b03909116906370a08231906122db908590600401612fb6565b602060405180830381865afa1580156122f6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb9190613192565b61232261269c565b6001600160a01b038116612354575f604051631e4fbdf760e01b815260040161234b9190612fb6565b60405180910390fd5b61235d81612821565b50565b8115801561236c575080155b611ce95742612382846001600160401b036132c0565b6001600160401b0316816001600160401b031611156123b45760405163549a019760e01b815260040160405180910390fd5b5f6123bf8583613173565b6001600160a01b0387165f90815260208990526040812080549293509190811561246b575f836123f0600185613256565b81548110612400576124006132ac565b5f918252602090912060039091020180549091506001600160401b038087169116036124695787156124455787816001015f82825461243f9190613243565b90915550505b86156124645786816002015f82825461245e9190613243565b90915550505b600191505b505b806124b0578254600180820185555f858152602090206003909202909101805467ffffffffffffffff19166001600160401b0387161781559081018890556002018690555b6124be8a8a89896001612b21565b60408051888152602081018890526001600160401b0386168183015290516001600160a01b038b16917fa798fa3372862b9279e9279338081d2e0828e908501dbdf4cf8e2ef83867649d919081900360600190a250505050505050505050565b6001600160a01b0381165f908152600c602052604081206001810154909190600160401b900460ff16801561255b5750612556612a4e565b825410155b80156125e357506008546006545f546040516370a0823160e01b81526001600160a01b03909116906370a0823190612597908890600401612fb6565b602060405180830381865afa1580156125b2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d69190613192565b6125e09190613269565b10155b600183015490915060ff600160501b90910416151581151514610d7f5760018201805482158015600160501b0260ff60501b199092169190911790915561263d57600b8054905f612633836132df565b9190505550612652565b600b8054905f61264c836132f7565b91905055505b826001600160a01b03167f1e5cd4157c0bec375761492bfd692468cecd66e6cb75f397a5195b570692d9058260405161268f911515815260200190565b60405180910390a2505050565b336126a5611782565b6001600160a01b03161461145a573360405163118cdaa760e01b815260040161234b9190612fb6565b611daf848484845f612360565b6001600160a01b0381165f908152600283016020526040902080546001909101545b9250929050565b5f828218828410028218612030565b5f80841561275f576127288787875f87612bcf565b9150811561275f576001600160a01b0386165f90815260028801602052604081208054849290612759908490613256565b90915550505b83156127ad57612773878786600187612bcf565b905080156127ad576001600160a01b0386165f908152600288016020526040812060010180548392906127a7908490613256565b90915550505b5f8211806127ba57505f81115b15612817576127c98787612d71565b60408051838152602081018390528415158183015290516001600160a01b038816917faaff5d2d15d2258450693fb56a7e9be67429e9a925525019086c620c5323fd9b919081900360600190a25b9550959350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b610d7f83846001600160a01b031663a9059cbb85856040516024016128b79291906131a9565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612e17565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006113fb565b612919612e7a565b61235d81612e9f565b611daf84856001600160a01b03166323b872dd8686866040516024016128b793929190613288565b5f8083156129965761295f8686865f5f612bcf565b91508115612996576001600160a01b0385165f90815260028701602052604081208054849290612990908490613256565b90915550505b82156129e4576129aa86868560015f612bcf565b905080156129e4576001600160a01b0385165f908152600287016020526040812060010180548392906129de908490613256565b90915550505b5f8211806129f157505f81115b15612a4557612a008686612d71565b60408051838152602081018390526001600160a01b038716917fbd58523b9978b5fb3c6487ecc5b6a8ef9cd69c5fb07fb39e0af1e45ef2855fcc910160405180910390a25b94509492505050565b5f612710600a54600754612a62919061330c565b612a6c9190613269565b905090565b611daf8484845f85612360565b6001600160a01b0381165f9081526020838152604080832060018601909252822054829190805b8254811015612b17575f838281548110612ac157612ac16132ac565b5f918252602090912060039091020180549091506001600160401b0316421015612aeb5750612b17565b6001810154612afa9087613243565b9550806002015485612b0c9190613243565b945050600101612aa5565b5050509250929050565b82821715611ce9576001600160a01b0384165f90815260028601602052604090208115612b8a578315612b665783815f015f828254612b609190613243565b90915550505b8215612b855782816001015f828254612b7f9190613243565b90915550505b612bc7565b8315612ba85783815f015f828254612ba29190613256565b90915550505b8215612bc75782816001015f828254612bc19190613256565b90915550505b505050505050565b5f835f03612bde57505f612d68565b6001600160a01b0385165f9081526020878152604080832060018a01909252909120548154865b5f81118015612c1357508183105b15612d4a575f848481548110612c2b57612c2b6132ac565b905f5260205f209060030201905086158015612c50575080546001600160401b031642105b15612c5b5750612d4a565b5f80896001811115612c6f57612c6f613323565b03612c7f57506001810154612c86565b5060028101545b805f03612ca15784612c97816132df565b9550505050612c05565b5f818410612caf5781612cb1565b835b90505f8a6001811115612cc657612cc6613323565b03612ce95780836001015f828254612cde9190613256565b90915550612d029050565b80836002015f828254612cfc9190613256565b90915550505b612d0c8185613256565b9350612d188189613243565b975082600101545f148015612d2f57506002830154155b15612d425785612d3e816132df565b9650505b505050612c05565b50506001600160a01b0387165f908152600189016020526040902055505b95945050505050565b6001600160a01b0381165f9081526020838152604080832060018601909252909120545b8154811015612df7575f828281548110612db157612db16132ac565b905f5260205f209060030201905080600101545f148015612dd457506002810154155b15612deb5781612de3816132df565b925050612df1565b50612df7565b50612d95565b6001600160a01b039092165f908152600190930160205250604090912055565b5f5f60205f8451602086015f885af180612e36576040513d5f823e3d81fd5b50505f513d91508115612e4d578060011415612e5a565b6001600160a01b0384163b155b15611daf5783604051635274afe760e01b815260040161234b9190612fb6565b612e82612ea7565b61145a57604051631afcd79f60e31b815260040160405180910390fd5b612322612e7a565b5f612eb06128e9565b54600160401b900460ff16919050565b5f5f83601f840112612ed0575f5ffd5b5081356001600160401b03811115612ee6575f5ffd5b6020830191508360208260051b85010111156126fd575f5ffd5b5f5f60208385031215612f11575f5ffd5b82356001600160401b03811115612f26575f5ffd5b612f3285828601612ec0565b90969095509350505050565b5f60208284031215612f4e575f5ffd5b5035919050565b6001600160a01b038116811461235d575f5ffd5b5f60208284031215612f79575f5ffd5b813561203081612f55565b5f5f5f60608486031215612f96575f5ffd5b8335612fa181612f55565b95602085013595506040909401359392505050565b6001600160a01b0391909116815260200190565b5f5f60408385031215612fdb575f5ffd5b50508035926020909101359150565b80356001600160401b0381168114613000575f5ffd5b919050565b5f5f5f5f5f5f5f5f5f6101208a8c03121561301e575f5ffd5b893561302981612f55565b985060208a013561303981612f55565b975060408a013561304981612f55565b965060608a013561305981612f55565b955060808a013561306981612f55565b945060a08a0135935060c08a0135925060e08a0135915061308d6101008b01612fea565b90509295985092959850929598565b5f602082840312156130ac575f5ffd5b61203082612fea565b5f5f604083850312156130c6575f5ffd5b82356130d181612f55565b946020939093013593505050565b5f5f5f5f5f606086880312156130f3575f5ffd5b85356130fe81612f55565b945060208601356001600160401b03811115613118575f5ffd5b61312488828901612ec0565b90955093505060408601356001600160401b03811115613142575f5ffd5b61314e88828901612ec0565b969995985093965092949392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908111156113fb576113fb61315f565b5f602082840312156131a2575f5ffd5b5051919050565b6001600160a01b03929092168252602082015260400190565b5f600160ff1b82016131d6576131d661315f565b505f0390565b6001600160a01b038416815260406020820181905281018290525f6001600160fb1b0383111561320a575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215613234575f5ffd5b81518015158114612030575f5ffd5b808201808211156113fb576113fb61315f565b818103818111156113fb576113fb61315f565b5f8261328357634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0382811682821603908111156113fb576113fb61315f565b5f600182016132f0576132f061315f565b5060010190565b5f816133055761330561315f565b505f190190565b80820281158282048414176113fb576113fb61315f565b634e487b7160e01b5f52602160045260245ffdfe51499681e2c0f67f5df906558cc5b02bba47d9fbedc196587288f05a81f95e7e4c52f863bab6f44fc6f6b3b7d4e5f57540cecf3bfc5c6734ce6fa55c6e3304d6267ae0ed351cb5b33bc50158aa20231f6fe9dae49bf24c85e2d40686b32a1c0aa164736f6c634300081c000a";
|
|
14
14
|
readonly linkReferences: {};
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/registry/BondingRegistry.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_28-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|