Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 31 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Safe Transfer Fr... | 18845440 | 382 days ago | IN | 0 ETH | 0.00252342 | ||||
Safe Transfer Fr... | 18484536 | 432 days ago | IN | 0 ETH | 0.00245625 | ||||
Set Approval For... | 17446587 | 578 days ago | IN | 0 ETH | 0.00080658 | ||||
Mint | 17410560 | 583 days ago | IN | 0 ETH | 0.00196814 | ||||
Mint | 17410555 | 583 days ago | IN | 0 ETH | 0.0020129 | ||||
Mint | 17410550 | 583 days ago | IN | 0 ETH | 0.00209354 | ||||
Mint | 17410546 | 583 days ago | IN | 0 ETH | 0.00208929 | ||||
Mint | 17410542 | 583 days ago | IN | 0 ETH | 0.00077811 | ||||
Mint | 17410532 | 583 days ago | IN | 0 ETH | 0.00207559 | ||||
Mint | 17410502 | 583 days ago | IN | 0 ETH | 0.00246383 | ||||
Mint | 17410491 | 583 days ago | IN | 0 ETH | 0.00201178 | ||||
Mint | 17410471 | 583 days ago | IN | 0 ETH | 0.00202105 | ||||
Mint | 17410454 | 583 days ago | IN | 0 ETH | 0.00214769 | ||||
Mint | 17410449 | 583 days ago | IN | 0 ETH | 0.00200467 | ||||
Set Approval For... | 17405211 | 584 days ago | IN | 0 ETH | 0.00093089 | ||||
Mint | 17396141 | 585 days ago | IN | 0 ETH | 0.00269784 | ||||
Set Admin | 17396138 | 585 days ago | IN | 0 ETH | 0.00116536 | ||||
Set Token To URI | 17396126 | 585 days ago | IN | 0 ETH | 0.00245036 | ||||
Set Token To URI | 17396122 | 585 days ago | IN | 0 ETH | 0.00267403 | ||||
Set Token To URI | 17396119 | 585 days ago | IN | 0 ETH | 0.00286223 | ||||
Set Token To URI | 17396117 | 585 days ago | IN | 0 ETH | 0.00280053 | ||||
Set Token To URI | 17396115 | 585 days ago | IN | 0 ETH | 0.00288159 | ||||
Set Token To URI | 17396107 | 585 days ago | IN | 0 ETH | 0.00303296 | ||||
Set Token To URI | 17396105 | 585 days ago | IN | 0 ETH | 0.00293753 | ||||
Set Token To URI | 17396102 | 585 days ago | IN | 0 ETH | 0.0031445 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DEF_DJ
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2023-06-02 */ // SPDX-License-Identifier: MIT /** * @title ERC1155 Token * @author 0xSumo @PBADAO */ pragma solidity ^0.8.0; interface ERC1155TokenReceiver { function onERC1155Received(address operator_, address from_, uint256 id_, uint256 amount_, bytes calldata data_) external returns (bytes4); function onERC1155BatchReceived(address operator_, address from_, uint256[] calldata ids_, uint256[] calldata amounts_, bytes calldata data_) external returns (bytes4); } abstract contract ERC1155Enumerable { string public name; string public symbol; constructor(string memory name_, string memory symbol_) { name = name_; symbol = symbol_; } event TransferSingle(address indexed operator_, address indexed from_, address indexed to_, uint256 id_, uint256 amount_); event TransferBatch(address indexed operator_, address indexed from_, address indexed to_, uint256[] ids_, uint256[] amounts_); event ApprovalForAll(address indexed owner_, address indexed operator_, bool approved_); event URI(string value_, uint256 indexed id_); mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public isApprovedForAll; mapping(uint256 => address[]) public tokenToOwners; mapping(uint256 => mapping(address => uint256)) public tokenToOwnersToIndex; struct TokenBalances { address owner; uint256 balance; } function _addEnumerableData(address address_, uint256 id_) internal { if (balanceOf[address_][id_] == 0) { uint256 _nextIndex = tokenToOwners[id_].length; tokenToOwners[id_].push(address_); tokenToOwnersToIndex[id_][address_] = _nextIndex; } } function _removeEnumerableData(address address_, uint256 id_) internal { if (balanceOf[address_][id_] == 0) { uint256 _userIndex = tokenToOwnersToIndex[id_][address_]; uint256 _lastIndex = tokenToOwners[id_].length - 1; if (_userIndex != _lastIndex) { address _userAtLastIndex = tokenToOwners[id_][_lastIndex]; tokenToOwners[id_][_userIndex] = _userAtLastIndex; tokenToOwnersToIndex[id_][_userAtLastIndex] = _userIndex; } tokenToOwners[id_].pop(); delete tokenToOwnersToIndex[id_][address_]; } } function getOwnersOfTokenId(uint256 id_) public view returns (address[] memory) { return tokenToOwners[id_]; } function getOwnersOfTokenIdAndBalance(uint256 id_) public view returns (TokenBalances[] memory) { address[] memory _owners = getOwnersOfTokenId(id_); uint256 _ownersLength = _owners.length; TokenBalances[] memory _TokenBalancesAll = new TokenBalances[] (_ownersLength); for (uint256 i = 0; i < _ownersLength; i++) { address _currentOwner = _owners[i]; _TokenBalancesAll[i] = TokenBalances( _currentOwner, balanceOf[_currentOwner][id_] ); } return _TokenBalancesAll; } function getTotalSupplyOfIds(uint256[] calldata ids_) public view returns (uint256) { uint256 _tokens; for (uint256 i = 0; i < ids_.length; i++) { _tokens += getOwnersOfTokenId(ids_[i]).length; } return _tokens; } function uri(uint256 id) public view virtual returns (string memory); function _isSameLength(uint256 a, uint256 b) internal pure returns (bool) { return a == b; } function _isApprovedOrOwner(address from_) internal view returns (bool) { return msg.sender == from_ || isApprovedForAll[from_][msg.sender]; } function _ERC1155Supported(address from_, address to_, uint256 id_, uint256 amount_, bytes memory data_) internal { require(to_.code.length == 0 ? to_ != address(0) : ERC1155TokenReceiver(to_).onERC1155Received( msg.sender, from_, id_, amount_, data_) == ERC1155TokenReceiver.onERC1155Received.selector, "_ERC1155Supported(): Unsupported Recipient!" ); } function _ERC1155BatchSupported(address from_, address to_, uint256[] memory ids_, uint256[] memory amounts_, bytes memory data_) internal { require(to_.code.length == 0 ? to_ != address(0) : ERC1155TokenReceiver(to_).onERC1155BatchReceived( msg.sender, from_, ids_, amounts_, data_) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "_ERC1155BatchSupported(): Unsupported Recipient!" ); } function setApprovalForAll(address operator_, bool approved_) public virtual { isApprovedForAll[msg.sender][operator_] = approved_; emit ApprovalForAll(msg.sender, operator_, approved_); } function _transfer(address from_, address to_, uint256 id_, uint256 amount_) internal { _addEnumerableData(to_, id_); balanceOf[to_][id_] += amount_; balanceOf[from_][id_] -= amount_; _removeEnumerableData(from_, id_); } function safeTransferFrom(address from_, address to_, uint256 id_, uint256 amount_, bytes memory data_) public virtual { require(_isApprovedOrOwner(from_)); _transfer(from_, to_, id_, amount_); emit TransferSingle(msg.sender, from_, to_, id_, amount_); _ERC1155Supported(from_, to_, id_, amount_, data_); } function safeBatchTransferFrom(address from_, address to_, uint256[] memory ids_, uint256[] memory amounts_, bytes memory data_) public virtual { require(_isSameLength(ids_.length, amounts_.length)); require(_isApprovedOrOwner(from_)); for (uint256 i = 0; i < ids_.length; i++) { _transfer(from_, to_, ids_[i], amounts_[i]); } emit TransferBatch(msg.sender, from_, to_, ids_, amounts_); _ERC1155BatchSupported(from_, to_, ids_, amounts_, data_); } function _mintInternal(address to_, uint256 id_, uint256 amount_) internal { _addEnumerableData(to_, id_); balanceOf[to_][id_] += amount_; } function _mint(address to_, uint256 id_, uint256 amount_, bytes memory data_) internal { _mintInternal(to_, id_, amount_); emit TransferSingle(msg.sender, address(0), to_, id_, amount_); _ERC1155Supported(address(0), to_, id_, amount_, data_); } function _batchMint(address to_, uint256[] memory ids_, uint256[] memory amounts_, bytes memory data_) internal { require(_isSameLength(ids_.length, amounts_.length)); for (uint256 i = 0; i < ids_.length; i++) { _mintInternal(to_, ids_[i], amounts_[i]); } emit TransferBatch(msg.sender, address(0), to_, ids_, amounts_); _ERC1155BatchSupported(address(0), to_, ids_, amounts_, data_); } function _burnInternal(address from_, uint256 id_, uint256 amount_) internal { balanceOf[from_][id_] -= amount_; _removeEnumerableData(from_, id_); } function _burn(address from_, uint256 id_, uint256 amount_) internal { _burnInternal(from_, id_, amount_); emit TransferSingle(msg.sender, from_, address(0), id_, amount_); } function _batchBurn(address from_, uint256[] memory ids_, uint256[] memory amounts_) internal { require(_isSameLength(ids_.length, amounts_.length)); for (uint256 i = 0; i < ids_.length; i++) { _burnInternal(from_, ids_[i], amounts_[i]); } emit TransferBatch(msg.sender, from_, address(0), ids_, amounts_); } function supportsInterface(bytes4 interfaceId_) public pure virtual returns (bool) { return interfaceId_ == 0x01ffc9a7 || interfaceId_ == 0xd9b67a26 || interfaceId_ == 0x0e89341c; } function balanceOfBatch(address[] memory owners_, uint256[] memory ids_) public view virtual returns (uint256[] memory) { require(_isSameLength(owners_.length, ids_.length)); uint256[] memory _balances = new uint256[](owners_.length); for (uint256 i = 0; i < owners_.length; i++) { _balances[i] = balanceOf[owners_[i]][ids_[i]]; } return _balances; } } abstract contract OwnControll { event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event AdminSet(bytes32 indexed controllerType, bytes32 indexed controllerSlot, address indexed controller, bool status); address public owner; mapping(bytes32 => mapping(address => bool)) internal admin; constructor() { owner = msg.sender; } modifier onlyOwner() { require(owner == msg.sender, "only owner");_; } modifier onlyAdmin(string memory type_) { require(isAdmin(type_, msg.sender), "only admin");_; } function transferOwnership(address newOwner) external onlyOwner { emit OwnershipTransferred(owner, newOwner); owner = newOwner; } function setAdmin(string calldata type_, address controller, bool status) external onlyOwner { bytes32 typeHash = keccak256(abi.encodePacked(type_)); admin[typeHash][controller] = status; emit AdminSet(typeHash, typeHash, controller, status); } function isAdmin(string memory type_, address controller) public view returns (bool) { bytes32 typeHash = keccak256(abi.encodePacked(type_)); return admin[typeHash][controller]; } } abstract contract ERC721URIPerToken { mapping(uint256 => string) public tokenToURI; function _setTokenToURI(uint256 tokenId_, string memory uri_) internal virtual { tokenToURI[tokenId_] = uri_; } } interface IOperatorFilterRegistry { function isOperatorAllowed(address registrant, address operator) external view returns (bool); function register(address registrant) external; function registerAndSubscribe(address registrant, address subscription) external; function registerAndCopyEntries(address registrant, address registrantToCopy) external; function unregister(address addr) external; function updateOperator(address registrant, address operator, bool filtered) external; function updateOperators(address registrant, address[] calldata operators, bool filtered) external; function updateCodeHash(address registrant, bytes32 codehash, bool filtered) external; function updateCodeHashes(address registrant, bytes32[] calldata codeHashes, bool filtered) external; function subscribe(address registrant, address registrantToSubscribe) external; function unsubscribe(address registrant, bool copyExistingEntries) external; function subscriptionOf(address addr) external returns (address registrant); function subscribers(address registrant) external returns (address[] memory); function subscriberAt(address registrant, uint256 index) external returns (address); function copyEntriesOf(address registrant, address registrantToCopy) external; function isOperatorFiltered(address registrant, address operator) external returns (bool); function isCodeHashOfFiltered(address registrant, address operatorWithCode) external returns (bool); function isCodeHashFiltered(address registrant, bytes32 codeHash) external returns (bool); function filteredOperators(address addr) external returns (address[] memory); function filteredCodeHashes(address addr) external returns (bytes32[] memory); function filteredOperatorAt(address registrant, uint256 index) external returns (address); function filteredCodeHashAt(address registrant, uint256 index) external returns (bytes32); function isRegistered(address addr) external returns (bool); function codeHashOf(address addr) external returns (bytes32); } abstract contract OperatorFilterer { error OperatorNotAllowed(address operator); IOperatorFilterRegistry constant operatorFilterRegistry = IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E); constructor(address subscriptionOrRegistrantToCopy, bool subscribe) { // If an inheriting token contract is deployed to a network without the registry deployed, the modifier // will not revert, but the contract will need to be registered with the registry once it is deployed in // order for the modifier to filter addresses. if (address(operatorFilterRegistry).code.length > 0) { if (subscribe) { operatorFilterRegistry.registerAndSubscribe(address(this), subscriptionOrRegistrantToCopy); } else { if (subscriptionOrRegistrantToCopy != address(0)) { operatorFilterRegistry.registerAndCopyEntries(address(this), subscriptionOrRegistrantToCopy); } else { operatorFilterRegistry.register(address(this)); } } } } modifier onlyAllowedOperator(address from) virtual { // Check registry code length to facilitate testing in environments without a deployed registry. if (address(operatorFilterRegistry).code.length > 0) { // Allow spending tokens from addresses with balance // Note that this still allows listings and marketplaces with escrow to transfer tokens if transferred // from an EOA. if (from == msg.sender) { _; return; } if ( !( operatorFilterRegistry.isOperatorAllowed(address(this), msg.sender) && operatorFilterRegistry.isOperatorAllowed(address(this), from) ) ) { revert OperatorNotAllowed(msg.sender); } } _; } } interface IMetadata { function tokenURI(uint256 tokenId_) external view returns (string memory); } contract DEF_DJ is ERC1155Enumerable, OwnControll, ERC721URIPerToken, OperatorFilterer { address public metadata; bool public useMetadata; constructor() ERC1155Enumerable("Def DJ", "DDJ") OperatorFilterer(address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6), true) {} function mint(address to_, uint256 id_, uint256 amount_, bytes memory data_) external onlyAdmin("MINTER") { _mint(to_, id_, amount_, data_); } function burn(address from_, uint256 id_, uint256 amount_) external onlyAdmin("BURNER") { _burn(from_, id_, amount_); } function setTokenToURI(uint256 tokenId_, string calldata uri_) external onlyAdmin("ADMIN") { _setTokenToURI(tokenId_, uri_); } function setMetadata(address address_) external onlyAdmin("ADMIN") { metadata = address_; } function setUseMetadata(bool bool_) external onlyAdmin("ADMIN") { useMetadata = bool_; } function uri(uint256 id_) public view override returns (string memory) { if (!useMetadata) { return tokenToURI[id_]; } else { return IMetadata(metadata).tokenURI(id_); } } function withdraw() public onlyOwner { uint256 balance = address(this).balance; payable(msg.sender).transfer(balance); } function safeTransferFrom(address from, address to, uint256 tokenId, uint256 amount, bytes memory data) public override onlyAllowedOperator(from) { super.safeTransferFrom(from, to, tokenId, amount, data); } function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) public virtual override onlyAllowedOperator(from) { super.safeBatchTransferFrom(from, to, ids, amounts, data); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"controllerType","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"controllerSlot","type":"bytes32"},{"indexed":true,"internalType":"address","name":"controller","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AdminSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner_","type":"address"},{"indexed":true,"internalType":"address","name":"operator_","type":"address"},{"indexed":false,"internalType":"bool","name":"approved_","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator_","type":"address"},{"indexed":true,"internalType":"address","name":"from_","type":"address"},{"indexed":true,"internalType":"address","name":"to_","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids_","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts_","type":"uint256[]"}],"name":"TransferBatch","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":"uint256","name":"id_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value_","type":"string"},{"indexed":true,"internalType":"uint256","name":"id_","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners_","type":"address[]"},{"internalType":"uint256[]","name":"ids_","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"getOwnersOfTokenId","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"getOwnersOfTokenIdAndBalance","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"internalType":"struct ERC1155Enumerable.TokenBalances[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids_","type":"uint256[]"}],"name":"getTotalSupplyOfIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"type_","type":"string"},{"internalType":"address","name":"controller","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metadata","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"type_","type":"string"},{"internalType":"address","name":"controller","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator_","type":"address"},{"internalType":"bool","name":"approved_","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"setMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"},{"internalType":"string","name":"uri_","type":"string"}],"name":"setTokenToURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"bool_","type":"bool"}],"name":"setUseMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId_","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenToOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"tokenToOwnersToIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenToURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"useMetadata","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801562000010575f80fd5b50733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280600681526020017f44656620444a00000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44444a0000000000000000000000000000000000000000000000000000000000815250815f9081620000a4919062000549565b508060019081620000b6919062000549565b5050503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002dd578015620001ae576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200017992919062000670565b5f604051808303815f87803b15801562000191575f80fd5b505af1158015620001a4573d5f803e3d5ffd5b50505050620002dc565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000262576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b81526004016200022d92919062000670565b5f604051808303815f87803b15801562000245575f80fd5b505af115801562000258573d5f803e3d5ffd5b50505050620002db565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b8152600401620002ab91906200069b565b5f604051808303815f87803b158015620002c3575f80fd5b505af1158015620002d6573d5f803e3d5ffd5b505050505b5b5b5050620006b6565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200036157607f821691505b6020821081036200037757620003766200031c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200039e565b620003e786836200039e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004316200042b6200042584620003ff565b62000408565b620003ff565b9050919050565b5f819050919050565b6200044c8362000411565b620004646200045b8262000438565b848454620003aa565b825550505050565b5f90565b6200047a6200046c565b6200048781848462000441565b505050565b5b81811015620004ae57620004a25f8262000470565b6001810190506200048d565b5050565b601f821115620004fd57620004c7816200037d565b620004d2846200038f565b81016020851015620004e2578190505b620004fa620004f1856200038f565b8301826200048c565b50505b505050565b5f82821c905092915050565b5f6200051f5f198460080262000502565b1980831691505092915050565b5f6200053983836200050e565b9150826002028217905092915050565b6200055482620002e5565b67ffffffffffffffff81111562000570576200056f620002ef565b5b6200057c825462000349565b62000589828285620004b2565b5f60209050601f831160018114620005bf575f8415620005aa578287015190505b620005b685826200052c565b86555062000625565b601f198416620005cf866200037d565b5f5b82811015620005f857848901518255600182019150602085019450602081019050620005d1565b8683101562000618578489015162000614601f8916826200050e565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000658826200062d565b9050919050565b6200066a816200064c565b82525050565b5f604082019050620006855f8301856200065f565b6200069460208301846200065f565b9392505050565b5f602082019050620006b05f8301846200065f565b92915050565b613ea780620006c45f395ff3fe608060405234801561000f575f80fd5b50600436106101c1575f3560e01c806374805127116100f7578063c1eac03d11610095578063f242432a1161006f578063f242432a1461054d578063f2fde38b14610569578063f3cb838514610585578063f5298aca146105a1576101c1565b8063c1eac03d146104d1578063dd184008146104ed578063e985e9c51461051d576101c1565b806395d89b41116100d157806395d89b411461044b5780639a5bb0ef146104695780639dd745af14610485578063a22cb465146104b5576101c1565b806374805127146103cd5780638cd16a76146103fd5780638da5cb5b1461042d576101c1565b8063392f37e9116101645780633eba595e1161013e5780633eba595e146103355780634e1273f4146103655780636daa1c7614610395578063731133e9146103b1576101c1565b8063392f37e9146102dd5780633b486095146102fb5780633ccfd60b1461032b576101c1565b80630bbcf0ec116101a05780630bbcf0ec146102435780630e89341c146102615780632eb2c2d6146102915780632f6b16d7146102ad576101c1565b8062fdd58e146101c557806301ffc9a7146101f557806306fdde0314610225575b5f80fd5b6101df60048036038101906101da91906126f2565b6105bd565b6040516101ec919061273f565b60405180910390f35b61020f600480360381019061020a91906127ad565b6105dd565b60405161021c91906127f2565b60405180910390f35b61022d61066e565b60405161023a9190612895565b60405180910390f35b61024b6106f9565b60405161025891906127f2565b60405180910390f35b61027b600480360381019061027691906128b5565b61070c565b6040516102889190612895565b60405180910390f35b6102ab60048036038101906102a69190612ad0565b610865565b005b6102c760048036038101906102c291906128b5565b610a48565b6040516102d49190612895565b60405180910390f35b6102e5610ae3565b6040516102f29190612baa565b60405180910390f35b61031560048036038101906103109190612c61565b610b08565b60405161032291906127f2565b60405180910390f35b610333610b95565b005b61034f600480360381019061034a9190612cbb565b610c6f565b60405161035c919061273f565b60405180910390f35b61037f600480360381019061037a9190612db9565b610c8f565b60405161038c9190612ee6565b60405180910390f35b6103af60048036038101906103aa9190612f89565b610dbb565b005b6103cb60048036038101906103c69190612ffa565b610f30565b005b6103e760048036038101906103e291906128b5565b610fc2565b6040516103f49190613131565b60405180910390f35b610417600480360381019061041291906128b5565b61105e565b6040516104249190613226565b60405180910390f35b6104356111a5565b6040516104429190612baa565b60405180910390f35b6104536111ca565b6040516104609190612895565b60405180910390f35b610483600480360381019061047e9190613246565b611256565b005b61049f600480360381019061049a9190613271565b6112f3565b6040516104ac9190612baa565b60405180910390f35b6104cf60048036038101906104ca91906132af565b61133b565b005b6104eb60048036038101906104e691906132ed565b611433565b005b6105076004803603810190610502919061339f565b611505565b604051610514919061273f565b60405180910390f35b610537600480360381019061053291906133ea565b611562565b60405161054491906127f2565b60405180910390f35b61056760048036038101906105629190613428565b61158c565b005b610583600480360381019061057e91906134bb565b61176f565b005b61059f600480360381019061059a91906134bb565b6118bc565b005b6105bb60048036038101906105b691906134e6565b61197f565b005b6002602052815f5260405f20602052805f5260405f205f91509150505481565b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610637575063d9b67a2660e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106675750630e89341c60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461067a90613563565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690613563565b80156106f15780601f106106c8576101008083540402835291602001916106f1565b820191905f5260205f20905b8154815290600101906020018083116106d457829003601f168201915b505050505081565b600960149054906101000a900460ff1681565b6060600960149054906101000a900460ff166107c15760085f8381526020019081526020015f20805461073e90613563565b80601f016020809104026020016040519081016040528092919081815260200182805461076a90613563565b80156107b55780601f1061078c576101008083540402835291602001916107b5565b820191905f5260205f20905b81548152906001019060200180831161079857829003601f168201915b50505050509050610860565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b815260040161081b919061273f565b5f60405180830381865afa158015610835573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061085d9190613601565b90505b919050565b845f6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610a32573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108d8576108d38686868686611a0f565b610a40565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401610921929190613648565b602060405180830381865afa15801561093c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109609190613683565b80156109f057506daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b81526004016109b0929190613648565b602060405180830381865afa1580156109cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ef9190613683565b5b610a3157336040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610a289190612baa565b60405180910390fd5b5b610a3f8686868686611a0f565b5b505050505050565b6008602052805f5260405f205f915090508054610a6490613563565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9090613563565b8015610adb5780601f10610ab257610100808354040283529160200191610adb565b820191905f5260205f20905b815481529060010190602001808311610abe57829003601f168201915b505050505081565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8083604051602001610b1b91906136e8565b60405160208183030381529060405280519060200120905060075f8281526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b90613748565b60405180910390fd5b5f4790503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610c6b573d5f803e3d5ffd5b5050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b6060610c9d83518351611b25565b610ca5575f80fd5b5f835167ffffffffffffffff811115610cc157610cc06128e4565b5b604051908082528060200260200182016040528015610cef5781602001602082028036833780820191505090505b5090505f5b8451811015610db05760025f868381518110610d1357610d12613766565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f858381518110610d6857610d67613766565b5b602002602001015181526020019081526020015f2054828281518110610d9157610d90613766565b5b6020026020010181815250508080610da8906137c0565b915050610cf4565b508091505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4190613748565b60405180910390fd5b5f8484604051602001610e5e92919061382b565b6040516020818303038152906040528051906020012090508160075f8381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff1681827fe291659343333aaee31a50d2695b1a6eb5ddbd261e6440e4c3b9516d6715563c85604051610f2191906127f2565b60405180910390a45050505050565b6040518060400160405280600681526020017f4d494e5445520000000000000000000000000000000000000000000000000000815250610f708133610b08565b610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69061388d565b60405180910390fd5b610fbb85858585611b31565b5050505050565b606060045f8381526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561105257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611009575b50505050509050919050565b60605f61106a83610fc2565b90505f815190505f8167ffffffffffffffff81111561108c5761108b6128e4565b5b6040519080825280602002602001820160405280156110c557816020015b6110b2612626565b8152602001906001900390816110aa5790505b5090505f5b82811015611199575f8482815181106110e6576110e5613766565b5b6020026020010151905060405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a81526020019081526020015f205481525083838151811061117a57611179613766565b5b6020026020010181905250508080611191906137c0565b9150506110ca565b50809350505050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600180546111d790613563565b80601f016020809104026020016040519081016040528092919081815260200182805461120390613563565b801561124e5780601f106112255761010080835404028352916020019161124e565b820191905f5260205f20905b81548152906001019060200180831161123157829003601f168201915b505050505081565b6040518060400160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506112968133610b08565b6112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc9061388d565b60405180910390fd5b81600960146101000a81548160ff0219169083151502179055505050565b6004602052815f5260405f20818154811061130c575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161142791906127f2565b60405180910390a35050565b6040518060400160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506114738133610b08565b6114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a99061388d565b60405180910390fd5b6114ff8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050611bcd565b50505050565b5f805f5b848490508110156115575761153685858381811061152a57611529613766565b5b90506020020135610fc2565b518261154291906138ab565b9150808061154f906137c0565b915050611509565b508091505092915050565b6003602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b845f6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611759573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ff576115fa8686868686611bf0565b611767565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401611648929190613648565b602060405180830381865afa158015611663573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116879190613683565b801561171757506daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b81526004016116d7929190613648565b602060405180830381865afa1580156116f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117169190613683565b5b61175857336040517fede71dcc00000000000000000000000000000000000000000000000000000000815260040161174f9190612baa565b60405180910390fd5b5b6117668686868686611bf0565b5b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f590613748565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040518060400160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506118fc8133610b08565b61193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061388d565b60405180910390fd5b8160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040518060400160405280600681526020017f4255524e455200000000000000000000000000000000000000000000000000008152506119bf8133610b08565b6119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f59061388d565b60405180910390fd5b611a09848484611c9f565b50505050565b611a1b83518351611b25565b611a23575f80fd5b611a2c85611d2d565b611a34575f80fd5b5f5b8351811015611a9257611a7f8686868481518110611a5757611a56613766565b5b6020026020010151868581518110611a7257611a71613766565b5b6020026020010151611df0565b8080611a8a906137c0565b915050611a36565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611b099291906138de565b60405180910390a4611b1e8585858585611ece565b5050505050565b5f818314905092915050565b611b3c848484612030565b8373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611bb2929190613913565b60405180910390a4611bc75f858585856120a1565b50505050565b8060085f8481526020019081526020015f209081611beb9190613ad7565b505050565b611bf985611d2d565b611c01575f80fd5b611c0d85858585611df0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611c83929190613913565b60405180910390a4611c9885858585856120a1565b5050505050565b611caa838383612203565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d20929190613913565b60405180910390a4505050565b5f8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611de9575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b9050919050565b611dfa8383612274565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f828254611e5591906138ab565b925050819055508060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f828254611eb79190613ba6565b92505081905550611ec884836123a5565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b14611fb95763bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663bc197c8133888787876040518663ffffffff1660e01b8152600401611f54959493929190613c2b565b6020604051808303815f875af1158015611f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f949190613ca5565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611fea565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b612029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202090613d40565b60405180910390fd5b5050505050565b61203a8383612274565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f82825461209591906138ab565b92505081905550505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1461218c5763f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6133888787876040518663ffffffff1660e01b8152600401612127959493929190613d5e565b6020604051808303815f875af1158015612143573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121679190613ca5565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146121bd565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b6121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613e26565b60405180910390fd5b5050505050565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f82825461225e9190613ba6565b9250508190555061226f83836123a5565b505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054036123a1575f60045f8381526020019081526020015f2080549050905060045f8381526020019081526020015f2083908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205403612622575f60055f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f600160045f8581526020019081526020015f208054905061246a9190613ba6565b905080821461257d575f60045f8581526020019081526020015f20828154811061249757612496613766565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508060045f8681526020019081526020015f2084815481106124e5576124e4613766565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260055f8681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b60045f8481526020019081526020015f2080548061259e5761259d613e44565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905560055f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f905550505b5050565b60405180604001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61268e82612665565b9050919050565b61269e81612684565b81146126a8575f80fd5b50565b5f813590506126b981612695565b92915050565b5f819050919050565b6126d1816126bf565b81146126db575f80fd5b50565b5f813590506126ec816126c8565b92915050565b5f80604083850312156127085761270761265d565b5b5f612715858286016126ab565b9250506020612726858286016126de565b9150509250929050565b612739816126bf565b82525050565b5f6020820190506127525f830184612730565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61278c81612758565b8114612796575f80fd5b50565b5f813590506127a781612783565b92915050565b5f602082840312156127c2576127c161265d565b5b5f6127cf84828501612799565b91505092915050565b5f8115159050919050565b6127ec816127d8565b82525050565b5f6020820190506128055f8301846127e3565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612842578082015181840152602081019050612827565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6128678261280b565b6128718185612815565b9350612881818560208601612825565b61288a8161284d565b840191505092915050565b5f6020820190508181035f8301526128ad818461285d565b905092915050565b5f602082840312156128ca576128c961265d565b5b5f6128d7848285016126de565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61291a8261284d565b810181811067ffffffffffffffff82111715612939576129386128e4565b5b80604052505050565b5f61294b612654565b90506129578282612911565b919050565b5f67ffffffffffffffff821115612976576129756128e4565b5b602082029050602081019050919050565b5f80fd5b5f61299d6129988461295c565b612942565b905080838252602082019050602084028301858111156129c0576129bf612987565b5b835b818110156129e957806129d588826126de565b8452602084019350506020810190506129c2565b5050509392505050565b5f82601f830112612a0757612a066128e0565b5b8135612a1784826020860161298b565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115612a3e57612a3d6128e4565b5b612a478261284d565b9050602081019050919050565b828183375f83830152505050565b5f612a74612a6f84612a24565b612942565b905082815260208101848484011115612a9057612a8f612a20565b5b612a9b848285612a54565b509392505050565b5f82601f830112612ab757612ab66128e0565b5b8135612ac7848260208601612a62565b91505092915050565b5f805f805f60a08688031215612ae957612ae861265d565b5b5f612af6888289016126ab565b9550506020612b07888289016126ab565b945050604086013567ffffffffffffffff811115612b2857612b27612661565b5b612b34888289016129f3565b935050606086013567ffffffffffffffff811115612b5557612b54612661565b5b612b61888289016129f3565b925050608086013567ffffffffffffffff811115612b8257612b81612661565b5b612b8e88828901612aa3565b9150509295509295909350565b612ba481612684565b82525050565b5f602082019050612bbd5f830184612b9b565b92915050565b5f67ffffffffffffffff821115612bdd57612bdc6128e4565b5b612be68261284d565b9050602081019050919050565b5f612c05612c0084612bc3565b612942565b905082815260208101848484011115612c2157612c20612a20565b5b612c2c848285612a54565b509392505050565b5f82601f830112612c4857612c476128e0565b5b8135612c58848260208601612bf3565b91505092915050565b5f8060408385031215612c7757612c7661265d565b5b5f83013567ffffffffffffffff811115612c9457612c93612661565b5b612ca085828601612c34565b9250506020612cb1858286016126ab565b9150509250929050565b5f8060408385031215612cd157612cd061265d565b5b5f612cde858286016126de565b9250506020612cef858286016126ab565b9150509250929050565b5f67ffffffffffffffff821115612d1357612d126128e4565b5b602082029050602081019050919050565b5f612d36612d3184612cf9565b612942565b90508083825260208201905060208402830185811115612d5957612d58612987565b5b835b81811015612d825780612d6e88826126ab565b845260208401935050602081019050612d5b565b5050509392505050565b5f82601f830112612da057612d9f6128e0565b5b8135612db0848260208601612d24565b91505092915050565b5f8060408385031215612dcf57612dce61265d565b5b5f83013567ffffffffffffffff811115612dec57612deb612661565b5b612df885828601612d8c565b925050602083013567ffffffffffffffff811115612e1957612e18612661565b5b612e25858286016129f3565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e61816126bf565b82525050565b5f612e728383612e58565b60208301905092915050565b5f602082019050919050565b5f612e9482612e2f565b612e9e8185612e39565b9350612ea983612e49565b805f5b83811015612ed9578151612ec08882612e67565b9750612ecb83612e7e565b925050600181019050612eac565b5085935050505092915050565b5f6020820190508181035f830152612efe8184612e8a565b905092915050565b5f80fd5b5f8083601f840112612f1f57612f1e6128e0565b5b8235905067ffffffffffffffff811115612f3c57612f3b612f06565b5b602083019150836001820283011115612f5857612f57612987565b5b9250929050565b612f68816127d8565b8114612f72575f80fd5b50565b5f81359050612f8381612f5f565b92915050565b5f805f8060608587031215612fa157612fa061265d565b5b5f85013567ffffffffffffffff811115612fbe57612fbd612661565b5b612fca87828801612f0a565b94509450506020612fdd878288016126ab565b9250506040612fee87828801612f75565b91505092959194509250565b5f805f80608085870312156130125761301161265d565b5b5f61301f878288016126ab565b9450506020613030878288016126de565b9350506040613041878288016126de565b925050606085013567ffffffffffffffff81111561306257613061612661565b5b61306e87828801612aa3565b91505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130ac81612684565b82525050565b5f6130bd83836130a3565b60208301905092915050565b5f602082019050919050565b5f6130df8261307a565b6130e98185613084565b93506130f483613094565b805f5b8381101561312457815161310b88826130b2565b9750613116836130c9565b9250506001810190506130f7565b5085935050505092915050565b5f6020820190508181035f83015261314981846130d5565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b604082015f82015161318e5f8501826130a3565b5060208201516131a16020850182612e58565b50505050565b5f6131b2838361317a565b60408301905092915050565b5f602082019050919050565b5f6131d482613151565b6131de818561315b565b93506131e98361316b565b805f5b8381101561321957815161320088826131a7565b975061320b836131be565b9250506001810190506131ec565b5085935050505092915050565b5f6020820190508181035f83015261323e81846131ca565b905092915050565b5f6020828403121561325b5761325a61265d565b5b5f61326884828501612f75565b91505092915050565b5f80604083850312156132875761328661265d565b5b5f613294858286016126de565b92505060206132a5858286016126de565b9150509250929050565b5f80604083850312156132c5576132c461265d565b5b5f6132d2858286016126ab565b92505060206132e385828601612f75565b9150509250929050565b5f805f604084860312156133045761330361265d565b5b5f613311868287016126de565b935050602084013567ffffffffffffffff81111561333257613331612661565b5b61333e86828701612f0a565b92509250509250925092565b5f8083601f84011261335f5761335e6128e0565b5b8235905067ffffffffffffffff81111561337c5761337b612f06565b5b60208301915083602082028301111561339857613397612987565b5b9250929050565b5f80602083850312156133b5576133b461265d565b5b5f83013567ffffffffffffffff8111156133d2576133d1612661565b5b6133de8582860161334a565b92509250509250929050565b5f8060408385031215613400576133ff61265d565b5b5f61340d858286016126ab565b925050602061341e858286016126ab565b9150509250929050565b5f805f805f60a086880312156134415761344061265d565b5b5f61344e888289016126ab565b955050602061345f888289016126ab565b9450506040613470888289016126de565b9350506060613481888289016126de565b925050608086013567ffffffffffffffff8111156134a2576134a1612661565b5b6134ae88828901612aa3565b9150509295509295909350565b5f602082840312156134d0576134cf61265d565b5b5f6134dd848285016126ab565b91505092915050565b5f805f606084860312156134fd576134fc61265d565b5b5f61350a868287016126ab565b935050602061351b868287016126de565b925050604061352c868287016126de565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061357a57607f821691505b60208210810361358d5761358c613536565b5b50919050565b5f6135a56135a084612bc3565b612942565b9050828152602081018484840111156135c1576135c0612a20565b5b6135cc848285612825565b509392505050565b5f82601f8301126135e8576135e76128e0565b5b81516135f8848260208601613593565b91505092915050565b5f602082840312156136165761361561265d565b5b5f82015167ffffffffffffffff81111561363357613632612661565b5b61363f848285016135d4565b91505092915050565b5f60408201905061365b5f830185612b9b565b6136686020830184612b9b565b9392505050565b5f8151905061367d81612f5f565b92915050565b5f602082840312156136985761369761265d565b5b5f6136a58482850161366f565b91505092915050565b5f81905092915050565b5f6136c28261280b565b6136cc81856136ae565b93506136dc818560208601612825565b80840191505092915050565b5f6136f382846136b8565b915081905092915050565b7f6f6e6c79206f776e6572000000000000000000000000000000000000000000005f82015250565b5f613732600a83612815565b915061373d826136fe565b602082019050919050565b5f6020820190508181035f83015261375f81613726565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137ca826126bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137fc576137fb613793565b5b600182019050919050565b5f61381283856136ae565b935061381f838584612a54565b82840190509392505050565b5f613837828486613807565b91508190509392505050565b7f6f6e6c792061646d696e000000000000000000000000000000000000000000005f82015250565b5f613877600a83612815565b915061388282613843565b602082019050919050565b5f6020820190508181035f8301526138a48161386b565b9050919050565b5f6138b5826126bf565b91506138c0836126bf565b92508282019050808211156138d8576138d7613793565b5b92915050565b5f6040820190508181035f8301526138f68185612e8a565b9050818103602083015261390a8184612e8a565b90509392505050565b5f6040820190506139265f830185612730565b6139336020830184612730565b9392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026139967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261395b565b6139a0868361395b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6139db6139d66139d1846126bf565b6139b8565b6126bf565b9050919050565b5f819050919050565b6139f4836139c1565b613a08613a00826139e2565b848454613967565b825550505050565b5f90565b613a1c613a10565b613a278184846139eb565b505050565b5b81811015613a4a57613a3f5f82613a14565b600181019050613a2d565b5050565b601f821115613a8f57613a608161393a565b613a698461394c565b81016020851015613a78578190505b613a8c613a848561394c565b830182613a2c565b50505b505050565b5f82821c905092915050565b5f613aaf5f1984600802613a94565b1980831691505092915050565b5f613ac78383613aa0565b9150826002028217905092915050565b613ae08261280b565b67ffffffffffffffff811115613af957613af86128e4565b5b613b038254613563565b613b0e828285613a4e565b5f60209050601f831160018114613b3f575f8415613b2d578287015190505b613b378582613abc565b865550613b9e565b601f198416613b4d8661393a565b5f5b82811015613b7457848901518255600182019150602085019450602081019050613b4f565b86831015613b915784890151613b8d601f891682613aa0565b8355505b6001600288020188555050505b505050505050565b5f613bb0826126bf565b9150613bbb836126bf565b9250828203905081811115613bd357613bd2613793565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f613bfd82613bd9565b613c078185613be3565b9350613c17818560208601612825565b613c208161284d565b840191505092915050565b5f60a082019050613c3e5f830188612b9b565b613c4b6020830187612b9b565b8181036040830152613c5d8186612e8a565b90508181036060830152613c718185612e8a565b90508181036080830152613c858184613bf3565b90509695505050505050565b5f81519050613c9f81612783565b92915050565b5f60208284031215613cba57613cb961265d565b5b5f613cc784828501613c91565b91505092915050565b7f5f455243313135354261746368537570706f7274656428293a20556e737570705f8201527f6f7274656420526563697069656e742100000000000000000000000000000000602082015250565b5f613d2a603083612815565b9150613d3582613cd0565b604082019050919050565b5f6020820190508181035f830152613d5781613d1e565b9050919050565b5f60a082019050613d715f830188612b9b565b613d7e6020830187612b9b565b613d8b6040830186612730565b613d986060830185612730565b8181036080830152613daa8184613bf3565b90509695505050505050565b7f5f45524331313535537570706f7274656428293a20556e737570706f727465645f8201527f20526563697069656e7421000000000000000000000000000000000000000000602082015250565b5f613e10602b83612815565b9150613e1b82613db6565b604082019050919050565b5f6020820190508181035f830152613e3d81613e04565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea26469706673582212204c3b4e3b8c26305a311e5e2bf0a545e9d669c2b7535be7c0b32383dabea27f9264736f6c63430008140033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101c1575f3560e01c806374805127116100f7578063c1eac03d11610095578063f242432a1161006f578063f242432a1461054d578063f2fde38b14610569578063f3cb838514610585578063f5298aca146105a1576101c1565b8063c1eac03d146104d1578063dd184008146104ed578063e985e9c51461051d576101c1565b806395d89b41116100d157806395d89b411461044b5780639a5bb0ef146104695780639dd745af14610485578063a22cb465146104b5576101c1565b806374805127146103cd5780638cd16a76146103fd5780638da5cb5b1461042d576101c1565b8063392f37e9116101645780633eba595e1161013e5780633eba595e146103355780634e1273f4146103655780636daa1c7614610395578063731133e9146103b1576101c1565b8063392f37e9146102dd5780633b486095146102fb5780633ccfd60b1461032b576101c1565b80630bbcf0ec116101a05780630bbcf0ec146102435780630e89341c146102615780632eb2c2d6146102915780632f6b16d7146102ad576101c1565b8062fdd58e146101c557806301ffc9a7146101f557806306fdde0314610225575b5f80fd5b6101df60048036038101906101da91906126f2565b6105bd565b6040516101ec919061273f565b60405180910390f35b61020f600480360381019061020a91906127ad565b6105dd565b60405161021c91906127f2565b60405180910390f35b61022d61066e565b60405161023a9190612895565b60405180910390f35b61024b6106f9565b60405161025891906127f2565b60405180910390f35b61027b600480360381019061027691906128b5565b61070c565b6040516102889190612895565b60405180910390f35b6102ab60048036038101906102a69190612ad0565b610865565b005b6102c760048036038101906102c291906128b5565b610a48565b6040516102d49190612895565b60405180910390f35b6102e5610ae3565b6040516102f29190612baa565b60405180910390f35b61031560048036038101906103109190612c61565b610b08565b60405161032291906127f2565b60405180910390f35b610333610b95565b005b61034f600480360381019061034a9190612cbb565b610c6f565b60405161035c919061273f565b60405180910390f35b61037f600480360381019061037a9190612db9565b610c8f565b60405161038c9190612ee6565b60405180910390f35b6103af60048036038101906103aa9190612f89565b610dbb565b005b6103cb60048036038101906103c69190612ffa565b610f30565b005b6103e760048036038101906103e291906128b5565b610fc2565b6040516103f49190613131565b60405180910390f35b610417600480360381019061041291906128b5565b61105e565b6040516104249190613226565b60405180910390f35b6104356111a5565b6040516104429190612baa565b60405180910390f35b6104536111ca565b6040516104609190612895565b60405180910390f35b610483600480360381019061047e9190613246565b611256565b005b61049f600480360381019061049a9190613271565b6112f3565b6040516104ac9190612baa565b60405180910390f35b6104cf60048036038101906104ca91906132af565b61133b565b005b6104eb60048036038101906104e691906132ed565b611433565b005b6105076004803603810190610502919061339f565b611505565b604051610514919061273f565b60405180910390f35b610537600480360381019061053291906133ea565b611562565b60405161054491906127f2565b60405180910390f35b61056760048036038101906105629190613428565b61158c565b005b610583600480360381019061057e91906134bb565b61176f565b005b61059f600480360381019061059a91906134bb565b6118bc565b005b6105bb60048036038101906105b691906134e6565b61197f565b005b6002602052815f5260405f20602052805f5260405f205f91509150505481565b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610637575063d9b67a2660e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106675750630e89341c60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461067a90613563565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690613563565b80156106f15780601f106106c8576101008083540402835291602001916106f1565b820191905f5260205f20905b8154815290600101906020018083116106d457829003601f168201915b505050505081565b600960149054906101000a900460ff1681565b6060600960149054906101000a900460ff166107c15760085f8381526020019081526020015f20805461073e90613563565b80601f016020809104026020016040519081016040528092919081815260200182805461076a90613563565b80156107b55780601f1061078c576101008083540402835291602001916107b5565b820191905f5260205f20905b81548152906001019060200180831161079857829003601f168201915b50505050509050610860565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b815260040161081b919061273f565b5f60405180830381865afa158015610835573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061085d9190613601565b90505b919050565b845f6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610a32573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108d8576108d38686868686611a0f565b610a40565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401610921929190613648565b602060405180830381865afa15801561093c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109609190613683565b80156109f057506daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b81526004016109b0929190613648565b602060405180830381865afa1580156109cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ef9190613683565b5b610a3157336040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610a289190612baa565b60405180910390fd5b5b610a3f8686868686611a0f565b5b505050505050565b6008602052805f5260405f205f915090508054610a6490613563565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9090613563565b8015610adb5780601f10610ab257610100808354040283529160200191610adb565b820191905f5260205f20905b815481529060010190602001808311610abe57829003601f168201915b505050505081565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8083604051602001610b1b91906136e8565b60405160208183030381529060405280519060200120905060075f8281526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b90613748565b60405180910390fd5b5f4790503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610c6b573d5f803e3d5ffd5b5050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b6060610c9d83518351611b25565b610ca5575f80fd5b5f835167ffffffffffffffff811115610cc157610cc06128e4565b5b604051908082528060200260200182016040528015610cef5781602001602082028036833780820191505090505b5090505f5b8451811015610db05760025f868381518110610d1357610d12613766565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f858381518110610d6857610d67613766565b5b602002602001015181526020019081526020015f2054828281518110610d9157610d90613766565b5b6020026020010181815250508080610da8906137c0565b915050610cf4565b508091505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4190613748565b60405180910390fd5b5f8484604051602001610e5e92919061382b565b6040516020818303038152906040528051906020012090508160075f8381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff1681827fe291659343333aaee31a50d2695b1a6eb5ddbd261e6440e4c3b9516d6715563c85604051610f2191906127f2565b60405180910390a45050505050565b6040518060400160405280600681526020017f4d494e5445520000000000000000000000000000000000000000000000000000815250610f708133610b08565b610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69061388d565b60405180910390fd5b610fbb85858585611b31565b5050505050565b606060045f8381526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561105257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611009575b50505050509050919050565b60605f61106a83610fc2565b90505f815190505f8167ffffffffffffffff81111561108c5761108b6128e4565b5b6040519080825280602002602001820160405280156110c557816020015b6110b2612626565b8152602001906001900390816110aa5790505b5090505f5b82811015611199575f8482815181106110e6576110e5613766565b5b6020026020010151905060405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a81526020019081526020015f205481525083838151811061117a57611179613766565b5b6020026020010181905250508080611191906137c0565b9150506110ca565b50809350505050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600180546111d790613563565b80601f016020809104026020016040519081016040528092919081815260200182805461120390613563565b801561124e5780601f106112255761010080835404028352916020019161124e565b820191905f5260205f20905b81548152906001019060200180831161123157829003601f168201915b505050505081565b6040518060400160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506112968133610b08565b6112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc9061388d565b60405180910390fd5b81600960146101000a81548160ff0219169083151502179055505050565b6004602052815f5260405f20818154811061130c575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161142791906127f2565b60405180910390a35050565b6040518060400160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506114738133610b08565b6114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a99061388d565b60405180910390fd5b6114ff8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050611bcd565b50505050565b5f805f5b848490508110156115575761153685858381811061152a57611529613766565b5b90506020020135610fc2565b518261154291906138ab565b9150808061154f906137c0565b915050611509565b508091505092915050565b6003602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b845f6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611759573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ff576115fa8686868686611bf0565b611767565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401611648929190613648565b602060405180830381865afa158015611663573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116879190613683565b801561171757506daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b81526004016116d7929190613648565b602060405180830381865afa1580156116f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117169190613683565b5b61175857336040517fede71dcc00000000000000000000000000000000000000000000000000000000815260040161174f9190612baa565b60405180910390fd5b5b6117668686868686611bf0565b5b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f590613748565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040518060400160405280600581526020017f41444d494e0000000000000000000000000000000000000000000000000000008152506118fc8133610b08565b61193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061388d565b60405180910390fd5b8160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040518060400160405280600681526020017f4255524e455200000000000000000000000000000000000000000000000000008152506119bf8133610b08565b6119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f59061388d565b60405180910390fd5b611a09848484611c9f565b50505050565b611a1b83518351611b25565b611a23575f80fd5b611a2c85611d2d565b611a34575f80fd5b5f5b8351811015611a9257611a7f8686868481518110611a5757611a56613766565b5b6020026020010151868581518110611a7257611a71613766565b5b6020026020010151611df0565b8080611a8a906137c0565b915050611a36565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611b099291906138de565b60405180910390a4611b1e8585858585611ece565b5050505050565b5f818314905092915050565b611b3c848484612030565b8373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611bb2929190613913565b60405180910390a4611bc75f858585856120a1565b50505050565b8060085f8481526020019081526020015f209081611beb9190613ad7565b505050565b611bf985611d2d565b611c01575f80fd5b611c0d85858585611df0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611c83929190613913565b60405180910390a4611c9885858585856120a1565b5050505050565b611caa838383612203565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d20929190613913565b60405180910390a4505050565b5f8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611de9575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b9050919050565b611dfa8383612274565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f828254611e5591906138ab565b925050819055508060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f828254611eb79190613ba6565b92505081905550611ec884836123a5565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b14611fb95763bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663bc197c8133888787876040518663ffffffff1660e01b8152600401611f54959493929190613c2b565b6020604051808303815f875af1158015611f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f949190613ca5565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611fea565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b612029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202090613d40565b60405180910390fd5b5050505050565b61203a8383612274565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f82825461209591906138ab565b92505081905550505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1461218c5763f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6133888787876040518663ffffffff1660e01b8152600401612127959493929190613d5e565b6020604051808303815f875af1158015612143573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121679190613ca5565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146121bd565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b6121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613e26565b60405180910390fd5b5050505050565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f82825461225e9190613ba6565b9250508190555061226f83836123a5565b505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054036123a1575f60045f8381526020019081526020015f2080549050905060045f8381526020019081526020015f2083908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205403612622575f60055f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f600160045f8581526020019081526020015f208054905061246a9190613ba6565b905080821461257d575f60045f8581526020019081526020015f20828154811061249757612496613766565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508060045f8681526020019081526020015f2084815481106124e5576124e4613766565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260055f8681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b60045f8481526020019081526020015f2080548061259e5761259d613e44565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905560055f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f905550505b5050565b60405180604001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61268e82612665565b9050919050565b61269e81612684565b81146126a8575f80fd5b50565b5f813590506126b981612695565b92915050565b5f819050919050565b6126d1816126bf565b81146126db575f80fd5b50565b5f813590506126ec816126c8565b92915050565b5f80604083850312156127085761270761265d565b5b5f612715858286016126ab565b9250506020612726858286016126de565b9150509250929050565b612739816126bf565b82525050565b5f6020820190506127525f830184612730565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61278c81612758565b8114612796575f80fd5b50565b5f813590506127a781612783565b92915050565b5f602082840312156127c2576127c161265d565b5b5f6127cf84828501612799565b91505092915050565b5f8115159050919050565b6127ec816127d8565b82525050565b5f6020820190506128055f8301846127e3565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612842578082015181840152602081019050612827565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6128678261280b565b6128718185612815565b9350612881818560208601612825565b61288a8161284d565b840191505092915050565b5f6020820190508181035f8301526128ad818461285d565b905092915050565b5f602082840312156128ca576128c961265d565b5b5f6128d7848285016126de565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61291a8261284d565b810181811067ffffffffffffffff82111715612939576129386128e4565b5b80604052505050565b5f61294b612654565b90506129578282612911565b919050565b5f67ffffffffffffffff821115612976576129756128e4565b5b602082029050602081019050919050565b5f80fd5b5f61299d6129988461295c565b612942565b905080838252602082019050602084028301858111156129c0576129bf612987565b5b835b818110156129e957806129d588826126de565b8452602084019350506020810190506129c2565b5050509392505050565b5f82601f830112612a0757612a066128e0565b5b8135612a1784826020860161298b565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115612a3e57612a3d6128e4565b5b612a478261284d565b9050602081019050919050565b828183375f83830152505050565b5f612a74612a6f84612a24565b612942565b905082815260208101848484011115612a9057612a8f612a20565b5b612a9b848285612a54565b509392505050565b5f82601f830112612ab757612ab66128e0565b5b8135612ac7848260208601612a62565b91505092915050565b5f805f805f60a08688031215612ae957612ae861265d565b5b5f612af6888289016126ab565b9550506020612b07888289016126ab565b945050604086013567ffffffffffffffff811115612b2857612b27612661565b5b612b34888289016129f3565b935050606086013567ffffffffffffffff811115612b5557612b54612661565b5b612b61888289016129f3565b925050608086013567ffffffffffffffff811115612b8257612b81612661565b5b612b8e88828901612aa3565b9150509295509295909350565b612ba481612684565b82525050565b5f602082019050612bbd5f830184612b9b565b92915050565b5f67ffffffffffffffff821115612bdd57612bdc6128e4565b5b612be68261284d565b9050602081019050919050565b5f612c05612c0084612bc3565b612942565b905082815260208101848484011115612c2157612c20612a20565b5b612c2c848285612a54565b509392505050565b5f82601f830112612c4857612c476128e0565b5b8135612c58848260208601612bf3565b91505092915050565b5f8060408385031215612c7757612c7661265d565b5b5f83013567ffffffffffffffff811115612c9457612c93612661565b5b612ca085828601612c34565b9250506020612cb1858286016126ab565b9150509250929050565b5f8060408385031215612cd157612cd061265d565b5b5f612cde858286016126de565b9250506020612cef858286016126ab565b9150509250929050565b5f67ffffffffffffffff821115612d1357612d126128e4565b5b602082029050602081019050919050565b5f612d36612d3184612cf9565b612942565b90508083825260208201905060208402830185811115612d5957612d58612987565b5b835b81811015612d825780612d6e88826126ab565b845260208401935050602081019050612d5b565b5050509392505050565b5f82601f830112612da057612d9f6128e0565b5b8135612db0848260208601612d24565b91505092915050565b5f8060408385031215612dcf57612dce61265d565b5b5f83013567ffffffffffffffff811115612dec57612deb612661565b5b612df885828601612d8c565b925050602083013567ffffffffffffffff811115612e1957612e18612661565b5b612e25858286016129f3565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e61816126bf565b82525050565b5f612e728383612e58565b60208301905092915050565b5f602082019050919050565b5f612e9482612e2f565b612e9e8185612e39565b9350612ea983612e49565b805f5b83811015612ed9578151612ec08882612e67565b9750612ecb83612e7e565b925050600181019050612eac565b5085935050505092915050565b5f6020820190508181035f830152612efe8184612e8a565b905092915050565b5f80fd5b5f8083601f840112612f1f57612f1e6128e0565b5b8235905067ffffffffffffffff811115612f3c57612f3b612f06565b5b602083019150836001820283011115612f5857612f57612987565b5b9250929050565b612f68816127d8565b8114612f72575f80fd5b50565b5f81359050612f8381612f5f565b92915050565b5f805f8060608587031215612fa157612fa061265d565b5b5f85013567ffffffffffffffff811115612fbe57612fbd612661565b5b612fca87828801612f0a565b94509450506020612fdd878288016126ab565b9250506040612fee87828801612f75565b91505092959194509250565b5f805f80608085870312156130125761301161265d565b5b5f61301f878288016126ab565b9450506020613030878288016126de565b9350506040613041878288016126de565b925050606085013567ffffffffffffffff81111561306257613061612661565b5b61306e87828801612aa3565b91505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130ac81612684565b82525050565b5f6130bd83836130a3565b60208301905092915050565b5f602082019050919050565b5f6130df8261307a565b6130e98185613084565b93506130f483613094565b805f5b8381101561312457815161310b88826130b2565b9750613116836130c9565b9250506001810190506130f7565b5085935050505092915050565b5f6020820190508181035f83015261314981846130d5565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b604082015f82015161318e5f8501826130a3565b5060208201516131a16020850182612e58565b50505050565b5f6131b2838361317a565b60408301905092915050565b5f602082019050919050565b5f6131d482613151565b6131de818561315b565b93506131e98361316b565b805f5b8381101561321957815161320088826131a7565b975061320b836131be565b9250506001810190506131ec565b5085935050505092915050565b5f6020820190508181035f83015261323e81846131ca565b905092915050565b5f6020828403121561325b5761325a61265d565b5b5f61326884828501612f75565b91505092915050565b5f80604083850312156132875761328661265d565b5b5f613294858286016126de565b92505060206132a5858286016126de565b9150509250929050565b5f80604083850312156132c5576132c461265d565b5b5f6132d2858286016126ab565b92505060206132e385828601612f75565b9150509250929050565b5f805f604084860312156133045761330361265d565b5b5f613311868287016126de565b935050602084013567ffffffffffffffff81111561333257613331612661565b5b61333e86828701612f0a565b92509250509250925092565b5f8083601f84011261335f5761335e6128e0565b5b8235905067ffffffffffffffff81111561337c5761337b612f06565b5b60208301915083602082028301111561339857613397612987565b5b9250929050565b5f80602083850312156133b5576133b461265d565b5b5f83013567ffffffffffffffff8111156133d2576133d1612661565b5b6133de8582860161334a565b92509250509250929050565b5f8060408385031215613400576133ff61265d565b5b5f61340d858286016126ab565b925050602061341e858286016126ab565b9150509250929050565b5f805f805f60a086880312156134415761344061265d565b5b5f61344e888289016126ab565b955050602061345f888289016126ab565b9450506040613470888289016126de565b9350506060613481888289016126de565b925050608086013567ffffffffffffffff8111156134a2576134a1612661565b5b6134ae88828901612aa3565b9150509295509295909350565b5f602082840312156134d0576134cf61265d565b5b5f6134dd848285016126ab565b91505092915050565b5f805f606084860312156134fd576134fc61265d565b5b5f61350a868287016126ab565b935050602061351b868287016126de565b925050604061352c868287016126de565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061357a57607f821691505b60208210810361358d5761358c613536565b5b50919050565b5f6135a56135a084612bc3565b612942565b9050828152602081018484840111156135c1576135c0612a20565b5b6135cc848285612825565b509392505050565b5f82601f8301126135e8576135e76128e0565b5b81516135f8848260208601613593565b91505092915050565b5f602082840312156136165761361561265d565b5b5f82015167ffffffffffffffff81111561363357613632612661565b5b61363f848285016135d4565b91505092915050565b5f60408201905061365b5f830185612b9b565b6136686020830184612b9b565b9392505050565b5f8151905061367d81612f5f565b92915050565b5f602082840312156136985761369761265d565b5b5f6136a58482850161366f565b91505092915050565b5f81905092915050565b5f6136c28261280b565b6136cc81856136ae565b93506136dc818560208601612825565b80840191505092915050565b5f6136f382846136b8565b915081905092915050565b7f6f6e6c79206f776e6572000000000000000000000000000000000000000000005f82015250565b5f613732600a83612815565b915061373d826136fe565b602082019050919050565b5f6020820190508181035f83015261375f81613726565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137ca826126bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137fc576137fb613793565b5b600182019050919050565b5f61381283856136ae565b935061381f838584612a54565b82840190509392505050565b5f613837828486613807565b91508190509392505050565b7f6f6e6c792061646d696e000000000000000000000000000000000000000000005f82015250565b5f613877600a83612815565b915061388282613843565b602082019050919050565b5f6020820190508181035f8301526138a48161386b565b9050919050565b5f6138b5826126bf565b91506138c0836126bf565b92508282019050808211156138d8576138d7613793565b5b92915050565b5f6040820190508181035f8301526138f68185612e8a565b9050818103602083015261390a8184612e8a565b90509392505050565b5f6040820190506139265f830185612730565b6139336020830184612730565b9392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026139967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261395b565b6139a0868361395b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6139db6139d66139d1846126bf565b6139b8565b6126bf565b9050919050565b5f819050919050565b6139f4836139c1565b613a08613a00826139e2565b848454613967565b825550505050565b5f90565b613a1c613a10565b613a278184846139eb565b505050565b5b81811015613a4a57613a3f5f82613a14565b600181019050613a2d565b5050565b601f821115613a8f57613a608161393a565b613a698461394c565b81016020851015613a78578190505b613a8c613a848561394c565b830182613a2c565b50505b505050565b5f82821c905092915050565b5f613aaf5f1984600802613a94565b1980831691505092915050565b5f613ac78383613aa0565b9150826002028217905092915050565b613ae08261280b565b67ffffffffffffffff811115613af957613af86128e4565b5b613b038254613563565b613b0e828285613a4e565b5f60209050601f831160018114613b3f575f8415613b2d578287015190505b613b378582613abc565b865550613b9e565b601f198416613b4d8661393a565b5f5b82811015613b7457848901518255600182019150602085019450602081019050613b4f565b86831015613b915784890151613b8d601f891682613aa0565b8355505b6001600288020188555050505b505050505050565b5f613bb0826126bf565b9150613bbb836126bf565b9250828203905081811115613bd357613bd2613793565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f613bfd82613bd9565b613c078185613be3565b9350613c17818560208601612825565b613c208161284d565b840191505092915050565b5f60a082019050613c3e5f830188612b9b565b613c4b6020830187612b9b565b8181036040830152613c5d8186612e8a565b90508181036060830152613c718185612e8a565b90508181036080830152613c858184613bf3565b90509695505050505050565b5f81519050613c9f81612783565b92915050565b5f60208284031215613cba57613cb961265d565b5b5f613cc784828501613c91565b91505092915050565b7f5f455243313135354261746368537570706f7274656428293a20556e737570705f8201527f6f7274656420526563697069656e742100000000000000000000000000000000602082015250565b5f613d2a603083612815565b9150613d3582613cd0565b604082019050919050565b5f6020820190508181035f830152613d5781613d1e565b9050919050565b5f60a082019050613d715f830188612b9b565b613d7e6020830187612b9b565b613d8b6040830186612730565b613d986060830185612730565b8181036080830152613daa8184613bf3565b90509695505050505050565b7f5f45524331313535537570706f7274656428293a20556e737570706f727465645f8201527f20526563697069656e7421000000000000000000000000000000000000000000602082015250565b5f613e10602b83612815565b9150613e1b82613db6565b604082019050919050565b5f6020820190508181035f830152613e3d81613e04565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea26469706673582212204c3b4e3b8c26305a311e5e2bf0a545e9d669c2b7535be7c0b32383dabea27f9264736f6c63430008140033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.