ERC-20
Overview
Max Total Supply
100,000,000,000,000 DOGE420DOGE
Holders
16
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,383,921,338.042808261 DOGE420DOGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DOGE420DOGE
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-19 */ /* ⠀ ▄ ▄ ▌▒█ ▄▀▒▌ ▌▒▒█ ▄▀▒▒▒▐ ▐▄█▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐ ▄▄▀▒▒▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐ ▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌ ▐▒▒▒▄▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄▒▌ ▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐ ▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄▌ ▌░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒▌ ▌▒▒▒▄██▄▒▒▒▒▒▒▒▒░░░░░░░░▒▒▒▐ ▐▒▒▐▄█▄█▌▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▒▒▌ ▐▒▒▐▀▐▀▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▐ ▌▒▒▀▄▄▄▄▄▄▒▒▒▒▒▒▒▒░▒░▒░▒▒▒▌ ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒▒▄▒▒▐ ▀▄▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒▄▒▒▒▒▌ ▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀ ▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀ ▀▀▀▀▀▀▀▀▀▀▀▀ ⠀https://t.me/doge420doge⠀⠀ . M dM MMr 4MMML . MMMMM. xf . "MMMMM .MM- Mh.. +MMMMMM .MMMM .MMM. .MMMMML. MMMMMh )MMMh. MMMMMM MMMMMMM 3MMMMx. 'MMMMMMf xnMMMMMM" '*MMMMM MMMMMM. nMMMMMMP" *MMMMMx "MMMMM\ .MMMMMMM= *MMMMMh "MMMMM" JMMMMMMP MMMMMM 3MMMM. dMMMMMM . MMMMMM "MMMM .MMMMM( .nnMP" =.. *MMMMx MMM" dMMMM" .nnMMMMM* "MMn... 'MMMMr 'MM MMM" .nMMMMMMM*" "4MMMMnn.. *MMM MM MMP" .dMMMMMMM"" ^MMMMMMMMx. *ML "M .M* .MMMMMM**" *PMMMMMMhn. *x > M .MMMM**"" ""**MMMMhx/.h/ .=*" .3P"%.... nP" "*MMnx */ pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } 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 = address(0); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; 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 ); } contract DOGE420DOGE is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Doge420 Doge"; string private constant _symbol = "DOGE420DOGE"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Fee uint256 private _redisFeeOnBuy = 1; uint256 private _taxFeeOnBuy = 4; //Sell Fee uint256 private _redisFeeOnSell = 1; uint256 private _taxFeeOnSell = 4; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => bool) public preTrader; mapping(address => uint256) private cooldown; address payable private _opAddress = payable(0x155D37fCfDbc87653daeB42B9DC6501845da6bfa); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 2000000000000 * 10**9; //1 uint256 public _maxWalletSize = 4000000000000 * 10**9; //2 uint256 public _swapTokensAtAmount = 10000000000 * 10**9; //0.1 event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; // Uniswap V2 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_opAddress] = true; preTrader[owner()] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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 transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { 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 _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _opAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _opAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _opAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set MAx transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function allowPreTrading(address account, bool allowed) public onlyOwner { require(preTrader[account] != allowed, "TOKEN: Already enabled."); preTrader[account] = allowed; } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTxAmount","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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001c69152d02c7e14af6800000600019620003cf565b6200002a90600019620003ab565b6006556001600881905560046009819055600a829055600b819055600c829055600d819055600e91909155600f55601380546001600160a01b03191673155d37fcfdbc87653daeb42b9dc6501845da6bfa1790556015805461ffff60a81b1916600160b01b179055686c6b935b8bbd40000060165568d8d726b7177a800000601755678ac7230489e80000601855348015620000c557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200017e57600080fd5b505afa15801562000193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b991906200037b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020257600080fd5b505afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d91906200037b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028657600080fd5b505af11580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c191906200037b565b601580546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556013548616855282852080548216831790558454909516845260118352818420805490951617909355915169152d02c7e14af6800000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620003f0565b6000602082840312156200038d578081fd5b81516001600160a01b0381168114620003a4578182fd5b9392505050565b600082821015620003ca57634e487b7160e01b81526011600452602481fd5b500390565b600082620003eb57634e487b7160e01b81526012600452602481fd5b500690565b611c7280620004006000396000f3fe6080604052600436106101c55760003560e01c8063715018a6116100f757806398a5c31511610095578063bfd7928411610064578063bfd7928414610533578063c3c8cd8014610563578063dd62ed3e14610578578063ea1644d5146105be57600080fd5b806398a5c315146104a3578063a2a957bb146104c3578063a9059cbb146104e3578063bdd795ef1461050357600080fd5b80638da5cb5b116100d15780638da5cb5b1461041b5780638f70ccf7146104395780638f9a55c01461045957806395d89b411461046f57600080fd5b8063715018a6146103d057806374010ece146103e55780637d1db4a51461040557600080fd5b80632fd689e3116101645780636b9990531161013e5780636b9990531461035b5780636d8aa8f81461037b5780636fc3eaec1461039b57806370a08231146103b057600080fd5b80632fd689e314610309578063313ce5671461031f57806349bd5a5e1461033b57600080fd5b80631694505e116101a05780631694505e1461026a57806318160ddd146102a257806323b872dd146102c95780632f9c4569146102e957600080fd5b8062b8cf2a146101d157806306fdde03146101f3578063095ea7b31461023a57600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec366004611928565b6105de565b005b3480156101ff57600080fd5b5060408051808201909152600c81526b446f676534323020446f676560a01b60208201525b6040516102319190611a52565b60405180910390f35b34801561024657600080fd5b5061025a6102553660046118fd565b61068b565b6040519015158152602001610231565b34801561027657600080fd5b5060145461028a906001600160a01b031681565b6040516001600160a01b039091168152602001610231565b3480156102ae57600080fd5b5069152d02c7e14af68000005b604051908152602001610231565b3480156102d557600080fd5b5061025a6102e4366004611889565b6106a2565b3480156102f557600080fd5b506101f16103043660046118c9565b61070b565b34801561031557600080fd5b506102bb60185481565b34801561032b57600080fd5b5060405160098152602001610231565b34801561034757600080fd5b5060155461028a906001600160a01b031681565b34801561036757600080fd5b506101f1610376366004611819565b6107cf565b34801561038757600080fd5b506101f16103963660046119ef565b61081a565b3480156103a757600080fd5b506101f1610862565b3480156103bc57600080fd5b506102bb6103cb366004611819565b61088f565b3480156103dc57600080fd5b506101f16108b1565b3480156103f157600080fd5b506101f1610400366004611a09565b610925565b34801561041157600080fd5b506102bb60165481565b34801561042757600080fd5b506000546001600160a01b031661028a565b34801561044557600080fd5b506101f16104543660046119ef565b610954565b34801561046557600080fd5b506102bb60175481565b34801561047b57600080fd5b5060408051808201909152600b81526a444f4745343230444f474560a81b6020820152610224565b3480156104af57600080fd5b506101f16104be366004611a09565b61099c565b3480156104cf57600080fd5b506101f16104de366004611a21565b6109cb565b3480156104ef57600080fd5b5061025a6104fe3660046118fd565b610a09565b34801561050f57600080fd5b5061025a61051e366004611819565b60116020526000908152604090205460ff1681565b34801561053f57600080fd5b5061025a61054e366004611819565b60106020526000908152604090205460ff1681565b34801561056f57600080fd5b506101f1610a16565b34801561058457600080fd5b506102bb610593366004611851565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105ca57600080fd5b506101f16105d9366004611a09565b610a4c565b6000546001600160a01b031633146106115760405162461bcd60e51b815260040161060890611aa5565b60405180910390fd5b60005b81518110156106875760016010600084848151811061064357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061067f81611bb8565b915050610614565b5050565b6000610698338484610a7b565b5060015b92915050565b60006106af848484610b9f565b61070184336106fc85604051806060016040528060288152602001611c15602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110a2565b610a7b565b5060019392505050565b6000546001600160a01b031633146107355760405162461bcd60e51b815260040161060890611aa5565b6001600160a01b03821660009081526011602052604090205460ff16151581151514156107a45760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610608565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107f95760405162461bcd60e51b815260040161060890611aa5565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108445760405162461bcd60e51b815260040161060890611aa5565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b03161461088257600080fd5b4761088c816110dc565b50565b6001600160a01b03811660009081526002602052604081205461069c90611116565b6000546001600160a01b031633146108db5760405162461bcd60e51b815260040161060890611aa5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161060890611aa5565b601655565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260040161060890611aa5565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109c65760405162461bcd60e51b815260040161060890611aa5565b601855565b6000546001600160a01b031633146109f55760405162461bcd60e51b815260040161060890611aa5565b600893909355600a91909155600955600b55565b6000610698338484610b9f565b6013546001600160a01b0316336001600160a01b031614610a3657600080fd5b6000610a413061088f565b905061088c8161119a565b6000546001600160a01b03163314610a765760405162461bcd60e51b815260040161060890611aa5565b601755565b6001600160a01b038316610add5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610608565b6001600160a01b038216610b3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610608565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610608565b6001600160a01b038216610c655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610608565b60008111610cc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610608565b6000546001600160a01b03848116911614801590610cf357506000546001600160a01b03838116911614155b15610f9557601554600160a01b900460ff16610d97576001600160a01b03831660009081526011602052604090205460ff16610d975760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610608565b601654811115610de95760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610608565b6001600160a01b03831660009081526010602052604090205460ff16158015610e2b57506001600160a01b03821660009081526010602052604090205460ff16155b610e835760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610608565b6015546001600160a01b03838116911614610f085760175481610ea58461088f565b610eaf9190611b4a565b10610f085760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610608565b6000610f133061088f565b601854601654919250821015908210610f2c5760165491505b808015610f435750601554600160a81b900460ff16155b8015610f5d57506015546001600160a01b03868116911614155b8015610f725750601554600160b01b900460ff165b15610f9257610f808261119a565b478015610f9057610f90476110dc565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610fd757506001600160a01b03831660009081526005602052604090205460ff165b8061100957506015546001600160a01b0385811691161480159061100957506015546001600160a01b03848116911614155b1561101657506000611090565b6015546001600160a01b03858116911614801561104157506014546001600160a01b03848116911614155b1561105357600854600c55600954600d555b6015546001600160a01b03848116911614801561107e57506014546001600160a01b03858116911614155b1561109057600a54600c55600b54600d555b61109c8484848461133f565b50505050565b600081848411156110c65760405162461bcd60e51b81526004016106089190611a52565b5060006110d38486611ba1565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610687573d6000803e3d6000fd5b600060065482111561117d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610608565b600061118761136d565b90506111938382611390565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111f057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561124457600080fd5b505afa158015611258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127c9190611835565b8160018151811061129d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526014546112c39130911684610a7b565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112fc908590600090869030904290600401611ada565b600060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061134c5761134c6113d2565b611357848484611400565b8061109c5761109c600e54600c55600f54600d55565b600080600061137a6114f7565b90925090506113898282611390565b9250505090565b600061119383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061153b565b600c541580156113e25750600d54155b156113e957565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061141287611569565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061144490876115c6565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114739086611608565b6001600160a01b03891660009081526002602052604090205561149581611667565b61149f84836116b1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114e491815260200190565b60405180910390a3505050505050505050565b600654600090819069152d02c7e14af68000006115148282611390565b8210156115325750506006549269152d02c7e14af680000092509050565b90939092509050565b6000818361155c5760405162461bcd60e51b81526004016106089190611a52565b5060006110d38486611b62565b60008060008060008060008060006115868a600c54600d546116d5565b925092509250600061159661136d565b905060008060006115a98e87878761172a565b919e509c509a509598509396509194505050505091939550919395565b600061119383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110a2565b6000806116158385611b4a565b9050838110156111935760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610608565b600061167161136d565b9050600061167f838361177a565b3060009081526002602052604090205490915061169c9082611608565b30600090815260026020526040902055505050565b6006546116be90836115c6565b6006556007546116ce9082611608565b6007555050565b60008080806116ef60646116e9898961177a565b90611390565b9050600061170260646116e98a8961177a565b9050600061171a826117148b866115c6565b906115c6565b9992985090965090945050505050565b6000808080611739888661177a565b90506000611747888761177a565b90506000611755888861177a565b905060006117678261171486866115c6565b939b939a50919850919650505050505050565b6000826117895750600061069c565b60006117958385611b82565b9050826117a28583611b62565b146111935760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610608565b803561180481611bff565b919050565b8035801515811461180457600080fd5b60006020828403121561182a578081fd5b813561119381611bff565b600060208284031215611846578081fd5b815161119381611bff565b60008060408385031215611863578081fd5b823561186e81611bff565b9150602083013561187e81611bff565b809150509250929050565b60008060006060848603121561189d578081fd5b83356118a881611bff565b925060208401356118b881611bff565b929592945050506040919091013590565b600080604083850312156118db578182fd5b82356118e681611bff565b91506118f460208401611809565b90509250929050565b6000806040838503121561190f578182fd5b823561191a81611bff565b946020939093013593505050565b6000602080838503121561193a578182fd5b823567ffffffffffffffff80821115611951578384fd5b818501915085601f830112611964578384fd5b81358181111561197657611976611be9565b8060051b604051601f19603f8301168101818110858211171561199b5761199b611be9565b604052828152858101935084860182860187018a10156119b9578788fd5b8795505b838610156119e2576119ce816117f9565b8552600195909501949386019386016119bd565b5098975050505050505050565b600060208284031215611a00578081fd5b61119382611809565b600060208284031215611a1a578081fd5b5035919050565b60008060008060808587031215611a36578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b81811015611a7e57858101830151858201604001528201611a62565b81811115611a8f5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b295784516001600160a01b031683529383019391830191600101611b04565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611b5d57611b5d611bd3565b500190565b600082611b7d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611b9c57611b9c611bd3565b500290565b600082821015611bb357611bb3611bd3565b500390565b6000600019821415611bcc57611bcc611bd3565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088c57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205cad8a6b7c470f4f96e5e2325c6eabe323ffce0c61d429b350c6e5cbbe83f31764736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101c55760003560e01c8063715018a6116100f757806398a5c31511610095578063bfd7928411610064578063bfd7928414610533578063c3c8cd8014610563578063dd62ed3e14610578578063ea1644d5146105be57600080fd5b806398a5c315146104a3578063a2a957bb146104c3578063a9059cbb146104e3578063bdd795ef1461050357600080fd5b80638da5cb5b116100d15780638da5cb5b1461041b5780638f70ccf7146104395780638f9a55c01461045957806395d89b411461046f57600080fd5b8063715018a6146103d057806374010ece146103e55780637d1db4a51461040557600080fd5b80632fd689e3116101645780636b9990531161013e5780636b9990531461035b5780636d8aa8f81461037b5780636fc3eaec1461039b57806370a08231146103b057600080fd5b80632fd689e314610309578063313ce5671461031f57806349bd5a5e1461033b57600080fd5b80631694505e116101a05780631694505e1461026a57806318160ddd146102a257806323b872dd146102c95780632f9c4569146102e957600080fd5b8062b8cf2a146101d157806306fdde03146101f3578063095ea7b31461023a57600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec366004611928565b6105de565b005b3480156101ff57600080fd5b5060408051808201909152600c81526b446f676534323020446f676560a01b60208201525b6040516102319190611a52565b60405180910390f35b34801561024657600080fd5b5061025a6102553660046118fd565b61068b565b6040519015158152602001610231565b34801561027657600080fd5b5060145461028a906001600160a01b031681565b6040516001600160a01b039091168152602001610231565b3480156102ae57600080fd5b5069152d02c7e14af68000005b604051908152602001610231565b3480156102d557600080fd5b5061025a6102e4366004611889565b6106a2565b3480156102f557600080fd5b506101f16103043660046118c9565b61070b565b34801561031557600080fd5b506102bb60185481565b34801561032b57600080fd5b5060405160098152602001610231565b34801561034757600080fd5b5060155461028a906001600160a01b031681565b34801561036757600080fd5b506101f1610376366004611819565b6107cf565b34801561038757600080fd5b506101f16103963660046119ef565b61081a565b3480156103a757600080fd5b506101f1610862565b3480156103bc57600080fd5b506102bb6103cb366004611819565b61088f565b3480156103dc57600080fd5b506101f16108b1565b3480156103f157600080fd5b506101f1610400366004611a09565b610925565b34801561041157600080fd5b506102bb60165481565b34801561042757600080fd5b506000546001600160a01b031661028a565b34801561044557600080fd5b506101f16104543660046119ef565b610954565b34801561046557600080fd5b506102bb60175481565b34801561047b57600080fd5b5060408051808201909152600b81526a444f4745343230444f474560a81b6020820152610224565b3480156104af57600080fd5b506101f16104be366004611a09565b61099c565b3480156104cf57600080fd5b506101f16104de366004611a21565b6109cb565b3480156104ef57600080fd5b5061025a6104fe3660046118fd565b610a09565b34801561050f57600080fd5b5061025a61051e366004611819565b60116020526000908152604090205460ff1681565b34801561053f57600080fd5b5061025a61054e366004611819565b60106020526000908152604090205460ff1681565b34801561056f57600080fd5b506101f1610a16565b34801561058457600080fd5b506102bb610593366004611851565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105ca57600080fd5b506101f16105d9366004611a09565b610a4c565b6000546001600160a01b031633146106115760405162461bcd60e51b815260040161060890611aa5565b60405180910390fd5b60005b81518110156106875760016010600084848151811061064357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061067f81611bb8565b915050610614565b5050565b6000610698338484610a7b565b5060015b92915050565b60006106af848484610b9f565b61070184336106fc85604051806060016040528060288152602001611c15602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110a2565b610a7b565b5060019392505050565b6000546001600160a01b031633146107355760405162461bcd60e51b815260040161060890611aa5565b6001600160a01b03821660009081526011602052604090205460ff16151581151514156107a45760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610608565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107f95760405162461bcd60e51b815260040161060890611aa5565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108445760405162461bcd60e51b815260040161060890611aa5565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b03161461088257600080fd5b4761088c816110dc565b50565b6001600160a01b03811660009081526002602052604081205461069c90611116565b6000546001600160a01b031633146108db5760405162461bcd60e51b815260040161060890611aa5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161060890611aa5565b601655565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260040161060890611aa5565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146109c65760405162461bcd60e51b815260040161060890611aa5565b601855565b6000546001600160a01b031633146109f55760405162461bcd60e51b815260040161060890611aa5565b600893909355600a91909155600955600b55565b6000610698338484610b9f565b6013546001600160a01b0316336001600160a01b031614610a3657600080fd5b6000610a413061088f565b905061088c8161119a565b6000546001600160a01b03163314610a765760405162461bcd60e51b815260040161060890611aa5565b601755565b6001600160a01b038316610add5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610608565b6001600160a01b038216610b3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610608565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610608565b6001600160a01b038216610c655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610608565b60008111610cc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610608565b6000546001600160a01b03848116911614801590610cf357506000546001600160a01b03838116911614155b15610f9557601554600160a01b900460ff16610d97576001600160a01b03831660009081526011602052604090205460ff16610d975760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610608565b601654811115610de95760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610608565b6001600160a01b03831660009081526010602052604090205460ff16158015610e2b57506001600160a01b03821660009081526010602052604090205460ff16155b610e835760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610608565b6015546001600160a01b03838116911614610f085760175481610ea58461088f565b610eaf9190611b4a565b10610f085760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610608565b6000610f133061088f565b601854601654919250821015908210610f2c5760165491505b808015610f435750601554600160a81b900460ff16155b8015610f5d57506015546001600160a01b03868116911614155b8015610f725750601554600160b01b900460ff165b15610f9257610f808261119a565b478015610f9057610f90476110dc565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610fd757506001600160a01b03831660009081526005602052604090205460ff165b8061100957506015546001600160a01b0385811691161480159061100957506015546001600160a01b03848116911614155b1561101657506000611090565b6015546001600160a01b03858116911614801561104157506014546001600160a01b03848116911614155b1561105357600854600c55600954600d555b6015546001600160a01b03848116911614801561107e57506014546001600160a01b03858116911614155b1561109057600a54600c55600b54600d555b61109c8484848461133f565b50505050565b600081848411156110c65760405162461bcd60e51b81526004016106089190611a52565b5060006110d38486611ba1565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610687573d6000803e3d6000fd5b600060065482111561117d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610608565b600061118761136d565b90506111938382611390565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111f057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561124457600080fd5b505afa158015611258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127c9190611835565b8160018151811061129d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526014546112c39130911684610a7b565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112fc908590600090869030904290600401611ada565b600060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061134c5761134c6113d2565b611357848484611400565b8061109c5761109c600e54600c55600f54600d55565b600080600061137a6114f7565b90925090506113898282611390565b9250505090565b600061119383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061153b565b600c541580156113e25750600d54155b156113e957565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061141287611569565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061144490876115c6565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114739086611608565b6001600160a01b03891660009081526002602052604090205561149581611667565b61149f84836116b1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114e491815260200190565b60405180910390a3505050505050505050565b600654600090819069152d02c7e14af68000006115148282611390565b8210156115325750506006549269152d02c7e14af680000092509050565b90939092509050565b6000818361155c5760405162461bcd60e51b81526004016106089190611a52565b5060006110d38486611b62565b60008060008060008060008060006115868a600c54600d546116d5565b925092509250600061159661136d565b905060008060006115a98e87878761172a565b919e509c509a509598509396509194505050505091939550919395565b600061119383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110a2565b6000806116158385611b4a565b9050838110156111935760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610608565b600061167161136d565b9050600061167f838361177a565b3060009081526002602052604090205490915061169c9082611608565b30600090815260026020526040902055505050565b6006546116be90836115c6565b6006556007546116ce9082611608565b6007555050565b60008080806116ef60646116e9898961177a565b90611390565b9050600061170260646116e98a8961177a565b9050600061171a826117148b866115c6565b906115c6565b9992985090965090945050505050565b6000808080611739888661177a565b90506000611747888761177a565b90506000611755888861177a565b905060006117678261171486866115c6565b939b939a50919850919650505050505050565b6000826117895750600061069c565b60006117958385611b82565b9050826117a28583611b62565b146111935760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610608565b803561180481611bff565b919050565b8035801515811461180457600080fd5b60006020828403121561182a578081fd5b813561119381611bff565b600060208284031215611846578081fd5b815161119381611bff565b60008060408385031215611863578081fd5b823561186e81611bff565b9150602083013561187e81611bff565b809150509250929050565b60008060006060848603121561189d578081fd5b83356118a881611bff565b925060208401356118b881611bff565b929592945050506040919091013590565b600080604083850312156118db578182fd5b82356118e681611bff565b91506118f460208401611809565b90509250929050565b6000806040838503121561190f578182fd5b823561191a81611bff565b946020939093013593505050565b6000602080838503121561193a578182fd5b823567ffffffffffffffff80821115611951578384fd5b818501915085601f830112611964578384fd5b81358181111561197657611976611be9565b8060051b604051601f19603f8301168101818110858211171561199b5761199b611be9565b604052828152858101935084860182860187018a10156119b9578788fd5b8795505b838610156119e2576119ce816117f9565b8552600195909501949386019386016119bd565b5098975050505050505050565b600060208284031215611a00578081fd5b61119382611809565b600060208284031215611a1a578081fd5b5035919050565b60008060008060808587031215611a36578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b81811015611a7e57858101830151858201604001528201611a62565b81811115611a8f5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b295784516001600160a01b031683529383019391830191600101611b04565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611b5d57611b5d611bd3565b500190565b600082611b7d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611b9c57611b9c611bd3565b500290565b600082821015611bb357611bb3611bd3565b500390565b6000600019821415611bcc57611bcc611bd3565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088c57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205cad8a6b7c470f4f96e5e2325c6eabe323ffce0c61d429b350c6e5cbbe83f31764736f6c63430008040033
Deployed Bytecode Sourcemap
6418:13580:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15166:169;;;;;;;;;;-1:-1:-1;15166:169:0;;;;;:::i;:::-;;:::i;:::-;;9039:83;;;;;;;;;;-1:-1:-1;9109:5:0;;;;;;;;;;;;-1:-1:-1;;;9109:5:0;;;;9039:83;;;;;;;:::i;:::-;;;;;;;;9964:193;;;;;;;;;;-1:-1:-1;9964:193:0;;;;;:::i;:::-;;:::i;:::-;;;4725:14:1;;4718:22;4700:41;;4688:2;4673:18;9964:193:0;4655:92:1;7791:41:0;;;;;;;;;;-1:-1:-1;7791:41:0;;;;-1:-1:-1;;;;;7791:41:0;;;;;;-1:-1:-1;;;;;4516:32:1;;;4498:51;;4486:2;4471:18;7791:41:0;4453:102:1;9316:95:0;;;;;;;;;;-1:-1:-1;6983:23:0;9316:95;;;11247:25:1;;;11235:2;11220:18;9316:95:0;11202:76:1;10165:446:0;;;;;;;;;;-1:-1:-1;10165:446:0;;;;;:::i;:::-;;:::i;19799:196::-;;;;;;;;;;-1:-1:-1;19799:196:0;;;;;:::i;:::-;;:::i;8115:56::-;;;;;;;;;;;;;;;;9225:83;;;;;;;;;;-1:-1:-1;9225:83:0;;6657:1;12413:36:1;;12401:2;12386:18;9225:83:0;12368:87:1;7839:28:0;;;;;;;;;;-1:-1:-1;7839:28:0;;;;-1:-1:-1;;;;;7839:28:0;;;15343:92;;;;;;;;;;-1:-1:-1;15343:92:0;;;;;:::i;:::-;;:::i;19415:101::-;;;;;;;;;;-1:-1:-1;19415:101:0;;;;;:::i;:::-;;:::i;14969:189::-;;;;;;;;;;;;;:::i;9419:138::-;;;;;;;;;;-1:-1:-1;9419:138:0;;;;;:::i;:::-;;:::i;4159:148::-;;;;;;;;;;;;;:::i;19555:108::-;;;;;;;;;;-1:-1:-1;19555:108:0;;;;;:::i;:::-;;:::i;7989:51::-;;;;;;;;;;;;;;;;3945:79;;;;;;;;;;-1:-1:-1;3983:7:0;4010:6;-1:-1:-1;;;;;4010:6:0;3945:79;;14662:101;;;;;;;;;;-1:-1:-1;14662:101:0;;;;;:::i;:::-;;:::i;8051:53::-;;;;;;;;;;;;;;;;9130:87;;;;;;;;;;-1:-1:-1;9202:7:0;;;;;;;;;;;;-1:-1:-1;;;9202:7:0;;;;9130:87;;19220:139;;;;;;;;;;-1:-1:-1;19220:139:0;;;;;:::i;:::-;;:::i;18867:301::-;;;;;;;;;;-1:-1:-1;18867:301:0;;;;;:::i;:::-;;:::i;9565:199::-;;;;;;;;;;-1:-1:-1;9565:199:0;;;;;:::i;:::-;;:::i;7584:42::-;;;;;;;;;;-1:-1:-1;7584:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7541:36;;;;;;;;;;-1:-1:-1;7541:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14771:190;;;;;;;;;;;;;:::i;9772:184::-;;;;;;;;;;-1:-1:-1;9772:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9921:18:0;;;9889:7;9921:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9772:184;19675:115;;;;;;;;;;-1:-1:-1;19675:115:0;;;;;:::i;:::-;;:::i;15166:169::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;;;;;;;;;15242:9:::1;15237:91;15261:5;:12;15257:1;:16;15237:91;;;15312:4;15295;:14;15300:5;15306:1;15300:8;;;;;;-1:-1:-1::0;;;15300:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15295:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15295:14:0;:21;;-1:-1:-1;;15295:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15275:3;::::1;::::0;::::1;:::i;:::-;;;;15237:91;;;;15166:169:::0;:::o;9964:193::-;10066:4;10088:39;2784:10;10111:7;10120:6;10088:8;:39::i;:::-;-1:-1:-1;10145:4:0;9964:193;;;;;:::o;10165:446::-;10297:4;10314:36;10324:6;10332:9;10343:6;10314:9;:36::i;:::-;10361:220;10384:6;2784:10;10432:138;10488:6;10432:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10432:19:0;;;;;;:11;:19;;;;;;;;2784:10;10432:33;;;;;;;;;;:37;:138::i;:::-;10361:8;:220::i;:::-;-1:-1:-1;10599:4:0;10165:446;;;;;:::o;19799:196::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19891:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:29;;::::0;::::1;;;;19883:65;;;::::0;-1:-1:-1;;;19883:65:0;;8563:2:1;19883:65:0::1;::::0;::::1;8545:21:1::0;8602:2;8582:18;;;8575:30;8641:25;8621:18;;;8614:53;8684:18;;19883:65:0::1;8535:173:1::0;19883:65:0::1;-1:-1:-1::0;;;;;19959:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;19959:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19799:196::o;15343:92::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15407:12:0::1;15422:5;15407:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;15407:20:0::1;::::0;;15343:92::o;19415:101::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;19482:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19482:26:0::1;-1:-1:-1::0;;;;19482:26:0;;::::1;::::0;;;::::1;::::0;;19415:101::o;14969:189::-;15035:10;;-1:-1:-1;;;;;15035:10:0;2784;-1:-1:-1;;;;;15019:26:0;;15011:35;;;;;;15086:21;15118:32;15086:21;15118:12;:32::i;:::-;14969:189;:::o;9419:138::-;-1:-1:-1;;;;;9532:16:0;;9485:7;9532:16;;;:7;:16;;;;;;9512:37;;:19;:37::i;4159:148::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;4266:1:::1;4250:6:::0;;4229:40:::1;::::0;-1:-1:-1;;;;;4250:6:0;;::::1;::::0;4229:40:::1;::::0;4266:1;;4229:40:::1;4297:1;4280:19:::0;;-1:-1:-1;;;;;;4280:19:0::1;::::0;;4159:148::o;19555:108::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;19629:12:::1;:26:::0;19555:108::o;14662:101::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;14729:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;14729:26:0::1;-1:-1:-1::0;;;;14729:26:0;;::::1;::::0;;;::::1;::::0;;14662:101::o;19220:139::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;19311:19:::1;:40:::0;19220:139::o;18867:301::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;19001:14:::1;:30:::0;;;;19042:15:::1;:32:::0;;;;19095:12:::1;:26:::0;19132:13:::1;:28:::0;18867:301::o;9565:199::-;9670:4;9692:42;2784:10;9716:9;9727:6;9692:9;:42::i;14771:190::-;14837:10;;-1:-1:-1;;;;;14837:10:0;2784;-1:-1:-1;;;;;14821:26:0;;14813:35;;;;;;14859:23;14885:24;14903:4;14885:9;:24::i;:::-;14859:50;;14920:33;14937:15;14920:16;:33::i;19675:115::-;4072:6;;-1:-1:-1;;;;;4072:6:0;2784:10;4072:22;4064:67;;;;-1:-1:-1;;;4064:67:0;;;;;;;:::i;:::-;19752:14:::1;:30:::0;19675:115::o;11314:369::-;-1:-1:-1;;;;;11441:19:0;;11433:68;;;;-1:-1:-1;;;11433:68:0;;10898:2:1;11433:68:0;;;10880:21:1;10937:2;10917:18;;;10910:30;10976:34;10956:18;;;10949:62;-1:-1:-1;;;11027:18:1;;;11020:34;11071:19;;11433:68:0;10870:226:1;11433:68:0;-1:-1:-1;;;;;11520:21:0;;11512:68;;;;-1:-1:-1;;;11512:68:0;;7400:2:1;11512:68:0;;;7382:21:1;7439:2;7419:18;;;7412:30;7478:34;7458:18;;;7451:62;-1:-1:-1;;;7529:18:1;;;7522:32;7571:19;;11512:68:0;7372:224:1;11512:68:0;-1:-1:-1;;;;;11591:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11643:32;;11247:25:1;;;11643:32:0;;11220:18:1;11643:32:0;;;;;;;11314:369;;;:::o;11691:2372::-;-1:-1:-1;;;;;11813:18:0;;11805:68;;;;-1:-1:-1;;;11805:68:0;;10088:2:1;11805:68:0;;;10070:21:1;10127:2;10107:18;;;10100:30;10166:34;10146:18;;;10139:62;-1:-1:-1;;;10217:18:1;;;10210:35;10262:19;;11805:68:0;10060:227:1;11805:68:0;-1:-1:-1;;;;;11892:16:0;;11884:64;;;;-1:-1:-1;;;11884:64:0;;5796:2:1;11884:64:0;;;5778:21:1;5835:2;5815:18;;;5808:30;5874:34;5854:18;;;5847:62;-1:-1:-1;;;5925:18:1;;;5918:33;5968:19;;11884:64:0;5768:225:1;11884:64:0;11976:1;11967:6;:10;11959:64;;;;-1:-1:-1;;;11959:64:0;;9678:2:1;11959:64:0;;;9660:21:1;9717:2;9697:18;;;9690:30;9756:34;9736:18;;;9729:62;-1:-1:-1;;;9807:18:1;;;9800:39;9856:19;;11959:64:0;9650:231:1;11959:64:0;3983:7;4010:6;-1:-1:-1;;;;;12040:15:0;;;4010:6;;12040:15;;;;:32;;-1:-1:-1;3983:7:0;4010:6;-1:-1:-1;;;;;12059:13:0;;;4010:6;;12059:13;;12040:32;12036:1265;;;12141:11;;-1:-1:-1;;;12141:11:0;;;;12136:144;;-1:-1:-1;;;;;12181:15:0;;;;;;:9;:15;;;;;;;;12173:91;;;;-1:-1:-1;;;12173:91:0;;6200:2:1;12173:91:0;;;6182:21:1;6239:2;6219:18;;;6212:30;6278:34;6258:18;;;6251:62;6349:33;6329:18;;;6322:61;6400:19;;12173:91:0;6172:253:1;12173:91:0;12328:12;;12318:6;:22;;12310:63;;;;-1:-1:-1;;;12310:63:0;;7043:2:1;12310:63:0;;;7025:21:1;7082:2;7062:18;;;7055:30;7121;7101:18;;;7094:58;7169:18;;12310:63:0;7015:178:1;12310:63:0;-1:-1:-1;;;;;12397:10:0;;;;;;:4;:10;;;;;;;;12396:11;:24;;;;-1:-1:-1;;;;;;12412:8:0;;;;;;:4;:8;;;;;;;;12411:9;12396:24;12388:72;;;;-1:-1:-1;;;12388:72:0;;7803:2:1;12388:72:0;;;7785:21:1;7842:2;7822:18;;;7815:30;7881:34;7861:18;;;7854:62;-1:-1:-1;;;7932:18:1;;;7925:33;7975:19;;12388:72:0;7775:225:1;12388:72:0;12498:13;;-1:-1:-1;;;;;12492:19:0;;;12498:13;;12492:19;12489:146;;12565:14;;12556:6;12540:13;12550:2;12540:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12532:87;;;;-1:-1:-1;;;12532:87:0;;10494:2:1;12532:87:0;;;10476:21:1;10533:2;10513:18;;;10506:30;10572:34;10552:18;;;10545:62;-1:-1:-1;;;10623:18:1;;;10616:33;10666:19;;12532:87:0;10466:225:1;12532:87:0;12663:28;12694:24;12712:4;12694:9;:24::i;:::-;12772:19;;12835:12;;12663:55;;-1:-1:-1;12748:43:0;;;;12811:36;;12808:124;;12904:12;;12881:35;;12808:124;12964:7;:18;;;;-1:-1:-1;12976:6:0;;-1:-1:-1;;;12976:6:0;;;;12975:7;12964:18;:43;;;;-1:-1:-1;12994:13:0;;-1:-1:-1;;;;;12986:21:0;;;12994:13;;12986:21;;12964:43;:58;;;;-1:-1:-1;13011:11:0;;-1:-1:-1;;;13011:11:0;;;;12964:58;12960:330;;;13043:38;13060:20;13043:16;:38::i;:::-;13129:21;13173:22;;13169:106;;13220:35;13233:21;13220:12;:35::i;:::-;12960:330;;12036:1265;;;-1:-1:-1;;;;;13385:24:0;;13321:12;13385:24;;;:18;:24;;;;;;13336:4;;13385:24;;;:50;;-1:-1:-1;;;;;;13413:22:0;;;;;;:18;:22;;;;;;;;13385:50;13384:102;;;-1:-1:-1;13449:13:0;;-1:-1:-1;;;;;13441:21:0;;;13449:13;;13441:21;;;;:44;;-1:-1:-1;13472:13:0;;-1:-1:-1;;;;;13466:19:0;;;13472:13;;13466:19;;13441:44;13380:622;;;-1:-1:-1;13513:5:0;13380:622;;;13608:13;;-1:-1:-1;;;;;13600:21:0;;;13608:13;;13600:21;:55;;;;-1:-1:-1;13639:15:0;;-1:-1:-1;;;;;13625:30:0;;;13639:15;;13625:30;;13600:55;13597:162;;;13688:14;;13676:9;:26;13731:12;;13721:7;:22;13597:162;13822:13;;-1:-1:-1;;;;;13816:19:0;;;13822:13;;13816:19;:55;;;;-1:-1:-1;13855:15:0;;-1:-1:-1;;;;;13839:32:0;;;13855:15;;13839:32;;13816:55;13812:165;;;13904:15;;13892:9;:27;13948:13;;13938:7;:23;13812:165;14014:41;14029:4;14035:2;14039:6;14047:7;14014:14;:41::i;:::-;11691:2372;;;;:::o;4669:224::-;4789:7;4825:12;4817:6;;;;4809:29;;;;-1:-1:-1;;;4809:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4849:9:0;4861:5;4865:1;4861;:5;:::i;:::-;4849:17;4669:224;-1:-1:-1;;;;;4669:224:0:o;14562:92::-;14619:10;;:27;;-1:-1:-1;;;;;14619:10:0;;;;:27;;;;;14639:6;;14619:10;:27;:10;:27;14639:6;14619:10;:27;;;;;;;;;;;;;;;;;;;10619:323;10714:7;10772;;10761;:18;;10739:110;;;;-1:-1:-1;;;10739:110:0;;6632:2:1;10739:110:0;;;6614:21:1;6671:2;6651:18;;;6644:30;6710:34;6690:18;;;6683:62;-1:-1:-1;;;6761:18:1;;;6754:40;6811:19;;10739:110:0;6604:232:1;10739:110:0;10860:19;10882:10;:8;:10::i;:::-;10860:32;-1:-1:-1;10910:24:0;:7;10860:32;10910:11;:24::i;:::-;10903:31;10619:323;-1:-1:-1;;;10619:323:0:o;14071:483::-;8271:6;:13;;-1:-1:-1;;;;8271:13:0;-1:-1:-1;;;8271:13:0;;;14173:16:::1;::::0;;14187:1:::1;14173:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14173:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14173:16:0::1;14149:40;;14218:4;14200;14205:1;14200:7;;;;;;-1:-1:-1::0;;;14200:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14200:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14244:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14244:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14200:7;;14244:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14234:4;14239:1;14234:7;;;;;;-1:-1:-1::0;;;14234:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14234:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14309:15:::1;::::0;14277:62:::1;::::0;14294:4:::1;::::0;14309:15:::1;14327:11:::0;14277:8:::1;:62::i;:::-;14350:15;::::0;:196:::1;::::0;-1:-1:-1;;;14350:196:0;;-1:-1:-1;;;;;14350:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14431:11;;14350:15:::1;::::0;14473:4;;14500::::1;::::0;14520:15:::1;::::0;14350:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8307:6:0;:14;;-1:-1:-1;;;;8307:14:0;;;-1:-1:-1;;;;14071:483:0:o;15443:282::-;15599:7;15594:28;;15608:14;:12;:14::i;:::-;15633:44;15651:6;15659:9;15670:6;15633:17;:44::i;:::-;15693:7;15688:29;;15702:15;11245:17;;11233:9;:29;11283:15;;11273:7;:25;11189:117;18418:166;18460:7;18481:15;18498;18517:19;:17;:19::i;:::-;18480:56;;-1:-1:-1;18480:56:0;-1:-1:-1;18556:20:0;18480:56;;18556:11;:20::i;:::-;18549:27;;;;18418:166;:::o;5155:132::-;5213:7;5240:39;5244:1;5247;5240:39;;;;;;;;;;;;;;;;;:3;:39::i;10950:231::-;10997:9;;:14;:30;;;;-1:-1:-1;11015:7:0;;:12;10997:30;10993:43;;;10950:231::o;10993:43::-;11072:9;;;11052:17;:29;11110:7;;;11092:15;:25;-1:-1:-1;11138:13:0;;;;11162:11;10950:231::o;15733:610::-;15880:15;15910:23;15948:12;15975:23;16013:12;16040:13;16067:19;16078:7;16067:10;:19::i;:::-;-1:-1:-1;;;;;16115:15:0;;;;;;:7;:15;;;;;;15865:221;;-1:-1:-1;15865:221:0;;-1:-1:-1;15865:221:0;;-1:-1:-1;15865:221:0;-1:-1:-1;15865:221:0;-1:-1:-1;15865:221:0;-1:-1:-1;16115:28:0;;15865:221;16115:19;:28::i;:::-;-1:-1:-1;;;;;16097:15:0;;;;;;;:7;:15;;;;;;:46;;;;16175:18;;;;;;;:39;;16198:15;16175:22;:39::i;:::-;-1:-1:-1;;;;;16154:18:0;;;;;;:7;:18;;;;;:60;16225:16;16235:5;16225:9;:16::i;:::-;16252:23;16264:4;16270;16252:11;:23::i;:::-;16308:9;-1:-1:-1;;;;;16291:44:0;16300:6;-1:-1:-1;;;;;16291:44:0;;16319:15;16291:44;;;;11247:25:1;;11235:2;11220:18;;11202:76;16291:44:0;;;;;;;;15733:610;;;;;;;;;:::o;18592:263::-;18690:7;;18643;;;;6983:23;18758:20;18690:7;6983:23;18758:11;:20::i;:::-;18748:7;:30;18744:61;;;-1:-1:-1;;18788:7:0;;;6983:23;;-1:-1:-1;18592:263:0;-1:-1:-1;18592:263:0:o;18744:61::-;18830:7;;18839;;-1:-1:-1;18592:263:0;-1:-1:-1;18592:263:0:o;5295:223::-;5415:7;5450:12;5443:5;5435:28;;;;-1:-1:-1;;;5435:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5474:9:0;5486:5;5490:1;5486;:5;:::i;16762:625::-;16862:7;16884;16906;16928;16950;16972;17008:23;17033:12;17047:13;17077:40;17089:7;17098:9;;17109:7;;17077:11;:40::i;:::-;17007:110;;;;;;17128:19;17150:10;:8;:10::i;:::-;17128:32;;17172:15;17189:23;17214:12;17243:46;17255:7;17264:4;17270:5;17277:11;17243;:46::i;:::-;17171:118;;-1:-1:-1;17171:118:0;-1:-1:-1;17171:118:0;-1:-1:-1;17350:15:0;;-1:-1:-1;17367:4:0;;-1:-1:-1;17373:5:0;;-1:-1:-1;;;;;16762:625:0;;;;;;;:::o;4525:136::-;4583:7;4610:43;4614:1;4617;4610:43;;;;;;;;;;;;;;;;;:3;:43::i;4338:179::-;4396:7;;4428:5;4432:1;4428;:5;:::i;:::-;4416:17;;4457:1;4452;:6;;4444:46;;;;-1:-1:-1;;;4444:46:0;;8207:2:1;4444:46:0;;;8189:21:1;8246:2;8226:18;;;8219:30;8285:29;8265:18;;;8258:57;8332:18;;4444:46:0;8179:177:1;16351:211:0;16404:19;16426:10;:8;:10::i;:::-;16404:32;-1:-1:-1;16447:13:0;16463:22;:5;16404:32;16463:9;:22::i;:::-;16537:4;16521:22;;;;:7;:22;;;;;;16447:38;;-1:-1:-1;16521:33:0;;16447:38;16521:26;:33::i;:::-;16512:4;16496:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16351:211:0:o;16570:147::-;16648:7;;:17;;16660:4;16648:11;:17::i;:::-;16638:7;:27;16689:10;;:20;;16704:4;16689:14;:20::i;:::-;16676:10;:33;-1:-1:-1;;16570:147:0:o;17395:471::-;17564:7;;;;17658:30;17684:3;17658:21;:7;17670:8;17658:11;:21::i;:::-;:25;;:30::i;:::-;17643:45;-1:-1:-1;17699:13:0;17715:28;17739:3;17715:19;:7;17727:6;17715:11;:19::i;:28::-;17699:44;-1:-1:-1;17754:23:0;17780:28;17699:44;17780:17;:7;17792:4;17780:11;:17::i;:::-;:21;;:28::i;:::-;17754:54;17846:4;;-1:-1:-1;17852:5:0;;-1:-1:-1;17395:471:0;;-1:-1:-1;;;;;17395:471:0:o;17874:536::-;18068:7;;;;18165:24;:7;18177:11;18165;:24::i;:::-;18147:42;-1:-1:-1;18200:12:0;18215:21;:4;18224:11;18215:8;:21::i;:::-;18200:36;-1:-1:-1;18247:13:0;18263:22;:5;18273:11;18263:9;:22::i;:::-;18247:38;-1:-1:-1;18296:23:0;18322:28;18247:38;18322:17;:7;18334:4;18322:11;:17::i;:28::-;18371:7;;;;-1:-1:-1;18397:4:0;;-1:-1:-1;17874:536:0;;-1:-1:-1;;;;;;;17874:536:0:o;4901:246::-;4959:7;4983:6;4979:47;;-1:-1:-1;5013:1:0;5006:8;;4979:47;5036:9;5048:5;5052:1;5048;:5;:::i;:::-;5036:17;-1:-1:-1;5081:1:0;5072:5;5076:1;5036:17;5072:5;:::i;:::-;:10;5064:56;;;;-1:-1:-1;;;5064:56:0;;8915:2:1;5064:56:0;;;8897:21:1;8954:2;8934:18;;;8927:30;8993:34;8973:18;;;8966:62;-1:-1:-1;;;9044:18:1;;;9037:31;9085:19;;5064:56:0;8887:223:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:2;;303:1;300;293:12;318:257;377:6;430:2;418:9;409:7;405:23;401:32;398:2;;;451:6;443;436:22;398:2;495:9;482:23;514:31;539:5;514:31;:::i;580:261::-;650:6;703:2;691:9;682:7;678:23;674:32;671:2;;;724:6;716;709:22;671:2;761:9;755:16;780:31;805:5;780:31;:::i;846:398::-;914:6;922;975:2;963:9;954:7;950:23;946:32;943:2;;;996:6;988;981:22;943:2;1040:9;1027:23;1059:31;1084:5;1059:31;:::i;:::-;1109:5;-1:-1:-1;1166:2:1;1151:18;;1138:32;1179:33;1138:32;1179:33;:::i;:::-;1231:7;1221:17;;;933:311;;;;;:::o;1249:466::-;1326:6;1334;1342;1395:2;1383:9;1374:7;1370:23;1366:32;1363:2;;;1416:6;1408;1401:22;1363:2;1460:9;1447:23;1479:31;1504:5;1479:31;:::i;:::-;1529:5;-1:-1:-1;1586:2:1;1571:18;;1558:32;1599:33;1558:32;1599:33;:::i;:::-;1353:362;;1651:7;;-1:-1:-1;;;1705:2:1;1690:18;;;;1677:32;;1353:362::o;1720:325::-;1785:6;1793;1846:2;1834:9;1825:7;1821:23;1817:32;1814:2;;;1867:6;1859;1852:22;1814:2;1911:9;1898:23;1930:31;1955:5;1930:31;:::i;:::-;1980:5;-1:-1:-1;2004:35:1;2035:2;2020:18;;2004:35;:::i;:::-;1994:45;;1804:241;;;;;:::o;2050:325::-;2118:6;2126;2179:2;2167:9;2158:7;2154:23;2150:32;2147:2;;;2200:6;2192;2185:22;2147:2;2244:9;2231:23;2263:31;2288:5;2263:31;:::i;:::-;2313:5;2365:2;2350:18;;;;2337:32;;-1:-1:-1;;;2137:238:1:o;2380:1177::-;2464:6;2495:2;2538;2526:9;2517:7;2513:23;2509:32;2506:2;;;2559:6;2551;2544:22;2506:2;2604:9;2591:23;2633:18;2674:2;2666:6;2663:14;2660:2;;;2695:6;2687;2680:22;2660:2;2738:6;2727:9;2723:22;2713:32;;2783:7;2776:4;2772:2;2768:13;2764:27;2754:2;;2810:6;2802;2795:22;2754:2;2851;2838:16;2873:2;2869;2866:10;2863:2;;;2879:18;;:::i;:::-;2925:2;2922:1;2918:10;2957:2;2951:9;3020:2;3016:7;3011:2;3007;3003:11;2999:25;2991:6;2987:38;3075:6;3063:10;3060:22;3055:2;3043:10;3040:18;3037:46;3034:2;;;3086:18;;:::i;:::-;3122:2;3115:22;3172:18;;;3206:15;;;;-1:-1:-1;3241:11:1;;;3271;;;3267:20;;3264:33;-1:-1:-1;3261:2:1;;;3315:6;3307;3300:22;3261:2;3342:6;3333:15;;3357:169;3371:2;3368:1;3365:9;3357:169;;;3428:23;3447:3;3428:23;:::i;:::-;3416:36;;3389:1;3382:9;;;;;3472:12;;;;3504;;3357:169;;;-1:-1:-1;3545:6:1;2475:1082;-1:-1:-1;;;;;;;;2475:1082:1:o;3562:190::-;3618:6;3671:2;3659:9;3650:7;3646:23;3642:32;3639:2;;;3692:6;3684;3677:22;3639:2;3720:26;3736:9;3720:26;:::i;3757:190::-;3816:6;3869:2;3857:9;3848:7;3844:23;3840:32;3837:2;;;3890:6;3882;3875:22;3837:2;-1:-1:-1;3918:23:1;;3827:120;-1:-1:-1;3827:120:1:o;3952:395::-;4038:6;4046;4054;4062;4115:3;4103:9;4094:7;4090:23;4086:33;4083:2;;;4137:6;4129;4122:22;4083:2;-1:-1:-1;;4165:23:1;;;4235:2;4220:18;;4207:32;;-1:-1:-1;4286:2:1;4271:18;;4258:32;;4337:2;4322:18;4309:32;;-1:-1:-1;4073:274:1;-1:-1:-1;4073:274:1:o;4986:603::-;5098:4;5127:2;5156;5145:9;5138:21;5188:6;5182:13;5231:6;5226:2;5215:9;5211:18;5204:34;5256:4;5269:140;5283:6;5280:1;5277:13;5269:140;;;5378:14;;;5374:23;;5368:30;5344:17;;;5363:2;5340:26;5333:66;5298:10;;5269:140;;;5427:6;5424:1;5421:13;5418:2;;;5497:4;5492:2;5483:6;5472:9;5468:22;5464:31;5457:45;5418:2;-1:-1:-1;5573:2:1;5552:15;-1:-1:-1;;5548:29:1;5533:45;;;;5580:2;5529:54;;5107:482;-1:-1:-1;;;5107:482:1:o;9115:356::-;9317:2;9299:21;;;9336:18;;;9329:30;9395:34;9390:2;9375:18;;9368:62;9462:2;9447:18;;9289:182::o;11283:983::-;11545:4;11593:3;11582:9;11578:19;11624:6;11613:9;11606:25;11650:2;11688:6;11683:2;11672:9;11668:18;11661:34;11731:3;11726:2;11715:9;11711:18;11704:31;11755:6;11790;11784:13;11821:6;11813;11806:22;11859:3;11848:9;11844:19;11837:26;;11898:2;11890:6;11886:15;11872:29;;11919:4;11932:195;11946:6;11943:1;11940:13;11932:195;;;12011:13;;-1:-1:-1;;;;;12007:39:1;11995:52;;12102:15;;;;12067:12;;;;12043:1;11961:9;11932:195;;;-1:-1:-1;;;;;;;12183:32:1;;;;12178:2;12163:18;;12156:60;-1:-1:-1;;;12247:3:1;12232:19;12225:35;12144:3;11554:712;-1:-1:-1;;;11554:712:1:o;12460:128::-;12500:3;12531:1;12527:6;12524:1;12521:13;12518:2;;;12537:18;;:::i;:::-;-1:-1:-1;12573:9:1;;12508:80::o;12593:217::-;12633:1;12659;12649:2;;-1:-1:-1;;;12684:31:1;;12738:4;12735:1;12728:15;12766:4;12691:1;12756:15;12649:2;-1:-1:-1;12795:9:1;;12639:171::o;12815:168::-;12855:7;12921:1;12917;12913:6;12909:14;12906:1;12903:21;12898:1;12891:9;12884:17;12880:45;12877:2;;;12928:18;;:::i;:::-;-1:-1:-1;12968:9:1;;12867:116::o;12988:125::-;13028:4;13056:1;13053;13050:8;13047:2;;;13061:18;;:::i;:::-;-1:-1:-1;13098:9:1;;13037:76::o;13118:135::-;13157:3;-1:-1:-1;;13178:17:1;;13175:2;;;13198:18;;:::i;:::-;-1:-1:-1;13245:1:1;13234:13;;13165:88::o;13258:127::-;13319:10;13314:3;13310:20;13307:1;13300:31;13350:4;13347:1;13340:15;13374:4;13371:1;13364:15;13390:127;13451:10;13446:3;13442:20;13439:1;13432:31;13482:4;13479:1;13472:15;13506:4;13503:1;13496:15;13522:131;-1:-1:-1;;;;;13597:31:1;;13587:42;;13577:2;;13643:1;13640;13633:12
Swarm Source
ipfs://5cad8a6b7c470f4f96e5e2325c6eabe323ffce0c61d429b350c6e5cbbe83f317
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.