ERC-20
Overview
Max Total Supply
1,000,000,000 PINKGUY
Holders
14
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
7,263,708.113752007775457185 PINKGUYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PapaFranku
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-18 */ // https://t.me/papafranku_eth // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.15; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { 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; } contract PapaFranku is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; bool public tradingActive = false; bool public limitsInEffect = true; uint256 public swapTokensAtAmount; uint256 public maxTransactionAmount; uint256 public maxWallet; address public marketingWallet; uint256 public buyTotalFees; uint256 private buyMarketingFee; uint256 private buyLiquidityFee; uint256 public sellTotalFees; uint256 private sellMarketingFee; uint256 private sellLiquidityFee; uint256 private tokensForMarketing; uint256 private tokensForLiquidity; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquidity(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity); constructor() ERC20("Papa Franku", "PINKGUY", 18) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 1000000000 * 10**decimals(); maxWallet = maxTransactionAmount = (totalSupply * 2) / 100; swapTokensAtAmount = (totalSupply * 1) / 1000; marketingWallet = _msgSender(); buyMarketingFee = 3; buyLiquidityFee = 7; buyTotalFees = buyMarketingFee + buyLiquidityFee; sellMarketingFee = 10; sellLiquidityFee = 23; sellTotalFees = sellMarketingFee + sellLiquidityFee; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(deadAddress, true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(deadAddress, true); _mint(_msgSender(), totalSupply); } receive() external payable {} function startTrading() external onlyOwner { require(tradingActive == false, "The trading has been started."); tradingActive = true; } function removeLimits() external onlyOwner { require(limitsInEffect == true, "The limits has been removed."); limitsInEffect = false; } function updateFee(uint256 _buyMarketingFee, uint256 _buyLiquidityFee, uint256 _sellMarketingFee, uint256 _sellLiquidityFee) external onlyOwner { buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyTotalFees = buyMarketingFee + buyLiquidityFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellTotalFees = sellMarketingFee + sellLiquidityFee; } function updateMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = _marketingWallet; } function excludeFromMaxTransaction(address account, bool excluded) public onlyOwner { _isExcludedMaxTransactionAmount[account] = excluded; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address."); require(to != address(0), "ERC20: transfer to the zero address."); require(amount > 0, "ERC20: Transfer amount must be greater than zero."); if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (tradingActive == false) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "ERC20: Trading is not active."); } if (limitsInEffect == true) { if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "ERC20: Buy transfer amount exceeds the max transaction amount."); require(amount + balanceOf(to) <= maxWallet, "ERC20: Max wallet exceeded."); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "ERC20: Sell transfer amount exceeds the max transaction amount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "ERC20: Max wallet exceeded."); } } } bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { 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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, deadAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquidity( amountToSwapForETH, ethForLiquidity, tokensForLiquidity ); } (success, ) = address(marketingWallet).call{value: address(this).balance}(""); } }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquidity","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":[{"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":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTransaction","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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526005805461ffff60b01b1916600160b81b1790553480156200002557600080fd5b506040518060400160405280600b81526020016a50617061204672616e6b7560a81b8152506040518060400160405280600781526020016650494e4b47555960c81b815250601282600390816200007d9190620006ca565b5060046200008c8382620006ca565b506005805460ff191660ff9290921691909117905550620000b69050620000b03390565b620003aa565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000d881600162000404565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000123573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000149919062000796565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000197573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bd919062000796565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000231919062000796565b6001600160a01b031660a08190526200024c90600162000404565b60a0516200025c90600162000439565b60006200026b60055460ff1690565b6200027890600a620008dd565b6200028890633b9aca00620008ee565b9050606462000299826002620008ee565b620002a5919062000910565b60078190556008556103e8620002bd826001620008ee565b620002c9919062000910565b600655600980546001600160a01b031916331790556003600b8190556007600c819055620002f79162000933565b600a908155600e8190556017600f819055620003139162000933565b600d556200033a6200033260055461010090046001600160a01b031690565b60016200048d565b620003473060016200048d565b6200035661dead60016200048d565b6200037a6200037260055461010090046001600160a01b031690565b600162000404565b6200038730600162000404565b6200039661dead600162000404565b620003a23382620004f6565b50506200094e565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200040e620005bd565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b62000497620005bd565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b806002600082825462000566919062000933565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b036101009091041633146200061f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000549565b565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200065157607f821691505b6020821081036200067257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200062157600081815260208120601f850160051c81016020861015620006a15750805b601f850160051c820191505b81811015620006c257828155600101620006ad565b505050505050565b81516001600160401b03811115620006e657620006e662000626565b620006fe81620006f784546200063c565b8462000678565b602080601f8311600181146200073657600084156200071d5750858301515b600019600386901b1c1916600185901b178555620006c2565b600085815260208120601f198616915b82811015620007675788860151825594840194600190910190840162000746565b5085821015620007865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007a957600080fd5b81516001600160a01b0381168114620007c157600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200081f578160001904821115620008035762000803620007c8565b808516156200081157918102915b93841c9390800290620007e3565b509250929050565b6000826200083857506001620008d7565b816200084757506000620008d7565b81600181146200086057600281146200086b576200088b565b6001915050620008d7565b60ff8411156200087f576200087f620007c8565b50506001821b620008d7565b5060208310610133831016604e8410600b8410161715620008b0575081810a620008d7565b620008bc8383620007de565b8060001904821115620008d357620008d3620007c8565b0290505b92915050565b6000620007c160ff84168362000827565b60008160001904831182151516156200090b576200090b620007c8565b500290565b6000826200092e57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620009495762000949620007c8565b500190565b60805160a051611d7962000997600039600061034f015260008181610255015281816117dd01528181611896015281816118d20152818161194401526119a10152611d796000f3fe6080604052600436106101dc5760003560e01c80637571336a11610102578063c024666811610095578063e2f4560511610064578063e2f456051461056d578063ea9fae8014610583578063f2fde38b146105a3578063f8b45b05146105c357600080fd5b8063c024666814610501578063c8c8ebe414610521578063d85ba06314610537578063dd62ed3e1461054d57600080fd5b8063a457c2d7116100d1578063a457c2d714610480578063a9059cbb146104a0578063aacebbe3146104c0578063bbc0c742146104e057600080fd5b80637571336a1461040857806375f0a874146104285780638da5cb5b1461044857806395d89b411461046b57600080fd5b8063313ce5671161017a5780636a486a8e116101495780636a486a8e1461039257806370a08231146103a8578063715018a6146103de578063751039fc146103f357600080fd5b8063313ce567146102fb578063395093511461031d57806349bd5a5e1461033d5780634a62bb651461037157600080fd5b806318160ddd116101b657806318160ddd1461028f57806323b872dd146102ae57806327c8f835146102ce578063293230b8146102e457600080fd5b806306fdde03146101e8578063095ea7b3146102135780631694505e1461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6105d9565b60405161020a9190611a1f565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611a89565b61066b565b604051901515815260200161020a565b34801561024f57600080fd5b506102777f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020a565b34801561029b57600080fd5b506002545b60405190815260200161020a565b3480156102ba57600080fd5b506102336102c9366004611ab5565b610683565b3480156102da57600080fd5b5061027761dead81565b3480156102f057600080fd5b506102f96106a7565b005b34801561030757600080fd5b5060055460405160ff909116815260200161020a565b34801561032957600080fd5b50610233610338366004611a89565b610723565b34801561034957600080fd5b506102777f000000000000000000000000000000000000000000000000000000000000000081565b34801561037d57600080fd5b5060055461023390600160b81b900460ff1681565b34801561039e57600080fd5b506102a0600d5481565b3480156103b457600080fd5b506102a06103c3366004611af6565b6001600160a01b031660009081526020819052604090205490565b3480156103ea57600080fd5b506102f9610745565b3480156103ff57600080fd5b506102f9610759565b34801561041457600080fd5b506102f9610423366004611b13565b6107ce565b34801561043457600080fd5b50600954610277906001600160a01b031681565b34801561045457600080fd5b5060055461010090046001600160a01b0316610277565b34801561047757600080fd5b506101fd610801565b34801561048c57600080fd5b5061023361049b366004611a89565b610810565b3480156104ac57600080fd5b506102336104bb366004611a89565b61088b565b3480156104cc57600080fd5b506102f96104db366004611af6565b610899565b3480156104ec57600080fd5b5060055461023390600160b01b900460ff1681565b34801561050d57600080fd5b506102f961051c366004611b13565b6108c3565b34801561052d57600080fd5b506102a060075481565b34801561054357600080fd5b506102a0600a5481565b34801561055957600080fd5b506102a0610568366004611b51565b61092a565b34801561057957600080fd5b506102a060065481565b34801561058f57600080fd5b506102f961059e366004611b7f565b610955565b3480156105af57600080fd5b506102f96105be366004611af6565b610991565b3480156105cf57600080fd5b506102a060085481565b6060600380546105e890611bb1565b80601f016020809104026020016040519081016040528092919081815260200182805461061490611bb1565b80156106615780601f1061063657610100808354040283529160200191610661565b820191906000526020600020905b81548152906001019060200180831161064457829003601f168201915b5050505050905090565b600033610679818585610a0a565b5060019392505050565b600033610691858285610b2e565b61069c858585610ba8565b506001949350505050565b6106af611354565b600554600160b01b900460ff161561070e5760405162461bcd60e51b815260206004820152601d60248201527f5468652074726164696e6720686173206265656e20737461727465642e00000060448201526064015b60405180910390fd5b6005805460ff60b01b1916600160b01b179055565b600033610679818585610736838361092a565b6107409190611c01565b610a0a565b61074d611354565b61075760006113b4565b565b610761611354565b600554600160b81b900460ff1615156001146107bf5760405162461bcd60e51b815260206004820152601c60248201527f546865206c696d69747320686173206265656e2072656d6f7665642e000000006044820152606401610705565b6005805460ff60b81b19169055565b6107d6611354565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6060600480546105e890611bb1565b6000338161081e828661092a565b90508381101561087e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610705565b61069c8286868403610a0a565b600033610679818585610ba8565b6108a1611354565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6108cb611354565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61095d611354565b600b849055600c8390556109718385611c01565b600a55600e829055600f8190556109888183611c01565b600d5550505050565b610999611354565b6001600160a01b0381166109fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610705565b610a07816113b4565b50565b6001600160a01b038316610a6c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610acd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610b3a848461092a565b90506000198114610ba25781811015610b955760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610705565b610ba28484848403610a0a565b50505050565b6001600160a01b038316610c0d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b6064820152608401610705565b6001600160a01b038216610c6f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b6064820152608401610705565b60008111610cd95760405162461bcd60e51b815260206004820152603160248201527f45524332303a205472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b6064820152608401610705565b6005546001600160a01b038481166101009092041614801590610d0f57506005546001600160a01b038381166101009092041614155b8015610d2357506001600160a01b03821615155b8015610d3a57506001600160a01b03821661dead14155b8015610d505750600554600160a81b900460ff16155b1561109557600554600160b01b900460ff161515600003610df6576001600160a01b03831660009081526012602052604090205460ff1680610daa57506001600160a01b03821660009081526012602052604090205460ff165b610df65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610705565b600554600160b81b900460ff161515600103611095576001600160a01b03831660009081526014602052604090205460ff168015610e4d57506001600160a01b03821660009081526013602052604090205460ff16155b15610f4357600754811115610eca5760405162461bcd60e51b815260206004820152603e60248201527f45524332303a20427579207472616e7366657220616d6f756e7420657863656560448201527f647320746865206d6178207472616e73616374696f6e20616d6f756e742e00006064820152608401610705565b6008546001600160a01b038316600090815260208190526040902054610ef09083611c01565b1115610f3e5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204d61782077616c6c65742065786365656465642e00000000006044820152606401610705565b611095565b6001600160a01b03821660009081526014602052604090205460ff168015610f8457506001600160a01b03831660009081526013602052604090205460ff16155b1561100157600754811115610f3e5760405162461bcd60e51b815260206004820152603f60248201527f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560448201527f65647320746865206d6178207472616e73616374696f6e20616d6f756e742e006064820152608401610705565b6001600160a01b03821660009081526013602052604090205460ff16611095576008546001600160a01b0383166000908152602081905260409020546110479083611c01565b11156110955760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204d61782077616c6c65742065786365656465642e00000000006044820152606401610705565b600654306000908152602081905260409020541080159081906110c25750600554600160a81b900460ff16155b80156110e757506001600160a01b03841660009081526014602052604090205460ff16155b801561110c57506001600160a01b03841660009081526012602052604090205460ff16155b801561113157506001600160a01b03831660009081526012602052604090205460ff16155b1561115f576005805460ff60a81b1916600160a81b17905561115161140e565b6005805460ff60a81b191690555b6005546001600160a01b03851660009081526012602052604090205460ff600160a81b9092048216159116806111ad57506001600160a01b03841660009081526012602052604090205460ff165b156111b6575060005b60008115611341576001600160a01b03851660009081526014602052604090205460ff1680156111e857506000600d54115b156112765761120d6064611207600d54876115b790919063ffffffff16565b906115ca565b9050600d54600f54826112209190611c19565b61122a9190611c38565b6011600082825461123b9190611c01565b9091555050600d54600e546112509083611c19565b61125a9190611c38565b6010600082825461126b9190611c01565b909155506113239050565b6001600160a01b03861660009081526014602052604090205460ff1680156112a057506000600a54115b15611323576112bf6064611207600a54876115b790919063ffffffff16565b9050600a54600c54826112d29190611c19565b6112dc9190611c38565b601160008282546112ed9190611c01565b9091555050600a54600b546113029083611c19565b61130c9190611c38565b6010600082825461131d9190611c01565b90915550505b8015611334576113348630836115d6565b61133e8185611c5a565b93505b61134c8686866115d6565b505050505050565b6005546001600160a01b036101009091041633146107575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610705565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b30600090815260208190526040812054905060006010546011546114329190611c01565b90506000821580611441575081155b1561144b57505050565b600654611459906014611c19565b8311156114715760065461146e906014611c19565b92505b6000600283601154866114849190611c19565b61148e9190611c38565b6114989190611c38565b905060006114a6858361177a565b9050476114b282611786565b60006114be478361177a565b905060006114db87611207601054856115b790919063ffffffff16565b905060006114e98284611c5a565b60006011819055601055905085158015906115045750600081115b1561155757611513868261193e565b601154604080518781526020810184905280820192909252517f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb9181900360600190a15b6009546040516001600160a01b03909116904790600081818185875af1925050503d80600081146115a4576040519150601f19603f3d011682016040523d82523d6000602084013e6115a9565b606091505b505050505050505050505050565b60006115c38284611c19565b9392505050565b60006115c38284611c38565b6001600160a01b03831661163a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b03821661169c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b6001600160a01b038316600090815260208190526040902054818110156117145760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610705565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ba2565b60006115c38284611c5a565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117bb576117bb611c71565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190611c87565b8160018151811061187057611870611c71565b60200260200101906001600160a01b031690816001600160a01b0316815250506118bb307f000000000000000000000000000000000000000000000000000000000000000084610a0a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611910908590600090869030904290600401611ca4565b600060405180830381600087803b15801561192a57600080fd5b505af115801561134c573d6000803e3d6000fd5b611969307f000000000000000000000000000000000000000000000000000000000000000084610a0a565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156119f3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a189190611d15565b5050505050565b600060208083528351808285015260005b81811015611a4c57858101830151858201604001528201611a30565b81811115611a5e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a0757600080fd5b60008060408385031215611a9c57600080fd5b8235611aa781611a74565b946020939093013593505050565b600080600060608486031215611aca57600080fd5b8335611ad581611a74565b92506020840135611ae581611a74565b929592945050506040919091013590565b600060208284031215611b0857600080fd5b81356115c381611a74565b60008060408385031215611b2657600080fd5b8235611b3181611a74565b915060208301358015158114611b4657600080fd5b809150509250929050565b60008060408385031215611b6457600080fd5b8235611b6f81611a74565b91506020830135611b4681611a74565b60008060008060808587031215611b9557600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c90821680611bc557607f821691505b602082108103611be557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c1457611c14611beb565b500190565b6000816000190483118215151615611c3357611c33611beb565b500290565b600082611c5557634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611c6c57611c6c611beb565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c9957600080fd5b81516115c381611a74565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cf45784516001600160a01b031683529383019391830191600101611ccf565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d2a57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208bd9591933bf31d7569233e3957aa788c520767256918ce4605bd4eedbd39a8d64736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c80637571336a11610102578063c024666811610095578063e2f4560511610064578063e2f456051461056d578063ea9fae8014610583578063f2fde38b146105a3578063f8b45b05146105c357600080fd5b8063c024666814610501578063c8c8ebe414610521578063d85ba06314610537578063dd62ed3e1461054d57600080fd5b8063a457c2d7116100d1578063a457c2d714610480578063a9059cbb146104a0578063aacebbe3146104c0578063bbc0c742146104e057600080fd5b80637571336a1461040857806375f0a874146104285780638da5cb5b1461044857806395d89b411461046b57600080fd5b8063313ce5671161017a5780636a486a8e116101495780636a486a8e1461039257806370a08231146103a8578063715018a6146103de578063751039fc146103f357600080fd5b8063313ce567146102fb578063395093511461031d57806349bd5a5e1461033d5780634a62bb651461037157600080fd5b806318160ddd116101b657806318160ddd1461028f57806323b872dd146102ae57806327c8f835146102ce578063293230b8146102e457600080fd5b806306fdde03146101e8578063095ea7b3146102135780631694505e1461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6105d9565b60405161020a9190611a1f565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611a89565b61066b565b604051901515815260200161020a565b34801561024f57600080fd5b506102777f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161020a565b34801561029b57600080fd5b506002545b60405190815260200161020a565b3480156102ba57600080fd5b506102336102c9366004611ab5565b610683565b3480156102da57600080fd5b5061027761dead81565b3480156102f057600080fd5b506102f96106a7565b005b34801561030757600080fd5b5060055460405160ff909116815260200161020a565b34801561032957600080fd5b50610233610338366004611a89565b610723565b34801561034957600080fd5b506102777f000000000000000000000000218ae1d1fa9503f86494ed65196e53c104055f6481565b34801561037d57600080fd5b5060055461023390600160b81b900460ff1681565b34801561039e57600080fd5b506102a0600d5481565b3480156103b457600080fd5b506102a06103c3366004611af6565b6001600160a01b031660009081526020819052604090205490565b3480156103ea57600080fd5b506102f9610745565b3480156103ff57600080fd5b506102f9610759565b34801561041457600080fd5b506102f9610423366004611b13565b6107ce565b34801561043457600080fd5b50600954610277906001600160a01b031681565b34801561045457600080fd5b5060055461010090046001600160a01b0316610277565b34801561047757600080fd5b506101fd610801565b34801561048c57600080fd5b5061023361049b366004611a89565b610810565b3480156104ac57600080fd5b506102336104bb366004611a89565b61088b565b3480156104cc57600080fd5b506102f96104db366004611af6565b610899565b3480156104ec57600080fd5b5060055461023390600160b01b900460ff1681565b34801561050d57600080fd5b506102f961051c366004611b13565b6108c3565b34801561052d57600080fd5b506102a060075481565b34801561054357600080fd5b506102a0600a5481565b34801561055957600080fd5b506102a0610568366004611b51565b61092a565b34801561057957600080fd5b506102a060065481565b34801561058f57600080fd5b506102f961059e366004611b7f565b610955565b3480156105af57600080fd5b506102f96105be366004611af6565b610991565b3480156105cf57600080fd5b506102a060085481565b6060600380546105e890611bb1565b80601f016020809104026020016040519081016040528092919081815260200182805461061490611bb1565b80156106615780601f1061063657610100808354040283529160200191610661565b820191906000526020600020905b81548152906001019060200180831161064457829003601f168201915b5050505050905090565b600033610679818585610a0a565b5060019392505050565b600033610691858285610b2e565b61069c858585610ba8565b506001949350505050565b6106af611354565b600554600160b01b900460ff161561070e5760405162461bcd60e51b815260206004820152601d60248201527f5468652074726164696e6720686173206265656e20737461727465642e00000060448201526064015b60405180910390fd5b6005805460ff60b01b1916600160b01b179055565b600033610679818585610736838361092a565b6107409190611c01565b610a0a565b61074d611354565b61075760006113b4565b565b610761611354565b600554600160b81b900460ff1615156001146107bf5760405162461bcd60e51b815260206004820152601c60248201527f546865206c696d69747320686173206265656e2072656d6f7665642e000000006044820152606401610705565b6005805460ff60b81b19169055565b6107d6611354565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6060600480546105e890611bb1565b6000338161081e828661092a565b90508381101561087e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610705565b61069c8286868403610a0a565b600033610679818585610ba8565b6108a1611354565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6108cb611354565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61095d611354565b600b849055600c8390556109718385611c01565b600a55600e829055600f8190556109888183611c01565b600d5550505050565b610999611354565b6001600160a01b0381166109fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610705565b610a07816113b4565b50565b6001600160a01b038316610a6c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610acd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610b3a848461092a565b90506000198114610ba25781811015610b955760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610705565b610ba28484848403610a0a565b50505050565b6001600160a01b038316610c0d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b6064820152608401610705565b6001600160a01b038216610c6f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b6064820152608401610705565b60008111610cd95760405162461bcd60e51b815260206004820152603160248201527f45524332303a205472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b6064820152608401610705565b6005546001600160a01b038481166101009092041614801590610d0f57506005546001600160a01b038381166101009092041614155b8015610d2357506001600160a01b03821615155b8015610d3a57506001600160a01b03821661dead14155b8015610d505750600554600160a81b900460ff16155b1561109557600554600160b01b900460ff161515600003610df6576001600160a01b03831660009081526012602052604090205460ff1680610daa57506001600160a01b03821660009081526012602052604090205460ff165b610df65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610705565b600554600160b81b900460ff161515600103611095576001600160a01b03831660009081526014602052604090205460ff168015610e4d57506001600160a01b03821660009081526013602052604090205460ff16155b15610f4357600754811115610eca5760405162461bcd60e51b815260206004820152603e60248201527f45524332303a20427579207472616e7366657220616d6f756e7420657863656560448201527f647320746865206d6178207472616e73616374696f6e20616d6f756e742e00006064820152608401610705565b6008546001600160a01b038316600090815260208190526040902054610ef09083611c01565b1115610f3e5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204d61782077616c6c65742065786365656465642e00000000006044820152606401610705565b611095565b6001600160a01b03821660009081526014602052604090205460ff168015610f8457506001600160a01b03831660009081526013602052604090205460ff16155b1561100157600754811115610f3e5760405162461bcd60e51b815260206004820152603f60248201527f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560448201527f65647320746865206d6178207472616e73616374696f6e20616d6f756e742e006064820152608401610705565b6001600160a01b03821660009081526013602052604090205460ff16611095576008546001600160a01b0383166000908152602081905260409020546110479083611c01565b11156110955760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204d61782077616c6c65742065786365656465642e00000000006044820152606401610705565b600654306000908152602081905260409020541080159081906110c25750600554600160a81b900460ff16155b80156110e757506001600160a01b03841660009081526014602052604090205460ff16155b801561110c57506001600160a01b03841660009081526012602052604090205460ff16155b801561113157506001600160a01b03831660009081526012602052604090205460ff16155b1561115f576005805460ff60a81b1916600160a81b17905561115161140e565b6005805460ff60a81b191690555b6005546001600160a01b03851660009081526012602052604090205460ff600160a81b9092048216159116806111ad57506001600160a01b03841660009081526012602052604090205460ff165b156111b6575060005b60008115611341576001600160a01b03851660009081526014602052604090205460ff1680156111e857506000600d54115b156112765761120d6064611207600d54876115b790919063ffffffff16565b906115ca565b9050600d54600f54826112209190611c19565b61122a9190611c38565b6011600082825461123b9190611c01565b9091555050600d54600e546112509083611c19565b61125a9190611c38565b6010600082825461126b9190611c01565b909155506113239050565b6001600160a01b03861660009081526014602052604090205460ff1680156112a057506000600a54115b15611323576112bf6064611207600a54876115b790919063ffffffff16565b9050600a54600c54826112d29190611c19565b6112dc9190611c38565b601160008282546112ed9190611c01565b9091555050600a54600b546113029083611c19565b61130c9190611c38565b6010600082825461131d9190611c01565b90915550505b8015611334576113348630836115d6565b61133e8185611c5a565b93505b61134c8686866115d6565b505050505050565b6005546001600160a01b036101009091041633146107575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610705565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b30600090815260208190526040812054905060006010546011546114329190611c01565b90506000821580611441575081155b1561144b57505050565b600654611459906014611c19565b8311156114715760065461146e906014611c19565b92505b6000600283601154866114849190611c19565b61148e9190611c38565b6114989190611c38565b905060006114a6858361177a565b9050476114b282611786565b60006114be478361177a565b905060006114db87611207601054856115b790919063ffffffff16565b905060006114e98284611c5a565b60006011819055601055905085158015906115045750600081115b1561155757611513868261193e565b601154604080518781526020810184905280820192909252517f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb9181900360600190a15b6009546040516001600160a01b03909116904790600081818185875af1925050503d80600081146115a4576040519150601f19603f3d011682016040523d82523d6000602084013e6115a9565b606091505b505050505050505050505050565b60006115c38284611c19565b9392505050565b60006115c38284611c38565b6001600160a01b03831661163a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b03821661169c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b6001600160a01b038316600090815260208190526040902054818110156117145760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610705565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ba2565b60006115c38284611c5a565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117bb576117bb611c71565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190611c87565b8160018151811061187057611870611c71565b60200260200101906001600160a01b031690816001600160a01b0316815250506118bb307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610a0a565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611910908590600090869030904290600401611ca4565b600060405180830381600087803b15801561192a57600080fd5b505af115801561134c573d6000803e3d6000fd5b611969307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610a0a565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156119f3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a189190611d15565b5050505050565b600060208083528351808285015260005b81811015611a4c57858101830151858201604001528201611a30565b81811115611a5e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a0757600080fd5b60008060408385031215611a9c57600080fd5b8235611aa781611a74565b946020939093013593505050565b600080600060608486031215611aca57600080fd5b8335611ad581611a74565b92506020840135611ae581611a74565b929592945050506040919091013590565b600060208284031215611b0857600080fd5b81356115c381611a74565b60008060408385031215611b2657600080fd5b8235611b3181611a74565b915060208301358015158114611b4657600080fd5b809150509250929050565b60008060408385031215611b6457600080fd5b8235611b6f81611a74565b91506020830135611b4681611a74565b60008060008060808587031215611b9557600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c90821680611bc557607f821691505b602082108103611be557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c1457611c14611beb565b500190565b6000816000190483118215151615611c3357611c33611beb565b500290565b600082611c5557634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611c6c57611c6c611beb565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c9957600080fd5b81516115c381611a74565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cf45784516001600160a01b031683529383019391830191600101611ccf565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d2a57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208bd9591933bf31d7569233e3957aa788c520767256918ce4605bd4eedbd39a8d64736f6c634300080f0033
Deployed Bytecode Sourcemap
9104:9148:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3120:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4059:201;;;;;;;;;;-1:-1:-1;4059:201:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;4059:201:0;1072:187:1;9184:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1454:32:1;;;1436:51;;1424:2;1409:18;9184:51:0;1264:229:1;3448:108:0;;;;;;;;;;-1:-1:-1;3536:12:0;;3448:108;;;1644:25:1;;;1632:2;1617:18;3448:108:0;1498:177:1;4268:261:0;;;;;;;;;;-1:-1:-1;4268:261:0;;;;;:::i;:::-;;:::i;9287:53::-;;;;;;;;;;;;9333:6;9287:53;;11791:157;;;;;;;;;;;;;:::i;:::-;;3340:100;;;;;;;;;;-1:-1:-1;3423:9:0;;3340:100;;3423:9;;;;2491:36:1;;2479:2;2464:18;3340:100:0;2349:184:1;4537:238:0;;;;;;;;;;-1:-1:-1;4537:238:0;;;;;:::i;:::-;;:::i;9242:38::-;;;;;;;;;;;;;;;9417:33;;;;;;;;;;-1:-1:-1;9417:33:0;;;;-1:-1:-1;;;9417:33:0;;;;;;9725:28;;;;;;;;;;;;;;;;3564:127;;;;;;;;;;-1:-1:-1;3564:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3665:18:0;3638:7;3665:18;;;;;;;;;;;;3564:127;1235:103;;;;;;;;;;;;;:::i;11956:158::-;;;;;;;;;;;;;:::i;12724:154::-;;;;;;;;;;-1:-1:-1;12724:154:0;;;;;:::i;:::-;;:::i;9574:30::-;;;;;;;;;;-1:-1:-1;9574:30:0;;;;-1:-1:-1;;;;;9574:30:0;;;1000:87;;;;;;;;;;-1:-1:-1;1073:6:0;;;;;-1:-1:-1;;;;;1073:6:0;1000:87;;3228:104;;;;;;;;;;;;;:::i;4783:436::-;;;;;;;;;;-1:-1:-1;4783:436:0;;;;;:::i;:::-;;:::i;3699:193::-;;;;;;;;;;-1:-1:-1;3699:193:0;;;;;:::i;:::-;;:::i;12587:129::-;;;;;;;;;;-1:-1:-1;12587:129:0;;;;;:::i;:::-;;:::i;9377:33::-;;;;;;;;;;-1:-1:-1;9377:33:0;;;;-1:-1:-1;;;9377:33:0;;;;;;12886:182;;;;;;;;;;-1:-1:-1;12886:182:0;;;;;:::i;:::-;;:::i;9499:35::-;;;;;;;;;;;;;;;;9613:27;;;;;;;;;;;;;;;;3900:151;;;;;;;;;;-1:-1:-1;3900:151:0;;;;;:::i;:::-;;:::i;9459:33::-;;;;;;;;;;;;;;;;12122:457;;;;;;;;;;-1:-1:-1;12122:457:0;;;;;:::i;:::-;;:::i;1346:201::-;;;;;;;;;;-1:-1:-1;1346:201:0;;;;;:::i;:::-;;:::i;9541:24::-;;;;;;;;;;;;;;;;3120:100;3174:13;3207:5;3200:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3120:100;:::o;4059:201::-;4142:4;662:10;4198:32;662:10;4214:7;4223:6;4198:8;:32::i;:::-;-1:-1:-1;4248:4:0;;4059:201;-1:-1:-1;;;4059:201:0:o;4268:261::-;4365:4;662:10;4423:38;4439:4;662:10;4454:6;4423:15;:38::i;:::-;4472:27;4482:4;4488:2;4492:6;4472:9;:27::i;:::-;-1:-1:-1;4517:4:0;;4268:261;-1:-1:-1;;;;4268:261:0:o;11791:157::-;959:13;:11;:13::i;:::-;11853::::1;::::0;-1:-1:-1;;;11853:13:0;::::1;;;:22;11845:64;;;::::0;-1:-1:-1;;;11845:64:0;;4581:2:1;11845:64:0::1;::::0;::::1;4563:21:1::0;4620:2;4600:18;;;4593:30;4659:31;4639:18;;;4632:59;4708:18;;11845:64:0::1;;;;;;;;;11920:13;:20:::0;;-1:-1:-1;;;;11920:20:0::1;-1:-1:-1::0;;;11920:20:0::1;::::0;;11791:157::o;4537:238::-;4625:4;662:10;4681:64;662:10;4697:7;4734:10;4706:25;662:10;4697:7;4706:9;:25::i;:::-;:38;;;;:::i;:::-;4681:8;:64::i;1235:103::-;959:13;:11;:13::i;:::-;1300:30:::1;1327:1;1300:18;:30::i;:::-;1235:103::o:0;11956:158::-;959:13;:11;:13::i;:::-;12018:14:::1;::::0;-1:-1:-1;;;12018:14:0;::::1;;;:22;;12036:4;12018:22;12010:63;;;::::0;-1:-1:-1;;;12010:63:0;;5204:2:1;12010:63:0::1;::::0;::::1;5186:21:1::0;5243:2;5223:18;;;5216:30;5282;5262:18;;;5255:58;5330:18;;12010:63:0::1;5002:352:1::0;12010:63:0::1;12084:14;:22:::0;;-1:-1:-1;;;;12084:22:0::1;::::0;;11956:158::o;12724:154::-;959:13;:11;:13::i;:::-;-1:-1:-1;;;;;12819:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;12819:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12724:154::o;3228:104::-;3284:13;3317:7;3310:14;;;;;:::i;4783:436::-;4876:4;662:10;4876:4;4959:25;662:10;4976:7;4959:9;:25::i;:::-;4932:52;;5023:15;5003:16;:35;;4995:85;;;;-1:-1:-1;;;4995:85:0;;5561:2:1;4995:85:0;;;5543:21:1;5600:2;5580:18;;;5573:30;5639:34;5619:18;;;5612:62;-1:-1:-1;;;5690:18:1;;;5683:35;5735:19;;4995:85:0;5359:401:1;4995:85:0;5116:60;5125:5;5132:7;5160:15;5141:16;:34;5116:8;:60::i;3699:193::-;3778:4;662:10;3834:28;662:10;3851:2;3855:6;3834:9;:28::i;12587:129::-;959:13;:11;:13::i;:::-;12674:15:::1;:34:::0;;-1:-1:-1;;;;;;12674:34:0::1;-1:-1:-1::0;;;;;12674:34:0;;;::::1;::::0;;;::::1;::::0;;12587:129::o;12886:182::-;959:13;:11;:13::i;:::-;-1:-1:-1;;;;;12971:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;12971:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13026:34;;1212:41:1;;;13026:34:0::1;::::0;1185:18:1;13026:34:0::1;;;;;;;12886:182:::0;;:::o;3900:151::-;-1:-1:-1;;;;;4016:18:0;;;3989:7;4016:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3900:151::o;12122:457::-;959:13;:11;:13::i;:::-;12277:15:::1;:34:::0;;;12322:15:::1;:34:::0;;;12382:33:::1;12340:16:::0;12295;12382:33:::1;:::i;:::-;12367:12;:48:::0;12426:16:::1;:36:::0;;;12473:16:::1;:36:::0;;;12536:35:::1;12492:17:::0;12445;12536:35:::1;:::i;:::-;12520:13;:51:::0;-1:-1:-1;;;;12122:457:0:o;1346:201::-;959:13;:11;:13::i;:::-;-1:-1:-1;;;;;1435:22:0;::::1;1427:73;;;::::0;-1:-1:-1;;;1427:73:0;;5967:2:1;1427:73:0::1;::::0;::::1;5949:21:1::0;6006:2;5986:18;;;5979:30;6045:34;6025:18;;;6018:62;-1:-1:-1;;;6096:18:1;;;6089:36;6142:19;;1427:73:0::1;5765:402:1::0;1427:73:0::1;1511:28;1530:8;1511:18;:28::i;:::-;1346:201:::0;:::o;7280:346::-;-1:-1:-1;;;;;7382:19:0;;7374:68;;;;-1:-1:-1;;;7374:68:0;;6374:2:1;7374:68:0;;;6356:21:1;6413:2;6393:18;;;6386:30;6452:34;6432:18;;;6425:62;-1:-1:-1;;;6503:18:1;;;6496:34;6547:19;;7374:68:0;6172:400:1;7374:68:0;-1:-1:-1;;;;;7461:21:0;;7453:68;;;;-1:-1:-1;;;7453:68:0;;6779:2:1;7453:68:0;;;6761:21:1;6818:2;6798:18;;;6791:30;6857:34;6837:18;;;6830:62;-1:-1:-1;;;6908:18:1;;;6901:32;6950:19;;7453:68:0;6577:398:1;7453:68:0;-1:-1:-1;;;;;7534:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7586:32;;1644:25:1;;;7586:32:0;;1617:18:1;7586:32:0;;;;;;;7280:346;;;:::o;7634:419::-;7735:24;7762:25;7772:5;7779:7;7762:9;:25::i;:::-;7735:52;;-1:-1:-1;;7802:16:0;:37;7798:248;;7884:6;7864:16;:26;;7856:68;;;;-1:-1:-1;;;7856:68:0;;7182:2:1;7856:68:0;;;7164:21:1;7221:2;7201:18;;;7194:30;7260:31;7240:18;;;7233:59;7309:18;;7856:68:0;6980:353:1;7856:68:0;7968:51;7977:5;7984:7;8012:6;7993:16;:25;7968:8;:51::i;:::-;7724:329;7634:419;;;:::o;13270:2717::-;-1:-1:-1;;;;;13368:18:0;;13360:69;;;;-1:-1:-1;;;13360:69:0;;7540:2:1;13360:69:0;;;7522:21:1;7579:2;7559:18;;;7552:30;7618:34;7598:18;;;7591:62;-1:-1:-1;;;7669:18:1;;;7662:36;7715:19;;13360:69:0;7338:402:1;13360:69:0;-1:-1:-1;;;;;13448:16:0;;13440:65;;;;-1:-1:-1;;;13440:65:0;;7947:2:1;13440:65:0;;;7929:21:1;7986:2;7966:18;;;7959:30;8025:34;8005:18;;;7998:62;-1:-1:-1;;;8076:18:1;;;8069:34;8120:19;;13440:65:0;7745:400:1;13440:65:0;13533:1;13524:6;:10;13516:72;;;;-1:-1:-1;;;13516:72:0;;8352:2:1;13516:72:0;;;8334:21:1;8391:2;8371:18;;;8364:30;8430:34;8410:18;;;8403:62;-1:-1:-1;;;8481:18:1;;;8474:47;8538:19;;13516:72:0;8150:413:1;13516:72:0;1073:6;;-1:-1:-1;;;;;13605:15:0;;;1073:6;;;;;13605:15;;;;:32;;-1:-1:-1;1073:6:0;;-1:-1:-1;;;;;13624:13:0;;;1073:6;;;;;13624:13;;13605:32;:52;;;;-1:-1:-1;;;;;;13641:16:0;;;;13605:52;:77;;;;-1:-1:-1;;;;;;13661:21:0;;13675:6;13661:21;;13605:77;:90;;;;-1:-1:-1;13687:8:0;;-1:-1:-1;;;13687:8:0;;;;13686:9;13605:90;13601:1078;;;13716:13;;-1:-1:-1;;;13716:13:0;;;;:22;;13733:5;13716:22;13712:157;;-1:-1:-1;;;;;13767:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13796:23:0;;;;;;:19;:23;;;;;;;;13767:52;13759:94;;;;-1:-1:-1;;;13759:94:0;;8770:2:1;13759:94:0;;;8752:21:1;8809:2;8789:18;;;8782:30;8848:31;8828:18;;;8821:59;8897:18;;13759:94:0;8568:353:1;13759:94:0;13889:14;;-1:-1:-1;;;13889:14:0;;;;:22;;13907:4;13889:22;13885:783;;-1:-1:-1;;;;;13936:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;13972:35:0;;;;;;:31;:35;;;;;;;;13971:36;13936:71;13932:721;;;14050:20;;14040:6;:30;;14032:105;;;;-1:-1:-1;;;14032:105:0;;9128:2:1;14032:105:0;;;9110:21:1;9167:2;9147:18;;;9140:30;9206:34;9186:18;;;9179:62;9277:32;9257:18;;;9250:60;9327:19;;14032:105:0;8926:426:1;14032:105:0;14194:9;;-1:-1:-1;;;;;3665:18:0;;3638:7;3665:18;;;;;;;;;;;14168:22;;:6;:22;:::i;:::-;:35;;14160:75;;;;-1:-1:-1;;;14160:75:0;;9559:2:1;14160:75:0;;;9541:21:1;9598:2;9578:18;;;9571:30;9637:29;9617:18;;;9610:57;9684:18;;14160:75:0;9357:351:1;14160:75:0;13932:721;;;-1:-1:-1;;;;;14265:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;14299:37:0;;;;;;:31;:37;;;;;;;;14298:38;14265:71;14261:392;;;14379:20;;14369:6;:30;;14361:106;;;;-1:-1:-1;;;14361:106:0;;9915:2:1;14361:106:0;;;9897:21:1;9954:2;9934:18;;;9927:30;9993:34;9973:18;;;9966:62;10064:33;10044:18;;;10037:61;10115:19;;14361:106:0;9713:427:1;14261:392:0;-1:-1:-1;;;;;14498:35:0;;;;;;:31;:35;;;;;;;;14493:160;;14592:9;;-1:-1:-1;;;;;3665:18:0;;3638:7;3665:18;;;;;;;;;;;14566:22;;:6;:22;:::i;:::-;:35;;14558:75;;;;-1:-1:-1;;;14558:75:0;;9559:2:1;14558:75:0;;;9541:21:1;9598:2;9578:18;;;9571:30;9637:29;9617:18;;;9610:57;9684:18;;14558:75:0;9357:351:1;14558:75:0;14734:18;;14724:4;14691:12;3665:18;;;;;;;;;;;-1:-1:-1;14706:46:0;;;;;14767:20;;-1:-1:-1;14779:8:0;;-1:-1:-1;;;14779:8:0;;;;14778:9;14767:20;:56;;;;-1:-1:-1;;;;;;14792:31:0;;;;;;:25;:31;;;;;;;;14791:32;14767:56;:86;;;;-1:-1:-1;;;;;;14828:25:0;;;;;;:19;:25;;;;;;;;14827:26;14767:86;:114;;;;-1:-1:-1;;;;;;14858:23:0;;;;;;:19;:23;;;;;;;;14857:24;14767:114;14763:218;;;14898:8;:15;;-1:-1:-1;;;;14898:15:0;-1:-1:-1;;;14898:15:0;;;14928:10;:8;:10::i;:::-;14953:8;:16;;-1:-1:-1;;;;14953:16:0;;;14763:218;15009:8;;-1:-1:-1;;;;;15032:25:0;;14993:12;15032:25;;;:19;:25;;;;;;15009:8;-1:-1:-1;;;15009:8:0;;;;;15008:9;;15032:25;;:52;;-1:-1:-1;;;;;;15061:23:0;;;;;;:19;:23;;;;;;;;15032:52;15028:100;;;-1:-1:-1;15111:5:0;15028:100;15140:12;15171:7;15167:769;;;-1:-1:-1;;;;;15199:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;15248:1;15232:13;;:17;15199:50;15195:594;;;15277:34;15307:3;15277:25;15288:13;;15277:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;15270:41;;15380:13;;15360:16;;15353:4;:23;;;;:::i;:::-;15352:41;;;;:::i;:::-;15330:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;15462:13:0;;15442:16;;15435:23;;:4;:23;:::i;:::-;15434:41;;;;:::i;:::-;15412:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;15195:594:0;;-1:-1:-1;15195:594:0;;-1:-1:-1;;;;;15501:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;15551:1;15536:12;;:16;15501:51;15497:292;;;15580:33;15609:3;15580:24;15591:12;;15580:6;:10;;:24;;;;:::i;:33::-;15573:40;;15681:12;;15662:15;;15655:4;:22;;;;:::i;:::-;15654:39;;;;:::i;:::-;15632:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;15761:12:0;;15742:15;;15735:22;;:4;:22;:::i;:::-;15734:39;;;;:::i;:::-;15712:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;15497:292:0;15809:8;;15805:91;;15838:42;15854:4;15868;15875;15838:15;:42::i;:::-;15910:14;15920:4;15910:14;;:::i;:::-;;;15167:769;15946:33;15962:4;15968:2;15972:6;15946:15;:33::i;:::-;13349:2638;;;13270:2717;;;:::o;1095:132::-;1073:6;;-1:-1:-1;;;;;1073:6:0;;;;;662:10;1159:23;1151:68;;;;-1:-1:-1;;;1151:68:0;;10872:2:1;1151:68:0;;;10854:21:1;;;10891:18;;;10884:30;10950:34;10930:18;;;10923:62;11002:18;;1151:68:0;10670:356:1;1555:191:0;1648:6;;;-1:-1:-1;;;;;1665:17:0;;;1648:6;1665:17;;;-1:-1:-1;;;;;;1665:17:0;;;;;;1698:40;;1648:6;;;;;;;;1698:40;;1629:16;;1698:40;1618:128;1555:191;:::o;16848:1401::-;16931:4;16887:23;3665:18;;;;;;;;;;;16887:50;;16948:25;16997:18;;16976;;:39;;;;:::i;:::-;16948:67;-1:-1:-1;17026:12:0;17055:20;;;:46;;-1:-1:-1;17079:22:0;;17055:46;17051:85;;;17118:7;;;16848:1401::o;17051:85::-;17170:18;;:23;;17191:2;17170:23;:::i;:::-;17152:15;:41;17148:115;;;17228:18;;:23;;17249:2;17228:23;:::i;:::-;17210:41;;17148:115;17275:23;17362:1;17342:17;17320:18;;17302:15;:36;;;;:::i;:::-;17301:58;;;;:::i;:::-;:62;;;;:::i;:::-;17275:88;-1:-1:-1;17374:26:0;17403:36;:15;17275:88;17403:19;:36::i;:::-;17374:65;-1:-1:-1;17480:21:0;17514:36;17374:65;17514:16;:36::i;:::-;17563:18;17584:44;:21;17610:17;17584:25;:44::i;:::-;17563:65;;17641:23;17667:57;17706:17;17667:34;17682:18;;17667:10;:14;;:34;;;;:::i;:57::-;17641:83;-1:-1:-1;17737:23:0;17763:28;17641:83;17763:10;:28;:::i;:::-;17825:1;17804:18;:22;;;17837:18;:22;17737:54;-1:-1:-1;17876:19:0;;;;;:42;;;17917:1;17899:15;:19;17876:42;17872:280;;;17935:46;17948:15;17965;17935:12;:46::i;:::-;18107:18;;18001:139;;;11233:25:1;;;11289:2;11274:18;;11267:34;;;11317:18;;;11310:34;;;;18001:139:0;;;;;;11221:2:1;18001:139:0;;;17872:280;18186:15;;18178:63;;-1:-1:-1;;;;;18186:15:0;;;;18215:21;;18178:63;;;;18215:21;18186:15;18178:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;16848:1401:0:o;338:98::-;396:7;423:5;427:1;423;:5;:::i;:::-;416:12;338:98;-1:-1:-1;;;338:98:0:o;444:::-;502:7;529:5;533:1;529;:5;:::i;5227:806::-;-1:-1:-1;;;;;5324:18:0;;5316:68;;;;-1:-1:-1;;;5316:68:0;;11767:2:1;5316:68:0;;;11749:21:1;11806:2;11786:18;;;11779:30;11845:34;11825:18;;;11818:62;-1:-1:-1;;;11896:18:1;;;11889:35;11941:19;;5316:68:0;11565:401:1;5316:68:0;-1:-1:-1;;;;;5403:16:0;;5395:64;;;;-1:-1:-1;;;5395:64:0;;12173:2:1;5395:64:0;;;12155:21:1;12212:2;12192:18;;;12185:30;12251:34;12231:18;;;12224:62;-1:-1:-1;;;12302:18:1;;;12295:33;12345:19;;5395:64:0;11971:399:1;5395:64:0;-1:-1:-1;;;;;5545:15:0;;5523:19;5545:15;;;;;;;;;;;5579:21;;;;5571:72;;;;-1:-1:-1;;;5571:72:0;;12577:2:1;5571:72:0;;;12559:21:1;12616:2;12596:18;;;12589:30;12655:34;12635:18;;;12628:62;-1:-1:-1;;;12706:18:1;;;12699:36;12752:19;;5571:72:0;12375:402:1;5571:72:0;-1:-1:-1;;;;;5679:15:0;;;:9;:15;;;;;;;;;;;5697:20;;;5679:38;;5897:13;;;;;;;;;;:23;;;;;;5949:26;;1644:25:1;;;5897:13:0;;5949:26;;1617:18:1;5949:26:0;;;;;;;5988:37;8061:91;232:98;290:7;317:5;321:1;317;:5;:::i;15995:473::-;16085:16;;;16099:1;16085:16;;;;;;;;16061:21;;16085:16;;;;;;;;;;-1:-1:-1;16085:16:0;16061:40;;16130:4;16112;16117:1;16112:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16112:23:0;;;-1:-1:-1;;;;;16112:23:0;;;;;16156:15;-1:-1:-1;;;;;16156:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16146:4;16151:1;16146:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16146:32:0;;;-1:-1:-1;;;;;16146:32:0;;;;;16191:62;16208:4;16223:15;16241:11;16191:8;:62::i;:::-;16264:196;;-1:-1:-1;;;16264:196:0;;-1:-1:-1;;;;;16264:15:0;:66;;;;:196;;16345:11;;16371:1;;16387:4;;16414;;16434:15;;16264:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16476:364;16557:62;16574:4;16589:15;16607:11;16557:8;:62::i;:::-;16630:202;;-1:-1:-1;;;16630:202:0;;16702:4;16630:202;;;14628:34:1;14678:18;;;14671:34;;;16748:1:0;14721:18:1;;;14714:34;;;14764:18;;;14757:34;9333:6:0;14807:19:1;;;14800:44;16806:15:0;14860:19:1;;;14853:35;16630:15:0;-1:-1:-1;;;;;16630:31:0;;;;16669:9;;14562:19:1;;16630:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16476:364;;:::o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1680:456::-;1757:6;1765;1773;1826:2;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1881:9;1868:23;1900:31;1925:5;1900:31;:::i;:::-;1950:5;-1:-1:-1;2007:2:1;1992:18;;1979:32;2020:33;1979:32;2020:33;:::i;:::-;1680:456;;2072:7;;-1:-1:-1;;;2126:2:1;2111:18;;;;2098:32;;1680:456::o;2538:247::-;2597:6;2650:2;2638:9;2629:7;2625:23;2621:32;2618:52;;;2666:1;2663;2656:12;2618:52;2705:9;2692:23;2724:31;2749:5;2724:31;:::i;2790:416::-;2855:6;2863;2916:2;2904:9;2895:7;2891:23;2887:32;2884:52;;;2932:1;2929;2922:12;2884:52;2971:9;2958:23;2990:31;3015:5;2990:31;:::i;:::-;3040:5;-1:-1:-1;3097:2:1;3082:18;;3069:32;3139:15;;3132:23;3120:36;;3110:64;;3170:1;3167;3160:12;3110:64;3193:7;3183:17;;;2790:416;;;;;:::o;3211:388::-;3279:6;3287;3340:2;3328:9;3319:7;3315:23;3311:32;3308:52;;;3356:1;3353;3346:12;3308:52;3395:9;3382:23;3414:31;3439:5;3414:31;:::i;:::-;3464:5;-1:-1:-1;3521:2:1;3506:18;;3493:32;3534:33;3493:32;3534:33;:::i;3604:385::-;3690:6;3698;3706;3714;3767:3;3755:9;3746:7;3742:23;3738:33;3735:53;;;3784:1;3781;3774:12;3735:53;-1:-1:-1;;3807:23:1;;;3877:2;3862:18;;3849:32;;-1:-1:-1;3928:2:1;3913:18;;3900:32;;3979:2;3964:18;3951:32;;-1:-1:-1;3604:385:1;-1:-1:-1;3604:385:1:o;3994:380::-;4073:1;4069:12;;;;4116;;;4137:61;;4191:4;4183:6;4179:17;4169:27;;4137:61;4244:2;4236:6;4233:14;4213:18;4210:38;4207:161;;4290:10;4285:3;4281:20;4278:1;4271:31;4325:4;4322:1;4315:15;4353:4;4350:1;4343:15;4207:161;;3994:380;;;:::o;4737:127::-;4798:10;4793:3;4789:20;4786:1;4779:31;4829:4;4826:1;4819:15;4853:4;4850:1;4843:15;4869:128;4909:3;4940:1;4936:6;4933:1;4930:13;4927:39;;;4946:18;;:::i;:::-;-1:-1:-1;4982:9:1;;4869:128::o;10145:168::-;10185:7;10251:1;10247;10243:6;10239:14;10236:1;10233:21;10228:1;10221:9;10214:17;10210:45;10207:71;;;10258:18;;:::i;:::-;-1:-1:-1;10298:9:1;;10145:168::o;10318:217::-;10358:1;10384;10374:132;;10428:10;10423:3;10419:20;10416:1;10409:31;10463:4;10460:1;10453:15;10491:4;10488:1;10481:15;10374:132;-1:-1:-1;10520:9:1;;10318:217::o;10540:125::-;10580:4;10608:1;10605;10602:8;10599:34;;;10613:18;;:::i;:::-;-1:-1:-1;10650:9:1;;10540:125::o;12914:127::-;12975:10;12970:3;12966:20;12963:1;12956:31;13006:4;13003:1;12996:15;13030:4;13027:1;13020:15;13046:251;13116:6;13169:2;13157:9;13148:7;13144:23;13140:32;13137:52;;;13185:1;13182;13175:12;13137:52;13217:9;13211:16;13236:31;13261:5;13236:31;:::i;13302:980::-;13564:4;13612:3;13601:9;13597:19;13643:6;13632:9;13625:25;13669:2;13707:6;13702:2;13691:9;13687:18;13680:34;13750:3;13745:2;13734:9;13730:18;13723:31;13774:6;13809;13803:13;13840:6;13832;13825:22;13878:3;13867:9;13863:19;13856:26;;13917:2;13909:6;13905:15;13891:29;;13938:1;13948:195;13962:6;13959:1;13956:13;13948:195;;;14027:13;;-1:-1:-1;;;;;14023:39:1;14011:52;;14118:15;;;;14083:12;;;;14059:1;13977:9;13948:195;;;-1:-1:-1;;;;;;;14199:32:1;;;;14194:2;14179:18;;14172:60;-1:-1:-1;;;14263:3:1;14248:19;14241:35;14160:3;13302:980;-1:-1:-1;;;13302:980:1:o;14899:306::-;14987:6;14995;15003;15056:2;15044:9;15035:7;15031:23;15027:32;15024:52;;;15072:1;15069;15062:12;15024:52;15101:9;15095:16;15085:26;;15151:2;15140:9;15136:18;15130:25;15120:35;;15195:2;15184:9;15180:18;15174:25;15164:35;;14899:306;;;;;:::o
Swarm Source
ipfs://8bd9591933bf31d7569233e3957aa788c520767256918ce4605bd4eedbd39a8d
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.