UNPKG

@vechain/vebetterdao-contracts

Version:

Vebetter DAO smart contracts, including their addresses, ABIs, and interfaces.

1,705 lines 114 kB
{ "_format": "hh-sol-artifact-1", "contractName": "GalaxyMemberV1", "sourceName": "contracts/deprecated/V1/GalaxyMemberV1.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" } ], "name": "ERC1967InvalidImplementation", "type": "error" }, { "inputs": [], "name": "ERC1967NonPayable", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" }, { "internalType": "uint48", "name": "clock", "type": "uint48" } ], "name": "ERC5805FutureLookup", "type": "error" }, { "inputs": [], "name": "ERC6372InconsistentClock", "type": "error" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [], "name": "UUPSUnauthorizedCallContext", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "slot", "type": "bytes32" } ], "name": "UUPSUnsupportedProxiableUUID", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256[]", "name": "b3trToUpgradeToLevel", "type": "uint256[]" } ], "name": "B3TRtoUpgradeToLevelUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "B3trGovernorAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "newBaseURI", "type": "string" }, { "indexed": true, "internalType": "string", "name": "oldBaseURI", "type": "string" } ], "name": "BaseURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldLevel", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newLevel", "type": "uint256" } ], "name": "MaxLevelUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "isPaused", "type": "bool" } ], "name": "PublicMintingPaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Selected", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "oldLevel", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newLevel", "type": "uint256" } ], "name": "SelectedLevel", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldLevel", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newLevel", "type": "uint256" } ], "name": "Upgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "XAllocationsGovernorAddressUpdated", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CONTRACTS_ADDRESS_MANAGER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_LEVEL", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UPGRADER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UPGRADE_INTERFACE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "b3tr", "outputs": [ { "internalType": "contract IB3TR", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "b3trGovernor", "outputs": [ { "internalType": "contract IB3TRGovernorV4", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint48", "name": "_key", "type": "uint48" }, { "internalType": "uint208", "name": "_value", "type": "uint208" } ], "internalType": "struct Checkpoints.Checkpoint208", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "freeMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getB3TRtoUpgrade", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "level", "type": "uint256" } ], "name": "getB3TRtoUpgradeToLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "getHighestLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getNextLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastHighestLevel", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "address", "name": "upgrader", "type": "address" }, { "internalType": "address", "name": "pauser", "type": "address" }, { "internalType": "address", "name": "minter", "type": "address" }, { "internalType": "address", "name": "contractsAddressManager", "type": "address" }, { "internalType": "uint256", "name": "maxLevel", "type": "uint256" }, { "internalType": "string", "name": "baseTokenURI", "type": "string" }, { "internalType": "uint256[]", "name": "b3trToUpgradeToLevel", "type": "uint256[]" }, { "internalType": "address", "name": "b3tr", "type": "address" }, { "internalType": "address", "name": "treasury", "type": "address" } ], "internalType": "struct GalaxyMemberV1.InitializationData", "name": "data", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "levelOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "participatedInGovernance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "selectHighestLevel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "b3trToUpgradeToLevel", "type": "uint256[]" } ], "name": "setB3TRtoUpgradeToLevel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_b3trGovernor", "type": "address" } ], "name": "setB3trGovernorAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseTokenURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isPaused", "type": "bool" } ], "name": "setIsPublicMintingPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "level", "type": "uint256" } ], "name": "setMaxLevel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_xAllocationsGovernor", "type": "address" } ], "name": "setXAllocationsGovernorAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "upgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "xAllocationsGovernor", "outputs": [ { "internalType": "contract IXAllocationVotingGovernorV2", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051614c2262000104600039600081816129d5015281816129fe0152612b460152614c226000f3fe6080604052600436106102bd5760003560e01c806301ffc9a7146102c257806305bca0b0146102f757806306fdde031461030e578063081812fc14610330578063095ea7b31461035d57806318160ddd1461037d57806323b872dd146103a0578063248a9ca3146103c05780632b42df38146103e05780632f2ff15d146104005780632f745c59146104205780633261186914610440578063344f1ba51461046057806336568abe146104805780633af03ea8146104a05780633f4ba83a146104c057806342842e0e146104d557806342966c68146104f557806345977d03146105155780634bf5d7e9146105355780634f1ef2861461054a5780634f6ccce71461055d57806352d1902d1461057d57806354fd4d501461059257806355f804b3146105bc578063582a486a146105dc5780635b5da514146105f15780635b70ea9f146106115780635c975abb146106265780635ecf68e91461063b5780635f4e42ca1461065057806361d027b3146106705780636352211e146106855780636a627842146106a55780636c0360eb146106c55780636d5e3032146106da5780636fcfff45146106fa57806370a082311461072f5780637893d7361461074f5780638456cb5914610764578063860f22e6146107795780638c5b76fb1461079957806391d14854146107b957806391ddadf4146107d9578063952f21331461080557806395d89b4114610827578063a217fddf1461083c578063a22cb46514610851578063a49062d414610871578063a51d2e0b14610886578063ad3cb1cc146108a6578063b1ccbd2c146108d7578063b88d4fde146108f7578063c87b56dd14610917578063d325d4ed14610937578063d539139314610957578063d547741f14610979578063ddd8634d14610999578063e63ab1e9146109b9578063e985e9c5146109db578063f1127ed8146109fb578063f72c0d8b14610a47575b600080fd5b3480156102ce57600080fd5b506102e26102dd3660046140b5565b610a69565b60405190151581526020015b60405180910390f35b34801561030357600080fd5b5061030c610a7a565b005b34801561031a57600080fd5b50610323610a85565b6040516102ee9190614122565b34801561033c57600080fd5b5061035061034b366004614135565b610b26565b6040516102ee919061414e565b34801561036957600080fd5b5061030c61037836600461417e565b610b3b565b34801561038957600080fd5b50610392610b4a565b6040519081526020016102ee565b3480156103ac57600080fd5b5061030c6103bb3660046141a8565b610b5f565b3480156103cc57600080fd5b506103926103db366004614135565b610bf3565b3480156103ec57600080fd5b506103926103fb366004614135565b610c13565b34801561040c57600080fd5b5061030c61041b3660046141e4565b610c33565b34801561042c57600080fd5b5061039261043b36600461417e565b610c4f565b34801561044c57600080fd5b5061039261045b366004614135565b610cb1565b34801561046c57600080fd5b5061030c61047b366004614135565b610ce2565b34801561048c57600080fd5b5061030c61049b3660046141e4565b610e4e565b3480156104ac57600080fd5b5061030c6104bb366004614210565b610e86565b3480156104cc57600080fd5b5061030c610f84565b3480156104e157600080fd5b5061030c6104f03660046141a8565b610fa7565b34801561050157600080fd5b5061030c610510366004614135565b610fc2565b34801561052157600080fd5b5061030c610530366004614135565b611047565b34801561054157600080fd5b50610323611524565b61030c610558366004614309565b61159c565b34801561056957600080fd5b50610392610578366004614135565b6115b7565b34801561058957600080fd5b50610392611618565b34801561059e57600080fd5b506040805180820190915260018152603160f81b6020820152610323565b3480156105c857600080fd5b5061030c6105d7366004614356565b611635565b3480156105e857600080fd5b506103506116d2565b3480156105fd57600080fd5b5061030c61060c366004614398565b6116f0565b34801561061d57600080fd5b5061030c611758565b34801561063257600080fd5b506102e261186d565b34801561064757600080fd5b50610350611882565b34801561065c57600080fd5b5061030c61066b366004614429565b61189d565b34801561067c57600080fd5b50610350611dd9565b34801561069157600080fd5b506103506106a0366004614135565b611df7565b3480156106b157600080fd5b5061030c6106c0366004614210565b611e02565b3480156106d157600080fd5b50610323611e49565b3480156106e657600080fd5b506103926106f5366004614135565b611e58565b34801561070657600080fd5b5061071a610715366004614210565b611e78565b60405163ffffffff90911681526020016102ee565b34801561073b57600080fd5b5061039261074a366004614210565b611e83565b34801561075b57600080fd5b50610350611edb565b34801561077057600080fd5b5061030c611ef9565b34801561078557600080fd5b50610392610794366004614210565b611f19565b3480156107a557600080fd5b506102e26107b4366004614210565b611f5a565b3480156107c557600080fd5b506102e26107d43660046141e4565b61213e565b3480156107e557600080fd5b506107ee612174565b60405165ffffffffffff90911681526020016102ee565b34801561081157600080fd5b50610392600080516020614bcd83398151915281565b34801561083357600080fd5b5061032361217e565b34801561084857600080fd5b50610392600081565b34801561085d57600080fd5b5061030c61086c36600461458f565b61219b565b34801561087d57600080fd5b506103926121a6565b34801561089257600080fd5b506103926108a1366004614135565b6121bb565b3480156108b257600080fd5b50610323604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156108e357600080fd5b5061030c6108f23660046145c6565b612201565b34801561090357600080fd5b5061030c6109123660046145fa565b6122f1565b34801561092357600080fd5b50610323610932366004614135565b612308565b34801561094357600080fd5b5061039261095236600461417e565b61237c565b34801561096357600080fd5b50610392600080516020614bad83398151915281565b34801561098557600080fd5b5061030c6109943660046141e4565b61240c565b3480156109a557600080fd5b5061030c6109b4366004614210565b612428565b3480156109c557600080fd5b50610392600080516020614b8d83398151915281565b3480156109e757600080fd5b506102e26109f6366004614661565b612526565b348015610a0757600080fd5b50610a1b610a1636600461468b565b612565565b60408051825165ffffffffffff1681526020928301516001600160d01b031692810192909252016102ee565b348015610a5357600080fd5b50610392600080516020614b4d83398151915281565b6000610a7482612577565b92915050565b610a833361259c565b565b60606000610a916125fc565b9050806000018054610aa2906146c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ace906146c0565b8015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b505050505091505090565b6000610b3182612620565b50610a7482612658565b610b46828233612681565b5050565b600080610b5561268e565b6002015492915050565b6001600160a01b038216610b92576000604051633250574960e11b8152600401610b89919061414e565b60405180910390fd5b6000610b9f8383336126b2565b9050836001600160a01b0316816001600160a01b031614610bed576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610b89565b50505050565b600080610bfe6126d2565b60009384526020525050604090206001015490565b600080610c1e6126f6565b60009384526008016020525050604090205490565b610c3c82610bf3565b610c458161271a565b610bed8383612724565b600080610c5a61268e565b9050610c6584611e83565b8310610c8857838360405163295f44f760e21b8152600401610b899291906146fa565b6001600160a01b0384166000908152602091825260408082208583529092522054905092915050565b600080610cbc6126f6565b6000848152600782016020526040902054909150610cdb906001614729565b9392505050565b6000610ced8161271a565b6000610cf76126f6565b905080600601548311610d6c5760405162461bcd60e51b81526020600482015260436024820152600080516020614b0d83398151915260448201527f2067726561746572207468616e207468652063757272656e74206d6178206c656064820152621d995b60ea1b608482015260a401610b89565b60025b838111610e04576000818152600883016020526040902054610df25760405162461bcd60e51b81526020600482015260426024820152600080516020614b2d83398151915260448201527f7573742062652073657420666f7220616c6c206c6576656c7320756e6c6f636b606482015261195960f21b608482015260a401610b89565b80610dfc8161473c565b915050610d6f565b506006810180549084905560408051828152602081018690527f53e438896671f1a18a4e583cceb4f0c901de52ef22ad122ea8c7f1f5b2de7450910160405180910390a150505050565b6001600160a01b0381163314610e775760405163334bd91960e11b815260040160405180910390fd5b610e8182826127c5565b505050565b600080516020614bcd833981519152610e9e8161271a565b6001600160a01b038216610f1a5760405162461bcd60e51b815260206004820152603f60248201527f47616c617879204d656d6265723a205f78416c6c6f636174696f6e73476f766560448201527f726e6f722063616e6e6f7420626520746865207a65726f2061646472657373006064820152608401610b89565b6000610f246126f6565b80546040519192506001600160a01b0390811691908516907fd9365634b1542359685e4d736b69f8a87476421f69da0f3f8054668ab19af12990600090a380546001600160a01b0319166001600160a01b03939093169290921790915550565b600080516020614b8d833981519152610f9c8161271a565b610fa461283d565b50565b610e81838383604051806020016040528060008152506122f1565b33610fcc82611df7565b6001600160a01b03161461103e5760405162461bcd60e51b815260206004820152603360248201527f47616c617879204d656d6265723a2063616c6c6572206973206e6f74207468656044820152721037bbb732b91037b3103a3432903a37b5b2b760691b6064820152608401610b89565b610fa481612894565b61104f6128a0565b6110576128d6565b3361106182611df7565b6001600160a01b0316146110d35760405162461bcd60e51b815260206004820152603360248201527f47616c617879204d656d6265723a20796f75206d757374206f776e2074686520604482015272151bdad95b881d1bc81d5c19dc985919481a5d606a1b6064820152608401610b89565b60006110dd6126f6565b6000838152600782016020526040902054600682015491925090811061115a5760405162461bcd60e51b815260206004820152602c60248201527f47616c617879204d656d6265723a20546f6b656e20697320616c72656164792060448201526b185d081b585e081b195d995b60a21b6064820152608401610b89565b6000600883018161116c846001614729565b81526020810191909152604090810160002054600285015491516370a0823160e01b815290925082916001600160a01b0316906370a08231906111b390339060040161414e565b602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f49190614755565b10156112595760405162461bcd60e51b815260206004820152602e60248201527f47616c617879204d656d6265723a20496e73756666696369656e742062616c6160448201526d6e636520746f207570677261646560901b6064820152608401610b89565b6002830154604051636eb1769f60e11b815233600482015230602482015282916001600160a01b03169063dd62ed3e90604401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190614755565b10156113345760405162461bcd60e51b815260206004820152603060248201527f47616c617879204d656d6265723a20496e73756666696369656e7420616c6c6f60448201526f77616e636520746f207570677261646560801b6064820152608401610b89565b61133f826001614729565b6000858152600785016020908152604080832093909355338252600a8601815282822085835290529081208054916113768361476e565b9091555050336000908152600a84016020526040812090611398846001614729565b815260200190815260200160002060008154809291906113b79061473c565b919050555060006113c733611f19565b60008681526007860160205260409020549091508110156113fe5760008581526007850160205260409020546113fe9033906128fc565b600284015460038501546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018590529116906323b872dd906064016020604051808303816000875af115801561145d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114819190614785565b6114cd5760405162461bcd60e51b815260206004820152601d60248201527f47616c6178794d656d6265723a205472616e73666572206661696c65640000006044820152606401610b89565b60008581526007850160209081526040918290205482518681529182015286917f936f056112badb39ff4b5bf0d185576c15ed35d94502e37e8b6d7bfbec428854910160405180910390a250505050610fa46129ae565b606061152e6129bf565b65ffffffffffff1661153e612174565b65ffffffffffff1614611564576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6115a46129ca565b6115ad82612a6f565b610b468282612a87565b6000806115c261268e565b90506115cc610b4a565b83106115f05760008360405163295f44f760e21b8152600401610b899291906146fa565b806002018381548110611605576116056147a2565b9060005260206000200154915050919050565b6000611622612b3b565b50600080516020614b6d83398151915290565b60006116408161271a565b60008251116116615760405162461bcd60e51b8152600401610b89906147b8565b600061166b6126f6565b90508060040160405161167e91906147fb565b6040518091039020836040516116949190614871565b604051908190038120907f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc190600090a360048101610bed84826148d3565b6000806116dd6126f6565b600201546001600160a01b031692915050565b60006116fb8161271a565b60006117056126f6565b90507f5021318db3b191bc0f54787c8649fc31d3ea3da887601b922b2f347ff33b7cbe8360405161173a911515815260200190565b60405180910390a1600b01805460ff19169215159290921790915550565b60006117626126f6565b600b81015490915060ff16156117ca5760405162461bcd60e51b815260206004820152602760248201527f47616c617879204d656d6265723a205075626c6963206d696e74696e67206973604482015266081c185d5cd95960ca1b6064820152608401610b89565b6117d333611f5a565b61183e5760405162461bcd60e51b815260206004820152603660248201527f47616c617879204d656d6265723a205573657220686173206e6f742070617274604482015275696369706174656420696e20676f7665726e616e636560501b6064820152608401610b89565b60006118486126f6565b60058101546000818152600783016020526040902060019055909150610e8133612b84565b600080611878612bb5565b5460ff1692915050565b60008061188d6126f6565b546001600160a01b031692915050565b60006118a7612bd9565b805490915060ff600160401b82041615906001600160401b03166000811580156118ce5750825b90506000826001600160401b031660011480156118ea5750303b155b9050811580156118f8575080155b156119165760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561193f57845460ff60401b1916600160401b1785555b60008660e00151116119995760405162461bcd60e51b815260206004820152602f6024820152600080516020614b0d83398151915260448201526e02067726561746572207468616e203608c1b6064820152608401610b89565b600086610100015151116119bf5760405162461bcd60e51b8152600401610b89906147b8565b6101408601516001600160a01b0316611a3f5760405162461bcd60e51b815260206004820152603c60248201527f47616c617879204d656d6265723a204233545220746f6b656e2061646472657360448201527b732063616e6e6f7420626520746865207a65726f206164647265737360201b6064820152608401610b89565b6101608601516001600160a01b0316611abd5760405162461bcd60e51b815260206004820152603a60248201527f47616c617879204d656d6265723a20547265617375727920616464726573732060448201527963616e6e6f7420626520746865207a65726f206164647265737360301b6064820152608401610b89565b60018660e00151611ace9190614992565b866101200151511015611b425760405162461bcd60e51b81526020600482015260426024820152600080516020614b2d83398151915260448201527f7573742062652073657420666f7220616c6c20756e6c6f636b6564206c6576656064820152616c7360f01b608482015260a40161