UNPKG

@soma-finance/core-contracts

Version:

SOMA Finance core contracts

1,714 lines 85.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SecurityToken__factory = void 0; /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ const ethers_1 = require("ethers"); const _erc165InterfaceId = "0xda2fe628"; const _erc1820InterfaceId = "0x690b4d69e28e3e5719a6672c5fd98805f950646dc691febc77c448a54512b2ee"; const _abi = [ { inputs: [], stateMutability: "nonpayable", type: "constructor", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "spender", type: "address", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, ], name: "Approval", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "spender", type: "address", }, { indexed: true, internalType: "bytes32", name: "id", type: "bytes32", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, { indexed: false, internalType: "bytes", name: "data", type: "bytes", }, ], name: "ApprovalPartition", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: false, internalType: "uint256", name: "previousBalance", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newBalance", type: "uint256", }, ], name: "BalanceChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "operator", type: "address", }, { indexed: true, internalType: "address", name: "from", type: "address", }, { indexed: false, internalType: "bytes32", name: "id", type: "bytes32", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, { indexed: false, internalType: "bytes", name: "data", type: "bytes", }, ], name: "Burned", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "id", type: "bytes32", }, { indexed: false, internalType: "bytes", name: "data", type: "bytes", }, ], name: "DeprecatePartition", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8", }, ], name: "Initialized", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "operator", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "bytes32", name: "id", type: "bytes32", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, { indexed: false, internalType: "bytes", name: "data", type: "bytes", }, ], name: "Minted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: false, internalType: "bytes32", name: "fromId", type: "bytes32", }, { indexed: false, internalType: "bytes32", name: "toId", type: "bytes32", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, { indexed: false, internalType: "bytes", name: "data", type: "bytes", }, ], name: "MovedPartition", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Paused", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "bytes32", name: "id", type: "bytes32", }, { indexed: false, internalType: "bytes32", name: "prevPrivileges", type: "bytes32", }, { indexed: false, internalType: "bytes32", name: "newPrivileges", type: "bytes32", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RequiredPrivilegesUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "operator", type: "address", }, { indexed: true, internalType: "address", name: "from", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "bytes32", name: "fromId", type: "bytes32", }, { indexed: false, internalType: "bytes32", name: "toId", type: "bytes32", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, { indexed: false, internalType: "bytes", name: "data", type: "bytes", }, ], name: "Seized", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "TokensRecovered", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "from", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, ], name: "Transfer", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "from", type: "address", }, { indexed: true, internalType: "address", name: "to", type: "address", }, { indexed: true, internalType: "bytes32", name: "fromId", type: "bytes32", }, { indexed: false, internalType: "bytes32", name: "toId", type: "bytes32", }, { indexed: false, internalType: "uint256", name: "value", type: "uint256", }, { indexed: false, internalType: "bytes", name: "data", type: "bytes", }, ], name: "TransferPartition", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Unpaused", type: "event", }, { inputs: [], name: "DEFAULT_ID", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "DEFAULT_PARTITION", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "DEFAULT_PRIVILEGES", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "DOMAIN_SEPARATOR", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "GLOBAL_DEPRECATE_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "GLOBAL_MANAGE_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "GLOBAL_MINT_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "GLOBAL_SEIZE_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "GLOBAL_UPDATE_PRIVILEGES_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "LOCAL_DEPRECATE_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "LOCAL_MANAGE_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "LOCAL_MINT_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "LOCAL_SEIZE_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "LOCAL_UPDATE_PRIVILEGES_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "SOMA", outputs: [ { internalType: "contract ISOMA", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "TOKEN_RECOVERY_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "address", name: "spender", type: "address", }, { internalType: "bytes32", name: "id", type: "bytes32", }, ], name: "allowance", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "address", name: "spender", type: "address", }, ], name: "allowance", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "approve", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "spender", type: "address", }, { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "approve", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "bytes32", name: "id", type: "bytes32", }, ], name: "balanceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, ], name: "balanceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "burn", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_from", type: "address", }, { internalType: "address", name: "_to", type: "address", }, { internalType: "bytes32", name: "fromId", type: "bytes32", }, { internalType: "bytes32", name: "toId", type: "bytes32", }, { internalType: "uint256", name: "", type: "uint256", }, ], name: "canTransferFrom", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "_from", type: "address", }, { internalType: "address", name: "_to", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "canTransferFrom", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "uint32", name: "pos", type: "uint32", }, ], name: "checkpoints", outputs: [ { components: [ { internalType: "uint32", name: "fromBlock", type: "uint32", }, { internalType: "uint224", name: "balance", type: "uint224", }, ], internalType: "struct ERC20HistoryUpgradeable.Checkpoint", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "decimals", outputs: [ { internalType: "uint8", name: "", type: "uint8", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "subtractedValue", type: "uint256", }, ], name: "decreaseAllowance", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "deprecatePartition", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, ], name: "deprecated", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "uint256", name: "blockNumber", type: "uint256", }, ], name: "getPastBalance", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "blockNumber", type: "uint256", }, ], name: "getPastTotalSupply", 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: "address", name: "account", type: "address", }, ], name: "hasPrivileges", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "hasPrivileges", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", 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: [ { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "addedValue", type: "uint256", }, ], name: "increaseAllowance", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "string", name: "domain", type: "string", }, { internalType: "string", name: "name", type: "string", }, { internalType: "string", name: "symbol", type: "string", }, ], name: "initialize", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "mint", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes[]", name: "data", type: "bytes[]", }, ], name: "multicall", outputs: [ { internalType: "bytes[]", name: "results", type: "bytes[]", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "name", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, ], name: "nonces", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, ], name: "numCheckpoints", outputs: [ { internalType: "uint32", name: "", type: "uint32", }, ], 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: [ { internalType: "address", name: "owner", type: "address", }, { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "value", type: "uint256", }, { internalType: "uint256", name: "deadline", type: "uint256", }, { internalType: "uint8", name: "v", type: "uint8", }, { internalType: "bytes32", name: "r", type: "bytes32", }, { internalType: "bytes32", name: "s", type: "bytes32", }, ], name: "permit", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "token", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "recoverTokens", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "requiredPrivileges", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, ], name: "requiredPrivileges", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "tokenHolder", type: "address", }, { internalType: "bytes32", name: "fromId", type: "bytes32", }, { internalType: "bytes32", name: "toId", type: "bytes32", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "seize", 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: [], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, ], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "to", type: "address", }, { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "transfer", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "transfer", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "transferFrom", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "transferFrom", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "bytes32", name: "fromId", type: "bytes32", }, { internalType: "bytes32", name: "toId", type: "bytes32", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "transferPartition", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "unpause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "newRequiredPrivileges", type: "bytes32", }, ], name: "updateRequiredPrivileges", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "id", type: "bytes32", }, { internalType: "bytes32", name: "newRequiredPrivileges", type: "bytes32", }, ], name: "updateRequiredPrivileges", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x60e0604052730f3dc00189dbcd1d0c574e48031270cae04c4adf6080526001600160401b0360a052600060c0523480156200003957600080fd5b50620000446200004a565b6200010c565b600054610100900460ff1615620000b75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805160a05160c05161545d620001ac60003960008181610504015281816107c601528181610c230152818161116701526136e5015260006105b00152600081816106e201528181610b2e01528181610cf101528181610de401528181610fe20152818161107e0152818161122501528181611739015281816117d5015281816118e501528181611c4e015281816120600152613352015261545d6000f3fe608060405234801561001057600080fd5b50600436106103ba5760003560e01c80635f3e849f116101f4578063a6487c531161011a578063d505accf116100ad578063ef63d57c1161007c578063ef63d57c14610938578063f1127ed814610959578063f25e311f14610996578063f37d11cc146109a957600080fd5b8063d505accf146108e1578063d8697598146108f4578063dd62ed3e1461091b578063eec47d601461092e57600080fd5b8063b524abcf116100e9578063b524abcf1461088c578063ba497d08146108ac578063c3f9213c146108cf578063c72460ee146108d757600080fd5b8063a6487c5314610833578063a9059cbb14610846578063aacbbf5814610859578063ac9650d81461086c57600080fd5b80637ecebe00116101925780638e539e8c116101615780638e539e8c146107f257806391d148541461080557806395d89b4114610818578063a457c2d71461082057600080fd5b80637ecebe00146107a65780638456cb59146107b957806387f67d8f146107c1578063895324b2146107e857600080fd5b806370a08231116101ce57806370a082311461074457806372cee8d51461076d578063754e940b146107805780637dfe53591461079357600080fd5b80635f3e849f146106ca57806363727fc2146106dd5780636fcfff451461071c57600080fd5b8063248a9ca3116102e457806338cd427c116102775780634d30b6be116102465780634d30b6be1461066657806357cb16731461069c5780635c975abb146106af5780635d549d5c146106b757600080fd5b806338cd427c1461062557806339509351146106385780633f4ba83a1461064b5780634b63885a1461065357600080fd5b806330139280116102b357806330139280146105d2578063313ce567146105f9578063330dfd1f146106085780633644e5151461061d57600080fd5b8063248a9ca3146105725780632772ce9d1461058557806328972b15146105985780632a7a0c68146105ab57600080fd5b806310fe82941161035c5780631c8d5d381161032b5780631c8d5d38146104c25780631e26571f14610502578063227102a61461053857806323b872dd1461055f57600080fd5b806310fe829414610476578063161bc4201461048957806318160ddd146104b057806318cb0a40146104b857600080fd5b8063095ea7b311610398578063095ea7b31461041f5780630df86999146104325780630f58f5101461044557806310b74b281461044f57600080fd5b806301ffc9a7146103bf57806306fdde03146103e7578063089566a5146103fc575b600080fd5b6103d26103cd366004614925565b6109bc565b60405190151581526020015b60405180910390f35b6103ef6109e7565b6040516103de919061499f565b61041160008051602061540a83398151915281565b6040519081526020016103de565b6103d261042d3660046149c7565b610a79565b6104116104403660046149c7565b610a91565b6104116102945481565b6104117f0101361cc05e6b89a8f9397a4abf06a8f976d3838579a2733d74c335d8f7804d81565b6103d2610484366004614a96565b610ae5565b6104117fca229e2c24b1e5f3121c063a03d242a28455702c403d7f0a8d2dcc0644576a5b81565b603554610411565b6104116103935481565b6104116104d0366004614af9565b6001600160a01b0392831660009081526069602090815260408083209490951682529283528381209181529152205490565b7f000000000000000000000000000000000000000000000000000000000000000060009081526102fb6020526040902054610411565b6104117ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb181565b6103d261056d366004614af9565b610b06565b610411610580366004614b3a565b610b2a565b6103d2610593366004614b3a565b610c1c565b6103d26105a6366004614b53565b610c48565b6104117f000000000000000000000000000000000000000000000000000000000000000081565b6104117fca36d5a0569842341b54d50138a85347289de5969cb525e882bbb1a2dedcfef981565b604051601281526020016103de565b61061b610616366004614bc9565b610c73565b005b610411610dd5565b6103d2610633366004614c19565b610ddf565b6103d26106463660046149c7565b610faf565b61061b610fd1565b6103d2610661366004614c6a565b611160565b6104116106743660046149c7565b6001600160a01b03919091166000908152606860209081526040808320938352929052205490565b6103d26106aa366004614a96565b61118c565b6103d261119d565b61061b6106c5366004614bc9565b6111a7565b61061b6106d8366004614af9565b6112fa565b6107047f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103de565b61072f61072a366004614c6a565b61146b565b60405163ffffffff90911681526020016103de565b610411610752366004614c6a565b6001600160a01b031660009081526033602052604090205490565b6103d261077b366004614c87565b61148e565b6103d261078e366004614cdb565b61159e565b61061b6107a1366004614cfd565b611663565b6104116107b4366004614c6a565b611709565b61061b611728565b6104117f000000000000000000000000000000000000000000000000000000000000000081565b6104116102c75481565b610411610800366004614b3a565b6118b4565b6103d2610813366004614d44565b6118e1565b6103ef6119d9565b6103d261082e3660046149c7565b6119e8565b61061b610841366004614d74565b611a63565b6103d26108543660046149c7565b611b9a565b61061b610867366004614c87565b611ba8565b61087f61087a366004614df2565b611d53565b6040516103de9190614e67565b61041161089a366004614b3a565b60009081526066602052604090205490565b6103d26108ba366004614b3a565b60009081526067602052604090205460ff1690565b610411600081565b6104116102605481565b61061b6108ef366004614ec9565b611e48565b6104117f0b8459b722d944f0580da74c767d2dcae280ce16527c19c825b302a24e208dfd81565b610411610929366004614f40565b611fac565b6104116102fa5481565b610411610946366004614b3a565b60009081526102fb602052604090205490565b61096c610967366004614f6e565b611fd7565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016103de565b6103d26109a4366004614d44565b61205c565b6103d26109b7366004614af9565b612137565b60006001600160e01b0319821663a6487c5360e01b14806109e157506109e18261214e565b92915050565b6060603680546109f690614fa5565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2290614fa5565b8015610a6f5780601f10610a4457610100808354040283529160200191610a6f565b820191906000526020600020905b815481529060010190602001808311610a5257829003601f168201915b5050505050905090565b600033610a87818585612173565b5060019392505050565b6000438210610abb5760405162461bcd60e51b8152600401610ab290614fd9565b60405180910390fd5b6001600160a01b038316600090815261010060205260409020610ade9083612297565b9392505050565b600033610af58187878787612354565b50600195945050505050565b905090565b600033610b148582856124a2565b610b1f858585612516565b506001949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae919061501a565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b8152600401610bdb91815260200190565b602060405180830381865afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190615037565b60006109e17f00000000000000000000000000000000000000000000000000000000000000008361159e565b600033610c588782878787612521565b610c668787878888886125a2565b5060019695505050505050565b610393543390610c8390826118e1565b80610ca15750610ca160008051602061540a833981519152826118e1565b610ced5760405162461bcd60e51b815260206004820152601e60248201527f4d696e7461626c6553656375726974793a20554e415554484f52495a454400006044820152606401610ab2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663921234706040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d71919061501a565b9050610d7f81868686612630565b6001600160a01b038116336001600160a01b03167fd0f462e38655140024816d081b599b90e6e95e69b564ac32b0c2c0244393ca84878787604051610dc693929190615050565b60405180910390a35050505050565b6000610b0161263c565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e64919061501a565b60008681526102fb6020526040812054919250858714610e935760008681526102fb6020526040902054610e95565b815b90506001600160a01b0389161580610f19575060405163253bd7b760e01b81526001600160a01b038a811660048301526024820184905284169063253bd7b790604401602060405180830381865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f19919061506f565b8015610fa257506001600160a01b0388161580610fa2575060405163253bd7b760e01b81526001600160a01b0389811660048301526024820183905284169063253bd7b790604401602060405180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa2919061506f565b9998505050505050505050565b600033610a87818585610fc28383611fac565b610fcc91906150a7565b612173565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110629190