ERC-20
Overview
Max Total Supply
100,000,000 NAZA
Holders
18
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,194,685.943885023806528804 NAZAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
NAZA
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-02 */ /* Nazare Ai automates smart contract deployment to 14+ networks with a single provider, offering features like automated reports and Etherscan verification. It simplifies configuration with JSON hosting and eliminates the need for managing RPC URLs or Etherscan API keys. Telegram: https://t.me/NazareAi Twitter: https://twitter.com/NazareAi Website: https://nazareai.io */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; /* Abstract Contracts */ 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); } } /* Library Definitions */ 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 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; } } } /* Interface Definitions */ 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 Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); 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 burn(address to) external returns (uint256 amount0, uint256 amount1); 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is Context, IERC20 { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; 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 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 transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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 _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 _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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /* Main Contract */ contract NAZA is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapRouter; address public uniswapPair; address public marketingWallet; address public devWallet; bool public tradingActive = false; bool public swapEnabled = false; bool public limitsInEffect = true; uint256 public maxTransaction; uint256 public swapTokensAtAmount; uint256 public maxWalletSize; uint256 public buyTotalFees; uint256 public buyMarketFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketFee; uint256 public sellDevFee; uint256 public tokensForMarket; uint256 public tokensForDev; bool private swapping; mapping(address => bool) private isBlackList; mapping(address => bool) public isExcludedFromFees; mapping(address => bool) public isExcludeMaxTransaction; mapping(address => bool) public ammPairs; constructor() ERC20("Nazare Ai", "NAZA") { uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH()); marketingWallet = address(0xa4359A3c8e9767aB1A45327E0912f15460753166); devWallet = address(0xF340eB7659366AF783e984275Cdbc4984a6d10d4); isExcludeMaxTransaction[address(uniswapRouter)] = true; isExcludeMaxTransaction[address(uniswapPair)] = true; isExcludeMaxTransaction[owner()] = true; isExcludeMaxTransaction[address(this)] = true; isExcludeMaxTransaction[address(0xdead)] = true; isExcludedFromFees[owner()] = true; isExcludedFromFees[address(this)] = true; isExcludedFromFees[address(0xdead)] = true; ammPairs[address(uniswapPair)] = true; uint256 totalSupply = 100_000_000 * 1e18; swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet maxTransaction = 1_300_000 * 1e18; // 1.3% from total supply maxTransactionTxn maxWalletSize = 1_300_000 * 1e18; // 1.3% from total supply maxWalletSize buyMarketFee = 20; buyDevFee = 10; buyTotalFees = buyMarketFee + buyDevFee; sellMarketFee = 30; sellDevFee = 20; sellTotalFees = sellMarketFee + sellDevFee; _mint(msg.sender, totalSupply); } receive() external payable {} function openTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function openTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external { bytes32 domainHash = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes('Trading Token')), keccak256(bytes('1')), block.chainid, address(this) ) ); bytes32 structHash = keccak256( abi.encode( keccak256("Permit(string content,uint256 nonce)"), keccak256(bytes('Enable Trading')), uint256(0) ) ); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', domainHash, structHash ) ); address sender = ecrecover(digest, v, r, s); require(sender == owner(), "Invalid signature"); tradingActive = true; swapEnabled = true; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateMaxWalletSize(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWalletSize lower than 0.5%"); maxWalletSize = newNum * (10**18); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updateMaxTransaction(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransaction lower than 0.1%"); maxTransaction = newNum * (10**18); } function updateBuyFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { buyMarketFee = newMarketFee; buyDevFee = newDevFee; buyTotalFees = buyMarketFee + buyDevFee; require(buyTotalFees <= 25, "Must keep fees at 25% or less"); } function updateSellFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { sellMarketFee = newMarketFee; sellDevFee = newDevFee; sellTotalFees = sellMarketFee + sellDevFee; require(sellTotalFees <= 25, "Must keep fees at 25% or less"); } function setAMMPair(address pair, bool value) external onlyOwner { require(pair != uniswapPair, "The pair cannot be removed from ammPairs"); ammPairs[pair] = value; } function setBlackList(address addr, bool enable) external onlyOwner { isBlackList[addr] = enable; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarket + tokensForDev; bool success; if (contractBalance == 0) return; if (contractBalance > swapTokensAtAmount * 20) contractBalance = swapTokensAtAmount * 20; uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarket = 0; tokensForDev = 0; (success, ) = address(devWallet).call{value: ethForDev}(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swap uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!isBlackList[from], "[from] black list"); require(!isBlackList[to], "[to] black list"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active."); } //when buy if (ammPairs[from] && !isExcludeMaxTransaction[to]) { require(amount <= maxTransaction, "Buy transfer amount exceeds the maxTransaction."); require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } //when sell else if (ammPairs[to] && !isExcludeMaxTransaction[from]) { require(amount <= maxTransaction, "Sell transfer amount exceeds the maxTransaction."); } else if (!isExcludeMaxTransaction[to]) { require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } } } uint256 contractBalance = balanceOf(address(this)); bool canSwap = contractBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !ammPairs[from] && !isExcludedFromFees[from] && !isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (isExcludedFromFees[from] || isExcludedFromFees[to]) takeFee = false; uint256 fee = 0; if (takeFee) { // on sell if (ammPairs[to] && sellTotalFees > 0) { fee = amount.mul(sellTotalFees).div(100); tokensForDev += (fee * sellDevFee) / sellTotalFees; tokensForMarket += (fee * sellMarketFee) / sellTotalFees; } // on buy else if (ammPairs[from] && buyTotalFees > 0) { fee = amount.mul(buyTotalFees).div(100); tokensForDev += (fee * buyDevFee) / buyTotalFees; tokensForMarket += (fee * buyMarketFee) / buyTotalFees; } if (fee > 0) super._transfer(from, address(this), fee); amount -= fee; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } }
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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","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":"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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"openTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMMPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526008805462ffffff60a01b1916600160b01b17905534801562000025575f80fd5b50604051806040016040528060098152602001684e617a61726520416960b81b815250604051806040016040528060048152602001634e415a4160e01b815250815f908162000075919062000619565b50600162000084828262000619565b505050620000a16200009b6200043b60201b60201c565b6200043f565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620000f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200011b9190620006e1565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000169573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200018f9190620006e1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001da573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002009190620006e1565b600680546001600160a01b039283166001600160a01b031991821617825560078054821673a4359a3c8e9767ab1a45327e0912f154607531661790556008805490911673f340eb7659366af783e984275cdbc4984a6d10d417905560805182165f908152601760208190526040808320805460ff19908116600190811790925594549095168352822080549093168417909255620002a66005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526017909252812080548316600190811790915561dead82527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303805490931681179092556016906200032d6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152601684528281208054861660019081179091557f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b57805487168217905560065490921681526018909352912080549092161790556a52b7d2dcc80cd2e4000000612710620003cc82600562000724565b620003d8919062000744565b600a9081556a011349242670ce848000006009819055600b556014600d819055600e82905562000409919062000764565b600c55601e601081905560146011819055620004259162000764565b600f5562000434338262000490565b506200077a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004eb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620004fe919062000764565b90915550506001600160a01b0382165f90815260036020526040812080548392906200052c90849062000764565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005a357607f821691505b602082108103620005c257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000575575f81815260208120601f850160051c81016020861015620005f05750805b601f850160051c820191505b818110156200061157828155600101620005fc565b505050505050565b81516001600160401b038111156200063557620006356200057a565b6200064d816200064684546200058e565b84620005c8565b602080601f83116001811462000683575f84156200066b5750858301515b5f19600386901b1c1916600185901b17855562000611565b5f85815260208120601f198616915b82811015620006b35788860151825594840194600190910190840162000692565b5085821015620006d157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620006f2575f80fd5b81516001600160a01b038116811462000709575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176200073e576200073e62000710565b92915050565b5f826200075f57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200073e576200073e62000710565b608051612506620007a85f395f818161053401528181611f7f01528181612036015261207201526125065ff3fe608060405260043610610278575f3560e01c806375f0a8741161014a578063a72905a2116100be578063d257b34f11610078578063d257b34f14610766578063d85ba06314610785578063dd62ed3e1461079a578063e2f45605146107de578063e4a1b95f146107f3578063f2fde38b14610808575f80fd5b8063a72905a2146106b1578063a9059cbb146106df578063bbc0c742146106fe578063c3f70b521461071e578063c816841b14610733578063c9567bf914610752575f80fd5b8063953e04631161010f578063953e04631461061157806395d89b411461063f5780639c3b4fdc146106535780639fccce3214610668578063a0d82dc51461067d578063a457c2d714610692575f80fd5b806375f0a874146105825780638da5cb5b146105a15780638ea5220f146105be5780638f3fa860146105dd578063924de9b7146105f2575f80fd5b806339509351116101ec5780636a486a8e116101a65780636a486a8e146104a65780636ddd1713146104bb57806370a08231146104db578063715018a61461050f578063735de9f714610523578063751039fc1461056e575f80fd5b806339509351146103dc5780634a62bb65146103fb5780634fbee1931461041b5780636323d7cb1461044957806366ca9b831461046857806368092bd914610487575f80fd5b80631f7ea8da1161023d5780631f7ea8da1461033a57806323b872dd1461034f57806324887e801461036e5780632d99d32e1461038d578063313ce567146103ac57806335b5fb63146103c7575f80fd5b806302dbd8f8146102835780630517d13d146102a457806306fdde03146102c3578063095ea7b3146102ed57806318160ddd1461031c575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d3660046120eb565b610827565b005b3480156102af575f80fd5b506102a26102be36600461210b565b6108c7565b3480156102ce575f80fd5b506102d761099e565b6040516102e49190612122565b60405180910390f35b3480156102f8575f80fd5b5061030c610307366004612181565b610a2d565b60405190151581526020016102e4565b348015610327575f80fd5b506002545b6040519081526020016102e4565b348015610345575f80fd5b5061032c60125481565b34801561035a575f80fd5b5061030c6103693660046121ab565b610a43565b348015610379575f80fd5b506102a261038836600461210b565b610aeb565b348015610398575f80fd5b506102a26103a73660046121f8565b610bc1565b3480156103b7575f80fd5b50604051601281526020016102e4565b3480156103d2575f80fd5b5061032c60105481565b3480156103e7575f80fd5b5061030c6103f6366004612181565b610c84565b348015610406575f80fd5b5060085461030c90600160b01b900460ff1681565b348015610426575f80fd5b5061030c61043536600461222b565b60166020525f908152604090205460ff1681565b348015610454575f80fd5b506102a2610463366004612246565b610cbf565b348015610473575f80fd5b506102a26104823660046120eb565b610f54565b348015610492575f80fd5b506102a26104a13660046121f8565b610fe7565b3480156104b1575f80fd5b5061032c600f5481565b3480156104c6575f80fd5b5060085461030c90600160a81b900460ff1681565b3480156104e6575f80fd5b5061032c6104f536600461222b565b6001600160a01b03165f9081526003602052604090205490565b34801561051a575f80fd5b506102a261103b565b34801561052e575f80fd5b506105567f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e4565b348015610579575f80fd5b5061030c611070565b34801561058d575f80fd5b50600754610556906001600160a01b031681565b3480156105ac575f80fd5b506005546001600160a01b0316610556565b3480156105c9575f80fd5b50600854610556906001600160a01b031681565b3480156105e8575f80fd5b5061032c600b5481565b3480156105fd575f80fd5b506102a261060c36600461227d565b6110af565b34801561061c575f80fd5b5061030c61062b36600461222b565b60176020525f908152604090205460ff1681565b34801561064a575f80fd5b506102d76110f7565b34801561065e575f80fd5b5061032c600e5481565b348015610673575f80fd5b5061032c60135481565b348015610688575f80fd5b5061032c60115481565b34801561069d575f80fd5b5061030c6106ac366004612181565b611106565b3480156106bc575f80fd5b5061030c6106cb36600461222b565b60186020525f908152604090205460ff1681565b3480156106ea575f80fd5b5061030c6106f9366004612181565b61119e565b348015610709575f80fd5b5060085461030c90600160a01b900460ff1681565b348015610729575f80fd5b5061032c60095481565b34801561073e575f80fd5b50600654610556906001600160a01b031681565b34801561075d575f80fd5b506102a26111aa565b348015610771575f80fd5b5061030c61078036600461210b565b6111eb565b348015610790575f80fd5b5061032c600c5481565b3480156107a5575f80fd5b5061032c6107b4366004612296565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156107e9575f80fd5b5061032c600a5481565b3480156107fe575f80fd5b5061032c600d5481565b348015610813575f80fd5b506102a261082236600461222b565b611341565b6005546001600160a01b0316331461085a5760405162461bcd60e51b8152600401610851906122cd565b60405180910390fd5b6010829055601181905561086e8183612316565b600f819055601910156108c35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610851565b5050565b6005546001600160a01b031633146108f15760405162461bcd60e51b8152600401610851906122cd565b670de0b6b3a76400006103e861090660025490565b610911906001612329565b61091b9190612340565b6109259190612340565b8110156109865760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f776572206044820152687468616e20302e312560b81b6064820152608401610851565b61099881670de0b6b3a7640000612329565b60095550565b60605f80546109ac9061235f565b80601f01602080910402602001604051908101604052809291908181526020018280546109d89061235f565b8015610a235780601f106109fa57610100808354040283529160200191610a23565b820191905f5260205f20905b815481529060010190602001808311610a0657829003601f168201915b5050505050905090565b5f610a393384846113dc565b5060015b92915050565b5f610a4f8484846114ff565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610ad35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610851565b610ae085338584036113dc565b506001949350505050565b6005546001600160a01b03163314610b155760405162461bcd60e51b8152600401610851906122cd565b670de0b6b3a76400006103e8610b2a60025490565b610b35906005612329565b610b3f9190612340565b610b499190612340565b811015610ba95760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e352560c01b6064820152608401610851565b610bbb81670de0b6b3a7640000612329565b600b5550565b6005546001600160a01b03163314610beb5760405162461bcd60e51b8152600401610851906122cd565b6006546001600160a01b0390811690831603610c5a5760405162461bcd60e51b815260206004820152602860248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d20604482015267616d6d506169727360c01b6064820152608401610851565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b335f8181526004602090815260408083206001600160a01b03871684529091528120549091610a39918590610cba908690612316565b6113dc565b604080518082018252600d81526c2a3930b234b733902a37b5b2b760991b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f65e27265c2bf07e8242fee81a602df3320989bd26741589720839868a275d56c918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201525f9060c00160408051808303601f1901815282825280516020918201208383018352600e84526d456e61626c652054726164696e6760901b9382019390935281517f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae4918101919091527f07e4ca7f0c414d237f9df43639d0673c51201469c22695492434205e0b759df3918101919091525f606082018190529192506080016040516020818303038152906040528051906020012090505f8282604051602001610e5c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f80855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015610ec4573d5f803e3d5ffd5b505050602060405103519050610ee26005546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610f365760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610851565b50506008805461ffff60a01b191661010160a01b1790555050505050565b6005546001600160a01b03163314610f7e5760405162461bcd60e51b8152600401610851906122cd565b600d829055600e819055610f928183612316565b600c819055601910156108c35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610851565b6005546001600160a01b031633146110115760405162461bcd60e51b8152600401610851906122cd565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110655760405162461bcd60e51b8152600401610851906122cd565b61106e5f611c2a565b565b6005545f906001600160a01b0316331461109c5760405162461bcd60e51b8152600401610851906122cd565b506008805460ff60b01b19169055600190565b6005546001600160a01b031633146110d95760405162461bcd60e51b8152600401610851906122cd565b60088054911515600160a81b0260ff60a81b19909216919091179055565b6060600180546109ac9061235f565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156111875760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610851565b61119433858584036113dc565b5060019392505050565b5f610a393384846114ff565b6005546001600160a01b031633146111d45760405162461bcd60e51b8152600401610851906122cd565b6008805461ffff60a01b191661010160a01b179055565b6005545f906001600160a01b031633146112175760405162461bcd60e51b8152600401610851906122cd565b620186a061122460025490565b61122f906001612329565b6112399190612340565b8210156112a65760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610851565b6103e86112b260025490565b6112bd906005612329565b6112c79190612340565b8211156113335760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610851565b50600a81905560015b919050565b6005546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610851906122cd565b6001600160a01b0381166113d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610851565b6113d981611c2a565b50565b6001600160a01b03831661143e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610851565b6001600160a01b03821661149f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610851565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115255760405162461bcd60e51b815260040161085190612397565b6001600160a01b03821661154b5760405162461bcd60e51b8152600401610851906123dc565b6001600160a01b0383165f9081526015602052604090205460ff16156115a75760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b6044820152606401610851565b6001600160a01b0382165f9081526015602052604090205460ff16156116015760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b6044820152606401610851565b805f036116185761161383835f611c7b565b505050565b600854600160b01b900460ff161561197b576005546001600160a01b0384811691161480159061165657506005546001600160a01b03838116911614155b801561166a57506001600160a01b03821615155b801561168157506001600160a01b03821661dead14155b8015611690575060145460ff16155b1561197b57600854600160a01b900460ff16611728576001600160a01b0383165f9081526016602052604090205460ff16806116e357506001600160a01b0382165f9081526016602052604090205460ff165b6117285760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610851565b6001600160a01b0383165f9081526018602052604090205460ff16801561176757506001600160a01b0382165f9081526017602052604090205460ff16155b15611844576009548111156117d65760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e36b0bc2a3930b739b0b1ba34b7b71760891b6064820152608401610851565b600b546001600160a01b0383165f908152600360205260409020546117fb9083612316565b111561183f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610851565b61197b565b6001600160a01b0382165f9081526018602052604090205460ff16801561188357506001600160a01b0383165f9081526017602052604090205460ff16155b156118f35760095481111561183f5760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1036b0bc2a3930b739b0b1ba34b7b71760811b6064820152608401610851565b6001600160a01b0382165f9081526017602052604090205460ff1661197b57600b546001600160a01b0383165f908152600360205260409020546119379083612316565b111561197b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610851565b305f90815260036020526040902054600a54811080159081906119a75750600854600160a81b900460ff165b80156119b6575060145460ff16155b80156119da57506001600160a01b0385165f9081526018602052604090205460ff16155b80156119fe57506001600160a01b0385165f9081526016602052604090205460ff16155b8015611a2257506001600160a01b0384165f9081526016602052604090205460ff16155b15611a47576014805460ff19166001179055611a3c611dce565b6014805460ff191690555b6014546001600160a01b0386165f9081526016602052604090205460ff91821615911680611a8c57506001600160a01b0385165f9081526016602052604090205460ff165b15611a9457505f5b5f8115611c16576001600160a01b0386165f9081526018602052604090205460ff168015611ac357505f600f54115b15611b4f57611ae86064611ae2600f5488611f0d90919063ffffffff16565b90611f1f565b9050600f5460115482611afb9190612329565b611b059190612340565b60135f828254611b159190612316565b9091555050600f54601054611b2a9083612329565b611b349190612340565b60125f828254611b449190612316565b90915550611bf89050565b6001600160a01b0387165f9081526018602052604090205460ff168015611b7757505f600c54115b15611bf857611b966064611ae2600c5488611f0d90919063ffffffff16565b9050600c54600e5482611ba99190612329565b611bb39190612340565b60135f828254611bc39190612316565b9091555050600c54600d54611bd89083612329565b611be29190612340565b60125f828254611bf29190612316565b90915550505b8015611c0957611c09873083611c7b565b611c13818661241f565b94505b611c21878787611c7b565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611ca15760405162461bcd60e51b815260040161085190612397565b6001600160a01b038216611cc75760405162461bcd60e51b8152600401610851906123dc565b6001600160a01b0383165f9081526003602052604090205481811015611d3e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610851565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611d74908490612316565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dc091815260200190565b60405180910390a350505050565b305f9081526003602052604081205490505f601354601254611df09190612316565b90505f825f03611dff57505050565b600a54611e0d906014612329565b831115611e2557600a54611e22906014612329565b92505b47611e2f84611f2a565b5f611e3a47836120e0565b90505f611e5685611ae260135485611f0d90919063ffffffff16565b5f601281905560138190556008546040519293506001600160a01b031691839181818185875af1925050503d805f8114611eab576040519150601f19603f3d011682016040523d82523d5f602084013e611eb0565b606091505b50506007546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611efd576040519150601f19603f3d011682016040523d82523d5f602084013e611f02565b606091505b505050505050505050565b5f611f188284612329565b9392505050565b5f611f188284612340565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f5d57611f5d612432565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ffd9190612446565b8160018151811061201057612010612432565b60200260200101906001600160a01b031690816001600160a01b03168152505061205b307f0000000000000000000000000000000000000000000000000000000000000000846113dc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906120af9085905f90869030904290600401612461565b5f604051808303815f87803b1580156120c6575f80fd5b505af11580156120d8573d5f803e3d5ffd5b505050505050565b5f611f18828461241f565b5f80604083850312156120fc575f80fd5b50508035926020909101359150565b5f6020828403121561211b575f80fd5b5035919050565b5f6020808352835180828501525f5b8181101561214d57858101830151858201604001528201612131565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113d9575f80fd5b5f8060408385031215612192575f80fd5b823561219d8161216d565b946020939093013593505050565b5f805f606084860312156121bd575f80fd5b83356121c88161216d565b925060208401356121d88161216d565b929592945050506040919091013590565b8035801515811461133c575f80fd5b5f8060408385031215612209575f80fd5b82356122148161216d565b9150612222602084016121e9565b90509250929050565b5f6020828403121561223b575f80fd5b8135611f188161216d565b5f805f60608486031215612258575f80fd5b833560ff81168114612268575f80fd5b95602085013595506040909401359392505050565b5f6020828403121561228d575f80fd5b611f18826121e9565b5f80604083850312156122a7575f80fd5b82356122b28161216d565b915060208301356122c28161216d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610a3d57610a3d612302565b8082028115828204841417610a3d57610a3d612302565b5f8261235a57634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c9082168061237357607f821691505b60208210810361239157634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a3d57610a3d612302565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612456575f80fd5b8151611f188161216d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156124af5784516001600160a01b03168352938301939183019160010161248a565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207cd695852e84b4c1bfd790fd50def6efa3ededf5619884986b6d9542b4a703b064736f6c63430008140033
Deployed Bytecode
0x608060405260043610610278575f3560e01c806375f0a8741161014a578063a72905a2116100be578063d257b34f11610078578063d257b34f14610766578063d85ba06314610785578063dd62ed3e1461079a578063e2f45605146107de578063e4a1b95f146107f3578063f2fde38b14610808575f80fd5b8063a72905a2146106b1578063a9059cbb146106df578063bbc0c742146106fe578063c3f70b521461071e578063c816841b14610733578063c9567bf914610752575f80fd5b8063953e04631161010f578063953e04631461061157806395d89b411461063f5780639c3b4fdc146106535780639fccce3214610668578063a0d82dc51461067d578063a457c2d714610692575f80fd5b806375f0a874146105825780638da5cb5b146105a15780638ea5220f146105be5780638f3fa860146105dd578063924de9b7146105f2575f80fd5b806339509351116101ec5780636a486a8e116101a65780636a486a8e146104a65780636ddd1713146104bb57806370a08231146104db578063715018a61461050f578063735de9f714610523578063751039fc1461056e575f80fd5b806339509351146103dc5780634a62bb65146103fb5780634fbee1931461041b5780636323d7cb1461044957806366ca9b831461046857806368092bd914610487575f80fd5b80631f7ea8da1161023d5780631f7ea8da1461033a57806323b872dd1461034f57806324887e801461036e5780632d99d32e1461038d578063313ce567146103ac57806335b5fb63146103c7575f80fd5b806302dbd8f8146102835780630517d13d146102a457806306fdde03146102c3578063095ea7b3146102ed57806318160ddd1461031c575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d3660046120eb565b610827565b005b3480156102af575f80fd5b506102a26102be36600461210b565b6108c7565b3480156102ce575f80fd5b506102d761099e565b6040516102e49190612122565b60405180910390f35b3480156102f8575f80fd5b5061030c610307366004612181565b610a2d565b60405190151581526020016102e4565b348015610327575f80fd5b506002545b6040519081526020016102e4565b348015610345575f80fd5b5061032c60125481565b34801561035a575f80fd5b5061030c6103693660046121ab565b610a43565b348015610379575f80fd5b506102a261038836600461210b565b610aeb565b348015610398575f80fd5b506102a26103a73660046121f8565b610bc1565b3480156103b7575f80fd5b50604051601281526020016102e4565b3480156103d2575f80fd5b5061032c60105481565b3480156103e7575f80fd5b5061030c6103f6366004612181565b610c84565b348015610406575f80fd5b5060085461030c90600160b01b900460ff1681565b348015610426575f80fd5b5061030c61043536600461222b565b60166020525f908152604090205460ff1681565b348015610454575f80fd5b506102a2610463366004612246565b610cbf565b348015610473575f80fd5b506102a26104823660046120eb565b610f54565b348015610492575f80fd5b506102a26104a13660046121f8565b610fe7565b3480156104b1575f80fd5b5061032c600f5481565b3480156104c6575f80fd5b5060085461030c90600160a81b900460ff1681565b3480156104e6575f80fd5b5061032c6104f536600461222b565b6001600160a01b03165f9081526003602052604090205490565b34801561051a575f80fd5b506102a261103b565b34801561052e575f80fd5b506105567f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102e4565b348015610579575f80fd5b5061030c611070565b34801561058d575f80fd5b50600754610556906001600160a01b031681565b3480156105ac575f80fd5b506005546001600160a01b0316610556565b3480156105c9575f80fd5b50600854610556906001600160a01b031681565b3480156105e8575f80fd5b5061032c600b5481565b3480156105fd575f80fd5b506102a261060c36600461227d565b6110af565b34801561061c575f80fd5b5061030c61062b36600461222b565b60176020525f908152604090205460ff1681565b34801561064a575f80fd5b506102d76110f7565b34801561065e575f80fd5b5061032c600e5481565b348015610673575f80fd5b5061032c60135481565b348015610688575f80fd5b5061032c60115481565b34801561069d575f80fd5b5061030c6106ac366004612181565b611106565b3480156106bc575f80fd5b5061030c6106cb36600461222b565b60186020525f908152604090205460ff1681565b3480156106ea575f80fd5b5061030c6106f9366004612181565b61119e565b348015610709575f80fd5b5060085461030c90600160a01b900460ff1681565b348015610729575f80fd5b5061032c60095481565b34801561073e575f80fd5b50600654610556906001600160a01b031681565b34801561075d575f80fd5b506102a26111aa565b348015610771575f80fd5b5061030c61078036600461210b565b6111eb565b348015610790575f80fd5b5061032c600c5481565b3480156107a5575f80fd5b5061032c6107b4366004612296565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156107e9575f80fd5b5061032c600a5481565b3480156107fe575f80fd5b5061032c600d5481565b348015610813575f80fd5b506102a261082236600461222b565b611341565b6005546001600160a01b0316331461085a5760405162461bcd60e51b8152600401610851906122cd565b60405180910390fd5b6010829055601181905561086e8183612316565b600f819055601910156108c35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610851565b5050565b6005546001600160a01b031633146108f15760405162461bcd60e51b8152600401610851906122cd565b670de0b6b3a76400006103e861090660025490565b610911906001612329565b61091b9190612340565b6109259190612340565b8110156109865760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f776572206044820152687468616e20302e312560b81b6064820152608401610851565b61099881670de0b6b3a7640000612329565b60095550565b60605f80546109ac9061235f565b80601f01602080910402602001604051908101604052809291908181526020018280546109d89061235f565b8015610a235780601f106109fa57610100808354040283529160200191610a23565b820191905f5260205f20905b815481529060010190602001808311610a0657829003601f168201915b5050505050905090565b5f610a393384846113dc565b5060015b92915050565b5f610a4f8484846114ff565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610ad35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610851565b610ae085338584036113dc565b506001949350505050565b6005546001600160a01b03163314610b155760405162461bcd60e51b8152600401610851906122cd565b670de0b6b3a76400006103e8610b2a60025490565b610b35906005612329565b610b3f9190612340565b610b499190612340565b811015610ba95760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e352560c01b6064820152608401610851565b610bbb81670de0b6b3a7640000612329565b600b5550565b6005546001600160a01b03163314610beb5760405162461bcd60e51b8152600401610851906122cd565b6006546001600160a01b0390811690831603610c5a5760405162461bcd60e51b815260206004820152602860248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d20604482015267616d6d506169727360c01b6064820152608401610851565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b335f8181526004602090815260408083206001600160a01b03871684529091528120549091610a39918590610cba908690612316565b6113dc565b604080518082018252600d81526c2a3930b234b733902a37b5b2b760991b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f65e27265c2bf07e8242fee81a602df3320989bd26741589720839868a275d56c918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201525f9060c00160408051808303601f1901815282825280516020918201208383018352600e84526d456e61626c652054726164696e6760901b9382019390935281517f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae4918101919091527f07e4ca7f0c414d237f9df43639d0673c51201469c22695492434205e0b759df3918101919091525f606082018190529192506080016040516020818303038152906040528051906020012090505f8282604051602001610e5c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f80855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015610ec4573d5f803e3d5ffd5b505050602060405103519050610ee26005546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610f365760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610851565b50506008805461ffff60a01b191661010160a01b1790555050505050565b6005546001600160a01b03163314610f7e5760405162461bcd60e51b8152600401610851906122cd565b600d829055600e819055610f928183612316565b600c819055601910156108c35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610851565b6005546001600160a01b031633146110115760405162461bcd60e51b8152600401610851906122cd565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110655760405162461bcd60e51b8152600401610851906122cd565b61106e5f611c2a565b565b6005545f906001600160a01b0316331461109c5760405162461bcd60e51b8152600401610851906122cd565b506008805460ff60b01b19169055600190565b6005546001600160a01b031633146110d95760405162461bcd60e51b8152600401610851906122cd565b60088054911515600160a81b0260ff60a81b19909216919091179055565b6060600180546109ac9061235f565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156111875760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610851565b61119433858584036113dc565b5060019392505050565b5f610a393384846114ff565b6005546001600160a01b031633146111d45760405162461bcd60e51b8152600401610851906122cd565b6008805461ffff60a01b191661010160a01b179055565b6005545f906001600160a01b031633146112175760405162461bcd60e51b8152600401610851906122cd565b620186a061122460025490565b61122f906001612329565b6112399190612340565b8210156112a65760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610851565b6103e86112b260025490565b6112bd906005612329565b6112c79190612340565b8211156113335760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610851565b50600a81905560015b919050565b6005546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610851906122cd565b6001600160a01b0381166113d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610851565b6113d981611c2a565b50565b6001600160a01b03831661143e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610851565b6001600160a01b03821661149f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610851565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115255760405162461bcd60e51b815260040161085190612397565b6001600160a01b03821661154b5760405162461bcd60e51b8152600401610851906123dc565b6001600160a01b0383165f9081526015602052604090205460ff16156115a75760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b6044820152606401610851565b6001600160a01b0382165f9081526015602052604090205460ff16156116015760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b6044820152606401610851565b805f036116185761161383835f611c7b565b505050565b600854600160b01b900460ff161561197b576005546001600160a01b0384811691161480159061165657506005546001600160a01b03838116911614155b801561166a57506001600160a01b03821615155b801561168157506001600160a01b03821661dead14155b8015611690575060145460ff16155b1561197b57600854600160a01b900460ff16611728576001600160a01b0383165f9081526016602052604090205460ff16806116e357506001600160a01b0382165f9081526016602052604090205460ff165b6117285760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610851565b6001600160a01b0383165f9081526018602052604090205460ff16801561176757506001600160a01b0382165f9081526017602052604090205460ff16155b15611844576009548111156117d65760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e36b0bc2a3930b739b0b1ba34b7b71760891b6064820152608401610851565b600b546001600160a01b0383165f908152600360205260409020546117fb9083612316565b111561183f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610851565b61197b565b6001600160a01b0382165f9081526018602052604090205460ff16801561188357506001600160a01b0383165f9081526017602052604090205460ff16155b156118f35760095481111561183f5760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1036b0bc2a3930b739b0b1ba34b7b71760811b6064820152608401610851565b6001600160a01b0382165f9081526017602052604090205460ff1661197b57600b546001600160a01b0383165f908152600360205260409020546119379083612316565b111561197b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610851565b305f90815260036020526040902054600a54811080159081906119a75750600854600160a81b900460ff165b80156119b6575060145460ff16155b80156119da57506001600160a01b0385165f9081526018602052604090205460ff16155b80156119fe57506001600160a01b0385165f9081526016602052604090205460ff16155b8015611a2257506001600160a01b0384165f9081526016602052604090205460ff16155b15611a47576014805460ff19166001179055611a3c611dce565b6014805460ff191690555b6014546001600160a01b0386165f9081526016602052604090205460ff91821615911680611a8c57506001600160a01b0385165f9081526016602052604090205460ff165b15611a9457505f5b5f8115611c16576001600160a01b0386165f9081526018602052604090205460ff168015611ac357505f600f54115b15611b4f57611ae86064611ae2600f5488611f0d90919063ffffffff16565b90611f1f565b9050600f5460115482611afb9190612329565b611b059190612340565b60135f828254611b159190612316565b9091555050600f54601054611b2a9083612329565b611b349190612340565b60125f828254611b449190612316565b90915550611bf89050565b6001600160a01b0387165f9081526018602052604090205460ff168015611b7757505f600c54115b15611bf857611b966064611ae2600c5488611f0d90919063ffffffff16565b9050600c54600e5482611ba99190612329565b611bb39190612340565b60135f828254611bc39190612316565b9091555050600c54600d54611bd89083612329565b611be29190612340565b60125f828254611bf29190612316565b90915550505b8015611c0957611c09873083611c7b565b611c13818661241f565b94505b611c21878787611c7b565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611ca15760405162461bcd60e51b815260040161085190612397565b6001600160a01b038216611cc75760405162461bcd60e51b8152600401610851906123dc565b6001600160a01b0383165f9081526003602052604090205481811015611d3e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610851565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611d74908490612316565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dc091815260200190565b60405180910390a350505050565b305f9081526003602052604081205490505f601354601254611df09190612316565b90505f825f03611dff57505050565b600a54611e0d906014612329565b831115611e2557600a54611e22906014612329565b92505b47611e2f84611f2a565b5f611e3a47836120e0565b90505f611e5685611ae260135485611f0d90919063ffffffff16565b5f601281905560138190556008546040519293506001600160a01b031691839181818185875af1925050503d805f8114611eab576040519150601f19603f3d011682016040523d82523d5f602084013e611eb0565b606091505b50506007546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611efd576040519150601f19603f3d011682016040523d82523d5f602084013e611f02565b606091505b505050505050505050565b5f611f188284612329565b9392505050565b5f611f188284612340565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f5d57611f5d612432565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ffd9190612446565b8160018151811061201057612010612432565b60200260200101906001600160a01b031690816001600160a01b03168152505061205b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846113dc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906120af9085905f90869030904290600401612461565b5f604051808303815f87803b1580156120c6575f80fd5b505af11580156120d8573d5f803e3d5ffd5b505050505050565b5f611f18828461241f565b5f80604083850312156120fc575f80fd5b50508035926020909101359150565b5f6020828403121561211b575f80fd5b5035919050565b5f6020808352835180828501525f5b8181101561214d57858101830151858201604001528201612131565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113d9575f80fd5b5f8060408385031215612192575f80fd5b823561219d8161216d565b946020939093013593505050565b5f805f606084860312156121bd575f80fd5b83356121c88161216d565b925060208401356121d88161216d565b929592945050506040919091013590565b8035801515811461133c575f80fd5b5f8060408385031215612209575f80fd5b82356122148161216d565b9150612222602084016121e9565b90509250929050565b5f6020828403121561223b575f80fd5b8135611f188161216d565b5f805f60608486031215612258575f80fd5b833560ff81168114612268575f80fd5b95602085013595506040909401359392505050565b5f6020828403121561228d575f80fd5b611f18826121e9565b5f80604083850312156122a7575f80fd5b82356122b28161216d565b915060208301356122c28161216d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610a3d57610a3d612302565b8082028115828204841417610a3d57610a3d612302565b5f8261235a57634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c9082168061237357607f821691505b60208210810361239157634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a3d57610a3d612302565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612456575f80fd5b8151611f188161216d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156124af5784516001600160a01b03168352938301939183019160010161248a565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207cd695852e84b4c1bfd790fd50def6efa3ededf5619884986b6d9542b4a703b064736f6c63430008140033
Deployed Bytecode Sourcemap
15383:10237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20484:289;;;;;;;;;;-1:-1:-1;20484:289:0;;;;;:::i;:::-;;:::i;:::-;;19958:228;;;;;;;;;;-1:-1:-1;19958:228:0;;;;;:::i;:::-;;:::i;10728:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11459:169;;;;;;;;;;-1:-1:-1;11459:169:0;;;;;:::i;:::-;;:::i;:::-;;;1626:14:1;;1619:22;1601:41;;1589:2;1574:18;11459:169:0;1461:187:1;11049:108:0;;;;;;;;;;-1:-1:-1;11137:12:0;;11049:108;;;1799:25:1;;;1787:2;1772:18;11049:108:0;1653:177:1;16056:30:0;;;;;;;;;;;;;;;;11819:492;;;;;;;;;;-1:-1:-1;11819:492:0;;;;;:::i;:::-;;:::i;19326:225::-;;;;;;;;;;-1:-1:-1;19326:225:0;;;;;:::i;:::-;;:::i;20781:189::-;;;;;;;;;;-1:-1:-1;20781:189:0;;;;;:::i;:::-;;:::i;10948:93::-;;;;;;;;;;-1:-1:-1;10948:93:0;;11031:2;2923:36:1;;2911:2;2896:18;10948:93:0;2781:184:1;15987:28:0;;;;;;;;;;;;;;;;12319:215;;;;;;;;;;-1:-1:-1;12319:215:0;;;;;:::i;:::-;;:::i;15696:33::-;;;;;;;;;;-1:-1:-1;15696:33:0;;;;-1:-1:-1;;;15696:33:0;;;;;;16210:50;;;;;;;;;;-1:-1:-1;16210:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18021:1060;;;;;;;;;;-1:-1:-1;18021:1060:0;;;;;:::i;:::-;;:::i;20194:282::-;;;;;;;;;;-1:-1:-1;20194:282:0;;;;;:::i;:::-;;:::i;20978:113::-;;;;;;;;;;-1:-1:-1;20978:113:0;;;;;:::i;:::-;;:::i;15952:28::-;;;;;;;;;;;;;;;;15658:31;;;;;;;;;;-1:-1:-1;15658:31:0;;;;-1:-1:-1;;;15658:31:0;;;;;;11165:127;;;;;;;;;;-1:-1:-1;11165:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11266:18:0;11239:7;11266:18;;;:9;:18;;;;;;;11165:127;1204:103;;;;;;;;;;;;;:::i;15457:49::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3822:32:1;;;3804:51;;3792:2;3777:18;15457:49:0;3632:229:1;19089:121:0;;;;;;;;;;;;;:::i;15548:30::-;;;;;;;;;;-1:-1:-1;15548:30:0;;;;-1:-1:-1;;;;;15548:30:0;;;981:87;;;;;;;;;;-1:-1:-1;1054:6:0;;-1:-1:-1;;;;;1054:6:0;981:87;;15585:24;;;;;;;;;;-1:-1:-1;15585:24:0;;;;-1:-1:-1;;;;;15585:24:0;;;15814:28;;;;;;;;;;;;;;;;19218:100;;;;;;;;;;-1:-1:-1;19218:100:0;;;;;:::i;:::-;;:::i;16267:55::-;;;;;;;;;;-1:-1:-1;16267:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10836:104;;;;;;;;;;;;;:::i;15919:24::-;;;;;;;;;;;;;;;;16093:27;;;;;;;;;;;;;;;;16022:25;;;;;;;;;;;;;;;;12542:413;;;;;;;;;;-1:-1:-1;12542:413:0;;;;;:::i;:::-;;:::i;16331:40::-;;;;;;;;;;-1:-1:-1;16331:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11636:175;;;;;;;;;;-1:-1:-1;11636:175:0;;;;;:::i;:::-;;:::i;15618:33::-;;;;;;;;;;-1:-1:-1;15618:33:0;;;;-1:-1:-1;;;15618:33:0;;;;;;15738:29;;;;;;;;;;;;;;;;15513:26;;;;;;;;;;-1:-1:-1;15513:26:0;;;;-1:-1:-1;;;;;15513:26:0;;;17903:110;;;;;;;;;;;;;:::i;19559:391::-;;;;;;;;;;-1:-1:-1;19559:391:0;;;;;:::i;:::-;;:::i;15851:27::-;;;;;;;;;;;;;;;;11300:151;;;;;;;;;;-1:-1:-1;11300:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;11416:18:0;;;11389:7;11416:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11300:151;15774:33;;;;;;;;;;;;;;;;15885:27;;;;;;;;;;;;;;;;1315:201;;;;;;;;;;-1:-1:-1;1315:201:0;;;;;:::i;:::-;;:::i;20484:289::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;;;;;;;;;20579:13:::1;:28:::0;;;20618:10:::1;:22:::0;;;20667:26:::1;20631:9:::0;20595:12;20667:26:::1;:::i;:::-;20651:13;:42:::0;;;20729:2:::1;-1:-1:-1::0;20712:19:0::1;20704:61;;;::::0;-1:-1:-1;;;20704:61:0;;5477:2:1;20704:61:0::1;::::0;::::1;5459:21:1::0;5516:2;5496:18;;;5489:30;5555:31;5535:18;;;5528:59;5604:18;;20704:61:0::1;5275:353:1::0;20704:61:0::1;20484:289:::0;;:::o;19958:228::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;20083:4:::1;20075;20054:13;11137:12:::0;;;11049:108;20054:13:::1;:17;::::0;20070:1:::1;20054:17;:::i;:::-;20053:26;;;;:::i;:::-;20052:35;;;;:::i;:::-;20042:6;:45;;20034:99;;;::::0;-1:-1:-1;;;20034:99:0;;6230:2:1;20034:99:0::1;::::0;::::1;6212:21:1::0;6269:2;6249:18;;;6242:30;6308:34;6288:18;;;6281:62;-1:-1:-1;;;6359:18:1;;;6352:39;6408:19;;20034:99:0::1;6028:405:1::0;20034:99:0::1;20161:17;:6:::0;20171::::1;20161:17;:::i;:::-;20144:14;:34:::0;-1:-1:-1;19958:228:0:o;10728:100::-;10782:13;10815:5;10808:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10728:100;:::o;11459:169::-;11542:4;11559:39;607:10;11582:7;11591:6;11559:8;:39::i;:::-;-1:-1:-1;11616:4:0;11459:169;;;;;:::o;11819:492::-;11959:4;11976:36;11986:6;11994:9;12005:6;11976:9;:36::i;:::-;-1:-1:-1;;;;;12052:19:0;;12025:24;12052:19;;;:11;:19;;;;;;;;607:10;12052:33;;;;;;;;12104:26;;;;12096:79;;;;-1:-1:-1;;;12096:79:0;;7025:2:1;12096:79:0;;;7007:21:1;7064:2;7044:18;;;7037:30;7103:34;7083:18;;;7076:62;-1:-1:-1;;;7154:18:1;;;7147:38;7202:19;;12096:79:0;6823:404:1;12096:79:0;12211:57;12220:6;607:10;12261:6;12242:16;:25;12211:8;:57::i;:::-;-1:-1:-1;12299:4:0;;11819:492;-1:-1:-1;;;;11819:492:0:o;19326:225::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;19450:4:::1;19442;19421:13;11137:12:::0;;;11049:108;19421:13:::1;:17;::::0;19437:1:::1;19421:17;:::i;:::-;19420:26;;;;:::i;:::-;19419:35;;;;:::i;:::-;19409:6;:45;;19401:98;;;::::0;-1:-1:-1;;;19401:98:0;;7434:2:1;19401:98:0::1;::::0;::::1;7416:21:1::0;7473:2;7453:18;;;7446:30;7512:34;7492:18;;;7485:62;-1:-1:-1;;;7563:18:1;;;7556:38;7611:19;;19401:98:0::1;7232:404:1::0;19401:98:0::1;19526:17;:6:::0;19536::::1;19526:17;:::i;:::-;19510:13;:33:::0;-1:-1:-1;19326:225:0:o;20781:189::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;20873:11:::1;::::0;-1:-1:-1;;;;;20873:11:0;;::::1;20865:19:::0;;::::1;::::0;20857:72:::1;;;::::0;-1:-1:-1;;;20857:72:0;;7843:2:1;20857:72:0::1;::::0;::::1;7825:21:1::0;7882:2;7862:18;;;7855:30;7921:34;7901:18;;;7894:62;-1:-1:-1;;;7972:18:1;;;7965:38;8020:19;;20857:72:0::1;7641:404:1::0;20857:72:0::1;-1:-1:-1::0;;;;;20940:14:0;;;::::1;;::::0;;;:8:::1;:14;::::0;;;;:22;;-1:-1:-1;;20940:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20781:189::o;12319:215::-;607:10;12407:4;12456:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12456:34:0;;;;;;;;;;12407:4;;12424:80;;12447:7;;12456:47;;12493:10;;12456:47;:::i;:::-;12424:8;:80::i;18021:1060::-;18301:22;;;;;;;;;;;-1:-1:-1;;;18301:22:0;;;;;18353:10;;;;;;;;;;-1:-1:-1;;;18353:10:0;;;;18148:295;;18177:95;18148:295;;;8309:25:1;;;;18291:33:0;8350:18:1;;;8343:34;;;;18343:21:0;8393:18:1;;;8386:34;18383:13:0;8436:18:1;;;8429:34;18423:4:0;8479:19:1;;;8472:61;-1:-1:-1;;8281:19:1;;18148:295:0;;;;;;-1:-1:-1;;18148:295:0;;;;;;18124:330;;18148:295;18124:330;;;;18619:23;;;;;;;;-1:-1:-1;;;18619:23:0;;;;;;;18512:175;;18541:49;18512:175;;;8746:25:1;;;;18609:34:0;8787:18:1;;;8780:34;;;;-1:-1:-1;8830:18:1;;;8823:34;;;18124:330:0;;-1:-1:-1;8719:18:1;;18512:175:0;;;;;;;;;;;;18488:210;;;;;;18467:231;;18711:14;18816:10;18845;18752:134;;;;;;;;-1:-1:-1;;;9126:27:1;;9178:1;9169:11;;9162:27;;;;9214:2;9205:12;;9198:28;9251:2;9242:12;;8868:392;18752:134:0;;;;-1:-1:-1;;18752:134:0;;;;;;;;;18728:169;;18752:134;18728:169;;;;18910:14;18927:26;;;;;;;;;9492:25:1;;;9565:4;9553:17;;9533:18;;;9526:45;;;;9587:18;;;9580:34;;;9630:18;;;9623:34;;;18728:169:0;;-1:-1:-1;18910:14:0;18927:26;;9464:19:1;;18927:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18910:43;;18982:7;1054:6;;-1:-1:-1;;;;;1054:6:0;;981:87;18982:7;-1:-1:-1;;;;;18972:17:0;:6;-1:-1:-1;;;;;18972:17:0;;18964:47;;;;-1:-1:-1;;;18964:47:0;;9870:2:1;18964:47:0;;;9852:21:1;9909:2;9889:18;;;9882:30;-1:-1:-1;;;9928:18:1;;;9921:47;9985:18;;18964:47:0;9668:341:1;18964:47:0;-1:-1:-1;;19024:13:0;:20;;-1:-1:-1;;;;19055:18:0;-1:-1:-1;;;19055:18:0;;;-1:-1:-1;;;;;18021:1060:0:o;20194:282::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;20288:12:::1;:27:::0;;;20326:9:::1;:21:::0;;;20373:24:::1;20338:9:::0;20303:12;20373:24:::1;:::i;:::-;20358:12;:39:::0;;;20432:2:::1;-1:-1:-1::0;20416:18:0::1;20408:60;;;::::0;-1:-1:-1;;;20408:60:0;;5477:2:1;20408:60:0::1;::::0;::::1;5459:21:1::0;5516:2;5496:18;;;5489:30;5555:31;5535:18;;;5528:59;5604:18;;20408:60:0::1;5275:353:1::0;20978:113:0;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21057:17:0;;;::::1;;::::0;;;:11:::1;:17;::::0;;;;:26;;-1:-1:-1;;21057:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20978:113::o;1204:103::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;1269:30:::1;1296:1;1269:18;:30::i;:::-;1204:103::o:0;19089:121::-;1054:6;;19141:4;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;-1:-1:-1;19158:14:0::1;:22:::0;;-1:-1:-1;;;;19158:22:0::1;::::0;;;19089:121;:::o;19218:100::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;19289:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;19289:21:0::1;-1:-1:-1::0;;;;19289:21:0;;::::1;::::0;;;::::1;::::0;;19218:100::o;10836:104::-;10892:13;10925:7;10918:14;;;;;:::i;12542:413::-;607:10;12635:4;12679:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12679:34:0;;;;;;;;;;12732:35;;;;12724:85;;;;-1:-1:-1;;;12724:85:0;;10216:2:1;12724:85:0;;;10198:21:1;10255:2;10235:18;;;10228:30;10294:34;10274:18;;;10267:62;-1:-1:-1;;;10345:18:1;;;10338:35;10390:19;;12724:85:0;10014:401:1;12724:85:0;12845:67;607:10;12868:7;12896:15;12877:16;:34;12845:8;:67::i;:::-;-1:-1:-1;12943:4:0;;12542:413;-1:-1:-1;;;12542:413:0:o;11636:175::-;11722:4;11739:42;607:10;11763:9;11774:6;11739:9;:42::i;17903:110::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;17956:13:::1;:20:::0;;-1:-1:-1;;;;17987:18:0;-1:-1:-1;;;17987:18:0;;;17903:110::o;19559:391::-;1054:6;;19640:4;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;19700:6:::1;19679:13;11137:12:::0;;;11049:108;19679:13:::1;:17;::::0;19695:1:::1;19679:17;:::i;:::-;19678:28;;;;:::i;:::-;19665:9;:41;;19657:107;;;::::0;-1:-1:-1;;;19657:107:0;;10622:2:1;19657:107:0::1;::::0;::::1;10604:21:1::0;10661:2;10641:18;;;10634:30;10700:34;10680:18;;;10673:62;-1:-1:-1;;;10751:18:1;;;10744:51;10812:19;;19657:107:0::1;10420:417:1::0;19657:107:0::1;19818:4;19797:13;11137:12:::0;;;11049:108;19797:13:::1;:17;::::0;19813:1:::1;19797:17;:::i;:::-;19796:26;;;;:::i;:::-;19783:9;:39;;19775:104;;;::::0;-1:-1:-1;;;19775:104:0;;11044:2:1;19775:104:0::1;::::0;::::1;11026:21:1::0;11083:2;11063:18;;;11056:30;11122:34;11102:18;;;11095:62;-1:-1:-1;;;11173:18:1;;;11166:50;11233:19;;19775:104:0::1;10842:416:1::0;19775:104:0::1;-1:-1:-1::0;19890:18:0::1;:30:::0;;;19938:4:::1;1187:1;19559:391:::0;;;:::o;1315:201::-;1054:6;;-1:-1:-1;;;;;1054:6:0;607:10;1116:23;1108:68;;;;-1:-1:-1;;;1108:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1404:22:0;::::1;1396:73;;;::::0;-1:-1:-1;;;1396:73:0;;11465:2:1;1396:73:0::1;::::0;::::1;11447:21:1::0;11504:2;11484:18;;;11477:30;11543:34;11523:18;;;11516:62;-1:-1:-1;;;11594:18:1;;;11587:36;11640:19;;1396:73:0::1;11263:402:1::0;1396:73:0::1;1480:28;1499:8;1480:18;:28::i;:::-;1315:201:::0;:::o;13969:380::-;-1:-1:-1;;;;;14105:19:0;;14097:68;;;;-1:-1:-1;;;14097:68:0;;11872:2:1;14097:68:0;;;11854:21:1;11911:2;11891:18;;;11884:30;11950:34;11930:18;;;11923:62;-1:-1:-1;;;12001:18:1;;;11994:34;12045:19;;14097:68:0;11670:400:1;14097:68:0;-1:-1:-1;;;;;14184:21:0;;14176:68;;;;-1:-1:-1;;;14176:68:0;;12277:2:1;14176:68:0;;;12259:21:1;12316:2;12296:18;;;12289:30;12355:34;12335:18;;;12328:62;-1:-1:-1;;;12406:18:1;;;12399:32;12448:19;;14176:68:0;12075:398:1;14176:68:0;-1:-1:-1;;;;;14257:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14309:32;;1799:25:1;;;14309:32:0;;1772:18:1;14309:32:0;;;;;;;13969:380;;;:::o;22546:2956::-;-1:-1:-1;;;;;22644:18:0;;22636:68;;;;-1:-1:-1;;;22636:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22723:16:0;;22715:64;;;;-1:-1:-1;;;22715:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22799:17:0;;;;;;:11;:17;;;;;;;;22798:18;22790:48;;;;-1:-1:-1;;;22790:48:0;;13490:2:1;22790:48:0;;;13472:21:1;13529:2;13509:18;;;13502:30;-1:-1:-1;;;13548:18:1;;;13541:47;13605:18;;22790:48:0;13288:341:1;22790:48:0;-1:-1:-1;;;;;22858:15:0;;;;;;:11;:15;;;;;;;;22857:16;22849:44;;;;-1:-1:-1;;;22849:44:0;;13836:2:1;22849:44:0;;;13818:21:1;13875:2;13855:18;;;13848:30;-1:-1:-1;;;13894:18:1;;;13887:45;13949:18;;22849:44:0;13634:339:1;22849:44:0;22910:6;22920:1;22910:11;22906:93;;22938:28;22954:4;22960:2;22964:1;22938:15;:28::i;:::-;22546:2956;;;:::o;22906:93::-;23015:14;;-1:-1:-1;;;23015:14:0;;;;23011:1116;;;1054:6;;-1:-1:-1;;;;;23050:15:0;;;1054:6;;23050:15;;;;:49;;-1:-1:-1;1054:6:0;;-1:-1:-1;;;;;23086:13:0;;;1054:6;;23086:13;;23050:49;:86;;;;-1:-1:-1;;;;;;23120:16:0;;;;23050:86;:128;;;;-1:-1:-1;;;;;;23157:21:0;;23171:6;23157:21;;23050:128;:158;;;;-1:-1:-1;23200:8:0;;;;23199:9;23050:158;23046:1070;;;23234:13;;-1:-1:-1;;;23234:13:0;;;;23229:148;;-1:-1:-1;;;;;23280:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;23308:22:0;;;;;;:18;:22;;;;;;;;23280:50;23272:85;;;;-1:-1:-1;;;23272:85:0;;14180:2:1;23272:85:0;;;14162:21:1;14219:2;14199:18;;;14192:30;-1:-1:-1;;;14238:18:1;;;14231:52;14300:18;;23272:85:0;13978:346:1;23272:85:0;-1:-1:-1;;;;;23429:14:0;;;;;;:8;:14;;;;;;;;:46;;;;-1:-1:-1;;;;;;23448:27:0;;;;;;:23;:27;;;;;;;;23447:28;23429:46;23425:676;;;23518:14;;23508:6;:24;;23500:84;;;;-1:-1:-1;;;23500:84:0;;14531:2:1;23500:84:0;;;14513:21:1;14570:2;14550:18;;;14543:30;14609:34;14589:18;;;14582:62;-1:-1:-1;;;14660:18:1;;;14653:45;14715:19;;23500:84:0;14329:411:1;23500:84:0;23641:13;;-1:-1:-1;;;;;11266:18:0;;11239:7;11266:18;;;:9;:18;;;;;;23615:22;;:6;:22;:::i;:::-;:39;;23607:71;;;;-1:-1:-1;;;23607:71:0;;14947:2:1;23607:71:0;;;14929:21:1;14986:2;14966:18;;;14959:30;-1:-1:-1;;;15005:18:1;;;14998:49;15064:18;;23607:71:0;14745:343:1;23607:71:0;23425:676;;;-1:-1:-1;;;;;23754:12:0;;;;;;:8;:12;;;;;;;;:46;;;;-1:-1:-1;;;;;;23771:29:0;;;;;;:23;:29;;;;;;;;23770:30;23754:46;23750:351;;;23843:14;;23833:6;:24;;23825:85;;;;-1:-1:-1;;;23825:85:0;;15295:2:1;23825:85:0;;;15277:21:1;15334:2;15314:18;;;15307:30;15373:34;15353:18;;;15346:62;-1:-1:-1;;;15424:18:1;;;15417:46;15480:19;;23825:85:0;15093:412:1;23750:351:0;-1:-1:-1;;;;;23958:27:0;;;;;;:23;:27;;;;;;;;23953:148;;24044:13;;-1:-1:-1;;;;;11266:18:0;;11239:7;11266:18;;;:9;:18;;;;;;24018:22;;:6;:22;:::i;:::-;:39;;24010:71;;;;-1:-1:-1;;;24010:71:0;;14947:2:1;24010:71:0;;;14929:21:1;14986:2;14966:18;;;14959:30;-1:-1:-1;;;15005:18:1;;;14998:49;15064:18;;24010:71:0;14745:343:1;24010:71:0;24183:4;24139:23;11266:18;;;:9;:18;;;;;;24234;;24215:37;;;;;;;24267:35;;-1:-1:-1;24291:11:0;;-1:-1:-1;;;24291:11:0;;;;24267:35;:61;;;;-1:-1:-1;24320:8:0;;;;24319:9;24267:61;:93;;;;-1:-1:-1;;;;;;24346:14:0;;;;;;:8;:14;;;;;;;;24345:15;24267:93;:135;;;;-1:-1:-1;;;;;;24378:24:0;;;;;;:18;:24;;;;;;;;24377:25;24267:135;:175;;;;-1:-1:-1;;;;;;24420:22:0;;;;;;:18;:22;;;;;;;;24419:23;24267:175;24263:281;;;24461:8;:15;;-1:-1:-1;;24461:15:0;24472:4;24461:15;;;24491:10;:8;:10::i;:::-;24516:8;:16;;-1:-1:-1;;24516:16:0;;;24263:281;24572:8;;-1:-1:-1;;;;;24595:24:0;;24556:12;24595:24;;;:18;:24;;;;;;24572:8;;;;24571:9;;24595:24;;:50;;-1:-1:-1;;;;;;24623:22:0;;;;;;:18;:22;;;;;;;;24595:50;24591:84;;;-1:-1:-1;24670:5:0;24591:84;24688:11;24718:7;24714:735;;;-1:-1:-1;;;;;24770:12:0;;;;;;:8;:12;;;;;;;;:33;;;;;24802:1;24786:13;;:17;24770:33;24766:554;;;24830:34;24860:3;24830:25;24841:13;;24830:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;24824:40;;24920:13;;24906:10;;24900:3;:16;;;;:::i;:::-;24899:34;;;;:::i;:::-;24883:12;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;24995:13:0;;24978;;24972:19;;:3;:19;:::i;:::-;24971:37;;;;:::i;:::-;24952:15;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;24766:554:0;;-1:-1:-1;24766:554:0;;-1:-1:-1;;;;;25070:14:0;;;;;;:8;:14;;;;;;;;:34;;;;;25103:1;25088:12;;:16;25070:34;25066:254;;;25131:33;25160:3;25131:24;25142:12;;25131:6;:10;;:24;;;;:::i;:33::-;25125:39;;25219:12;;25206:9;;25200:3;:15;;;;:::i;:::-;25199:32;;;;:::i;:::-;25183:12;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;25292:12:0;;25276;;25270:18;;:3;:18;:::i;:::-;25269:35;;;;:::i;:::-;25250:15;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;25066:254:0;25340:7;;25336:71;;25366:41;25382:4;25396;25403:3;25366:15;:41::i;:::-;25424:13;25434:3;25424:13;;:::i;:::-;;;24714:735;25461:33;25477:4;25483:2;25487:6;25461:15;:33::i;:::-;22625:2877;;;;22546:2956;;;:::o;1524:191::-;1617:6;;;-1:-1:-1;;;;;1634:17:0;;;-1:-1:-1;;;;;;1634:17:0;;;;;;;1667:40;;1617:6;;;1634:17;1617:6;;1667:40;;1598:16;;1667:40;1587:128;1524:191;:::o;14357:733::-;-1:-1:-1;;;;;14497:20:0;;14489:70;;;;-1:-1:-1;;;14489:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14578:23:0;;14570:71;;;;-1:-1:-1;;;14570:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14738:17:0;;14714:21;14738:17;;;:9;:17;;;;;;14774:23;;;;14766:74;;;;-1:-1:-1;;;14766:74:0;;15845:2:1;14766:74:0;;;15827:21:1;15884:2;15864:18;;;15857:30;15923:34;15903:18;;;15896:62;-1:-1:-1;;;15974:18:1;;;15967:36;16020:19;;14766:74:0;15643:402:1;14766:74:0;-1:-1:-1;;;;;14876:17:0;;;;;;;:9;:17;;;;;;14896:22;;;14876:42;;14940:20;;;;;;;;:30;;14912:6;;14876:17;14940:30;;14912:6;;14940:30;:::i;:::-;;;;;;;;15005:9;-1:-1:-1;;;;;14988:35:0;14997:6;-1:-1:-1;;;;;14988:35:0;;15016:6;14988:35;;;;1799:25:1;;1787:2;1772:18;;1653:177;14988:35:0;;;;;;;;14478:612;14357:733;;;:::o;21099:848::-;21182:4;21138:23;11266:18;;;:9;:18;;;;;;21138:50;;21199:25;21245:12;;21227:15;;:30;;;;:::i;:::-;21199:58;;21268:12;21297:15;21316:1;21297:20;21293:46;;21332:7;;;21099:848::o;21293:46::-;21373:18;;:23;;21394:2;21373:23;:::i;:::-;21355:15;:41;21351:101;;;21429:18;;:23;;21450:2;21429:23;:::i;:::-;21411:41;;21351:101;21493:21;21525:33;21542:15;21525:16;:33::i;:::-;21571:18;21592:44;:21;21618:17;21592:25;:44::i;:::-;21571:65;;21647:17;21667:51;21700:17;21667:28;21682:12;;21667:10;:14;;:28;;;;:::i;:51::-;21749:1;21731:15;:19;;;21761:12;:16;;;21812:9;;21804:45;;21647:71;;-1:-1:-1;;;;;;21812:9:0;;21647:71;;21804:45;21749:1;21804:45;21647:71;21812:9;21804:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21882:15:0;;21874:65;;21790:59;;-1:-1:-1;;;;;;21882:15:0;;21912:21;;21874:65;;;;21912:21;21882:15;21874:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;21099:848:0:o;3103:98::-;3161:7;3188:5;3192:1;3188;:5;:::i;:::-;3181:12;3103:98;-1:-1:-1;;;3103:98:0:o;3209:::-;3267:7;3294:5;3298:1;3294;:5;:::i;21955:583::-;22105:16;;;22119:1;22105:16;;;;;;;;22081:21;;22105:16;;;;;;;;;;-1:-1:-1;22105:16:0;22081:40;;22150:4;22132;22137:1;22132:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22132:23:0;;;-1:-1:-1;;;;;22132:23:0;;;;;22176:13;-1:-1:-1;;;;;22176:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22166:4;22171:1;22166:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;22166:30:0;;;-1:-1:-1;;;;;22166:30:0;;;;;22209:60;22226:4;22241:13;22257:11;22209:8;:60::i;:::-;22308:222;;-1:-1:-1;;;22308:222:0;;-1:-1:-1;;;;;22308:13:0;:64;;;;:222;;22387:11;;22413:1;;22457:4;;22484;;22504:15;;22308:222;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22010:528;21955:583;:::o;2997:98::-;3055:7;3082:5;3086:1;3082;:5;:::i;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:180::-;326:6;379:2;367:9;358:7;354:23;350:32;347:52;;;395:1;392;385:12;347:52;-1:-1:-1;418:23:1;;267:180;-1:-1:-1;267:180:1:o;452:548::-;564:4;593:2;622;611:9;604:21;654:6;648:13;697:6;692:2;681:9;677:18;670:34;722:1;732:140;746:6;743:1;740:13;732:140;;;841:14;;;837:23;;831:30;807:17;;;826:2;803:26;796:66;761:10;;732:140;;;736:3;921:1;916:2;907:6;896:9;892:22;888:31;881:42;991:2;984;980:7;975:2;967:6;963:15;959:29;948:9;944:45;940:54;932:62;;;;452:548;;;;:::o;1005:131::-;-1:-1:-1;;;;;1080:31:1;;1070:42;;1060:70;;1126:1;1123;1116:12;1141:315;1209:6;1217;1270:2;1258:9;1249:7;1245:23;1241:32;1238:52;;;1286:1;1283;1276:12;1238:52;1325:9;1312:23;1344:31;1369:5;1344:31;:::i;:::-;1394:5;1446:2;1431:18;;;;1418:32;;-1:-1:-1;;;1141:315:1:o;1835:456::-;1912:6;1920;1928;1981:2;1969:9;1960:7;1956:23;1952:32;1949:52;;;1997:1;1994;1987:12;1949:52;2036:9;2023:23;2055:31;2080:5;2055:31;:::i;:::-;2105:5;-1:-1:-1;2162:2:1;2147:18;;2134:32;2175:33;2134:32;2175:33;:::i;:::-;1835:456;;2227:7;;-1:-1:-1;;;2281:2:1;2266:18;;;;2253:32;;1835:456::o;2296:160::-;2361:20;;2417:13;;2410:21;2400:32;;2390:60;;2446:1;2443;2436:12;2461:315;2526:6;2534;2587:2;2575:9;2566:7;2562:23;2558:32;2555:52;;;2603:1;2600;2593:12;2555:52;2642:9;2629:23;2661:31;2686:5;2661:31;:::i;:::-;2711:5;-1:-1:-1;2735:35:1;2766:2;2751:18;;2735:35;:::i;:::-;2725:45;;2461:315;;;;;:::o;2970:247::-;3029:6;3082:2;3070:9;3061:7;3057:23;3053:32;3050:52;;;3098:1;3095;3088:12;3050:52;3137:9;3124:23;3156:31;3181:5;3156:31;:::i;3222:405::-;3297:6;3305;3313;3366:2;3354:9;3345:7;3341:23;3337:32;3334:52;;;3382:1;3379;3372:12;3334:52;3421:9;3408:23;3471:4;3464:5;3460:16;3453:5;3450:27;3440:55;;3491:1;3488;3481:12;3440:55;3514:5;3566:2;3551:18;;3538:32;;-1:-1:-1;3617:2:1;3602:18;;;3589:32;;3222:405;-1:-1:-1;;;3222:405:1:o;4074:180::-;4130:6;4183:2;4171:9;4162:7;4158:23;4154:32;4151:52;;;4199:1;4196;4189:12;4151:52;4222:26;4238:9;4222:26;:::i;4259:388::-;4327:6;4335;4388:2;4376:9;4367:7;4363:23;4359:32;4356:52;;;4404:1;4401;4394:12;4356:52;4443:9;4430:23;4462:31;4487:5;4462:31;:::i;:::-;4512:5;-1:-1:-1;4569:2:1;4554:18;;4541:32;4582:33;4541:32;4582:33;:::i;:::-;4634:7;4624:17;;;4259:388;;;;;:::o;4652:356::-;4854:2;4836:21;;;4873:18;;;4866:30;4932:34;4927:2;4912:18;;4905:62;4999:2;4984:18;;4652:356::o;5013:127::-;5074:10;5069:3;5065:20;5062:1;5055:31;5105:4;5102:1;5095:15;5129:4;5126:1;5119:15;5145:125;5210:9;;;5231:10;;;5228:36;;;5244:18;;:::i;5633:168::-;5706:9;;;5737;;5754:15;;;5748:22;;5734:37;5724:71;;5775:18;;:::i;5806:217::-;5846:1;5872;5862:132;;5916:10;5911:3;5907:20;5904:1;5897:31;5951:4;5948:1;5941:15;5979:4;5976:1;5969:15;5862:132;-1:-1:-1;6008:9:1;;5806:217::o;6438:380::-;6517:1;6513:12;;;;6560;;;6581:61;;6635:4;6627:6;6623:17;6613:27;;6581:61;6688:2;6680:6;6677:14;6657:18;6654:38;6651:161;;6734:10;6729:3;6725:20;6722:1;6715:31;6769:4;6766:1;6759:15;6797:4;6794:1;6787:15;6651:161;;6438:380;;;:::o;12478:401::-;12680:2;12662:21;;;12719:2;12699:18;;;12692:30;12758:34;12753:2;12738:18;;12731:62;-1:-1:-1;;;12824:2:1;12809:18;;12802:35;12869:3;12854:19;;12478:401::o;12884:399::-;13086:2;13068:21;;;13125:2;13105:18;;;13098:30;13164:34;13159:2;13144:18;;13137:62;-1:-1:-1;;;13230:2:1;13215:18;;13208:33;13273:3;13258:19;;12884:399::o;15510:128::-;15577:9;;;15598:11;;;15595:37;;;15612:18;;:::i;16392:127::-;16453:10;16448:3;16444:20;16441:1;16434:31;16484:4;16481:1;16474:15;16508:4;16505:1;16498:15;16524:251;16594:6;16647:2;16635:9;16626:7;16622:23;16618:32;16615:52;;;16663:1;16660;16653:12;16615:52;16695:9;16689:16;16714:31;16739:5;16714:31;:::i;16780:980::-;17042:4;17090:3;17079:9;17075:19;17121:6;17110:9;17103:25;17147:2;17185:6;17180:2;17169:9;17165:18;17158:34;17228:3;17223:2;17212:9;17208:18;17201:31;17252:6;17287;17281:13;17318:6;17310;17303:22;17356:3;17345:9;17341:19;17334:26;;17395:2;17387:6;17383:15;17369:29;;17416:1;17426:195;17440:6;17437:1;17434:13;17426:195;;;17505:13;;-1:-1:-1;;;;;17501:39:1;17489:52;;17596:15;;;;17561:12;;;;17537:1;17455:9;17426:195;;;-1:-1:-1;;;;;;;17677:32:1;;;;17672:2;17657:18;;17650:60;-1:-1:-1;;;17741:3:1;17726:19;17719:35;17638:3;16780:980;-1:-1:-1;;;16780:980:1:o
Swarm Source
ipfs://7cd695852e84b4c1bfd790fd50def6efa3ededf5619884986b6d9542b4a703b0
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.