Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 PONK
Holders
213
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 PONKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PONK
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* https://t.me/PONKcoineth */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, _allowances[owner][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = _allowances[owner][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract PONK is ERC20, Ownable { IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public uniswapPair; address public immutable feeReceiver; uint256 private maxWalletSize = 20000000 * 1e9; uint256 private contractSwapMax = 20000000 * 1e9; uint256 private contractSwapMin = 3000000 * 1e9; uint32 private _buyCount; uint32 private _sellCount; uint32 private _lastSellBlock; uint32 private _preventSwapBefore = 15; uint32 private _lowerFeesAt = 35; uint32 private _finalBuyFee = 0; uint32 private _finalSellFee = 0; bool private _inSwap; uint256 public buyFeeProcent; uint256 public sellFeeProcent; uint256 private liquiditySupply; mapping (address => bool) private excludedFromTxLimits; constructor() ERC20("Ponk", "PONK") payable { uint256 totalSupply = 1000000000 * 1e9; liquiditySupply = 900000000 * 1e9; feeReceiver = msg.sender; buyFeeProcent = 20; sellFeeProcent = 30; excludedFromTxLimits[feeReceiver] = true; excludedFromTxLimits[msg.sender] = true; excludedFromTxLimits[address(this)] = true; excludedFromTxLimits[address(0xdead)] = true; _approve(address(this), address(_router), totalSupply); _approve(msg.sender, address(_router), totalSupply); _mint(msg.sender, totalSupply); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "Transfer from the zero address not allowed."); require(to != address(0), "Transfer to the zero address not allowed."); require(amount > 0, 'Transfer amount must be greater than zero.'); bool excluded = excludedFromTxLimits[from] || excludedFromTxLimits[to]; require(uniswapPair != address(0) || excluded, "Liquidity pair not yet created."); bool isSell = to == uniswapPair; bool isBuy = from == uniswapPair; if(isBuy && !excluded){ require(balanceOf(to) + amount <= maxWalletSize || to == address(_router), "Max wallet exceeded"); if(_buyCount <= _lowerFeesAt) _buyCount++; if(_buyCount == _lowerFeesAt){ buyFeeProcent = _finalBuyFee; sellFeeProcent = _finalSellFee; } } uint256 contractTokenBalance = balanceOf(address(this)); if (isSell && !_inSwap && contractTokenBalance >= contractSwapMin && !excluded && _buyCount > _preventSwapBefore ) { if (block.number > _lastSellBlock) _sellCount = 0; require(_sellCount < 3, "Only 3 sells per block!"); _inSwap = true; swapTokensForEth(min(amount, min(contractTokenBalance, contractSwapMax))); _inSwap = false; uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) sendETHToFee(contractETHBalance); _sellCount++; _lastSellBlock = uint32(block.number); } uint256 fee = isBuy ? buyFeeProcent : sellFeeProcent; if (fee > 0 && !excluded && !_inSwap && (isBuy || isSell)) { uint256 fees = amount * fee / 100; if (fees > 0){ super._transfer(from, address(this), fees); amount-= fees; } } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), tokenAmount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { payable(feeReceiver).transfer(amount); } function SetTradingStatus() external payable onlyOwner { super._transfer(msg.sender, address(this), totalSupply()); _router.addLiquidityETH{value: address(this).balance}(address(this), liquiditySupply, 0, 0, msg.sender, block.timestamp); uniswapPair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH()); } function setSwapFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { require(newBuyFee <= 26 && newSellFee <= 26, 'New fee must be lower.'); buyFeeProcent = newBuyFee; sellFeeProcent = newSellFee; } function removeLimits() external onlyOwner { maxWalletSize = totalSupply(); } function updateStructure(uint256 maxAmount, uint256 minAmount) external onlyOwner { contractSwapMax = maxAmount; contractSwapMin = minAmount; } function sweepStuckETH() external onlyOwner { payable(feeReceiver).transfer(address(this).balance); } function transferStuckToken(IERC20 token) external onlyOwner { token.transfer(feeReceiver, token.balanceOf(address(this))); } receive() external payable {} }
{ "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":"payable","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"SetTradingStatus","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeProcent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeProcent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepStuckETH","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":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"transferStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"updateStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405266470de4df82000060075566470de4df820000600855660aa87bee538000600955600f600a600c6101000a81548163ffffffff021916908363ffffffff1602179055506023600a60106101000a81548163ffffffff021916908363ffffffff1602179055505f600a60146101000a81548163ffffffff021916908363ffffffff1602179055505f600a60186101000a81548163ffffffff021916908363ffffffff1602179055506040518060400160405280600481526020017f506f6e6b000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f504f4e4b000000000000000000000000000000000000000000000000000000008152508160039081620001289190620009ee565b5080600490816200013a9190620009ee565b5050506200015d620001516200037b60201b60201c565b6200038260201b60201c565b5f670de0b6b3a76400009050670c7d713b49da0000600d819055503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506014600b81905550601e600c819055506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200033b30737a250d5630b4cf539739df2c5dacb4c659f2488d836200044560201b60201c565b6200036233737a250d5630b4cf539739df2c5dacb4c659f2488d836200044560201b60201c565b6200037433826200061060201b60201c565b5062000d0b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620004b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ad9062000b56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200051e9062000bea565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000603919062000c1b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006789062000c84565b60405180910390fd5b620006945f83836200078060201b60201c565b8060025f828254620006a7919062000cd1565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620006fb919062000cd1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000761919062000c1b565b60405180910390a36200077c5f83836200078560201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200080657607f821691505b6020821081036200081c576200081b620007c1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000843565b6200088c868362000843565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008d6620008d0620008ca84620008a4565b620008ad565b620008a4565b9050919050565b5f819050919050565b620008f183620008b6565b620009096200090082620008dd565b8484546200084f565b825550505050565b5f90565b6200091f62000911565b6200092c818484620008e6565b505050565b5b818110156200095357620009475f8262000915565b60018101905062000932565b5050565b601f821115620009a2576200096c8162000822565b620009778462000834565b8101602085101562000987578190505b6200099f620009968562000834565b83018262000931565b50505b505050565b5f82821c905092915050565b5f620009c45f1984600802620009a7565b1980831691505092915050565b5f620009de8383620009b3565b9150826002028217905092915050565b620009f9826200078a565b67ffffffffffffffff81111562000a155762000a1462000794565b5b62000a218254620007ee565b62000a2e82828562000957565b5f60209050601f83116001811462000a64575f841562000a4f578287015190505b62000a5b8582620009d1565b86555062000aca565b601f19841662000a748662000822565b5f5b8281101562000a9d5784890151825560018201915060208501945060208101905062000a76565b8683101562000abd578489015162000ab9601f891682620009b3565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000b3e60248362000ad2565b915062000b4b8262000ae2565b604082019050919050565b5f6020820190508181035f83015262000b6f8162000b30565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000bd260228362000ad2565b915062000bdf8262000b76565b604082019050919050565b5f6020820190508181035f83015262000c038162000bc4565b9050919050565b62000c1581620008a4565b82525050565b5f60208201905062000c305f83018462000c0a565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000c6c601f8362000ad2565b915062000c798262000c36565b602082019050919050565b5f6020820190508181035f83015262000c9d8162000c5e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000cdd82620008a4565b915062000cea83620008a4565b925082820190508082111562000d055762000d0462000ca4565b5b92915050565b6080516132ee62000d395f395f8181610ee101528181610ffd0152818161109d015261217d01526132ee5ff3fe60806040526004361061014e575f3560e01c8063751039fc116100b5578063b3f006741161006e578063b3f006741461046b578063c7003cd014610495578063c816841b146104ab578063d0811807146104d5578063dd62ed3e146104ff578063f2fde38b1461053b57610155565b8063751039fc146103615780638da5cb5b1461037757806395d89b41146103a1578063a457c2d7146103cb578063a6ebb13314610407578063a9059cbb1461042f57610155565b80633950935111610107578063395093511461027957806346bc4258146102b557806359acbe4e146102dd57806370a0823114610305578063715018a61461034157806371f0f5961461035757610155565b806306fdde0314610159578063095ea7b3146101835780631678e6f8146101bf57806318160ddd146101e957806323b872dd14610213578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610563565b60405161017a9190612276565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612327565b6105f3565b6040516101b6919061237f565b60405180910390f35b3480156101ca575f80fd5b506101d3610615565b6040516101e091906123a7565b60405180910390f35b3480156101f4575f80fd5b506101fd61061b565b60405161020a91906123a7565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906123c0565b610624565b604051610246919061237f565b60405180910390f35b34801561025a575f80fd5b50610263610652565b604051610270919061242b565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a9190612327565b61065a565b6040516102ac919061237f565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190612444565b6106ff565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612444565b61078d565b005b348015610310575f80fd5b5061032b60048036038101906103269190612482565b61086c565b60405161033891906123a7565b60405180910390f35b34801561034c575f80fd5b506103556108b1565b005b61035f610938565b005b34801561036c575f80fd5b50610375610c1f565b005b348015610382575f80fd5b5061038b610cab565b60405161039891906124bc565b60405180910390f35b3480156103ac575f80fd5b506103b5610cd3565b6040516103c29190612276565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec9190612327565b610d63565b6040516103fe919061237f565b60405180910390f35b348015610412575f80fd5b5061042d60048036038101906104289190612510565b610e47565b005b34801561043a575f80fd5b5061045560048036038101906104509190612327565b610fd9565b604051610462919061237f565b60405180910390f35b348015610476575f80fd5b5061047f610ffb565b60405161048c91906124bc565b60405180910390f35b3480156104a0575f80fd5b506104a961101f565b005b3480156104b6575f80fd5b506104bf611101565b6040516104cc91906124bc565b60405180910390f35b3480156104e0575f80fd5b506104e9611126565b6040516104f691906123a7565b60405180910390f35b34801561050a575f80fd5b506105256004803603810190610520919061253b565b61112c565b60405161053291906123a7565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190612482565b6111ae565b005b606060038054610572906125a6565b80601f016020809104026020016040519081016040528092919081815260200182805461059e906125a6565b80156105e95780601f106105c0576101008083540402835291602001916105e9565b820191905f5260205f20905b8154815290600101906020018083116105cc57829003601f168201915b5050505050905090565b5f806105fd6112a4565b905061060a8185856112ab565b600191505092915050565b600c5481565b5f600254905090565b5f8061062e6112a4565b905061063b85828561146e565b6106468585856114f9565b60019150509392505050565b5f6009905090565b5f806106646112a4565b90506106f481858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106ef9190612603565b6112ab565b600191505092915050565b6107076112a4565b73ffffffffffffffffffffffffffffffffffffffff16610725610cab565b73ffffffffffffffffffffffffffffffffffffffff161461077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077290612680565b60405180910390fd5b81600881905550806009819055505050565b6107956112a4565b73ffffffffffffffffffffffffffffffffffffffff166107b3610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080090612680565b60405180910390fd5b601a821115801561081b5750601a8111155b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906126e8565b60405180910390fd5b81600b8190555080600c819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108b96112a4565b73ffffffffffffffffffffffffffffffffffffffff166108d7610cab565b73ffffffffffffffffffffffffffffffffffffffff161461092d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092490612680565b60405180910390fd5b6109365f611c1c565b565b6109406112a4565b73ffffffffffffffffffffffffffffffffffffffff1661095e610cab565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90612680565b60405180910390fd5b6109c633306109c161061b565b611cdf565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600d545f8033426040518863ffffffff1660e01b8152600401610a2096959493929190612748565b60606040518083038185885af1158015610a3c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a6191906127bb565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae5919061281f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b82919061281f565b6040518363ffffffff1660e01b8152600401610b9f92919061284a565b602060405180830381865afa158015610bba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bde919061281f565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c276112a4565b73ffffffffffffffffffffffffffffffffffffffff16610c45610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290612680565b60405180910390fd5b610ca361061b565b600781905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ce2906125a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0e906125a6565b8015610d595780601f10610d3057610100808354040283529160200191610d59565b820191905f5260205f20905b815481529060010190602001808311610d3c57829003601f168201915b5050505050905090565b5f80610d6d6112a4565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e25906128e1565b60405180910390fd5b610e3b82868684036112ab565b60019250505092915050565b610e4f6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610e6d610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba90612680565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f00000000000000000000000000000000000000000000000000000000000000008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3991906124bc565b602060405180830381865afa158015610f54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7891906128ff565b6040518363ffffffff1660e01b8152600401610f9592919061292a565b6020604051808303815f875af1158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd5919061297b565b5050565b5f80610fe36112a4565b9050610ff08185856114f9565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110276112a4565b73ffffffffffffffffffffffffffffffffffffffff16611045610cab565b73ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290612680565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110fe573d5f803e3d5ffd5b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111b66112a4565b73ffffffffffffffffffffffffffffffffffffffff166111d4610cab565b73ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190612680565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90612a16565b60405180910390fd5b6112a181611c1c565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612aa4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612b32565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161146191906123a7565b60405180910390a3505050565b5f611479848461112c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114f357818110156114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc90612b9a565b60405180910390fd5b6114f284848484036112ab565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155e90612c28565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc90612cb6565b60405180910390fd5b5f8111611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90612d44565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806116b35750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158061170e5750805b61174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612dac565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161490508080156117fe575082155b1561199257600754846118108761086c565b61181a9190612603565b1115806118665750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b6118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90612e14565b60405180910390fd5b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff161161191c57600a5f81819054906101000a900463ffffffff16809291906118fc90612e41565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff160361199157600a60149054906101000a900463ffffffff1663ffffffff16600b81905550600a60189054906101000a900463ffffffff1663ffffffff16600c819055505b5b5f61199c3061086c565b90508280156119b85750600a601c9054906101000a900460ff16155b80156119c657506009548110155b80156119d0575083155b8015611a0a5750600a600c9054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff16115b15611b7857600a60089054906101000a900463ffffffff1663ffffffff16431115611a51575f600a60046101000a81548163ffffffff021916908363ffffffff1602179055505b6003600a60049054906101000a900463ffffffff1663ffffffff1610611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390612eb6565b60405180910390fd5b6001600a601c6101000a81548160ff021916908315150217905550611ae4611adf86611ada84600854611f54565b611f54565b611f6c565b5f600a601c6101000a81548160ff0219169083151502179055505f4790505f811115611b1457611b138161217b565b5b600a600481819054906101000a900463ffffffff1680929190611b3690612e41565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f82611b8657600c54611b8a565b600b545b90505f81118015611b99575084155b8015611bb25750600a601c9054906101000a900460ff16155b8015611bc357508280611bc25750835b5b15611c07575f60648288611bd79190612ed4565b611be19190612f42565b90505f811115611c0557611bf6893083611cdf565b8087611c029190612f72565b96505b505b611c12888888611cdf565b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4490613015565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db2906130a3565b60405180910390fd5b611dc68383836121e2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4090613131565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ed79190612603565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f3b91906123a7565b60405180910390a3611f4e8484846121e7565b50505050565b5f818311611f625782611f64565b815b905092915050565b5f600267ffffffffffffffff811115611f8857611f8761314f565b5b604051908082528060200260200182016040528015611fb65781602001602082028036833780820191505090505b50905030815f81518110611fcd57611fcc61317c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612064573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612088919061281f565b8160018151811061209c5761209b61317c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f530737a250d5630b4cf539739df2c5dacb4c659f2488d846112ab565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161214a959493929190613260565b5f604051808303815f87803b158015612161575f80fd5b505af1158015612173573d5f803e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121de573d5f803e3d5ffd5b5050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612223578082015181840152602081019050612208565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612248826121ec565b61225281856121f6565b9350612262818560208601612206565b61226b8161222e565b840191505092915050565b5f6020820190508181035f83015261228e818461223e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122c38261229a565b9050919050565b6122d3816122b9565b81146122dd575f80fd5b50565b5f813590506122ee816122ca565b92915050565b5f819050919050565b612306816122f4565b8114612310575f80fd5b50565b5f81359050612321816122fd565b92915050565b5f806040838503121561233d5761233c612296565b5b5f61234a858286016122e0565b925050602061235b85828601612313565b9150509250929050565b5f8115159050919050565b61237981612365565b82525050565b5f6020820190506123925f830184612370565b92915050565b6123a1816122f4565b82525050565b5f6020820190506123ba5f830184612398565b92915050565b5f805f606084860312156123d7576123d6612296565b5b5f6123e4868287016122e0565b93505060206123f5868287016122e0565b925050604061240686828701612313565b9150509250925092565b5f60ff82169050919050565b61242581612410565b82525050565b5f60208201905061243e5f83018461241c565b92915050565b5f806040838503121561245a57612459612296565b5b5f61246785828601612313565b925050602061247885828601612313565b9150509250929050565b5f6020828403121561249757612496612296565b5b5f6124a4848285016122e0565b91505092915050565b6124b6816122b9565b82525050565b5f6020820190506124cf5f8301846124ad565b92915050565b5f6124df826122b9565b9050919050565b6124ef816124d5565b81146124f9575f80fd5b50565b5f8135905061250a816124e6565b92915050565b5f6020828403121561252557612524612296565b5b5f612532848285016124fc565b91505092915050565b5f806040838503121561255157612550612296565b5b5f61255e858286016122e0565b925050602061256f858286016122e0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125bd57607f821691505b6020821081036125d0576125cf612579565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61260d826122f4565b9150612618836122f4565b92508282019050808211156126305761262f6125d6565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61266a6020836121f6565b915061267582612636565b602082019050919050565b5f6020820190508181035f8301526126978161265e565b9050919050565b7f4e657720666565206d757374206265206c6f7765722e000000000000000000005f82015250565b5f6126d26016836121f6565b91506126dd8261269e565b602082019050919050565b5f6020820190508181035f8301526126ff816126c6565b9050919050565b5f819050919050565b5f819050919050565b5f61273261272d61272884612706565b61270f565b6122f4565b9050919050565b61274281612718565b82525050565b5f60c08201905061275b5f8301896124ad565b6127686020830188612398565b6127756040830187612739565b6127826060830186612739565b61278f60808301856124ad565b61279c60a0830184612398565b979650505050505050565b5f815190506127b5816122fd565b92915050565b5f805f606084860312156127d2576127d1612296565b5b5f6127df868287016127a7565b93505060206127f0868287016127a7565b9250506040612801868287016127a7565b9150509250925092565b5f81519050612819816122ca565b92915050565b5f6020828403121561283457612833612296565b5b5f6128418482850161280b565b91505092915050565b5f60408201905061285d5f8301856124ad565b61286a60208301846124ad565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6128cb6025836121f6565b91506128d682612871565b604082019050919050565b5f6020820190508181035f8301526128f8816128bf565b9050919050565b5f6020828403121561291457612913612296565b5b5f612921848285016127a7565b91505092915050565b5f60408201905061293d5f8301856124ad565b61294a6020830184612398565b9392505050565b61295a81612365565b8114612964575f80fd5b50565b5f8151905061297581612951565b92915050565b5f602082840312156129905761298f612296565b5b5f61299d84828501612967565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a006026836121f6565b9150612a0b826129a6565b604082019050919050565b5f6020820190508181035f830152612a2d816129f4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a8e6024836121f6565b9150612a9982612a34565b604082019050919050565b5f6020820190508181035f830152612abb81612a82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b1c6022836121f6565b9150612b2782612ac2565b604082019050919050565b5f6020820190508181035f830152612b4981612b10565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612b84601d836121f6565b9150612b8f82612b50565b602082019050919050565b5f6020820190508181035f830152612bb181612b78565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612c12602b836121f6565b9150612c1d82612bb8565b604082019050919050565b5f6020820190508181035f830152612c3f81612c06565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612ca06029836121f6565b9150612cab82612c46565b604082019050919050565b5f6020820190508181035f830152612ccd81612c94565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612d2e602a836121f6565b9150612d3982612cd4565b604082019050919050565b5f6020820190508181035f830152612d5b81612d22565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612d96601f836121f6565b9150612da182612d62565b602082019050919050565b5f6020820190508181035f830152612dc381612d8a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f612dfe6013836121f6565b9150612e0982612dca565b602082019050919050565b5f6020820190508181035f830152612e2b81612df2565b9050919050565b5f63ffffffff82169050919050565b5f612e4b82612e32565b915063ffffffff8203612e6157612e606125d6565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612ea06017836121f6565b9150612eab82612e6c565b602082019050919050565b5f6020820190508181035f830152612ecd81612e94565b9050919050565b5f612ede826122f4565b9150612ee9836122f4565b9250828202612ef7816122f4565b91508282048414831517612f0e57612f0d6125d6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f4c826122f4565b9150612f57836122f4565b925082612f6757612f66612f15565b5b828204905092915050565b5f612f7c826122f4565b9150612f87836122f4565b9250828203905081811115612f9f57612f9e6125d6565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612fff6025836121f6565b915061300a82612fa5565b604082019050919050565b5f6020820190508181035f83015261302c81612ff3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61308d6023836121f6565b915061309882613033565b604082019050919050565b5f6020820190508181035f8301526130ba81613081565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61311b6026836121f6565b9150613126826130c1565b604082019050919050565b5f6020820190508181035f8301526131488161310f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131db816122b9565b82525050565b5f6131ec83836131d2565b60208301905092915050565b5f602082019050919050565b5f61320e826131a9565b61321881856131b3565b9350613223836131c3565b805f5b8381101561325357815161323a88826131e1565b9750613245836131f8565b925050600181019050613226565b5085935050505092915050565b5f60a0820190506132735f830188612398565b6132806020830187612739565b81810360408301526132928186613204565b90506132a160608301856124ad565b6132ae6080830184612398565b969550505050505056fea2646970667358221220c57873bfd00d73d6656bcedf89405135ab0014d6c946931065082a2f960548e464736f6c63430008170033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c8063751039fc116100b5578063b3f006741161006e578063b3f006741461046b578063c7003cd014610495578063c816841b146104ab578063d0811807146104d5578063dd62ed3e146104ff578063f2fde38b1461053b57610155565b8063751039fc146103615780638da5cb5b1461037757806395d89b41146103a1578063a457c2d7146103cb578063a6ebb13314610407578063a9059cbb1461042f57610155565b80633950935111610107578063395093511461027957806346bc4258146102b557806359acbe4e146102dd57806370a0823114610305578063715018a61461034157806371f0f5961461035757610155565b806306fdde0314610159578063095ea7b3146101835780631678e6f8146101bf57806318160ddd146101e957806323b872dd14610213578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610563565b60405161017a9190612276565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612327565b6105f3565b6040516101b6919061237f565b60405180910390f35b3480156101ca575f80fd5b506101d3610615565b6040516101e091906123a7565b60405180910390f35b3480156101f4575f80fd5b506101fd61061b565b60405161020a91906123a7565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906123c0565b610624565b604051610246919061237f565b60405180910390f35b34801561025a575f80fd5b50610263610652565b604051610270919061242b565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a9190612327565b61065a565b6040516102ac919061237f565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190612444565b6106ff565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612444565b61078d565b005b348015610310575f80fd5b5061032b60048036038101906103269190612482565b61086c565b60405161033891906123a7565b60405180910390f35b34801561034c575f80fd5b506103556108b1565b005b61035f610938565b005b34801561036c575f80fd5b50610375610c1f565b005b348015610382575f80fd5b5061038b610cab565b60405161039891906124bc565b60405180910390f35b3480156103ac575f80fd5b506103b5610cd3565b6040516103c29190612276565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec9190612327565b610d63565b6040516103fe919061237f565b60405180910390f35b348015610412575f80fd5b5061042d60048036038101906104289190612510565b610e47565b005b34801561043a575f80fd5b5061045560048036038101906104509190612327565b610fd9565b604051610462919061237f565b60405180910390f35b348015610476575f80fd5b5061047f610ffb565b60405161048c91906124bc565b60405180910390f35b3480156104a0575f80fd5b506104a961101f565b005b3480156104b6575f80fd5b506104bf611101565b6040516104cc91906124bc565b60405180910390f35b3480156104e0575f80fd5b506104e9611126565b6040516104f691906123a7565b60405180910390f35b34801561050a575f80fd5b506105256004803603810190610520919061253b565b61112c565b60405161053291906123a7565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190612482565b6111ae565b005b606060038054610572906125a6565b80601f016020809104026020016040519081016040528092919081815260200182805461059e906125a6565b80156105e95780601f106105c0576101008083540402835291602001916105e9565b820191905f5260205f20905b8154815290600101906020018083116105cc57829003601f168201915b5050505050905090565b5f806105fd6112a4565b905061060a8185856112ab565b600191505092915050565b600c5481565b5f600254905090565b5f8061062e6112a4565b905061063b85828561146e565b6106468585856114f9565b60019150509392505050565b5f6009905090565b5f806106646112a4565b90506106f481858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106ef9190612603565b6112ab565b600191505092915050565b6107076112a4565b73ffffffffffffffffffffffffffffffffffffffff16610725610cab565b73ffffffffffffffffffffffffffffffffffffffff161461077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077290612680565b60405180910390fd5b81600881905550806009819055505050565b6107956112a4565b73ffffffffffffffffffffffffffffffffffffffff166107b3610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080090612680565b60405180910390fd5b601a821115801561081b5750601a8111155b61085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906126e8565b60405180910390fd5b81600b8190555080600c819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108b96112a4565b73ffffffffffffffffffffffffffffffffffffffff166108d7610cab565b73ffffffffffffffffffffffffffffffffffffffff161461092d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092490612680565b60405180910390fd5b6109365f611c1c565b565b6109406112a4565b73ffffffffffffffffffffffffffffffffffffffff1661095e610cab565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90612680565b60405180910390fd5b6109c633306109c161061b565b611cdf565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600d545f8033426040518863ffffffff1660e01b8152600401610a2096959493929190612748565b60606040518083038185885af1158015610a3c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a6191906127bb565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae5919061281f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b82919061281f565b6040518363ffffffff1660e01b8152600401610b9f92919061284a565b602060405180830381865afa158015610bba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bde919061281f565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c276112a4565b73ffffffffffffffffffffffffffffffffffffffff16610c45610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290612680565b60405180910390fd5b610ca361061b565b600781905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ce2906125a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0e906125a6565b8015610d595780601f10610d3057610100808354040283529160200191610d59565b820191905f5260205f20905b815481529060010190602001808311610d3c57829003601f168201915b5050505050905090565b5f80610d6d6112a4565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e25906128e1565b60405180910390fd5b610e3b82868684036112ab565b60019250505092915050565b610e4f6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610e6d610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba90612680565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f00000000000000000000000033d7e4626fce3a48fbfaa6c49c05d36c5bd9ad218373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3991906124bc565b602060405180830381865afa158015610f54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7891906128ff565b6040518363ffffffff1660e01b8152600401610f9592919061292a565b6020604051808303815f875af1158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd5919061297b565b5050565b5f80610fe36112a4565b9050610ff08185856114f9565b600191505092915050565b7f00000000000000000000000033d7e4626fce3a48fbfaa6c49c05d36c5bd9ad2181565b6110276112a4565b73ffffffffffffffffffffffffffffffffffffffff16611045610cab565b73ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290612680565b60405180910390fd5b7f00000000000000000000000033d7e4626fce3a48fbfaa6c49c05d36c5bd9ad2173ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110fe573d5f803e3d5ffd5b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111b66112a4565b73ffffffffffffffffffffffffffffffffffffffff166111d4610cab565b73ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190612680565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90612a16565b60405180910390fd5b6112a181611c1c565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612aa4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612b32565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161146191906123a7565b60405180910390a3505050565b5f611479848461112c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114f357818110156114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc90612b9a565b60405180910390fd5b6114f284848484036112ab565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155e90612c28565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc90612cb6565b60405180910390fd5b5f8111611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90612d44565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806116b35750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158061170e5750805b61174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612dac565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161490508080156117fe575082155b1561199257600754846118108761086c565b61181a9190612603565b1115806118665750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b6118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90612e14565b60405180910390fd5b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff161161191c57600a5f81819054906101000a900463ffffffff16809291906118fc90612e41565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff160361199157600a60149054906101000a900463ffffffff1663ffffffff16600b81905550600a60189054906101000a900463ffffffff1663ffffffff16600c819055505b5b5f61199c3061086c565b90508280156119b85750600a601c9054906101000a900460ff16155b80156119c657506009548110155b80156119d0575083155b8015611a0a5750600a600c9054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff16115b15611b7857600a60089054906101000a900463ffffffff1663ffffffff16431115611a51575f600a60046101000a81548163ffffffff021916908363ffffffff1602179055505b6003600a60049054906101000a900463ffffffff1663ffffffff1610611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390612eb6565b60405180910390fd5b6001600a601c6101000a81548160ff021916908315150217905550611ae4611adf86611ada84600854611f54565b611f54565b611f6c565b5f600a601c6101000a81548160ff0219169083151502179055505f4790505f811115611b1457611b138161217b565b5b600a600481819054906101000a900463ffffffff1680929190611b3690612e41565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f82611b8657600c54611b8a565b600b545b90505f81118015611b99575084155b8015611bb25750600a601c9054906101000a900460ff16155b8015611bc357508280611bc25750835b5b15611c07575f60648288611bd79190612ed4565b611be19190612f42565b90505f811115611c0557611bf6893083611cdf565b8087611c029190612f72565b96505b505b611c12888888611cdf565b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4490613015565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db2906130a3565b60405180910390fd5b611dc68383836121e2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4090613131565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ed79190612603565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f3b91906123a7565b60405180910390a3611f4e8484846121e7565b50505050565b5f818311611f625782611f64565b815b905092915050565b5f600267ffffffffffffffff811115611f8857611f8761314f565b5b604051908082528060200260200182016040528015611fb65781602001602082028036833780820191505090505b50905030815f81518110611fcd57611fcc61317c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612064573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612088919061281f565b8160018151811061209c5761209b61317c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f530737a250d5630b4cf539739df2c5dacb4c659f2488d846112ab565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161214a959493929190613260565b5f604051808303815f87803b158015612161575f80fd5b505af1158015612173573d5f803e3d5ffd5b505050505050565b7f00000000000000000000000033d7e4626fce3a48fbfaa6c49c05d36c5bd9ad2173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121de573d5f803e3d5ffd5b5050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612223578082015181840152602081019050612208565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612248826121ec565b61225281856121f6565b9350612262818560208601612206565b61226b8161222e565b840191505092915050565b5f6020820190508181035f83015261228e818461223e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122c38261229a565b9050919050565b6122d3816122b9565b81146122dd575f80fd5b50565b5f813590506122ee816122ca565b92915050565b5f819050919050565b612306816122f4565b8114612310575f80fd5b50565b5f81359050612321816122fd565b92915050565b5f806040838503121561233d5761233c612296565b5b5f61234a858286016122e0565b925050602061235b85828601612313565b9150509250929050565b5f8115159050919050565b61237981612365565b82525050565b5f6020820190506123925f830184612370565b92915050565b6123a1816122f4565b82525050565b5f6020820190506123ba5f830184612398565b92915050565b5f805f606084860312156123d7576123d6612296565b5b5f6123e4868287016122e0565b93505060206123f5868287016122e0565b925050604061240686828701612313565b9150509250925092565b5f60ff82169050919050565b61242581612410565b82525050565b5f60208201905061243e5f83018461241c565b92915050565b5f806040838503121561245a57612459612296565b5b5f61246785828601612313565b925050602061247885828601612313565b9150509250929050565b5f6020828403121561249757612496612296565b5b5f6124a4848285016122e0565b91505092915050565b6124b6816122b9565b82525050565b5f6020820190506124cf5f8301846124ad565b92915050565b5f6124df826122b9565b9050919050565b6124ef816124d5565b81146124f9575f80fd5b50565b5f8135905061250a816124e6565b92915050565b5f6020828403121561252557612524612296565b5b5f612532848285016124fc565b91505092915050565b5f806040838503121561255157612550612296565b5b5f61255e858286016122e0565b925050602061256f858286016122e0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125bd57607f821691505b6020821081036125d0576125cf612579565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61260d826122f4565b9150612618836122f4565b92508282019050808211156126305761262f6125d6565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61266a6020836121f6565b915061267582612636565b602082019050919050565b5f6020820190508181035f8301526126978161265e565b9050919050565b7f4e657720666565206d757374206265206c6f7765722e000000000000000000005f82015250565b5f6126d26016836121f6565b91506126dd8261269e565b602082019050919050565b5f6020820190508181035f8301526126ff816126c6565b9050919050565b5f819050919050565b5f819050919050565b5f61273261272d61272884612706565b61270f565b6122f4565b9050919050565b61274281612718565b82525050565b5f60c08201905061275b5f8301896124ad565b6127686020830188612398565b6127756040830187612739565b6127826060830186612739565b61278f60808301856124ad565b61279c60a0830184612398565b979650505050505050565b5f815190506127b5816122fd565b92915050565b5f805f606084860312156127d2576127d1612296565b5b5f6127df868287016127a7565b93505060206127f0868287016127a7565b9250506040612801868287016127a7565b9150509250925092565b5f81519050612819816122ca565b92915050565b5f6020828403121561283457612833612296565b5b5f6128418482850161280b565b91505092915050565b5f60408201905061285d5f8301856124ad565b61286a60208301846124ad565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6128cb6025836121f6565b91506128d682612871565b604082019050919050565b5f6020820190508181035f8301526128f8816128bf565b9050919050565b5f6020828403121561291457612913612296565b5b5f612921848285016127a7565b91505092915050565b5f60408201905061293d5f8301856124ad565b61294a6020830184612398565b9392505050565b61295a81612365565b8114612964575f80fd5b50565b5f8151905061297581612951565b92915050565b5f602082840312156129905761298f612296565b5b5f61299d84828501612967565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a006026836121f6565b9150612a0b826129a6565b604082019050919050565b5f6020820190508181035f830152612a2d816129f4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a8e6024836121f6565b9150612a9982612a34565b604082019050919050565b5f6020820190508181035f830152612abb81612a82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b1c6022836121f6565b9150612b2782612ac2565b604082019050919050565b5f6020820190508181035f830152612b4981612b10565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612b84601d836121f6565b9150612b8f82612b50565b602082019050919050565b5f6020820190508181035f830152612bb181612b78565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612c12602b836121f6565b9150612c1d82612bb8565b604082019050919050565b5f6020820190508181035f830152612c3f81612c06565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612ca06029836121f6565b9150612cab82612c46565b604082019050919050565b5f6020820190508181035f830152612ccd81612c94565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612d2e602a836121f6565b9150612d3982612cd4565b604082019050919050565b5f6020820190508181035f830152612d5b81612d22565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612d96601f836121f6565b9150612da182612d62565b602082019050919050565b5f6020820190508181035f830152612dc381612d8a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f612dfe6013836121f6565b9150612e0982612dca565b602082019050919050565b5f6020820190508181035f830152612e2b81612df2565b9050919050565b5f63ffffffff82169050919050565b5f612e4b82612e32565b915063ffffffff8203612e6157612e606125d6565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612ea06017836121f6565b9150612eab82612e6c565b602082019050919050565b5f6020820190508181035f830152612ecd81612e94565b9050919050565b5f612ede826122f4565b9150612ee9836122f4565b9250828202612ef7816122f4565b91508282048414831517612f0e57612f0d6125d6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f4c826122f4565b9150612f57836122f4565b925082612f6757612f66612f15565b5b828204905092915050565b5f612f7c826122f4565b9150612f87836122f4565b9250828203905081811115612f9f57612f9e6125d6565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612fff6025836121f6565b915061300a82612fa5565b604082019050919050565b5f6020820190508181035f83015261302c81612ff3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61308d6023836121f6565b915061309882613033565b604082019050919050565b5f6020820190508181035f8301526130ba81613081565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61311b6026836121f6565b9150613126826130c1565b604082019050919050565b5f6020820190508181035f8301526131488161310f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131db816122b9565b82525050565b5f6131ec83836131d2565b60208301905092915050565b5f602082019050919050565b5f61320e826131a9565b61321881856131b3565b9350613223836131c3565b805f5b8381101561325357815161323a88826131e1565b9750613245836131f8565b925050600181019050613226565b5085935050505092915050565b5f60a0820190506132735f830188612398565b6132806020830187612739565b81810360408301526132928186613204565b90506132a160608301856124ad565b6132ae6080830184612398565b969550505050505056fea2646970667358221220c57873bfd00d73d6656bcedf89405135ab0014d6c946931065082a2f960548e464736f6c63430008170033
Loading...
Loading
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.