Overview
Max Total Supply
11,437,416.775945SHARD (CSupply: 11,437,416.755945)
Holders
58,567 (0.00%)
Market
Price
$0.0078 @ 0.000011 BNB
Onchain Market Cap
$89,202.82
Circulating Supply Market Cap
$239,830.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.01 SHARDValue
$0.00 ( ~0 BNB) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
ShardSwapAsset
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at BscScan.com on 2021-04-21 */ pragma solidity ^0.6.7; library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { require((c = a + b) >= a, 'Shard::add: addition overflow'); } function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint c) { require((c = a - b) <= a, errorMessage); } } contract ShardERC20 { using SafeMath for uint; string public constant name = "Shard"; string public constant symbol = "SHARD"; uint8 public constant decimals = 18; uint public constant maxSupply = 210_000_000e18; // 210 million Shard uint public totalSupply; mapping(address => uint) public balanceOf; mapping(address => mapping(address => uint)) public allowance; bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant TRANSFER_TYPEHASH = keccak256("Transfer(address to,uint256 value,uint256 nonce,uint256 expiry)"); bytes32 public constant TRANSFER_WITH_FEE_TYPEHASH = keccak256("TransferWithFee(address to,uint256 value,uint256 fee,uint256 nonce,uint256 expiry)"); mapping(address => uint) public nonces; event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function _mint(address to, uint value) internal { require(to != address(0), "Shard::_mint: mint to the zero address"); uint newSupply = totalSupply.add(value); require(newSupply <= maxSupply, "Shard::_mint: totalSupply exceeds maxSupply"); totalSupply = newSupply; balanceOf[to] = balanceOf[to].add(value); emit Transfer(address(0), to, value); } function _burn(address from, uint value) internal { require(from != address(0), "Shard::_burn: burn from the zero address"); balanceOf[from] = balanceOf[from].sub(value, "Shard::_burn: burn amount exceeds balance"); totalSupply = totalSupply.sub(value, "Shard::_burn: burn amount exceeds totalSupply"); emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint value) private { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint value) private { require(from != address(0), "Shard::_transfer: transfer from the zero address"); require(to != address(0), "Shard::_transfer: transfer to the zero address"); balanceOf[from] = balanceOf[from].sub(value, "Shard::_transfer: transfer amount exceeds balance"); balanceOf[to] = balanceOf[to].add(value); emit Transfer(from, to, value); } function approve(address spender, uint value) external returns (bool) { _approve(msg.sender, spender, value); return true; } function increaseAllowance(address spender, uint addedValue) external returns (bool) { _approve(msg.sender, spender, allowance[msg.sender][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) { _approve(msg.sender, spender, allowance[msg.sender][spender].sub(subtractedValue, "Shard::decreaseAllowance: decreased allowance below zero")); return true; } function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external { require(block.timestamp <= deadline, "Shard::permit: signature expired"); bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)); address signatory = ecrecover(getDigest(structHash), v, r, s); require(signatory != address(0), "Shard::permit: invalid signature"); require(signatory == owner, "Shard::permit: unauthorized"); _approve(owner, spender, value); } function transfer(address to, uint value) external returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint value) external returns (bool) { address spender = msg.sender; uint spenderAllowance = allowance[from][spender]; if (spender != from && spenderAllowance != uint(-1)) { _approve(from, spender, spenderAllowance.sub(value, "Shard::transferFrom: transfer amount exceeds allowance")); } _transfer(from, to, value); return true; } function transferBatch(address[] calldata to, uint[] calldata value) external returns (bool) { uint length = to.length; require(length == value.length, "Shard::transferBatch: calldata arrays must have the same length"); for (uint i = 0; i < length; i++) { _transfer(msg.sender, to[i], value[i]); } return true; } function transferBySig(address to, uint value, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) external { require(block.timestamp <= expiry, "Shard::transferBySig: signature expired"); bytes32 structHash = keccak256(abi.encode(TRANSFER_TYPEHASH, to, value, nonce, expiry)); address signatory = ecrecover(getDigest(structHash), v, r, s); require(signatory != address(0), "Shard::transferBySig: invalid signature"); require(nonce == nonces[signatory]++, "Shard::transferBySig: invalid nonce"); _transfer(signatory, to, value); } function transferWithFeeBySig(address to, uint value, uint fee, uint nonce, uint expiry, address feeTo, uint8 v, bytes32 r, bytes32 s) external { require(block.timestamp <= expiry, "Shard::transferWithFeeBySig: signature expired"); bytes32 structHash = keccak256(abi.encode(TRANSFER_WITH_FEE_TYPEHASH, to, value, fee, nonce, expiry)); address signatory = ecrecover(getDigest(structHash), v, r, s); require(signatory != address(0), "Shard::transferWithFeeBySig: invalid signature"); require(nonce == nonces[signatory]++, "Shard::transferWithFeeBySig: invalid nonce"); _transfer(signatory, feeTo, fee); _transfer(signatory, to, value); } function getDigest(bytes32 structHash) internal view returns (bytes32) { uint256 chainId; assembly { chainId := chainid() } bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), chainId, address(this))); return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); } } contract ShardSwapAsset is ShardERC20 { address private _oldOwner; address private _newOwner; uint256 private _newOwnerEffectiveHeight; event LogChangeDCRMOwner(address indexed oldOwner, address indexed newOwner, uint indexed effectiveHeight); event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount); event LogSwapout(address indexed account, address indexed bindaddr, uint amount); modifier onlyOwner() { require(msg.sender == owner(), "only owner"); _; } constructor() public { _newOwner = msg.sender; _newOwnerEffectiveHeight = block.number; } function owner() public view returns (address) { if (block.number >= _newOwnerEffectiveHeight) { return _newOwner; } return _oldOwner; } function changeDCRMOwner(address newOwner) external onlyOwner returns (bool) { require(newOwner != address(0), "new owner is the zero address"); _oldOwner = owner(); _newOwner = newOwner; _newOwnerEffectiveHeight = block.number + 13300; emit LogChangeDCRMOwner(_oldOwner, _newOwner, _newOwnerEffectiveHeight); return true; } function Swapin(bytes32 txhash, address account, uint256 amount) external onlyOwner returns (bool) { _mint(account, amount); emit LogSwapin(txhash, account, amount); return true; } function Swapout(uint256 amount, address bindaddr) external returns (bool) { require(bindaddr != address(0), "bind address is the zero address"); _burn(msg.sender, amount); emit LogSwapout(msg.sender, bindaddr, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveHeight","type":"uint256"}],"name":"LogChangeDCRMOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TRANSFER_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRANSFER_WITH_FEE_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeDCRMOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"value","type":"uint256[]"}],"name":"transferBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"address","name":"feeTo","type":"address"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithFeeBySig","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600580546001600160a01b03191633179055436006556120bd806100366000396000f3fe608060405234801561001057600080fd5b50600436106101a25760003560e01c80637ecebe00116100ee578063d505accf11610097578063dd558dd111610071578063dd558dd114610650578063dd62ed3e146106aa578063ec126c77146106e5578063f568beff14610724576101a2565b8063d505accf1461057c578063d5abeb01146105dc578063d7f6e62b146105e4576101a2565b8063a457c2d7116100c8578063a457c2d7146104d7578063a9059cbb14610510578063b524f3a514610549576101a2565b80637ecebe001461046b5780638da5cb5b1461049e57806395d89b41146104cf576101a2565b806330adf81f116101505780633b3e672f1161012a5780633b3e672f1461033d578063628d6cba146103ff57806370a0823114610438576101a2565b806330adf81f146102de578063313ce567146102e65780633950935114610304576101a2565b806318160ddd1161018157806318160ddd1461028b57806320606b701461029357806323b872dd1461029b576101a2565b8062bf26f4146101a757806306fdde03146101c1578063095ea7b31461023e575b600080fd5b6101af61072c565b60408051918252519081900360200190f35b6101c9610750565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102035781810151838201526020016101eb565b50505050905090810190601f1680156102305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102776004803603604081101561025457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610789565b604080519115158252519081900360200190f35b6101af6107a0565b6101af6107a6565b610277600480360360608110156102b157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107ca565b6101af61087a565b6102ee61089e565b6040805160ff9092168252519081900360200190f35b6102776004803603604081101561031a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108a3565b6102776004803603604081101561035357600080fd5b81019060208101813564010000000081111561036e57600080fd5b82018360208201111561038057600080fd5b803590602001918460208302840111640100000000831117156103a257600080fd5b9193909290916020810190356401000000008111156103c057600080fd5b8201836020820111156103d257600080fd5b803590602001918460208302840111640100000000831117156103f457600080fd5b5090925090506108e6565b6102776004803603604081101561041557600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166109a6565b6101af6004803603602081101561044e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a8a565b6101af6004803603602081101561048157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a9c565b6104a6610aae565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101c9610af6565b610277600480360360408110156104ed57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b2f565b6102776004803603604081101561052657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b8b565b6102776004803603602081101561055f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b98565b6105da600480360360e081101561059257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610d5e565b005b6101af611024565b6105da60048036036101208110156105fb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359160408201359160608101359160808201359160a08101359091169060ff60c0820135169060e0810135906101000135611033565b6105da600480360360e081101561066657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060408101359060608101359060ff6080820135169060a08101359060c001356112ac565b6101af600480360360408110156106c057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611506565b610277600480360360608110156106fb57600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135611523565b6101af611627565b7f962bd922c545d0eeadd0bffa7dfc20e9311026bb052ef42462d77f71ae15f0ae81565b6040518060400160405280600581526020017f536861726400000000000000000000000000000000000000000000000000000081525081565b600061079633848461164b565b5060015b92915050565b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b73ffffffffffffffffffffffffffffffffffffffff831660008181526002602090815260408083203380855292528220549192909190821480159061082f57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561086357610863868361085e87604051806060016040528060368152602001611e2c603691398691906116ba565b61164b565b61086e86868661176c565b50600195945050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161079691859061085e9086611933565b600083828114610941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611eb7603f913960400191505060405180910390fd5b60005b81811015610999576109913388888481811061095c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1687878581811061098557fe5b9050602002013561176c565b600101610944565b5060019695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f62696e64206164647265737320697320746865207a65726f2061646472657373604482015290519081900360640190fd5b610a3433846119a5565b60408051848152905173ffffffffffffffffffffffffffffffffffffffff84169133917f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c8889181900360200190a350600192915050565b60016020526000908152604090205481565b60036020526000908152604090205481565b60006006544310610ad8575060055473ffffffffffffffffffffffffffffffffffffffff16610af3565b5060045473ffffffffffffffffffffffffffffffffffffffff165b90565b6040518060400160405280600581526020017f534841524400000000000000000000000000000000000000000000000000000081525081565b6000610796338461085e85604051806060016040528060388152602001611f486038913933600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906116ba565b600061079633848461176c565b6000610ba2610aae565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b610cc5610aae565b600480547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161791829055600580549091168584161790819055436133f4016006819055604051909391821692909116907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a4506001919050565b83421115610dcd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f53686172643a3a7065726d69743a207369676e61747572652065787069726564604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80881660008181526003602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958c166060860152608085018b905260a085019590955260c08085018a90528151808603909101815260e09094019052825192019190912091610e7083611b1a565b86868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ec7573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610f7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f53686172643a3a7065726d69743a20696e76616c6964207369676e6174757265604482015290519081900360640190fd5b8873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461100e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f53686172643a3a7065726d69743a20756e617574686f72697a65640000000000604482015290519081900360640190fd5b61101989898961164b565b505050505050505050565b6aadb53acfa41aee1200000081565b8442111561108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611da9602e913960400191505060405180910390fd5b604080517f09aa587eddbedbe2986e33366dbc3d87c00136a27315a549511145ad4ac9f02060208083019190915273ffffffffffffffffffffffffffffffffffffffff8c1682840152606082018b9052608082018a905260a0820189905260c08083018990528351808403909101815260e090920190925280519101206000600161111683611b1a565b86868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561116d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611204576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611e62602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090208054600181019091558814611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611f80602a913960400191505060405180910390fd5b61129481878b61176c565b61129f818c8c61176c565b5050505050505050505050565b83421115611305576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611e906027913960400191505060405180910390fd5b604080517f962bd922c545d0eeadd0bffa7dfc20e9311026bb052ef42462d77f71ae15f0ae60208083019190915273ffffffffffffffffffffffffffffffffffffffff8a1682840152606082018990526080820188905260a08083018890528351808403909101815260c090920190925280519101206000600161138883611b1a565b86868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156113df573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611476576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611f216027913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902080546001810190915587146114fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d866023913960400191505060405180910390fd5b611019818a8a61176c565b600260209081526000928352604080842090915290825290205481565b600061152d610aae565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6115d08383611c0d565b60408051838152905173ffffffffffffffffffffffffffffffffffffffff85169186917f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d619181900360200190a35060019392505050565b7f09aa587eddbedbe2986e33366dbc3d87c00136a27315a549511145ad4ac9f02081565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b8183038184821115611764576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611729578181015183820152602001611711565b50505050905090810190601f1680156117565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509392505050565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611faa6030913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061205a602e913960400191505060405180910390fd5b61188e816040518060600160405280603181526020016120296031913973ffffffffffffffffffffffffffffffffffffffff861660009081526001602052604090205491906116ba565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546118ca9082611933565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b8082018281101561079a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53686172643a3a6164643a206164646974696f6e206f766572666c6f77000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611dd76028913960400191505060405180910390fd5b611a5b816040518060600160405280602981526020016120006029913973ffffffffffffffffffffffffffffffffffffffff851660009081526001602052604090205491906116ba565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac5816040518060600160405280602d8152602001611dff602d913960005491906116ba565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b604080518082018252600581527f536861726400000000000000000000000000000000000000000000000000000060209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f4d90e6dd2d225e15a0ea5c90bcb09baeaba0d3ff4604520d3610c06ff7f55ad981840152466060820152306080808301919091528351808303909101815260a0820184528051908301207f190100000000000000000000000000000000000000000000000000000000000060c083015260c282015260e2808201949094528251808203909401845261010201909152815191012090565b73ffffffffffffffffffffffffffffffffffffffff8216611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fda6026913960400191505060405180910390fd5b60008054611c879083611933565b90506aadb53acfa41aee12000000811115611ced576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611ef6602b913960400191505060405180910390fd5b600081815573ffffffffffffffffffffffffffffffffffffffff8416815260016020526040902054611d1f9083611933565b73ffffffffffffffffffffffffffffffffffffffff841660008181526001602090815260408083209490945583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350505056fe53686172643a3a7472616e7366657242795369673a20696e76616c6964206e6f6e636553686172643a3a7472616e736665725769746846656542795369673a207369676e6174757265206578706972656453686172643a3a5f6275726e3a206275726e2066726f6d20746865207a65726f206164647265737353686172643a3a5f6275726e3a206275726e20616d6f756e74206578636565647320746f74616c537570706c7953686172643a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636553686172643a3a7472616e736665725769746846656542795369673a20696e76616c6964207369676e617475726553686172643a3a7472616e7366657242795369673a207369676e6174757265206578706972656453686172643a3a7472616e7366657242617463683a2063616c6c6461746120617272617973206d7573742068617665207468652073616d65206c656e67746853686172643a3a5f6d696e743a20746f74616c537570706c792065786365656473206d6178537570706c7953686172643a3a7472616e7366657242795369673a20696e76616c6964207369676e617475726553686172643a3a6465637265617365416c6c6f77616e63653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f53686172643a3a7472616e736665725769746846656542795369673a20696e76616c6964206e6f6e636553686172643a3a5f7472616e736665723a207472616e736665722066726f6d20746865207a65726f206164647265737353686172643a3a5f6d696e743a206d696e7420746f20746865207a65726f206164647265737353686172643a3a5f6275726e3a206275726e20616d6f756e7420657863656564732062616c616e636553686172643a3a5f7472616e736665723a207472616e7366657220616d6f756e7420657863656564732062616c616e636553686172643a3a5f7472616e736665723a207472616e7366657220746f20746865207a65726f2061646472657373a264697066735822122012dea760b9a3d0e8fd7f89fa7276b104ca53270ea8de7284093ed52328063e1864736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a25760003560e01c80637ecebe00116100ee578063d505accf11610097578063dd558dd111610071578063dd558dd114610650578063dd62ed3e146106aa578063ec126c77146106e5578063f568beff14610724576101a2565b8063d505accf1461057c578063d5abeb01146105dc578063d7f6e62b146105e4576101a2565b8063a457c2d7116100c8578063a457c2d7146104d7578063a9059cbb14610510578063b524f3a514610549576101a2565b80637ecebe001461046b5780638da5cb5b1461049e57806395d89b41146104cf576101a2565b806330adf81f116101505780633b3e672f1161012a5780633b3e672f1461033d578063628d6cba146103ff57806370a0823114610438576101a2565b806330adf81f146102de578063313ce567146102e65780633950935114610304576101a2565b806318160ddd1161018157806318160ddd1461028b57806320606b701461029357806323b872dd1461029b576101a2565b8062bf26f4146101a757806306fdde03146101c1578063095ea7b31461023e575b600080fd5b6101af61072c565b60408051918252519081900360200190f35b6101c9610750565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102035781810151838201526020016101eb565b50505050905090810190601f1680156102305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102776004803603604081101561025457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610789565b604080519115158252519081900360200190f35b6101af6107a0565b6101af6107a6565b610277600480360360608110156102b157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107ca565b6101af61087a565b6102ee61089e565b6040805160ff9092168252519081900360200190f35b6102776004803603604081101561031a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108a3565b6102776004803603604081101561035357600080fd5b81019060208101813564010000000081111561036e57600080fd5b82018360208201111561038057600080fd5b803590602001918460208302840111640100000000831117156103a257600080fd5b9193909290916020810190356401000000008111156103c057600080fd5b8201836020820111156103d257600080fd5b803590602001918460208302840111640100000000831117156103f457600080fd5b5090925090506108e6565b6102776004803603604081101561041557600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166109a6565b6101af6004803603602081101561044e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a8a565b6101af6004803603602081101561048157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a9c565b6104a6610aae565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101c9610af6565b610277600480360360408110156104ed57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b2f565b6102776004803603604081101561052657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b8b565b6102776004803603602081101561055f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b98565b6105da600480360360e081101561059257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610d5e565b005b6101af611024565b6105da60048036036101208110156105fb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359160408201359160608101359160808201359160a08101359091169060ff60c0820135169060e0810135906101000135611033565b6105da600480360360e081101561066657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060408101359060608101359060ff6080820135169060a08101359060c001356112ac565b6101af600480360360408110156106c057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611506565b610277600480360360608110156106fb57600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135611523565b6101af611627565b7f962bd922c545d0eeadd0bffa7dfc20e9311026bb052ef42462d77f71ae15f0ae81565b6040518060400160405280600581526020017f536861726400000000000000000000000000000000000000000000000000000081525081565b600061079633848461164b565b5060015b92915050565b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b73ffffffffffffffffffffffffffffffffffffffff831660008181526002602090815260408083203380855292528220549192909190821480159061082f57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561086357610863868361085e87604051806060016040528060368152602001611e2c603691398691906116ba565b61164b565b61086e86868661176c565b50600195945050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161079691859061085e9086611933565b600083828114610941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611eb7603f913960400191505060405180910390fd5b60005b81811015610999576109913388888481811061095c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1687878581811061098557fe5b9050602002013561176c565b600101610944565b5060019695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f62696e64206164647265737320697320746865207a65726f2061646472657373604482015290519081900360640190fd5b610a3433846119a5565b60408051848152905173ffffffffffffffffffffffffffffffffffffffff84169133917f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c8889181900360200190a350600192915050565b60016020526000908152604090205481565b60036020526000908152604090205481565b60006006544310610ad8575060055473ffffffffffffffffffffffffffffffffffffffff16610af3565b5060045473ffffffffffffffffffffffffffffffffffffffff165b90565b6040518060400160405280600581526020017f534841524400000000000000000000000000000000000000000000000000000081525081565b6000610796338461085e85604051806060016040528060388152602001611f486038913933600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906116ba565b600061079633848461176c565b6000610ba2610aae565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cbd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b610cc5610aae565b600480547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161791829055600580549091168584161790819055436133f4016006819055604051909391821692909116907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a4506001919050565b83421115610dcd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f53686172643a3a7065726d69743a207369676e61747572652065787069726564604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80881660008181526003602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958c166060860152608085018b905260a085019590955260c08085018a90528151808603909101815260e09094019052825192019190912091610e7083611b1a565b86868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ec7573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610f7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f53686172643a3a7065726d69743a20696e76616c6964207369676e6174757265604482015290519081900360640190fd5b8873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461100e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f53686172643a3a7065726d69743a20756e617574686f72697a65640000000000604482015290519081900360640190fd5b61101989898961164b565b505050505050505050565b6aadb53acfa41aee1200000081565b8442111561108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611da9602e913960400191505060405180910390fd5b604080517f09aa587eddbedbe2986e33366dbc3d87c00136a27315a549511145ad4ac9f02060208083019190915273ffffffffffffffffffffffffffffffffffffffff8c1682840152606082018b9052608082018a905260a0820189905260c08083018990528351808403909101815260e090920190925280519101206000600161111683611b1a565b86868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561116d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611204576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611e62602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090208054600181019091558814611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611f80602a913960400191505060405180910390fd5b61129481878b61176c565b61129f818c8c61176c565b5050505050505050505050565b83421115611305576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611e906027913960400191505060405180910390fd5b604080517f962bd922c545d0eeadd0bffa7dfc20e9311026bb052ef42462d77f71ae15f0ae60208083019190915273ffffffffffffffffffffffffffffffffffffffff8a1682840152606082018990526080820188905260a08083018890528351808403909101815260c090920190925280519101206000600161138883611b1a565b86868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156113df573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611476576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611f216027913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902080546001810190915587146114fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d866023913960400191505060405180910390fd5b611019818a8a61176c565b600260209081526000928352604080842090915290825290205481565b600061152d610aae565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6115d08383611c0d565b60408051838152905173ffffffffffffffffffffffffffffffffffffffff85169186917f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d619181900360200190a35060019392505050565b7f09aa587eddbedbe2986e33366dbc3d87c00136a27315a549511145ad4ac9f02081565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b8183038184821115611764576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611729578181015183820152602001611711565b50505050905090810190601f1680156117565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509392505050565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611faa6030913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061205a602e913960400191505060405180910390fd5b61188e816040518060600160405280603181526020016120296031913973ffffffffffffffffffffffffffffffffffffffff861660009081526001602052604090205491906116ba565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602052604080822093909355908416815220546118ca9082611933565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b8082018281101561079a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53686172643a3a6164643a206164646974696f6e206f766572666c6f77000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611dd76028913960400191505060405180910390fd5b611a5b816040518060600160405280602981526020016120006029913973ffffffffffffffffffffffffffffffffffffffff851660009081526001602052604090205491906116ba565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac5816040518060600160405280602d8152602001611dff602d913960005491906116ba565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b604080518082018252600581527f536861726400000000000000000000000000000000000000000000000000000060209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f4d90e6dd2d225e15a0ea5c90bcb09baeaba0d3ff4604520d3610c06ff7f55ad981840152466060820152306080808301919091528351808303909101815260a0820184528051908301207f190100000000000000000000000000000000000000000000000000000000000060c083015260c282015260e2808201949094528251808203909401845261010201909152815191012090565b73ffffffffffffffffffffffffffffffffffffffff8216611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fda6026913960400191505060405180910390fd5b60008054611c879083611933565b90506aadb53acfa41aee12000000811115611ced576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611ef6602b913960400191505060405180910390fd5b600081815573ffffffffffffffffffffffffffffffffffffffff8416815260016020526040902054611d1f9083611933565b73ffffffffffffffffffffffffffffffffffffffff841660008181526001602090815260408083209490945583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350505056fe53686172643a3a7472616e7366657242795369673a20696e76616c6964206e6f6e636553686172643a3a7472616e736665725769746846656542795369673a207369676e6174757265206578706972656453686172643a3a5f6275726e3a206275726e2066726f6d20746865207a65726f206164647265737353686172643a3a5f6275726e3a206275726e20616d6f756e74206578636565647320746f74616c537570706c7953686172643a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636553686172643a3a7472616e736665725769746846656542795369673a20696e76616c6964207369676e617475726553686172643a3a7472616e7366657242795369673a207369676e6174757265206578706972656453686172643a3a7472616e7366657242617463683a2063616c6c6461746120617272617973206d7573742068617665207468652073616d65206c656e67746853686172643a3a5f6d696e743a20746f74616c537570706c792065786365656473206d6178537570706c7953686172643a3a7472616e7366657242795369673a20696e76616c6964207369676e617475726553686172643a3a6465637265617365416c6c6f77616e63653a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f53686172643a3a7472616e736665725769746846656542795369673a20696e76616c6964206e6f6e636553686172643a3a5f7472616e736665723a207472616e736665722066726f6d20746865207a65726f206164647265737353686172643a3a5f6d696e743a206d696e7420746f20746865207a65726f206164647265737353686172643a3a5f6275726e3a206275726e20616d6f756e7420657863656564732062616c616e636553686172643a3a5f7472616e736665723a207472616e7366657220616d6f756e7420657863656564732062616c616e636553686172643a3a5f7472616e736665723a207472616e7366657220746f20746865207a65726f2061646472657373a264697066735822122012dea760b9a3d0e8fd7f89fa7276b104ca53270ea8de7284093ed52328063e1864736f6c634300060c0033
Deployed Bytecode Sourcemap
6872:1750:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1034:120;;;:::i;:::-;;;;;;;;;;;;;;;;406:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2961:147;;;;;;;;;;;;;;;;-1:-1:-1;2961:147:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;613:23;;;:::i;761:122::-;;;:::i;4355:449::-;;;;;;;;;;;;;;;;-1:-1:-1;4355:449:0;;;;;;;;;;;;;;;;;;:::i;890:137::-;;;:::i;496:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3116:203;;;;;;;;;;;;;;;;-1:-1:-1;3116:203:0;;;;;;;;;:::i;4812:375::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4812:375:0;;-1:-1:-1;4812:375:0;-1:-1:-1;4812:375:0;:::i;8344:275::-;;;;;;;;;;;;;;;;-1:-1:-1;8344:275:0;;;;;;;;;:::i;643:41::-;;;;;;;;;;;;;;;;-1:-1:-1;643:41:0;;;;:::i;1316:38::-;;;;;;;;;;;;;;;;-1:-1:-1;1316:38:0;;;;:::i;7544:181::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;450:39;;;:::i;3331:273::-;;;;;;;;;;;;;;;;-1:-1:-1;3331:273:0;;;;;;;;;:::i;4208:139::-;;;;;;;;;;;;;;;;-1:-1:-1;4208:139:0;;;;;;;;;:::i;7733:383::-;;;;;;;;;;;;;;;;-1:-1:-1;7733:383:0;;;;:::i;3612:588::-;;;;;;;;;;;;;;;;-1:-1:-1;3612:588:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;538:47;;;:::i;5796:703::-;;;;;;;;;;;;;;;;-1:-1:-1;5796:703:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5195:593::-;;;;;;;;;;;;;;;;-1:-1:-1;5195:593:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;691:61::-;;;;;;;;;;;;;;;;-1:-1:-1;691:61:0;;;;;;;;;;;:::i;8124:212::-;;;;;;;;;;;;;;;;-1:-1:-1;8124:212:0;;;;;;;;;;;;;;:::i;1161:148::-;;;:::i;1034:120::-;1078:76;1034:120;:::o;406:37::-;;;;;;;;;;;;;;;;;;;:::o;2961:147::-;3025:4;3042:36;3051:10;3063:7;3072:5;3042:8;:36::i;:::-;-1:-1:-1;3096:4:0;2961:147;;;;;:::o;613:23::-;;;;:::o;761:122::-;803:80;761:122;:::o;4355:449::-;4513:15;;;4433:4;4513:15;;;:9;:15;;;;;;;;4468:10;4513:24;;;;;;;;4433:4;;4468:10;;4513:24;4552:15;;;;;:47;;;4596:2;4571:16;:28;;4552:47;4548:190;;;4616:110;4625:4;4631:7;4640:85;4661:5;4640:85;;;;;;;;;;;;;;;;;:16;;:85;:20;:85::i;:::-;4616:8;:110::i;:::-;4748:26;4758:4;4764:2;4768:5;4748:9;:26::i;:::-;-1:-1:-1;4792:4:0;;4355:449;-1:-1:-1;;;;;4355:449:0:o;890:137::-;932:95;890:137;:::o;496:35::-;529:2;496:35;:::o;3116:203::-;3221:10;3195:4;3242:21;;;:9;:21;;;;;;;;;:30;;;;;;;;;;3195:4;;3212:77;;3233:7;;3242:46;;3277:10;3242:34;:46::i;4812:375::-;4899:4;4930:2;4958:22;;;4950:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5064:6;5059:99;5080:6;5076:1;:10;5059:99;;;5108:38;5118:10;5130:2;;5133:1;5130:5;;;;;;;;;;;;;;;5137;;5143:1;5137:8;;;;;;;;;;;;;5108:9;:38::i;:::-;5088:3;;5059:99;;;-1:-1:-1;5175:4:0;;4812:375;-1:-1:-1;;;;;;4812:375:0:o;8344:275::-;8413:4;8438:22;;;8430:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8508:25;8514:10;8526:6;8508:5;:25::i;:::-;8549:40;;;;;;;;;;;;8560:10;;8549:40;;;;;;;;;-1:-1:-1;8607:4:0;8344:275;;;;:::o;643:41::-;;;;;;;;;;;;;:::o;1316:38::-;;;;;;;;;;;;;:::o;7544:181::-;7582:7;7622:24;;7606:12;:40;7602:89;;-1:-1:-1;7670:9:0;;;;7663:16;;7602:89;-1:-1:-1;7708:9:0;;;;7544:181;;:::o;450:39::-;;;;;;;;;;;;;;;;;;;:::o;3331:273::-;3415:4;3432:142;3441:10;3453:7;3462:111;3497:15;3462:111;;;;;;;;;;;;;;;;;3472:10;3462:21;;;;:9;:21;;;;;;;;;:30;;;;;;;;;;;:111;:34;:111::i;4208:139::-;4268:4;4285:32;4295:10;4307:2;4311:5;4285:9;:32::i;7733:383::-;7804:4;7374:7;:5;:7::i;:::-;7360:21;;:10;:21;;;7352:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7829:22:::1;::::0;::::1;7821:64;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;7908:7;:5;:7::i;:::-;7896:9;:19:::0;;;;;::::1;;::::0;;::::1;;::::0;;;;7926:9:::1;:20:::0;;;;::::1;::::0;;::::1;;::::0;;;;7984:12:::1;7999:5;7984:20;7957:24;:47:::0;;;8020:66:::1;::::0;7984:20;;8050:9;;::::1;::::0;8039;;::::1;::::0;8020:66:::1;::::0;-1:-1:-1;;8020:66:0::1;-1:-1:-1::0;8104:4:0::1;7733:383:::0;;;:::o;3612:588::-;3765:8;3746:15;:27;;3738:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3903:13;;;;3821:18;3903:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3852:77;;932:95;3852:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3842:88;;;;;;;;;3971:21;3842:88;3971:9;:21::i;:::-;3994:1;3997;4000;3961:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3961:41:0;;;;;;-1:-1:-1;;4021:23:0;;;4013:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4113:5;4100:18;;:9;:18;;;4092:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4161:31;4170:5;4177:7;4186:5;4161:8;:31::i;:::-;3612:588;;;;;;;;;:::o;538:47::-;571:14;538:47;:::o;5796:703::-;5978:6;5959:15;:25;;5951:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6077:69;;;1214:95;6077:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6067:80;;;;;6046:18;6178:41;6188:21;6067:80;6188:9;:21::i;:::-;6211:1;6214;6217;6178:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6178:41:0;;;;;;-1:-1:-1;;6238:23:0;;;6230:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6340:17;;;;;;;:6;:17;;;;;:19;;;;;;;;6331:28;;6323:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6417:32;6427:9;6438:5;6445:3;6417:9;:32::i;:::-;6460:31;6470:9;6481:2;6485:5;6460:9;:31::i;:::-;5796:703;;;;;;;;;;;:::o;5195:593::-;5345:6;5326:15;:25;;5318:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5437:55;;;1078:76;5437:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5427:66;;;;;5406:18;5524:41;5534:21;5427:66;5534:9;:21::i;:::-;5557:1;5560;5563;5524:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5524:41:0;;;;;;-1:-1:-1;;5584:23:0;;;5576:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5679:17;;;;;;;:6;:17;;;;;:19;;;;;;;;5670:28;;5662:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5749:31;5759:9;5770:2;5774:5;5749:9;:31::i;691:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;8124:212::-;8217:4;7374:7;:5;:7::i;:::-;7360:21;;:10;:21;;;7352:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8234:22:::1;8240:7;8249:6;8234:5;:22::i;:::-;8272:34;::::0;;;;;;;::::1;::::0;::::1;::::0;8282:6;;8272:34:::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;8324:4:0::1;8124:212:::0;;;;;:::o;1161:148::-;1214:95;1161:148;:::o;2327:169::-;2408:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;2457:31;;;;;;;;;;;;;;;;;2327:169;;;:::o;194:146::-;306:5;;;319:12;301:16;;;;293:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;194:146;;;;;:::o;2504:449::-;2588:18;;;2580:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2678:16;;;2670:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2774:79;2794:5;2774:79;;;;;;;;;;;;;;;;;:15;;;;;;;:9;:15;;;;;;;:79;:19;:79::i;:::-;2756:15;;;;;;;;:9;:15;;;;;;:97;;;;2880:13;;;;;;;:24;;2898:5;2880:17;:24::i;:::-;2864:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2920:25;;;;;;;2864:13;;2920:25;;;;;;;;;;;;;2504:449;;;:::o;51:137::-;135:5;;;130:16;;;;122:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1934:385;2003:18;;;1995:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2095;2115:5;2095:71;;;;;;;;;;;;;;;;;:15;;;;;;;:9;:15;;;;;;;:71;:19;:71::i;:::-;2077:9;:15;2087:4;2077:15;;;;;;;;;;;;;;;:89;;;;2191:71;2207:5;2191:71;;;;;;;;;;;;;;;;;:11;;;:71;:15;:71::i;:::-;2177:11;:85;;;2278:33;;;;;;;;;;;;;;;;;;;;;;1934:385;;:::o;6507:358::-;6739:4;;;;;;;;;;;;;;;;;6695:75;;803:80;6695:75;;;;6723:22;6695:75;;;;6637:9;6695:75;;;;6764:4;6695:75;;;;;;;;;;;;;;;;;;;;;;;6685:86;;;;;;6799:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6789:68;;;;;;6507:358::o;1521:405::-;1588:16;;;1580:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1658:14;1675:11;;:22;;1691:5;1675:15;:22::i;:::-;1658:39;;571:14;1716:9;:22;;1708:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1797:11;:23;;;1847:13;;;;;:9;:13;;;;;;:24;;1865:5;1847:17;:24::i;:::-;1831:13;;;;;;;:9;:13;;;;;;;;:40;;;;1887:31;;;;;;;1831:13;;;;1887:31;;;;;;;;;;1521:405;;;:::o
Swarm Source
ipfs://12dea760b9a3d0e8fd7f89fa7276b104ca53270ea8de7284093ed52328063e18
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.