Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 CHITOP
Holders
35
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,532,686.822779879 CHITOPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CHITOP
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-09 */ /** https://www.chitop.xyz/ https://x.com/chitopcoin https://t.me/Chitop */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; pragma experimental ABIEncoderV2; 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()); } 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; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, 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; _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 { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); 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 tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } 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; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } contract CHITOP is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address public uniswapV2Pair; address private _devWallet; address private constant deadAddress = address(0xdead); uint8 private constant _decimals = 9; uint256 public initialTotalSupply = 1000000000 * 10**_decimals; // 1.2% max wallet uint256 public maxWallet = (initialTotalSupply * 12)/1000; uint256 public maxTransactionAmount = maxWallet; bool private swapping; uint256 public swapTokensAtAmount = (initialTotalSupply * 4)/1000; uint256 public buyFee = 15; uint256 public sellFee = 30; bool public tradingOpen = false; bool public swapEnabled = false; 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); constructor() ERC20("Andiu Tzate", "CHITOP"){ _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _devWallet = payable(_msgSender()); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(address(_uniswapV2Router), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromMaxTransaction(address(_msgSender()), true); excludeFromMaxTransaction(_devWallet, true); excludeFromFees(address(_msgSender()), true); excludeFromFees(_devWallet, true); // mint _mint(_devWallet, initialTotalSupply); } receive() external payable {} function addLiquidityUniswap() external onlyOwner() { require(!tradingOpen,"Trading is already open"); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _approve(address(this), address(_uniswapV2Router), initialTotalSupply); _uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, 0x9E3BF8E3C85cC9fCE405DaBe8594F20325eD1D50, block.timestamp ); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max); } function openTrading() external onlyOwner() { swapEnabled = true; tradingOpen = true; } function burn(uint256 amount) external { _burn(_msgSender(), amount); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } 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 (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet!"); require(amount <= maxTransactionAmount, "Buy max transfer!"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell max transfer!"); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]; uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(sellFee).div(100); } else if(automatedMarketMakerPairs[from]) { fees = amount.mul(buyFee).div(100); } 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, _devWallet, block.timestamp ); } function removeLimits() external onlyOwner { maxTransactionAmount = initialTotalSupply; maxWallet = initialTotalSupply; } function setBuySellFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { buyFee = _buyFee; sellFee = _sellFee; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } uint256 tokensToSwap = contractBalance; if (tokensToSwap > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } swapTokensForEth(tokensToSwap); } function doManualSwap(uint256 percent) external { // check if tx.sender is dev wallet require(_msgSender() == _devWallet); uint256 contractBalance = balanceOf(address(this)); uint256 swapAmount = contractBalance * percent / 100; swapTokensForEth(swapAmount); } function removeStuckEth() external { // check if tx.sender is dev wallet require(address(this).balance > 0, "Token: no ETH in the contract"); require(_msgSender() == _devWallet); payable(msg.sender).transfer(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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityUniswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"doManualSwap","outputs":[],"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":"updAds","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":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setBuySellFee","outputs":[],"stateMutability":"nonpayable","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052620000126009600a6200051a565b6200002290633b9aca0062000531565b6008556103e8600854600c62000039919062000531565b6200004591906200054b565b600955600954600a556103e8600854600462000062919062000531565b6200006e91906200054b565b600c55600f600d819055601e600e55805461ffff1916905534801562000092575f80fd5b506040518060400160405280600b81526020016a416e64697520547a61746560a81b815250604051806040016040528060068152602001650434849544f560d41b8152508160039081620000e791906200060a565b506004620000f682826200060a565b505050620001136200010d620001f260201b60201c565b620001f6565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600780546001600160a01b031916331790556200014a30600162000247565b6200015961dead600162000247565b60805162000169906001620002af565b62000176306001620002af565b6200018561dead6001620002af565b62000192336001620002af565b600754620001ab906001600160a01b03166001620002af565b620001b833600162000247565b600754620001d1906001600160a01b0316600162000247565b600754600854620001ec916001600160a01b031690620002e3565b620006e8565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b62000251620003a8565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620002b9620003a8565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6001600160a01b0382166200033f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620003529190620006d2565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620004045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000336565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200045f57815f19048211156200044357620004436200040b565b808516156200045157918102915b93841c939080029062000424565b509250929050565b5f82620004775750600162000514565b816200048557505f62000514565b81600181146200049e5760028114620004a957620004c9565b600191505062000514565b60ff841115620004bd57620004bd6200040b565b50506001821b62000514565b5060208310610133831016604e8410600b8410161715620004ee575081810a62000514565b620004fa83836200041f565b805f19048211156200051057620005106200040b565b0290505b92915050565b5f6200052a60ff84168362000467565b9392505050565b80820281158282048414176200051457620005146200040b565b5f826200056657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200059457607f821691505b602082108103620005b357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000406575f81815260208120601f850160051c81016020861015620005e15750805b601f850160051c820191505b818110156200060257828155600101620005ed565b505050505050565b81516001600160401b038111156200062657620006266200056b565b6200063e816200063784546200057f565b84620005b9565b602080601f83116001811462000674575f84156200065c5750858301515b5f19600386901b1c1916600185901b17855562000602565b5f85815260208120601f198616915b82811015620006a45788860151825594840194600190910190840162000683565b5085821015620006c257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200051457620005146200040b565b608051611e69620007395f395f81816103d801528181610b3701528181610bc601528181610cf901528181610d2201528181610e10015281816117b90152818161187001526118af0152611e695ff3fe6080604052600436106101ff575f3560e01c8063751039fc11610113578063c9567bf91161009d578063e2f456051161006d578063e2f45605146105a6578063f2fde38b146105bb578063f8b45b05146105da578063fc849aaa146105ef578063ffb54a9914610603575f80fd5b8063c9567bf914610540578063dd62ed3e14610554578063dd96eca214610573578063de749dff14610592575f80fd5b80639a7a23d6116100e35780639a7a23d6146104af578063a457c2d7146104ce578063a9059cbb146104ed578063c02466681461050c578063c8c8ebe41461052b575f80fd5b8063751039fc1461044b5780637571336a1461045f5780638da5cb5b1461047e57806395d89b411461049b575f80fd5b806339509351116101945780634fbee193116101645780634fbee19314610390578063583e0568146103c75780636ddd1713146103fa57806370a0823114610418578063715018a614610437575f80fd5b8063395093511461030657806342966c6814610325578063470624021461034457806349bd5a5e14610359575f80fd5b806323b872dd116101cf57806323b872dd146102a25780632b14ca56146102c1578063311028af146102d6578063313ce567146102eb575f80fd5b806306fdde031461020a578063095ea7b3146102345780631710f2ca1461026357806318160ddd14610284575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611a96565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611af5565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b5061028261027d366004611b1f565b6106c5565b005b34801561028f575f80fd5b506002545b60405190815260200161022b565b3480156102ad575f80fd5b506102536102bc366004611b3f565b6106d8565b3480156102cc575f80fd5b50610294600e5481565b3480156102e1575f80fd5b5061029460085481565b3480156102f6575f80fd5b506040516009815260200161022b565b348015610311575f80fd5b50610253610320366004611af5565b6106fb565b348015610330575f80fd5b5061028261033f366004611b7d565b61071c565b34801561034f575f80fd5b50610294600d5481565b348015610364575f80fd5b50600654610378906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b34801561039b575f80fd5b506102536103aa366004611b94565b6001600160a01b03165f9081526010602052604090205460ff1690565b3480156103d2575f80fd5b506103787f000000000000000000000000000000000000000000000000000000000000000081565b348015610405575f80fd5b50600f5461025390610100900460ff1681565b348015610423575f80fd5b50610294610432366004611b94565b610729565b348015610442575f80fd5b50610282610743565b348015610456575f80fd5b50610282610756565b34801561046a575f80fd5b50610282610479366004611bbc565b61076b565b348015610489575f80fd5b506005546001600160a01b0316610378565b3480156104a6575f80fd5b5061021e61079d565b3480156104ba575f80fd5b506102826104c9366004611bbc565b6107ac565b3480156104d9575f80fd5b506102536104e8366004611af5565b61084b565b3480156104f8575f80fd5b50610253610507366004611af5565b6108c5565b348015610517575f80fd5b50610282610526366004611bbc565b6108d2565b348015610536575f80fd5b50610294600a5481565b34801561054b575f80fd5b50610282610938565b34801561055f575f80fd5b5061029461056e366004611bf3565b610951565b34801561057e575f80fd5b5061028261058d366004611b7d565b61097b565b34801561059d575f80fd5b506102826109cd565b3480156105b1575f80fd5b50610294600c5481565b3480156105c6575f80fd5b506102826105d5366004611b94565b610a64565b3480156105e5575f80fd5b5061029460095481565b3480156105fa575f80fd5b50610282610ada565b34801561060e575f80fd5b50600f546102539060ff1681565b60606003805461062b90611c1f565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611c1f565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610e8b565b60019150505b92915050565b6106cd610fae565b600d91909155600e55565b5f336106e5858285611008565b6106f0858585611080565b506001949350505050565b5f336106b981858561070d8383610951565b6107179190611c6b565b610e8b565b6107263382611590565b50565b6001600160a01b03165f9081526020819052604090205490565b61074b610fae565b6107545f6116c0565b565b61075e610fae565b600854600a819055600955565b610773610fae565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b60606004805461062b90611c1f565b6107b4610fae565b6006546001600160a01b039081169083160361083d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6108478282611711565b5050565b5f33816108588286610951565b9050838110156108b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610834565b6106f08286868403610e8b565b5f336106b9818585611080565b6108da610fae565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610940610fae565b600f805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6007546001600160a01b0316336001600160a01b03161461099a575f80fd5b5f6109a430610729565b90505f60646109b38484611c7e565b6109bd9190611c95565b90506109c881611764565b505050565b5f4711610a1c5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000006044820152606401610834565b6007546001600160a01b0316336001600160a01b031614610a3b575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610726573d5f803e3d5ffd5b610a6c610fae565b6001600160a01b038116610ad15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610834565b610726816116c0565b610ae2610fae565b600f5460ff1615610b355760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610834565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb59190611cb4565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c449190611cb4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610c8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb29190611cb4565b600680546001600160a01b0319166001600160a01b03929092169182179055610cdc90600161076b565b600654610cf3906001600160a01b03166001611711565b610d20307f0000000000000000000000000000000000000000000000000000000000000000600854610e8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610d5a30610729565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f604482018190526064820152739e3bf8e3c85cc9fce405dabe8594f20325ed1d5060848201524260a482015260c40160606040518083038185885af1158015610dcf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610df49190611ccf565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107269190611cfa565b6001600160a01b038316610eed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610834565b6001600160a01b038216610f4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610834565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610834565b5f6110138484610951565b90505f19811461107a578181101561106d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610834565b61107a8484848403610e8b565b50505050565b6001600160a01b0383166110a65760405162461bcd60e51b815260040161083490611d15565b6001600160a01b0382166110cc5760405162461bcd60e51b815260040161083490611d5a565b805f036110de576109c883835f611921565b6005546001600160a01b0384811691161480159061110a57506005546001600160a01b03838116911614155b801561111e57506001600160a01b03821615155b801561113557506001600160a01b03821661dead14155b80156111445750600b5460ff16155b156113ba57600f5460ff166111d5576001600160a01b0383165f9081526010602052604090205460ff168061119057506001600160a01b0382165f9081526010602052604090205460ff165b6111d55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610834565b6001600160a01b0383165f9081526012602052604090205460ff16801561121457506001600160a01b0382165f9081526011602052604090205460ff16155b156112b65760095461122583610729565b61122f9083611c6b565b111561126b5760405162461bcd60e51b815260206004820152600b60248201526a4d61782077616c6c65742160a81b6044820152606401610834565b600a548111156112b15760405162461bcd60e51b8152602060048201526011602482015270427579206d6178207472616e736665722160781b6044820152606401610834565b6113ba565b6001600160a01b0382165f9081526012602052604090205460ff1680156112f557506001600160a01b0383165f9081526011602052604090205460ff16155b1561134157600a548111156112b15760405162461bcd60e51b815260206004820152601260248201527153656c6c206d6178207472616e736665722160701b6044820152606401610834565b6001600160a01b0382165f9081526011602052604090205460ff166113ba5760095461136c83610729565b6113769083611c6b565b11156113ba5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610834565b5f6113c430610729565b600c5490915081118080156113e05750600f54610100900460ff165b80156113ef5750600b5460ff16155b801561141357506001600160a01b0385165f9081526012602052604090205460ff16155b801561143757506001600160a01b0385165f9081526010602052604090205460ff16155b801561145b57506001600160a01b0384165f9081526010602052604090205460ff16155b1561148057600b805460ff19166001179055611475611a49565b600b805460ff191690555b600b545f9060ff161580156114ad57506001600160a01b0386165f9081526010602052604090205460ff16155b80156114d157506001600160a01b0385165f9081526010602052604090205460ff16155b90505f811561157c576001600160a01b0386165f9081526012602052604090205460ff16156115215761151a6064611514600e5488611a7990919063ffffffff16565b90611a8b565b905061155e565b6001600160a01b0387165f9081526012602052604090205460ff161561155e5761155b6064611514600d5488611a7990919063ffffffff16565b90505b801561156f5761156f873083611921565b6115798186611d9d565b94505b611587878787611921565b50505050505050565b6001600160a01b0382166115f05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610834565b6001600160a01b0382165f90815260208190526040902054818110156116635760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610834565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061179757611797611db0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611813573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118379190611cb4565b8160018151811061184a5761184a611db0565b60200260200101906001600160a01b031690816001600160a01b031681525050611895307f000000000000000000000000000000000000000000000000000000000000000084610e8b565b60075460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926118f09287925f92889291909116904290600401611dc4565b5f604051808303815f87803b158015611907575f80fd5b505af1158015611919573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166119475760405162461bcd60e51b815260040161083490611d15565b6001600160a01b03821661196d5760405162461bcd60e51b815260040161083490611d5a565b6001600160a01b0383165f90815260208190526040902054818110156119e45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610834565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361107a565b5f611a5330610729565b9050805f03611a5f5750565b600c548190811115611a705750600c545b61084781611764565b5f611a848284611c7e565b9392505050565b5f611a848284611c95565b5f6020808352835180828501525f5b81811015611ac157858101830151858201604001528201611aa5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610726575f80fd5b5f8060408385031215611b06575f80fd5b8235611b1181611ae1565b946020939093013593505050565b5f8060408385031215611b30575f80fd5b50508035926020909101359150565b5f805f60608486031215611b51575f80fd5b8335611b5c81611ae1565b92506020840135611b6c81611ae1565b929592945050506040919091013590565b5f60208284031215611b8d575f80fd5b5035919050565b5f60208284031215611ba4575f80fd5b8135611a8481611ae1565b8015158114610726575f80fd5b5f8060408385031215611bcd575f80fd5b8235611bd881611ae1565b91506020830135611be881611baf565b809150509250929050565b5f8060408385031215611c04575f80fd5b8235611c0f81611ae1565b91506020830135611be881611ae1565b600181811c90821680611c3357607f821691505b602082108103611c5157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611c57565b80820281158282048414176106bf576106bf611c57565b5f82611caf57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611cc4575f80fd5b8151611a8481611ae1565b5f805f60608486031215611ce1575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d0a575f80fd5b8151611a8481611baf565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611c57565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e125784516001600160a01b031683529383019391830191600101611ded565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122035e20e3fa79ba348646590e48928f2f2da4578ea74dad360642f39eb2409741964736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101ff575f3560e01c8063751039fc11610113578063c9567bf91161009d578063e2f456051161006d578063e2f45605146105a6578063f2fde38b146105bb578063f8b45b05146105da578063fc849aaa146105ef578063ffb54a9914610603575f80fd5b8063c9567bf914610540578063dd62ed3e14610554578063dd96eca214610573578063de749dff14610592575f80fd5b80639a7a23d6116100e35780639a7a23d6146104af578063a457c2d7146104ce578063a9059cbb146104ed578063c02466681461050c578063c8c8ebe41461052b575f80fd5b8063751039fc1461044b5780637571336a1461045f5780638da5cb5b1461047e57806395d89b411461049b575f80fd5b806339509351116101945780634fbee193116101645780634fbee19314610390578063583e0568146103c75780636ddd1713146103fa57806370a0823114610418578063715018a614610437575f80fd5b8063395093511461030657806342966c6814610325578063470624021461034457806349bd5a5e14610359575f80fd5b806323b872dd116101cf57806323b872dd146102a25780632b14ca56146102c1578063311028af146102d6578063313ce567146102eb575f80fd5b806306fdde031461020a578063095ea7b3146102345780631710f2ca1461026357806318160ddd14610284575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61061c565b60405161022b9190611a96565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611af5565b6106ac565b604051901515815260200161022b565b34801561026e575f80fd5b5061028261027d366004611b1f565b6106c5565b005b34801561028f575f80fd5b506002545b60405190815260200161022b565b3480156102ad575f80fd5b506102536102bc366004611b3f565b6106d8565b3480156102cc575f80fd5b50610294600e5481565b3480156102e1575f80fd5b5061029460085481565b3480156102f6575f80fd5b506040516009815260200161022b565b348015610311575f80fd5b50610253610320366004611af5565b6106fb565b348015610330575f80fd5b5061028261033f366004611b7d565b61071c565b34801561034f575f80fd5b50610294600d5481565b348015610364575f80fd5b50600654610378906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b34801561039b575f80fd5b506102536103aa366004611b94565b6001600160a01b03165f9081526010602052604090205460ff1690565b3480156103d2575f80fd5b506103787f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610405575f80fd5b50600f5461025390610100900460ff1681565b348015610423575f80fd5b50610294610432366004611b94565b610729565b348015610442575f80fd5b50610282610743565b348015610456575f80fd5b50610282610756565b34801561046a575f80fd5b50610282610479366004611bbc565b61076b565b348015610489575f80fd5b506005546001600160a01b0316610378565b3480156104a6575f80fd5b5061021e61079d565b3480156104ba575f80fd5b506102826104c9366004611bbc565b6107ac565b3480156104d9575f80fd5b506102536104e8366004611af5565b61084b565b3480156104f8575f80fd5b50610253610507366004611af5565b6108c5565b348015610517575f80fd5b50610282610526366004611bbc565b6108d2565b348015610536575f80fd5b50610294600a5481565b34801561054b575f80fd5b50610282610938565b34801561055f575f80fd5b5061029461056e366004611bf3565b610951565b34801561057e575f80fd5b5061028261058d366004611b7d565b61097b565b34801561059d575f80fd5b506102826109cd565b3480156105b1575f80fd5b50610294600c5481565b3480156105c6575f80fd5b506102826105d5366004611b94565b610a64565b3480156105e5575f80fd5b5061029460095481565b3480156105fa575f80fd5b50610282610ada565b34801561060e575f80fd5b50600f546102539060ff1681565b60606003805461062b90611c1f565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611c1f565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f336106b9818585610e8b565b60019150505b92915050565b6106cd610fae565b600d91909155600e55565b5f336106e5858285611008565b6106f0858585611080565b506001949350505050565b5f336106b981858561070d8383610951565b6107179190611c6b565b610e8b565b6107263382611590565b50565b6001600160a01b03165f9081526020819052604090205490565b61074b610fae565b6107545f6116c0565b565b61075e610fae565b600854600a819055600955565b610773610fae565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b60606004805461062b90611c1f565b6107b4610fae565b6006546001600160a01b039081169083160361083d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6108478282611711565b5050565b5f33816108588286610951565b9050838110156108b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610834565b6106f08286868403610e8b565b5f336106b9818585611080565b6108da610fae565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610940610fae565b600f805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6007546001600160a01b0316336001600160a01b03161461099a575f80fd5b5f6109a430610729565b90505f60646109b38484611c7e565b6109bd9190611c95565b90506109c881611764565b505050565b5f4711610a1c5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000006044820152606401610834565b6007546001600160a01b0316336001600160a01b031614610a3b575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610726573d5f803e3d5ffd5b610a6c610fae565b6001600160a01b038116610ad15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610834565b610726816116c0565b610ae2610fae565b600f5460ff1615610b355760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610834565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb59190611cb4565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c449190611cb4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610c8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb29190611cb4565b600680546001600160a01b0319166001600160a01b03929092169182179055610cdc90600161076b565b600654610cf3906001600160a01b03166001611711565b610d20307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600854610e8b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610d5a30610729565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f604482018190526064820152739e3bf8e3c85cc9fce405dabe8594f20325ed1d5060848201524260a482015260c40160606040518083038185885af1158015610dcf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610df49190611ccf565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107269190611cfa565b6001600160a01b038316610eed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610834565b6001600160a01b038216610f4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610834565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610834565b5f6110138484610951565b90505f19811461107a578181101561106d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610834565b61107a8484848403610e8b565b50505050565b6001600160a01b0383166110a65760405162461bcd60e51b815260040161083490611d15565b6001600160a01b0382166110cc5760405162461bcd60e51b815260040161083490611d5a565b805f036110de576109c883835f611921565b6005546001600160a01b0384811691161480159061110a57506005546001600160a01b03838116911614155b801561111e57506001600160a01b03821615155b801561113557506001600160a01b03821661dead14155b80156111445750600b5460ff16155b156113ba57600f5460ff166111d5576001600160a01b0383165f9081526010602052604090205460ff168061119057506001600160a01b0382165f9081526010602052604090205460ff165b6111d55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610834565b6001600160a01b0383165f9081526012602052604090205460ff16801561121457506001600160a01b0382165f9081526011602052604090205460ff16155b156112b65760095461122583610729565b61122f9083611c6b565b111561126b5760405162461bcd60e51b815260206004820152600b60248201526a4d61782077616c6c65742160a81b6044820152606401610834565b600a548111156112b15760405162461bcd60e51b8152602060048201526011602482015270427579206d6178207472616e736665722160781b6044820152606401610834565b6113ba565b6001600160a01b0382165f9081526012602052604090205460ff1680156112f557506001600160a01b0383165f9081526011602052604090205460ff16155b1561134157600a548111156112b15760405162461bcd60e51b815260206004820152601260248201527153656c6c206d6178207472616e736665722160701b6044820152606401610834565b6001600160a01b0382165f9081526011602052604090205460ff166113ba5760095461136c83610729565b6113769083611c6b565b11156113ba5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610834565b5f6113c430610729565b600c5490915081118080156113e05750600f54610100900460ff165b80156113ef5750600b5460ff16155b801561141357506001600160a01b0385165f9081526012602052604090205460ff16155b801561143757506001600160a01b0385165f9081526010602052604090205460ff16155b801561145b57506001600160a01b0384165f9081526010602052604090205460ff16155b1561148057600b805460ff19166001179055611475611a49565b600b805460ff191690555b600b545f9060ff161580156114ad57506001600160a01b0386165f9081526010602052604090205460ff16155b80156114d157506001600160a01b0385165f9081526010602052604090205460ff16155b90505f811561157c576001600160a01b0386165f9081526012602052604090205460ff16156115215761151a6064611514600e5488611a7990919063ffffffff16565b90611a8b565b905061155e565b6001600160a01b0387165f9081526012602052604090205460ff161561155e5761155b6064611514600d5488611a7990919063ffffffff16565b90505b801561156f5761156f873083611921565b6115798186611d9d565b94505b611587878787611921565b50505050505050565b6001600160a01b0382166115f05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610834565b6001600160a01b0382165f90815260208190526040902054818110156116635760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610834565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061179757611797611db0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611813573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118379190611cb4565b8160018151811061184a5761184a611db0565b60200260200101906001600160a01b031690816001600160a01b031681525050611895307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610e8b565b60075460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac947926118f09287925f92889291909116904290600401611dc4565b5f604051808303815f87803b158015611907575f80fd5b505af1158015611919573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166119475760405162461bcd60e51b815260040161083490611d15565b6001600160a01b03821661196d5760405162461bcd60e51b815260040161083490611d5a565b6001600160a01b0383165f90815260208190526040902054818110156119e45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610834565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361107a565b5f611a5330610729565b9050805f03611a5f5750565b600c548190811115611a705750600c545b61084781611764565b5f611a848284611c7e565b9392505050565b5f611a848284611c95565b5f6020808352835180828501525f5b81811015611ac157858101830151858201604001528201611aa5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610726575f80fd5b5f8060408385031215611b06575f80fd5b8235611b1181611ae1565b946020939093013593505050565b5f8060408385031215611b30575f80fd5b50508035926020909101359150565b5f805f60608486031215611b51575f80fd5b8335611b5c81611ae1565b92506020840135611b6c81611ae1565b929592945050506040919091013590565b5f60208284031215611b8d575f80fd5b5035919050565b5f60208284031215611ba4575f80fd5b8135611a8481611ae1565b8015158114610726575f80fd5b5f8060408385031215611bcd575f80fd5b8235611bd881611ae1565b91506020830135611be881611baf565b809150509250929050565b5f8060408385031215611c04575f80fd5b8235611c0f81611ae1565b91506020830135611be881611ae1565b600181811c90821680611c3357607f821691505b602082108103611c5157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106bf576106bf611c57565b80820281158282048414176106bf576106bf611c57565b5f82611caf57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611cc4575f80fd5b8151611a8481611ae1565b5f805f60608486031215611ce1575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d0a575f80fd5b8151611a8481611baf565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106bf576106bf611c57565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e125784516001600160a01b031683529383019391830191600101611ded565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122035e20e3fa79ba348646590e48928f2f2da4578ea74dad360642f39eb2409741964736f6c63430008140033
Deployed Bytecode Sourcemap
14540:7851:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2806:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3737:201;;;;;;;;;;-1:-1:-1;3737:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3737:201:0;1023:187:1;21272:141:0;;;;;;;;;;-1:-1:-1;21272:141:0;;;;;:::i;:::-;;:::i;:::-;;3126:108;;;;;;;;;;-1:-1:-1;3214:12:0;;3126:108;;;1614:25:1;;;1602:2;1587:18;3126:108:0;1468:177:1;3946:261:0;;;;;;;;;;-1:-1:-1;3946:261:0;;;;;:::i;:::-;;:::i;15205:27::-;;;;;;;;;;;;;;;;14849:62;;;;;;;;;;;;;;;;3026:92;;;;;;;;;;-1:-1:-1;3026:92:0;;3109:1;2253:36:1;;2241:2;2226:18;3026:92:0;2111:184:1;4215:238:0;;;;;;;;;;-1:-1:-1;4215:238:0;;;;;:::i;:::-;;:::i;17404:85::-;;;;;;;;;;-1:-1:-1;17404:85:0;;;;;:::i;:::-;;:::i;15172:26::-;;;;;;;;;;;;;;;;14675:28;;;;;;;;;;-1:-1:-1;14675:28:0;;;;-1:-1:-1;;;;;14675:28:0;;;;;;-1:-1:-1;;;;;2649:32:1;;;2631:51;;2619:2;2604:18;14675:28:0;2485:203:1;18300:126:0;;;;;;;;;;-1:-1:-1;18300:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18390:28:0;18366:4;18390:28;;;:19;:28;;;;;;;;;18300:126;14616:52;;;;;;;;;;;;;;;15279:31;;;;;;;;;;-1:-1:-1;15279:31:0;;;;;;;;;;;3242:127;;;;;;;;;;-1:-1:-1;3242:127:0;;;;;:::i;:::-;;:::i;978:103::-;;;;;;;;;;;;;:::i;21120:144::-;;;;;;;;;;;;;:::i;17689:::-;;;;;;;;;;-1:-1:-1;17689:144:0;;;;;:::i;:::-;;:::i;743:87::-;;;;;;;;;;-1:-1:-1;816:6:0;;-1:-1:-1;;;;;816:6:0;743:87;;2914:104;;;;;;;;;;;;;:::i;17841:257::-;;;;;;;;;;-1:-1:-1;17841:257:0;;;;;:::i;:::-;;:::i;4461:436::-;;;;;;;;;;-1:-1:-1;4461:436:0;;;;;:::i;:::-;;:::i;3377:193::-;;;;;;;;;;-1:-1:-1;3377:193:0;;;;;:::i;:::-;;:::i;17497:182::-;;;;;;;;;;-1:-1:-1;17497:182:0;;;;;:::i;:::-;;:::i;15008:47::-;;;;;;;;;;;;;;;;17288:110;;;;;;;;;;;;;:::i;3578:151::-;;;;;;;;;;-1:-1:-1;3578:151:0;;;;;:::i;:::-;;:::i;21796:310::-;;;;;;;;;;-1:-1:-1;21796:310:0;;;;;:::i;:::-;;:::i;22114:274::-;;;;;;;;;;;;;:::i;15098:65::-;;;;;;;;;;;;;;;;1089:201;;;;;;;;;;-1:-1:-1;1089:201:0;;;;;:::i;:::-;;:::i;14944:57::-;;;;;;;;;;;;;;;;16470:810;;;;;;;;;;;;;:::i;15241:31::-;;;;;;;;;;-1:-1:-1;15241:31:0;;;;;;;;2806:100;2860:13;2893:5;2886:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2806:100;:::o;3737:201::-;3820:4;296:10;3876:32;296:10;3892:7;3901:6;3876:8;:32::i;:::-;3926:4;3919:11;;;3737:201;;;;;:::o;21272:141::-;702:13;:11;:13::i;:::-;21360:6:::1;:16:::0;;;;21387:7:::1;:18:::0;21272:141::o;3946:261::-;4043:4;296:10;4101:38;4117:4;296:10;4132:6;4101:15;:38::i;:::-;4150:27;4160:4;4166:2;4170:6;4150:9;:27::i;:::-;-1:-1:-1;4195:4:0;;3946:261;-1:-1:-1;;;;3946:261:0:o;4215:238::-;4303:4;296:10;4359:64;296:10;4375:7;4412:10;4384:25;296:10;4375:7;4384:9;:25::i;:::-;:38;;;;:::i;:::-;4359:8;:64::i;17404:85::-;17454:27;296:10;17474:6;17454:5;:27::i;:::-;17404:85;:::o;3242:127::-;-1:-1:-1;;;;;3343:18:0;3316:7;3343:18;;;;;;;;;;;;3242:127::o;978:103::-;702:13;:11;:13::i;:::-;1043:30:::1;1070:1;1043:18;:30::i;:::-;978:103::o:0;21120:144::-;702:13;:11;:13::i;:::-;21197:18:::1;::::0;21174:20:::1;:41:::0;;;21226:9:::1;:30:::0;21120:144::o;17689:::-;702:13;:11;:13::i;:::-;-1:-1:-1;;;;;17779:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17779:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17689:144::o;2914:104::-;2970:13;3003:7;2996:14;;;;;:::i;17841:257::-;702:13;:11;:13::i;:::-;17963::::1;::::0;-1:-1:-1;;;;;17963:13:0;;::::1;17955:21:::0;;::::1;::::0;17947:91:::1;;;::::0;-1:-1:-1;;;17947:91:0;;4932:2:1;17947:91:0::1;::::0;::::1;4914:21:1::0;4971:2;4951:18;;;4944:30;5010:34;4990:18;;;4983:62;5081:27;5061:18;;;5054:55;5126:19;;17947:91:0::1;;;;;;;;;18049:41;18078:4;18084:5;18049:28;:41::i;:::-;17841:257:::0;;:::o;4461:436::-;4554:4;296:10;4554:4;4637:25;296:10;4654:7;4637:9;:25::i;:::-;4610:52;;4701:15;4681:16;:35;;4673:85;;;;-1:-1:-1;;;4673:85:0;;5358:2:1;4673:85:0;;;5340:21:1;5397:2;5377:18;;;5370:30;5436:34;5416:18;;;5409:62;-1:-1:-1;;;5487:18:1;;;5480:35;5532:19;;4673:85:0;5156:401:1;4673:85:0;4794:60;4803:5;4810:7;4838:15;4819:16;:34;4794:8;:60::i;3377:193::-;3456:4;296:10;3512:28;296:10;3529:2;3533:6;3512:9;:28::i;17497:182::-;702:13;:11;:13::i;:::-;-1:-1:-1;;;;;17582:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17582:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17637:34;;1163:41:1;;;17637:34:0::1;::::0;1136:18:1;17637:34:0::1;;;;;;;17497:182:::0;;:::o;17288:110::-;702:13;:11;:13::i;:::-;17343:11:::1;:18:::0;;-1:-1:-1;;17372:18:0;;;;;17288:110::o;3578:151::-;-1:-1:-1;;;;;3694:18:0;;;3667:7;3694:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3578:151::o;21796:310::-;21924:10;;-1:-1:-1;;;;;21924:10:0;296;-1:-1:-1;;;;;21908:26:0;;21900:35;;;;;;21946:23;21972:24;21990:4;21972:9;:24::i;:::-;21946:50;-1:-1:-1;22007:18:0;22056:3;22028:25;22046:7;21946:50;22028:25;:::i;:::-;:31;;;;:::i;:::-;22007:52;;22070:28;22087:10;22070:16;:28::i;:::-;21844:262;;21796:310;:::o;22114:274::-;22237:1;22213:21;:25;22205:67;;;;-1:-1:-1;;;22205:67:0;;6159:2:1;22205:67:0;;;6141:21:1;6198:2;6178:18;;;6171:30;6237:31;6217:18;;;6210:59;6286:18;;22205:67:0;5957:353:1;22205:67:0;22307:10;;-1:-1:-1;;;;;22307:10:0;296;-1:-1:-1;;;;;22291:26:0;;22283:35;;;;;;22329:51;;22337:10;;22358:21;22329:51;;;;;;;;;22358:21;22337:10;22329:51;;;;;;;;;;;;;;;;;;;1089:201;702:13;:11;:13::i;:::-;-1:-1:-1;;;;;1178:22:0;::::1;1170:73;;;::::0;-1:-1:-1;;;1170:73:0;;6517:2:1;1170:73:0::1;::::0;::::1;6499:21:1::0;6556:2;6536:18;;;6529:30;6595:34;6575:18;;;6568:62;-1:-1:-1;;;6646:18:1;;;6639:36;6692:19;;1170:73:0::1;6315:402:1::0;1170:73:0::1;1254:28;1273:8;1254:18;:28::i;16470:810::-:0;702:13;:11;:13::i;:::-;16542:11:::1;::::0;::::1;;16541:12;16533:47;;;::::0;-1:-1:-1;;;16533:47:0;;6924:2:1;16533:47:0::1;::::0;::::1;6906:21:1::0;6963:2;6943:18;;;6936:30;7002:25;6982:18;;;6975:53;7045:18;;16533:47:0::1;6722:347:1::0;16533:47:0::1;16625:16;-1:-1:-1::0;;;;;16625:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16607:56:0::1;;16672:4;16679:16;-1:-1:-1::0;;;;;16679:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16607:96;::::0;-1:-1:-1;;;;;;16607:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7560:15:1;;;16607:96:0::1;::::0;::::1;7542:34:1::0;7612:15;;7592:18;;;7585:43;7477:18;;16607:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16591:13;:112:::0;;-1:-1:-1;;;;;;16591:112:0::1;-1:-1:-1::0;;;;;16591:112:0;;;::::1;::::0;;::::1;::::0;;16714:55:::1;::::0;-1:-1:-1;16714:25:0::1;:55::i;:::-;16817:13;::::0;16780:58:::1;::::0;-1:-1:-1;;;;;16817:13:0::1;::::0;16780:28:::1;:58::i;:::-;16849:70;16866:4;16881:16;16900:18;;16849:8;:70::i;:::-;16930:16;-1:-1:-1::0;;;;;16930:32:0::1;;16970:21;17015:4;17035:24;17053:4;17035:9;:24::i;:::-;16930:259;::::0;-1:-1:-1;;;;;;16930:259:0::1;::::0;;;;;;-1:-1:-1;;;;;7998:15:1;;;16930:259:0::1;::::0;::::1;7980:34:1::0;8030:18;;;8023:34;17074:1:0::1;8073:18:1::0;;;8066:34;;;8116:18;;;8109:34;17106:42:0::1;8159:19:1::0;;;8152:44;17163:15:0::1;8212:19:1::0;;;8205:35;7914:19;;16930:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17207:13:0::1;::::0;17200:72:::1;::::0;-1:-1:-1;;;17200:72:0;;-1:-1:-1;;;;;17238:16:0::1;8754:32:1::0;;17200:72:0::1;::::0;::::1;8736:51:1::0;-1:-1:-1;;8803:18:1;;;8796:34;17207:13:0;;::::1;::::0;-1:-1:-1;17200:29:0::1;::::0;8709:18:1;;17200:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6600:346::-:0;-1:-1:-1;;;;;6702:19:0;;6694:68;;;;-1:-1:-1;;;6694:68:0;;9293:2:1;6694:68:0;;;9275:21:1;9332:2;9312:18;;;9305:30;9371:34;9351:18;;;9344:62;-1:-1:-1;;;9422:18:1;;;9415:34;9466:19;;6694:68:0;9091:400:1;6694:68:0;-1:-1:-1;;;;;6781:21:0;;6773:68;;;;-1:-1:-1;;;6773:68:0;;9698:2:1;6773:68:0;;;9680:21:1;9737:2;9717:18;;;9710:30;9776:34;9756:18;;;9749:62;-1:-1:-1;;;9827:18:1;;;9820:32;9869:19;;6773:68:0;9496:398:1;6773:68:0;-1:-1:-1;;;;;6854:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6906:32;;1614:25:1;;;6906:32:0;;1587:18:1;6906:32:0;;;;;;;6600:346;;;:::o;838:132::-;816:6;;-1:-1:-1;;;;;816:6:0;296:10;902:23;894:68;;;;-1:-1:-1;;;894:68:0;;10101:2:1;894:68:0;;;10083:21:1;;;10120:18;;;10113:30;10179:34;10159:18;;;10152:62;10231:18;;894:68:0;9899:356:1;6954:419:0;7055:24;7082:25;7092:5;7099:7;7082:9;:25::i;:::-;7055:52;;-1:-1:-1;;7122:16:0;:37;7118:248;;7204:6;7184:16;:26;;7176:68;;;;-1:-1:-1;;;7176:68:0;;10462:2:1;7176:68:0;;;10444:21:1;10501:2;10481:18;;;10474:30;10540:31;10520:18;;;10513:59;10589:18;;7176:68:0;10260:353:1;7176:68:0;7288:51;7297:5;7304:7;7332:6;7313:16;:25;7288:8;:51::i;:::-;7044:329;6954:419;;;:::o;18434:2199::-;-1:-1:-1;;;;;18532:18:0;;18524:68;;;;-1:-1:-1;;;18524:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18611:16:0;;18603:64;;;;-1:-1:-1;;;18603:64:0;;;;;;;:::i;:::-;18684:6;18694:1;18684:11;18680:93;;18712:28;18728:4;18734:2;18738:1;18712:15;:28::i;18680:93::-;816:6;;-1:-1:-1;;;;;18789:15:0;;;816:6;;18789:15;;;;:32;;-1:-1:-1;816:6:0;;-1:-1:-1;;;;;18808:13:0;;;816:6;;18808:13;;18789:32;:52;;;;-1:-1:-1;;;;;;18825:16:0;;;;18789:52;:77;;;;-1:-1:-1;;;;;;18845:21:0;;18859:6;18845:21;;18789:77;:90;;;;-1:-1:-1;18871:8:0;;;;18870:9;18789:90;18785:883;;;18901:11;;;;18896:140;;-1:-1:-1;;;;;18941:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18970:23:0;;;;;;:19;:23;;;;;;;;18941:52;18933:87;;;;-1:-1:-1;;;18933:87:0;;11630:2:1;18933:87:0;;;11612:21:1;11669:2;11649:18;;;11642:30;-1:-1:-1;;;11688:18:1;;;11681:52;11750:18;;18933:87:0;11428:346:1;18933:87:0;-1:-1:-1;;;;;19056:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19092:35:0;;;;;;:31;:35;;;;;;;;19091:36;19056:71;19052:605;;;19182:9;;19165:13;19175:2;19165:9;:13::i;:::-;19156:22;;:6;:22;:::i;:::-;:35;;19148:59;;;;-1:-1:-1;;;19148:59:0;;11981:2:1;19148:59:0;;;11963:21:1;12020:2;12000:18;;;11993:30;-1:-1:-1;;;12039:18:1;;;12032:41;12090:18;;19148:59:0;11779:335:1;19148:59:0;19244:20;;19234:6;:30;;19226:60;;;;-1:-1:-1;;;19226:60:0;;12321:2:1;19226:60:0;;;12303:21:1;12360:2;12340:18;;;12333:30;-1:-1:-1;;;12379:18:1;;;12372:47;12436:18;;19226:60:0;12119:341:1;19226:60:0;19052:605;;;-1:-1:-1;;;;;19325:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19359:37:0;;;;;;:31;:37;;;;;;;;19358:38;19325:71;19321:336;;;19435:20;;19425:6;:30;;19417:61;;;;-1:-1:-1;;;19417:61:0;;12667:2:1;19417:61:0;;;12649:21:1;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12725:18:1;;;12718:48;12783:18;;19417:61:0;12465:342:1;19321:336:0;-1:-1:-1;;;;;19518:35:0;;;;;;:31;:35;;;;;;;;19513:144;;19608:9;;19591:13;19601:2;19591:9;:13::i;:::-;19582:22;;:6;:22;:::i;:::-;:35;;19574:67;;;;-1:-1:-1;;;19574:67:0;;13014:2:1;19574:67:0;;;12996:21:1;13053:2;13033:18;;;13026:30;-1:-1:-1;;;13072:18:1;;;13065:49;13131:18;;19574:67:0;12812:343:1;19574:67:0;19680:28;19711:24;19729:4;19711:9;:24::i;:::-;19784:18;;19680:55;;-1:-1:-1;19761:41:0;;;19817:22;;;;-1:-1:-1;19828:11:0;;;;;;;19817:22;:35;;;;-1:-1:-1;19844:8:0;;;;19843:9;19817:35;:71;;;;-1:-1:-1;;;;;;19857:31:0;;;;;;:25;:31;;;;;;;;19856:32;19817:71;:101;;;;-1:-1:-1;;;;;;19893:25:0;;;;;;:19;:25;;;;;;;;19892:26;19817:101;:129;;;;-1:-1:-1;;;;;;19923:23:0;;;;;;:19;:23;;;;;;;;19922:24;19817:129;19813:233;;;19963:8;:15;;-1:-1:-1;;19963:15:0;19974:4;19963:15;;;19993:10;:8;:10::i;:::-;20018:8;:16;;-1:-1:-1;;20018:16:0;;;19813:233;20074:8;;20058:12;;20074:8;;20073:9;:39;;;;-1:-1:-1;;;;;;20087:25:0;;;;;;:19;:25;;;;;;;;20086:26;20073:39;:67;;;;-1:-1:-1;;;;;;20117:23:0;;;;;;:19;:23;;;;;;;;20116:24;20073:67;20058:82;;20153:12;20184:7;20180:402;;;-1:-1:-1;;;;;20212:29:0;;;;;;:25;:29;;;;;;;;20208:229;;;20269:28;20293:3;20269:19;20280:7;;20269:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20262:35;;20208:229;;;-1:-1:-1;;;;;20335:31:0;;;;;;:25;:31;;;;;;;;20332:105;;;20394:27;20417:3;20394:18;20405:6;;20394;:10;;:18;;;;:::i;:27::-;20387:34;;20332:105;20455:8;;20451:91;;20484:42;20500:4;20514;20521;20484:15;:42::i;:::-;20556:14;20566:4;20556:14;;:::i;:::-;;;20180:402;20592:33;20608:4;20614:2;20618:6;20592:15;:33::i;:::-;18513:2120;;;;18434:2199;;;:::o;5997:595::-;-1:-1:-1;;;;;6081:21:0;;6073:67;;;;-1:-1:-1;;;6073:67:0;;13495:2:1;6073:67:0;;;13477:21:1;13534:2;13514:18;;;13507:30;13573:34;13553:18;;;13546:62;-1:-1:-1;;;13624:18:1;;;13617:31;13665:19;;6073:67:0;13293:397:1;6073:67:0;-1:-1:-1;;;;;6240:18:0;;6215:22;6240:18;;;;;;;;;;;6277:24;;;;6269:71;;;;-1:-1:-1;;;6269:71:0;;13897:2:1;6269:71:0;;;13879:21:1;13936:2;13916:18;;;13909:30;13975:34;13955:18;;;13948:62;-1:-1:-1;;;14026:18:1;;;14019:32;14068:19;;6269:71:0;13695:398:1;6269:71:0;-1:-1:-1;;;;;6376:18:0;;:9;:18;;;;;;;;;;;6397:23;;;6376:44;;6435:12;:22;;;;;;;6486:37;1614:25:1;;;6376:9:0;;:18;6486:37;;1587:18:1;6486:37:0;;;;;;;21844:262;;21796:310;:::o;1298:191::-;1391:6;;;-1:-1:-1;;;;;1408:17:0;;;-1:-1:-1;;;;;;1408:17:0;;;;;;;1441:40;;1391:6;;;1408:17;1391:6;;1441:40;;1372:16;;1441:40;1361:128;1298:191;:::o;18106:186::-;-1:-1:-1;;;;;18189:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18189:39:0;;;;;;;;;;18244:40;;18189:39;;:31;18244:40;;;18106:186;;:::o;20641:471::-;20731:16;;;20745:1;20731:16;;;;;;;;20707:21;;20731:16;;;;;;;;;;-1:-1:-1;20731:16:0;20707:40;;20776:4;20758;20763:1;20758:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20758:23:0;;;-1:-1:-1;;;;;20758:23:0;;;;;20802:16;-1:-1:-1;;;;;20802:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20792:4;20797:1;20792:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;20792:33:0;;;-1:-1:-1;;;;;20792:33:0;;;;;20836:63;20853:4;20868:16;20887:11;20836:8;:63::i;:::-;21053:10;;20910:194;;-1:-1:-1;;;20910:194:0;;-1:-1:-1;;;;;20910:16:0;:67;;;;;:194;;20992:11;;21018:1;;21034:4;;21053:10;;;;;21078:15;;20910:194;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20696:416;20641:471;:::o;4905:641::-;-1:-1:-1;;;;;5002:18:0;;4994:68;;;;-1:-1:-1;;;4994:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5081:16:0;;5073:64;;;;-1:-1:-1;;;5073:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5223:15:0;;5201:19;5223:15;;;;;;;;;;;5257:21;;;;5249:72;;;;-1:-1:-1;;;5249:72:0;;15549:2:1;5249:72:0;;;15531:21:1;15588:2;15568:18;;;15561:30;15627:34;15607:18;;;15600:62;-1:-1:-1;;;15678:18:1;;;15671:36;15724:19;;5249:72:0;15347:402:1;5249:72:0;-1:-1:-1;;;;;5357:15:0;;;:9;:15;;;;;;;;;;;5375:20;;;5357:38;;5410:13;;;;;;;;;;:23;;;;;;5462:26;;1614:25:1;;;5410:13:0;;5462:26;;1587:18:1;5462:26:0;;;;;;;5501:37;21796:310;21421:367;21460:23;21486:24;21504:4;21486:9;:24::i;:::-;21460:50;;21525:15;21544:1;21525:20;21521:59;;21562:7;21421:367::o;21521:59::-;21660:18;;21613:15;;21645:33;;21641:99;;;-1:-1:-1;21710:18:0;;21641:99;21750:30;21767:12;21750:16;:30::i;13403:98::-;13461:7;13488:5;13492:1;13488;:5;:::i;:::-;13481:12;13403:98;-1:-1:-1;;;13403:98:0:o;13509:::-;13567:7;13594:5;13598:1;13594;:5;:::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;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1650:456::-;1727:6;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;-1:-1:-1;1977:2:1;1962:18;;1949:32;1990:33;1949:32;1990:33;:::i;:::-;1650:456;;2042:7;;-1:-1:-1;;;2096:2:1;2081:18;;;;2068:32;;1650:456::o;2300:180::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;-1:-1:-1;2451:23:1;;2300:180;-1:-1:-1;2300:180:1:o;2693:247::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2860:9;2847:23;2879:31;2904:5;2879:31;:::i;3180:118::-;3266:5;3259:13;3252:21;3245:5;3242:32;3232:60;;3288:1;3285;3278:12;3303:382;3368:6;3376;3429:2;3417:9;3408:7;3404:23;3400:32;3397:52;;;3445:1;3442;3435:12;3397:52;3484:9;3471:23;3503:31;3528:5;3503:31;:::i;:::-;3553:5;-1:-1:-1;3610:2:1;3595:18;;3582:32;3623:30;3582:32;3623:30;:::i;:::-;3672:7;3662:17;;;3303:382;;;;;:::o;3690:388::-;3758:6;3766;3819:2;3807:9;3798:7;3794:23;3790:32;3787:52;;;3835:1;3832;3825:12;3787:52;3874:9;3861:23;3893:31;3918:5;3893:31;:::i;:::-;3943:5;-1:-1:-1;4000:2:1;3985:18;;3972:32;4013:33;3972:32;4013:33;:::i;4083:380::-;4162:1;4158:12;;;;4205;;;4226:61;;4280:4;4272:6;4268:17;4258:27;;4226:61;4333:2;4325:6;4322:14;4302:18;4299:38;4296:161;;4379:10;4374:3;4370:20;4367:1;4360:31;4414:4;4411:1;4404:15;4442:4;4439:1;4432:15;4296:161;;4083:380;;;:::o;4468:127::-;4529:10;4524:3;4520:20;4517:1;4510:31;4560:4;4557:1;4550:15;4584:4;4581:1;4574:15;4600:125;4665:9;;;4686:10;;;4683:36;;;4699:18;;:::i;5562:168::-;5635:9;;;5666;;5683:15;;;5677:22;;5663:37;5653:71;;5704:18;;:::i;5735:217::-;5775:1;5801;5791:132;;5845:10;5840:3;5836:20;5833:1;5826:31;5880:4;5877:1;5870:15;5908:4;5905:1;5898:15;5791:132;-1:-1:-1;5937:9:1;;5735:217::o;7074:251::-;7144:6;7197:2;7185:9;7176:7;7172:23;7168:32;7165:52;;;7213:1;7210;7203:12;7165:52;7245:9;7239:16;7264:31;7289:5;7264:31;:::i;8251:306::-;8339:6;8347;8355;8408:2;8396:9;8387:7;8383:23;8379:32;8376:52;;;8424:1;8421;8414:12;8376:52;8453:9;8447:16;8437:26;;8503:2;8492:9;8488:18;8482:25;8472:35;;8547:2;8536:9;8532:18;8526:25;8516:35;;8251:306;;;;;:::o;8841:245::-;8908:6;8961:2;8949:9;8940:7;8936:23;8932:32;8929:52;;;8977:1;8974;8967:12;8929:52;9009:9;9003:16;9028:28;9050:5;9028:28;:::i;10618:401::-;10820:2;10802:21;;;10859:2;10839:18;;;10832:30;10898:34;10893:2;10878:18;;10871:62;-1:-1:-1;;;10964:2:1;10949:18;;10942:35;11009:3;10994:19;;10618:401::o;11024:399::-;11226:2;11208:21;;;11265:2;11245:18;;;11238:30;11304:34;11299:2;11284:18;;11277:62;-1:-1:-1;;;11370:2:1;11355:18;;11348:33;11413:3;11398:19;;11024:399::o;13160:128::-;13227:9;;;13248:11;;;13245:37;;;13262:18;;:::i;14230:127::-;14291:10;14286:3;14282:20;14279:1;14272:31;14322:4;14319:1;14312:15;14346:4;14343:1;14336:15;14362:980;14624:4;14672:3;14661:9;14657:19;14703:6;14692:9;14685:25;14729:2;14767:6;14762:2;14751:9;14747:18;14740:34;14810:3;14805:2;14794:9;14790:18;14783:31;14834:6;14869;14863:13;14900:6;14892;14885:22;14938:3;14927:9;14923:19;14916:26;;14977:2;14969:6;14965:15;14951:29;;14998:1;15008:195;15022:6;15019:1;15016:13;15008:195;;;15087:13;;-1:-1:-1;;;;;15083:39:1;15071:52;;15178:15;;;;15143:12;;;;15119:1;15037:9;15008:195;;;-1:-1:-1;;;;;;;15259:32:1;;;;15254:2;15239:18;;15232:60;-1:-1:-1;;;15323:3:1;15308:19;15301:35;15220:3;14362:980;-1:-1:-1;;;14362:980:1:o
Swarm Source
ipfs://35e20e3fa79ba348646590e48928f2f2da4578ea74dad360642f39eb24097419
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.