[ { "inputs": [], "name": "BlockerOperatorableCallerNotBlocker", "type": "error" }, { "inputs": [], "name": "BlockerOperatorableCallerNotBlockerOrOperator", "type": "error" }, { "inputs": [], "name": "BlockerOperatorableCallerNotNewBlockerOperator", "type": "error" }, { "inputs": [], "name": "BlockerOperatorableNewBlockerOperatorsAddressZero", "type": "error" }, { "inputs": [], "name": "BlockerOperatorablePendingBlockerOperatorsAddressZero", "type": "error" }, { "inputs": [], "name": "ERC20MintableZeroMintAmount", "type": "error" }, { "inputs": [], "name": "FreezableAccountFrozen", "type": "error" }, { "inputs": [], "name": "FreezableAccountNotFrozen", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "_batchCount", "type": "uint256" } ], "name": "FreezableBatchCountTooLarge", "type": "error" }, { "inputs": [], "name": "FreezableZeroAddress", "type": "error" }, { "inputs": [], "name": "InitializableContractAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotAdmin", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotAdminOrRelay", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotAdminOrSystem", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotMultisig", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotOperator", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotOperatorOrAdminOrRelay", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotOperatorOrRelay", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotOperatorOrSystem", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotOperatorOrSystemOrRelay", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_caller", "type": "address" } ], "name": "OperatorableCallerNotOperatorsContract", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotRelay", "type": "error" }, { "inputs": [], "name": "OperatorableCallerNotSystem", "type": "error" }, { "inputs": [], "name": "OperatorableNewOperatorsZeroAddress", "type": "error" }, { "inputs": [], "name": "PausableNotPaused", "type": "error" }, { "inputs": [], "name": "PausablePaused", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "SygnumTokenAccountFrozen", "type": "error" }, { "inputs": [], "name": "SygnumTokenBatchCountExceedsLimit", "type": "error" }, { "inputs": [], "name": "SygnumTokenDisabledInitialize", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "SygnumTokenSystemCallAccountFrozen", "type": "error" }, { "inputs": [], "name": "SygnumTokenUnequalArrayLengths", "type": "error" }, { "inputs": [], "name": "SygnumTokenV1AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "SygnumTokenV2AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "SygnumTokenV3AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "SygnumTokenV4AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "SygnumTokenV4ZeroBurnAmount", "type": "error" }, { "inputs": [], "name": "TraderOperatorableCallerNotNewTraderOperator", "type": "error" }, { "inputs": [], "name": "TraderOperatorableCallerNotTrader", "type": "error" }, { "inputs": [], "name": "TraderOperatorableCallerNotTraderOrOperatorOrSystem", "type": "error" }, { "inputs": [], "name": "TraderOperatorableNewTraderOperatorsAddressZero", "type": "error" }, { "inputs": [], "name": "TraderOperatorablePendingTraderOperatorsAddressZero", "type": "error" }, { "inputs": [], "name": "WhitelistableAccountNotWhitelisted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "_caller", "type": "address" } ], "name": "WhitelistableCallerNotWhitelistContract", "type": "error" }, { "inputs": [], "name": "WhitelistableWhitelistContractZeroAddress", "type": "error" }, { "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": "blocker", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Blocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "blockerOperatorAddress", "type": "address" } ], "name": "BlockerOperatorsContractChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "blockerOperatorAddress", "type": "address" } ], "name": "BlockerOperatorsContractPending", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "burner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Burned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "burner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "BurnedFor", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "issuer", "type": "address" }, { "indexed": false, "internalType": "bytes4", "name": "category", "type": "bytes4" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" } ], "name": "CategoryUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "issuer", "type": "address" }, { "indexed": false, "internalType": "string", "name": "class", "type": "string" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" } ], "name": "ClassUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" } ], "name": "Confiscated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "Destroyed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "frozen", "type": "bool" } ], "name": "FreezeToggled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "issuer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newIssuer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" } ], "name": "IssuerUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "issuer", "type": "address" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" } ], "name": "NameUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operatorsAddress", "type": "address" } ], "name": "OperatorsContractChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operatorsAddress", "type": "address" } ], "name": "OperatorsContractPending", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "issuer", "type": "address" }, { "indexed": false, "internalType": "string", "name": "symbol", "type": "string" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" } ], "name": "SymbolUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newToken", "type": "string" } ], "name": "TokenUriUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "traderOperatorsAddress", "type": "address" } ], "name": "TraderOperatorsContractChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "traderOperatorsAddress", "type": "address" } ], "name": "TraderOperatorsContractPending", "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": "blocker", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "UnBlocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "whitelistAddress", "type": "address" } ], "name": "WhitelistContractChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "whitelistAddress", "type": "address" } ], "name": "WhitelistContractPending", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_blockedBalances", "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": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "approveOnBehalf", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_blockNumber", "type": "uint256" } ], "name": "balanceOfAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } ], "name": "batchBurnFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_confiscatees", "type": "address[]" }, { "internalType": "address[]", "name": "_receivers", "type": "address[]" }, { "internalType": "uint256[]", "name": "_values", "type": "uint256[]" } ], "name": "batchConfiscate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } ], "name": "batchMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addresses", "type": "address[]" }, { "internalType": "bool", "name": "_toggled", "type": "bool" } ], "name": "batchToggleFreeze", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "block", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "blockedBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burnFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "category", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "class", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "confirmBlockerOperatorsContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "confirmOperatorsContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "confirmTraderOperatorsContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "confirmWhitelistContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_confiscatee", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "confiscate", "outputs": [], "stateMutability": "nonpayable", "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": "address payable", "name": "to", "type": "address" } ], "name": "destroy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "frozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBlockerOperatorsContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBlockerOperatorsPending", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOperatorsContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOperatorsPending", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalBlockedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTraderOperatorsContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTraderOperatorsPending", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getWhitelistContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getWhitelistPending", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_baseOperators", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" }, { "internalType": "bytes4", "name": "_category", "type": "bytes4" }, { "internalType": "string", "name": "_class", "type": "string" }, { "internalType": "address", "name": "_issuer", "type": "address" }, { "internalType": "address", "name": "_baseOperators", "type": "address" }, { "internalType": "address", "name": "_whitelist", "type": "address" }, { "internalType": "address", "name": "_traderOperators", "type": "address" }, { "internalType": "address", "name": "_blockerOperators", "type": "address" } ], "name": "initializeContractsAndConstructor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" }, { "internalType": "bytes4", "name": "_category", "type": "bytes4" }, { "internalType": "string", "name": "_class", "type": "string" }, { "internalType": "address", "name": "_issuer", "type": "address" }, { "internalType": "address", "name": "_baseOperators", "type": "address" }, { "internalType": "address", "name": "_whitelist", "type": "address" }, { "internalType": "address", "name": "_traderOperators", "type": "address" }, { "internalType": "address", "name": "_blockerOperators", "type": "address" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "initializeContractsAndConstructor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "initializeV1", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initializeV2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initializeV3", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initializeV4", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initializedV1", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initializedV2", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initializedV3", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initializedV4", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isAdmin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isAdminOrSystem", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isBlocker", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isFrozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isInitialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" } ], "name": "isMultisig", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isNotPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isOperator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isOperatorOrSystem", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isRelay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isSystem", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isTrader", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "issuer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_blockerOperators", "type": "address" } ], "name": "setBlockerOperatorsContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_baseOperators", "type": "address" } ], "name": "setOperatorsContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_traderOperators", "type": "address" } ], "name": "setTraderOperatorsContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_whitelist", "type": "address" } ], "name": "setWhitelistContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "bool", "name": "_toggled", "type": "bool" } ], "name": "toggleFreeze", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBlockedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_blockNumber", "type": "uint256" } ], "name": "totalSupplyAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "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": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "unblock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "category_", "type": "bytes4" } ], "name": "updateCategory", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "class_", "type": "string" } ], "name": "updateClass", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "issuer_", "type": "address" } ], "name": "updateIssuer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "name": "updateName", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "symbol_", "type": "string" } ], "name": "updateSymbol", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newToken", "type": "string" } ], "name": "updateTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b506040805460ff60a01b191690556142718061002d6000396000f3fe608060405234801561001057600080fd5b50600436106104c15760003560e01c806370a0823111610278578063a9059cbb1161015c578063d0ea5f4d116100ce578063e67c876e11610092578063e67c876e14610ab8578063e6c97fcb14610ac0578063ea3f7bdb14610ad3578063eaa5407e14610ae4578063ef430aa614610aec578063f017625a14610b1257600080fd5b8063d0ea5f4d14610a0d578063d8b153af14610a20578063db060b7314610a40578063dd62ed3e14610a53578063e583983614610a8c57600080fd5b8063b782e30311610120578063b782e30314610998578063b962e034146109ab578063b98aa312146109be578063bff852fa146109cf578063c4d66de8146109d7578063d0516650146109ea57600080fd5b8063a9059cbb14610944578063aa5a61bd14610957578063b187bd261461096b578063b1dab9151461097d578063b316675e1461099057600080fd5b806389025f5f116101f5578063960313bb116101b9578063960313bb146108c657806397130fc4146108d9578063981b24d01461090257806398cd6153146109155780639ee0b77d14610928578063a457c2d71461093157600080fd5b806389025f5f146108725780638973d42a146108855780638feaade41461089857806395296c78146108ab57806395d89b41146108be57600080fd5b80638456cb591161023c5780638456cb591461082f57806384a9d4d71461083757806384da92a71461084a5780638535a56b1461085d578063869c0be41461086557600080fd5b806370a08231146107d057806370eca15a146107e357806378312435146107f657806379cc6790146108095780637acf48921461081c57600080fd5b8063313ce567116103aa578063485cc9551161031c5780635cd8a76b116102e05780635cd8a76b1461076d5780635ead86c614610775578063604d996e14610786578063668f6ace1461079757806368573107146107aa5780636d70f7ae146107bd57600080fd5b8063485cc9551461071b57806348fe28071461072e5780634ee2cd7e1461073f578063537f53121461075257806354a086061461076557600080fd5b80633af32abf1161036e5780633af32abf146106bf5780633c130d90146106d25780633f4ba83a146106da5780634039ad0d146106e257806340c10f19146106f557806342966c681461070857600080fd5b8063313ce5671461067157806334cdcf261461068657806338e454b114610699578063392e53cd146106a157806339509351146106ac57600080fd5b80631bd3fce51161044357806323b872dd1161040757806323b872dd1461060157806324d7806c1461061457806326cb32b714610627578063295185141461063a5780632e4ea2451461064d5780633117a7611461065e57600080fd5b80631bd3fce5146105945780631c6bbabc146105b95780631d143848146105ca5780631dd319cb146105db578063208929d1146105ee57600080fd5b806313646d581161048a57806313646d58146105425780631745145e1461054a57806318160ddd1461055d57806318c20ecb1461056f5780631bc051a91461058157600080fd5b8062f55d9d146104c657806306fdde03146104db578063093abad0146104f9578063095ea7b31461050c57806312f261401461052f575b600080fd5b6104d96104d4366004613888565b610b25565b005b6104e3610b8f565b6040516104f091906138f2565b60405180910390f35b6104d9610507366004613915565b610c21565b61051f61051a366004613915565b610d1b565b60405190151581526020016104f0565b6104d961053d366004613888565b610d30565b6104d9610dc9565b6104d9610558366004613888565b610e3b565b6005545b6040519081526020016104f0565b60495461051f90610100900460ff1681565b6104d961058f366004613959565b610ed4565b6044546001600160a01b03165b6040516001600160a01b0390911681526020016104f0565b603c546001600160a01b03166105a1565b603e546001600160a01b03166105a1565b6104d96105e9366004613915565b610f6f565b6104d96105fc366004613888565b610fb6565b61051f61060f366004613974565b61104f565b61051f610622366004613888565b611066565b61051f610635366004613888565b6110e5565b61051f610648366004613888565b611118565b6040546001600160a01b03166105a1565b6104d961066c366004613aef565b6111cf565b60025460405160ff90911681526020016104f0565b61051f610694366004613888565b61129c565b6104d96112cf565b60085460ff1661051f565b61051f6106ba366004613915565b61130c565b61051f6106cd366004613888565b611318565b6104e361134b565b6104d96113d9565b61051f6106f0366004613888565b611486565b6104d9610703366004613915565b6114b9565b6104d9610716366004613b77565b611553565b6104d9610729366004613b90565b6115c8565b6042546001600160a01b03166105a1565b61056161074d366004613915565b6115e1565b6104d9610760366004613c39565b611603565b6104d9611670565b6104d96116b0565b603b546001600160a01b03166105a1565b6041546001600160a01b03166105a1565b61051f6107a5366004613888565b6116ea565b6104d96107b8366004613c76565b61171d565b61051f6107cb366004613888565b6117c0565b6105616107de366004613888565b6117f3565b6104d96107f1366004613c39565b61180e565b6104d9610804366004613888565b611856565b6104d9610817366004613915565b6118d8565b604054600160a01b900460ff161561051f565b6104d9611929565b6104d9610845366004613ce8565b6119de565b6104d9610858366004613c39565b611a46565b6104d9611ab4565b60495461051f9060ff1681565b61051f610880366004613888565b611b1f565b6104d9610893366004613915565b611b52565b6104d96108a6366004613d2f565b611c44565b6104d96108b9366004613d6e565b611cf2565b6104e3611da9565b6104d96108d4366004613974565b611db8565b6105616108e7366004613888565b6001600160a01b031660009081526046602052604090205490565b610561610910366004613b77565b611e3b565b6104d9610923366004613c39565b611e48565b61056160455481565b61051f61093f366004613915565b611eb1565b61051f610952366004613915565b611ebd565b60495461051f906301000000900460ff1681565b604054600160a01b900460ff1661051f565b6104d961098b366004613888565b611ec9565b6104d9611f60565b60495461051f9062010000900460ff1681565b6104d96109b9366004613c76565b611fc9565b603f546001600160a01b03166105a1565b6104e3612067565b6104d96109e5366004613888565b612076565b61051f6109f8366004613888565b60476020526000908152604090205460ff1681565b61051f610a1b366004613888565b6120fb565b610561610a2e366004613888565b60466020526000908152604090205481565b6104d9610a4e366004613974565b61212e565b610561610a61366004613b90565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61051f610a9a366004613888565b6001600160a01b031660009081526047602052604090205460ff1690565b6104d961215f565b6104d9610ace366004613e6d565b6121c8565b6043546001600160a01b03166105a1565b604554610561565b603c54600160a01b900460e01b6040516001600160e01b031990911681526020016104f0565b6104d9610b20366004613c39565b6121e3565b610b2e336117c0565b610b4b5760405163aa49d14f60e01b815260040160405180910390fd5b60405130906001600160a01b0383169033907fe76ea4db1aaa54cf4eabf7e9802fcf1c558685039d5ecb40bea5d29640a4b6a690600090a4806001600160a01b0316ff5b606060008054610b9e90613f95565b80601f0160208091040260200160405190810160405280929190818152602001828054610bca90613f95565b8015610c175780601f10610bec57610100808354040283529160200191610c17565b820191906000526020600020905b815481529060010190602001808311610bfa57829003601f168201915b5050505050905090565b610c2a33611b1f565b158015610c3d5750610c3b336117c0565b155b15610c5b5760405163caf5634560e01b815260040160405180910390fd5b6001600160a01b038216600090815260036020526040902054610c7e9082612251565b6001600160a01b038316600090815260036020908152604080832093909355604690522054610cad908261225d565b6001600160a01b038316600090815260466020526040902055604554610cd3908261225d565b6045556040518181526001600160a01b0383169033907ff4d61bf10cd7634ffb91cebcbd1828d9b0debaec1f35f00fac329be576fa795d906020015b60405180910390a35050565b6000610d278383612269565b90505b92915050565b610d3933611066565b610d565760405163590f633960e01b815260040160405180910390fd5b6001600160a01b038116610d7d5760405163599969f960e11b815260040160405180910390fd5b604280546001600160a01b0319166001600160a01b03831690811790915560405133907f78ffa9fe91e0bddf459ef5a9ea969b71677013f719cdb542f2ed55a9e26e3e2690600090a350565b6042546001600160a01b0316610df25760405163599969f960e11b815260040160405180910390fd5b6042546001600160a01b03163314610e2457604051631076480560e21b81523360048201526024015b60405180910390fd5b604254610e39906001600160a01b03166122ec565b565b610e4433611066565b610e615760405163590f633960e01b815260040160405180910390fd5b6001600160a01b038116610e8857604051638d9b385f60e01b815260040160405180910390fd5b603c80546001600160a01b0319166001600160a01b03831690811790915560405133907f01e6311290e7fb795a47761d6ca6a39b9c898bbf2e8b0e40211aa9f2f6c0202990600090a350565b610edd336117c0565b610efa5760405163aa49d14f60e01b815260040160405180910390fd5b603c805463ffffffff60a01b1916600160a01b60e084811c82029290921792839055604080513381526001600160e01b03199290940490921b16602083015230908201527feb9a07614128a8102a8d0f1200e4c49a878b681e4257b38e11dd627ba3807416906060015b60405180910390a150565b610f79828261235f565b6040518181526001600160a01b0383169033907f27d99300c6c6789f01bf643b2832d5f98653c4c2166dfce0a8ed822b049f307390602001610d0f565b610fbf33611066565b610fdc5760405163590f633960e01b815260040160405180910390fd5b6001600160a01b03811661100357604051631bc7763360e31b815260040160405180910390fd5b604480546001600160a01b0319166001600160a01b03831690811790915560405133907f0cac6307c5182808dbebb49424a803a786b8065475a3004af7848cce417cccac90600090a350565b600061105c8484846123b2565b90505b9392505050565b603b54604051630935e01b60e21b81526001600160a01b03838116600483015260009216906324d7806c906024015b60206040518083038186803b1580156110ad57600080fd5b505afa1580156110c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2a9190613fd0565b603b546040516326cb32b760e01b81526001600160a01b03838116600483015260009216906326cb32b790602401611095565b603b546040516336b87bd760e11b81526001600160a01b0383811660048301526000921690636d70f7ae906024015b60206040518083038186803b15801561115f57600080fd5b505afa158015611173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111979190613fd0565b80610d2a5750603b54604051631a66e79360e11b81526001600160a01b038481166004830152909116906334cdcf2690602401611095565b805183511415806111e257508051825114155b156112005760405163200e1d7760e11b815260040160405180910390fd5b8251610100101561122457604051637d8e673560e01b815260040160405180910390fd5b60005b83518110156112965761128684828151811061124557611245613fed565b602002602001015184838151811061125f5761125f613fed565b602002602001015184848151811061127957611279613fed565b6020026020010151611db8565b61128f81614019565b9050611227565b50505050565b603b54604051631a66e79360e11b81526001600160a01b03838116600483015260009216906334cdcf2690602401611095565b60495462010000900460ff16156112f9576040516304cc1bdb60e01b815260040160405180910390fd5b6049805462ff0000191662010000179055565b6000610d278383612474565b604154604051633af32abf60e01b81526001600160a01b0383811660048301526000921690633af32abf90602401611095565b6048805461135890613f95565b80601f016020809104026020016040519081016040528092919081815260200182805461138490613f95565b80156113d15780601f106113a6576101008083540402835291602001916113d1565b820191906000526020600020905b8154815290600101906020018083116113b457829003601f168201915b505050505081565b6113e2336117c0565b1580156113f557506113f333611486565b155b801561140757506114053361129c565b155b1561142557604051635dc4e41160e11b815260040160405180910390fd5b604054600160a01b900460ff1661144e5760405162c5619760e61b815260040160405180910390fd5b6040805460ff60a01b191681555133907f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90600090a2565b603f54604051634039ad0d60e01b81526001600160a01b0383811660048301526000921690634039ad0d90602401611095565b6114c23361129c565b1561150c576001600160a01b03821660009081526047602052604090205460ff161561150c57604051637aae826960e11b81526001600160a01b0383166004820152602401610e1b565b61151682826124ee565b6040518181526001600160a01b0383169033907f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f090602001610d0f565b3360009081526047602052604090205460ff16156115865760405163ad57726160e01b8152336004820152602401610e1b565b6115903382612541565b60405181815233907f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df79060200160405180910390a250565b604051633c144f1f60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600660205260408120610d27908361258a565b61160c336117c0565b6116295760405163aa49d14f60e01b815260040160405180910390fd5b805161163c9060019060208401906137d7565b507fac570b70a8feb5042803796f5f7d69fb108f43e4dfdb31ad5bb4cae524b3cbaa338230604051610f6493929190614034565b6049546301000000900460ff161561169b5760405163072e5a6360e51b815260040160405180910390fd5b6049805463ff00000019166301000000179055565b604954610100900460ff16156116d957604051631bfe2c0b60e31b815260040160405180910390fd5b6049805461ff001916610100179055565b603b54604051633347b56760e11b81526001600160a01b038381166004830152600092169063668f6ace90602401611095565b805182511461173f5760405163200e1d7760e11b815260040160405180910390fd5b8151610100101561176357604051637d8e673560e01b815260040160405180910390fd5b60005b82518110156117bb576117ab83828151811061178457611784613fed565b602002602001015183838151811061179e5761179e613fed565b60200260200101516114b9565b6117b481614019565b9050611766565b505050565b603b546040516336b87bd760e11b81526001600160a01b0383811660048301526000921690636d70f7ae90602401611095565b6001600160a01b031660009081526003602052604090205490565b60495460ff16156118325760405163cc54c66160e01b815260040160405180910390fd5b80516118459060489060208401906137d7565b50506049805460ff19166001179055565b61185f336117c0565b61187c5760405163aa49d14f60e01b815260040160405180910390fd5b603e80546001600160a01b0319166001600160a01b03831690811790915560408051338152602081019290925230908201527f7517f2ce2a7974ec02b566e359e3fb3b319c5b3cc755606f35cbf79f93601e9590606001610f64565b6118e282826126f3565b816001600160a01b03167f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df78260405161191d91815260200190565b60405180910390a25050565b611932336117c0565b158015611945575061194333611486565b155b801561195757506119553361129c565b155b1561197557604051635dc4e41160e11b815260040160405180910390fd5b604054600160a01b900460ff16156119a05760405163928dfa7760e01b815260040160405180910390fd5b6040805460ff60a01b1916600160a01b1781555133907f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890600090a2565b61010082511115611a0757815160405163f33e36a960e01b8152600401610e1b91815260200190565b60005b82518110156117bb57611a36838281518110611a2857611a28613fed565b602002602001015183611c44565b611a3f81614019565b9050611a0a565b611a4f336117c0565b611a6c5760405163aa49d14f60e01b815260040160405180910390fd5b8051611a7f9060009060208401906137d7565b507fcf335673fa5d049c27e726ba4d58524070f407e87f0fc2f22c4fce415b2c84ac33600030604051610f6493929190614069565b603c546001600160a01b0316611add57604051638d9b385f60e01b815260040160405180910390fd5b603c546001600160a01b03163314611b0a576040516385df92a760e01b8152336004820152602401610e1b565b603c54610e39906001600160a01b03166126fd565b6043546040516389025f5f60e01b81526001600160a01b03838116600483015260009216906389025f5f90602401611095565b611b5b33611b1f565b158015611b6e5750611b6c336117c0565b155b15611b8c5760405163caf5634560e01b815260040160405180910390fd5b6001600160a01b038216600090815260036020526040902054611baf908261225d565b6001600160a01b038316600090815260036020908152604080832093909355604690522054611bde9082612251565b6001600160a01b038316600090815260466020526040902055604554611c049082612251565b6045556040518181526001600160a01b0383169033907f8100ea465dd47f3401ddd3d8429111ea02ccb1f745cfbf4479fc4d33f90fd37d90602001610d0f565b816001600160a01b038116611c6c576040516350a5d4c960e01b815260040160405180910390fd5b611c75336117c0565b611c925760405163aa49d14f60e01b815260040160405180910390fd5b6001600160a01b038316600081815260476020908152604091829020805460ff191686151590811790915591519182527f3c143a3c8cc9eafd41748a32abe319b06bd5b995c988fa06db8d1ef4e5841edf910160405180910390a2505050565b600854610100900460ff16158015611d0a5750303b15155b8015611d18575060085460ff165b15611d3657604051635428559160e01b815260040160405180910390fd5b600854610100900460ff16158015611d58576008805461ffff19166101011790555b611d6185612076565b611d6a846122ec565b611d7383612770565b611d7c826127e3565b611d8a8b8b8b8b8b8b612856565b8015611d9c576008805461ff00191690555b5050505050505050505050565b606060018054610b9e90613f95565b611dc133611118565b611dde576040516360e6021760e01b815260040160405180910390fd5b611de98383836128e4565b816001600160a01b0316836001600160a01b03167fc3a0c22b0aeeb7a97bafeabf2b1c9611b092e8f739d791180a7f299fcd1f41fb83604051611e2e91815260200190565b60405180910390a3505050565b6000610d2a60078361258a565b611e51336117c0565b611e6e5760405163aa49d14f60e01b815260040160405180910390fd5b8051611e819060489060208401906137d7565b507f89e5189514b6402e76dacf643a35960a8b0a3302552103511c83cb42b07b25ab81604051610f6491906138f2565b6000610d27838361294c565b6000610d2783836129c6565b611ed233611066565b611eef5760405163590f633960e01b815260040160405180910390fd5b6001600160a01b038116611f165760405163919ee6f760e01b815260040160405180910390fd5b604080546001600160a01b0319166001600160a01b0383169081178255905133907f3f3352e835b79539c317572a5adbfcc149494437e8975906a5a2274c3d06b52790600090a350565b6040546001600160a01b0316611f8957604051630105355160e01b815260040160405180910390fd5b6040546001600160a01b03163314611fb457604051632eebd0d360e11b815260040160405180910390fd5b604054610e39906001600160a01b0316612770565b8051825114611feb5760405163200e1d7760e11b815260040160405180910390fd5b8151610100101561200f57604051637d8e673560e01b815260040160405180910390fd5b60005b82518110156117bb5761205783828151811061203057612030613fed565b602002602001015183838151811061204a5761204a613fed565b6020026020010151610f6f565b61206081614019565b9050612012565b6060603d8054610b9e90613f95565b600854610100900460ff1615801561208e5750303b15155b801561209c575060085460ff165b156120ba57604051635428559160e01b815260040160405180910390fd5b600854610100900460ff161580156120dc576008805461ffff19166101011790555b6120e5826126fd565b80156120f7576008805461ff00191690555b5050565b603b54604051630935e01b60e21b81526001600160a01b03838116600483015260009216906324d7806c90602401611147565b61213733611486565b6121545760405163c6fa043960e01b815260040160405180910390fd5b6117bb838383612a40565b6044546001600160a01b031661218857604051638ec61c7360e01b815260040160405180910390fd5b6044546001600160a01b031633146121b35760405163031cd30b60e51b815260040160405180910390fd5b604454610e39906001600160a01b03166127e3565b6121db8b8b8b8b8b8b8b8b8b8b8b612b5c565b611d9c611670565b6121ec336117c0565b6122095760405163aa49d14f60e01b815260040160405180910390fd5b805161221c90603d9060208401906137d7565b507f3e316a308ab2ebf046a9c4722c296ee905b8ee17f41f765246a2a7d374833ffa33603d30604051610f6493929190614069565b6000610d278284614131565b6000610d278284614148565b3360008181526047602052604081205490919060ff161561229d5760405163094ba74560e31b815260040160405180910390fd5b6001600160a01b038416600090815260476020526040902054849060ff16156122d95760405163094ba74560e31b815260040160405180910390fd5b6122e38585612b77565b95945050505050565b6001600160a01b0381166123135760405163599969f960e11b815260040160405180910390fd5b604180546001600160a01b0319166001600160a01b03831690811790915560405133907ff10a6c2d7d8ac14e2134743353b0c65c0e1ee214816c96176a1bb730a34729ad90600090a350565b612368336117c0565b8015612378575061237882611318565b156123a8576000811161239e57604051631d23624f60e31b815260040160405180910390fd5b6120f78282612bd1565b6120f78282612c0e565b3360008181526047602052604081205490919060ff16156123e65760405163094ba74560e31b815260040160405180910390fd5b6001600160a01b038516600090815260476020526040902054859060ff16156124225760405163094ba74560e31b815260040160405180910390fd5b6001600160a01b038516600090815260476020526040902054859060ff161561245e5760405163094ba74560e31b815260040160405180910390fd5b612469878787612c18565b979650505050505050565b3360008181526047602052604081205490919060ff16156124a85760405163094ba74560e31b815260040160405180910390fd5b6001600160a01b038416600090815260476020526040902054849060ff16156124e45760405163094ba74560e31b815260040160405180910390fd5b6122e38585612c9a565b6124f7336117c0565b8015612507575061250782611318565b15612537576000811161252d5760405163512bc75960e01b815260040160405180910390fd5b6120f78282612cf4565b6120f78282612cfe565b61254a336117c0565b801561255a575061255a82611318565b15612580576000811161239e57604051631d23624f60e31b815260040160405180910390fd5b6120f78282612d08565b815460009061259b57506000610d2a565b825483906125aa906001612251565b815481106125ba576125ba613fed565b906000526020600020906002020160000154821061260a57825483906125e1906001612251565b815481106125f1576125f1613fed565b9060005260206000209060020201600101549050610d2a565b8260008154811061261d5761261d613fed565b90600052602060002090600202016000015482101561263e57506000610d2a565b82546000908190612650906001612251565b90505b818111156126c557600061267d60026126776001612671868861225d565b9061225d565b90612d12565b90508486828154811061269257612692613fed565b906000526020600020906002020160000154116126b1578092506126bf565b6126bc816001612251565b91505b50612653565b8482815481106126d7576126d7613fed565b9060005260206000209060020201600101549250505092915050565b6120f78282612d1e565b6001600160a01b03811661272457604051638d9b385f60e01b815260040160405180910390fd5b603b80546001600160a01b0319166001600160a01b03831690811790915560405133907f581e9e5016a25985d2da9da423c68d9946de634ff0e3447eaaa9575d135e819e90600090a350565b6001600160a01b0381166127975760405163919ee6f760e01b815260040160405180910390fd5b603f80546001600160a01b0319166001600160a01b03831690811790915560405133907f2062717208704e88e492fbeeade423dbb92afbc0429f402e121c31050b16ef2290600090a350565b6001600160a01b03811661280a57604051631bc7763360e31b815260040160405180910390fd5b604380546001600160a01b0319166001600160a01b03831690811790915560405133907f7add599f7c2b8d78adb65f05bacace872bd5eb2312055ecae19f055c95d03de790600090a350565b85516128699060009060208901906137d7565b50845161287d9060019060208801906137d7565b506002805460ff191660ff8616179055603c805463ffffffff60a01b1916600160a01b60e086901c0217905581516128bc90603d9060208501906137d7565b50603e80546001600160a01b0319166001600160a01b03929092169190911790555050505050565b6128ef838383612d95565b61290260076128fd60055490565b612f1b565b6001600160a01b0383166000908152600660205260409020612927906128fd856117f3565b6001600160a01b03821660009081526006602052604090206117bb906128fd846117f3565b3360008181526047602052604081205490919060ff16156129805760405163094ba74560e31b815260040160405180910390fd5b6001600160a01b038416600090815260476020526040902054849060ff16156129bc5760405163094ba74560e31b815260040160405180910390fd5b6122e38585612fd3565b3360008181526047602052604081205490919060ff16156129fa5760405163094ba74560e31b815260040160405180910390fd5b6001600160a01b038416600090815260476020526040902054849060ff1615612a365760405163094ba74560e31b815260040160405180910390fd5b6122e3858561302d565b6001600160a01b038316612aa25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e1b565b6001600160a01b038216612b035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e1b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611e2e565b612b6f8b8b8b8b8b8b8b8b8b8b8b613087565b611d9c6112cf565b600033612b8381611318565b612ba05760405163d11eb83160e01b815260040160405180910390fd5b83612baa81611318565b612bc75760405163d11eb83160e01b815260040160405180910390fd5b6122e385856130a2565b612bdb82826130da565b612be960076128fd60055490565b6001600160a01b03821660009081526006602052604090206120f7906128fd846117f3565b6120f782826131de565b600033612c2481611318565b612c415760405163d11eb83160e01b815260040160405180910390fd5b84612c4b81611318565b612c685760405163d11eb83160e01b815260040160405180910390fd5b84612c7281611318565b612c8f5760405163d11eb83160e01b815260040160405180910390fd5b612469878787613204565b600082612ca681611318565b612cc35760405163d11eb83160e01b815260040160405180910390fd5b33612ccd81611318565b612cea5760405163d11eb83160e01b815260040160405180910390fd5b6122e3858561323d565b612bdb8282613275565b6120f7828261334f565b6120f78282613380565b6000610d278284614160565b3360008181526047602052604090205460ff1615612d4f5760405163094ba74560e31b815260040160405180910390fd5b6001600160a01b038316600090815260476020526040902054839060ff1615612d8b5760405163094ba74560e31b815260040160405180910390fd5b61129684846133b1565b6001600160a01b038316612df95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e1b565b6001600160a01b038216612e5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e1b565b612e98816040518060600160405280602681526020016141a5602691396001600160a01b0386166000908152600360205260409020549190613409565b6001600160a01b038085166000908152600360205260408082209390935590841681522054612ec7908261225d565b6001600160a01b0380841660008181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e2e9085815260200190565b81541580612f595750815443908390612f35906001612251565b81548110612f4557612f45613fed565b906000526020600020906002020160000154105b15612f9957604080518082019091524381526020808201928352835460018082018655600095865291909420915160029094029091019283559051910155565b815481908390612faa906001612251565b81548110612fba57612fba613fed565b9060005260206000209060020201600101819055505050565b600082612fdf81611318565b612ffc5760405163d11eb83160e01b815260040160405180910390fd5b3361300681611318565b6130235760405163d11eb83160e01b815260040160405180910390fd5b6122e38585613435565b60003361303981611318565b6130565760405163d11eb83160e01b815260040160405180910390fd5b8361306081611318565b61307d5760405163d11eb83160e01b815260040160405180910390fd5b6122e3858561346d565b61309a8b8b8b8b8b8b8b8b8b8b8b6134a5565b611d9c6116b0565b604054600090600160a01b900460ff16156130d05760405163928dfa7760e01b815260040160405180910390fd5b610d2783836134c0565b6001600160a01b03821661313a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610e1b565b61317781604051806060016040528060228152602001614183602291396001600160a01b0385166000908152600360205260409020549190613409565b6001600160a01b03831660009081526003602052604090205560055461319d9082612251565b6005556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d0f565b6131e7336117c0565b612d085760405163aa49d14f60e01b815260040160405180910390fd5b604054600090600160a01b900460ff16156132325760405163928dfa7760e01b815260040160405180910390fd5b61105c8484846134d6565b604054600090600160a01b900460ff161561326b5760405163928dfa7760e01b815260040160405180910390fd5b610d27838361353d565b6001600160a01b0382166132cb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610e1b565b6005546132d8908261225d565b6005556001600160a01b0382166000908152600360205260409020546132fe908261225d565b6001600160a01b0383166000818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d0f9085815260200190565b8161335981611318565b6133765760405163d11eb83160e01b815260040160405180910390fd5b6117bb8383613578565b8161338a81611318565b6133a75760405163d11eb83160e01b815260040160405180910390fd5b6117bb83836135c9565b336133bb81611318565b6133d85760405163d11eb83160e01b815260040160405180910390fd5b826133e281611318565b6133ff5760405163d11eb83160e01b815260040160405180910390fd5b61129684846135f4565b6000818484111561342d5760405162461bcd60e51b8152600401610e1b91906138f2565b505050900390565b604054600090600160a01b900460ff16156134635760405163928dfa7760e01b815260040160405180910390fd5b610d278383613629565b604054600090600160a01b900460ff161561349b5760405163928dfa7760e01b815260040160405180910390fd5b610d278383613678565b6134b78b8b8b8b8b8b8b8b8b8b611cf2565b611d9c8161180e565b60006134cd338484612a40565b50600192915050565b60006134e38484846136d5565b90506134f360076128fd60055490565b6001600160a01b0384166000908152600660205260409020613518906128fd866117f3565b6001600160a01b038316600090815260066020526040902061105f906128fd856117f3565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916134cd918590613573908661225d565b612a40565b61358133611118565b61359e576040516360e6021760e01b815260040160405180910390fd5b600081116135bf5760405163512bc75960e01b815260040160405180910390fd5b6120f7828261374a565b604054600160a01b900460ff161561239e5760405163928dfa7760e01b815260040160405180910390fd5b604054600160a01b900460ff161561361f5760405163928dfa7760e01b815260040160405180910390fd5b6120f78282613775565b60006134cd338461357385604051806060016040528060258152602001614217602591393360009081526004602090815260408083206001600160a01b038d1684529091529020549190613409565b6000613684838361377f565b905061369460076128fd60055490565b3360008181526006602052604090206136b0916128fd906117f3565b6001600160a01b0383166000908152600660205260409020610d2a906128fd856117f3565b60006136e2848484612d95565b6137408433613573856040518060600160405280602881526020016141cb602891396001600160a01b038a16600090815260046020526040812090335b6001600160a01b031681526020810191909152604001600020549190613409565b5060019392505050565b604054600160a01b900460ff161561252d5760405163928dfa7760e01b815260040160405180910390fd5b612bdb828261378c565b60006134cd338484612d95565b6137968282612541565b6120f78233613573846040518060600160405280602481526020016141f3602491396001600160a01b0388166000908152600460205260408120903361371f565b8280546137e390613f95565b90600052602060002090601f016020900481019282613805576000855561384b565b82601f1061381e57805160ff191683800117855561384b565b8280016001018555821561384b579182015b8281111561384b578251825591602001919060010190613830565b5061385792915061385b565b5090565b5b80821115613857576000815560010161385c565b6001600160a01b038116811461388557600080fd5b50565b60006020828403121561389a57600080fd5b813561105f81613870565b6000815180845260005b818110156138cb576020818501810151868301820152016138af565b818111156138dd576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610d2760208301846138a5565b803561391081613870565b919050565b6000806040838503121561392857600080fd5b823561393381613870565b946020939093013593505050565b80356001600160e01b03198116811461391057600080fd5b60006020828403121561396b57600080fd5b610d2782613941565b60008060006060848603121561398957600080fd5b833561399481613870565b925060208401356139a481613870565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139f4576139f46139b5565b604052919050565b600067ffffffffffffffff821115613a1657613a166139b5565b5060051b60200190565b600082601f830112613a3157600080fd5b81356020613a46613a41836139fc565b6139cb565b82815260059290921b84018101918181019086841115613a6557600080fd5b8286015b84811015613a89578035613a7c81613870565b8352918301918301613a69565b509695505050505050565b600082601f830112613aa557600080fd5b81356020613ab5613a41836139fc565b82815260059290921b84018101918181019086841115613ad457600080fd5b8286015b84811015613a895780358352918301918301613ad8565b600080600060608486031215613b0457600080fd5b833567ffffffffffffffff80821115613b1c57600080fd5b613b2887838801613a20565b94506020860135915080821115613b3e57600080fd5b613b4a87838801613a20565b93506040860135915080821115613b6057600080fd5b50613b6d86828701613a94565b9150509250925092565b600060208284031215613b8957600080fd5b5035919050565b60008060408385031215613ba357600080fd5b8235613bae81613870565b91506020830135613bbe81613870565b809150509250929050565b600082601f830112613bda57600080fd5b813567ffffffffffffffff811115613bf457613bf46139b5565b613c07601f8201601f19166020016139cb565b818152846020838601011115613c1c57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215613c4b57600080fd5b813567ffffffffffffffff811115613c6257600080fd5b613c6e84828501613bc9565b949350505050565b60008060408385031215613c8957600080fd5b823567ffffffffffffffff80821115613ca157600080fd5b613cad86838701613a20565b93506020850135915080821115613cc357600080fd5b50613cd085828601613a94565b9150509250929050565b801515811461388557600080fd5b60008060408385031215613cfb57600080fd5b823567ffffffffffffffff811115613d1257600080fd5b613d1e85828601613a20565b9250506020830135613bbe81613cda565b60008060408385031215613d4257600080fd5b8235613d4d81613870565b91506020830135613bbe81613cda565b803560ff8116811461391057600080fd5b6000806000806000806000806000806101408b8d031215613d8e57600080fd5b8a3567ffffffffffffffff80821115613da657600080fd5b613db28e838f01613bc9565b9b5060208d0135915080821115613dc857600080fd5b613dd48e838f01613bc9565b9a50613de260408e01613d5d565b9950613df060608e01613941565b985060808d0135915080821115613e0657600080fd5b50613e138d828e01613bc9565b965050613e2260a08c01613905565b9450613e3060c08c01613905565b9350613e3e60e08c01613905565b9250613e4d6101008c01613905565b9150613e5c6101208c01613905565b90509295989b9194979a5092959850565b60008060008060008060008060008060006101608c8e031215613e8f57600080fd5b67ffffffffffffffff808d351115613ea657600080fd5b613eb38e8e358f01613bc9565b9b508060208e01351115613ec657600080fd5b613ed68e60208f01358f01613bc9565b9a50613ee460408e01613d5d565b9950613ef260608e01613941565b98508060808e01351115613f0557600080fd5b613f158e60808f01358f01613bc9565b9750613f2360a08e01613905565b9650613f3160c08e01613905565b9550613f3f60e08e01613905565b9450613f4e6101008e01613905565b9350613f5d6101208e01613905565b9250806101408e01351115613f7157600080fd5b50613f838d6101408e01358e01613bc9565b90509295989b509295989b9093969950565b600181811c90821680613fa957607f821691505b60208210811415613fca57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613fe257600080fd5b815161105f81613cda565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561402d5761402d614003565b5060010190565b600060018060a01b0380861683526060602084015261405660608401866138a5565b9150808416604084015250949350505050565b60018060a01b0384168152600060206060818401526000855481600182811c91508083168061409957607f831692505b8583108114156140b757634e487b7160e01b85526022600452602485fd5b60608801839052608088018180156140d657600181146140e757614112565b60ff19861682528782019650614112565b60008c81526020902060005b8681101561410c578154848201529085019089016140f3565b83019750505b5050506001600160a01b038816604088015250919350613c6e92505050565b60008282101561414357614143614003565b500390565b6000821982111561415b5761415b614003565b500190565b60008261417d57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220770037844b14d5350c49b54a0d3e6f68a1153da4413a8fb97fff12548d74c02a64736f6c63430008080033