ERC-20
Overview
Max Total Supply
1,000,000,000 BANANYA
Holders
122
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,747,032.718911314563517772 BANANYAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Bananya
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-18 */ // SPDX-License-Identifier: MIT /** * https://bananya.vip/ * https://t.me/BananyaPortal * https://twitter.com/BananyaERC20 */ pragma solidity >=0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface IERC20Errors { error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); error ERC20InvalidSender(address sender); error ERC20InvalidReceiver(address receiver); error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); error ERC20InvalidApprover(address approver); error ERC20InvalidSpender(address spender); } abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { mapping(address account => uint256) private _balances; mapping(address account => mapping(address spender => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; error ERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease); constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } function transferFrom(address from, address to, uint256 value) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 requestedDecrease) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); if (currentAllowance < requestedDecrease) { revert ERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease); } unchecked { _approve(owner, spender, currentAllowance - requestedDecrease); } return true; } function _transfer(address from, address to, uint256 value) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } function _update(address from, address to, uint256 value) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } emit Transfer(from, to, value); } function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } function _approve(address owner, address spender, uint256 value) internal { _approve(owner, spender, value, true); } function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } function _spendAllowance(address owner, address spender, uint256 value) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance(spender, currentAllowance, value); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } } 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 IDexFactory { 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 IDexRouter02 { 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; } contract Bananya is ERC20, Ownable { using SafeMath for uint256; IDexRouter02 private immutable dxRoutr; address public immutable dxPr; bool private onSwpBck; address public mktWlt; uint256 private mnSwpbckLmt; uint256 private mxSwpbckLmt; uint256 public txLmt; uint256 public wltLmt; uint256 public feeOnBuys; uint256 public feeOnSells; bool public lmtsInEfct = true; bool public trdOpn = false; mapping(address => bool) private feeExmpt; mapping(address => bool) private wltLmtExmpt; mapping(address => bool) public dxPrs; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event TaxesSwaped(uint256 tokensSwapped, uint256 ethReceived); constructor() ERC20("Bananya", "BANANYA") { IDexRouter02 _dxRoutr = IDexRouter02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); dxRoutr = _dxRoutr; dxPr = IDexFactory(_dxRoutr.factory()).createPair( address(this), _dxRoutr.WETH() ); _setDexPair(address(dxPr), true); uint256 totalSupply = 1_000_000_000 * 1e18; txLmt = (totalSupply) / 100; wltLmt = (totalSupply) / 50; feeOnBuys = 25; feeOnSells = 50; mnSwpbckLmt = (totalSupply * 5) / 10000; mxSwpbckLmt = (totalSupply * 5) / 100; mktWlt = address(0xBf4eFF671b0d5E4AD5b563f4b368A39ec8E26210); feeExmpt[msg.sender] = true; feeExmpt[mktWlt] = true; feeExmpt[address(this)] = true; feeExmpt[address(0xdead)] = true; wltLmtExmpt[owner()] = true; wltLmtExmpt[address(this)] = true; wltLmtExmpt[address(0xdead)] = true; wltLmtExmpt[mktWlt] = true; _mint(msg.sender, totalSupply); } receive() external payable {} function bananyaLaunch() external onlyOwner { trdOpn = true; } function setFeeOnBuys(uint256 _feeOnBuys) external onlyOwner { feeOnBuys = _feeOnBuys; } function setFeeOnSells(uint256 _feeOnSells) external onlyOwner { feeOnSells = _feeOnSells; } function rmvLmts() external onlyOwner { lmtsInEfct = false; } function setTxLmt(uint256 _txLmt) external onlyOwner { txLmt = _txLmt; } function setWltLmt(uint256 _wltLmt) external onlyOwner { wltLmt = _wltLmt; } function _setDexPair(address pair, bool value) private { dxPrs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function triggerContractSell() private { uint256 tokenBalance = balanceOf(address(this)); bool success; if (tokenBalance == 0) { return; } if (tokenBalance > mxSwpbckLmt) { tokenBalance = mxSwpbckLmt; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dxRoutr.WETH(); _approve(address(this), address(dxRoutr), tokenBalance); // make the swap dxRoutr.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenBalance, 0, // accept any amount of ETH path, address(this), block.timestamp ); emit TaxesSwaped(tokenBalance, address(this).balance); (success, ) = address(mktWlt).call{ value: address(this).balance }(""); } function _update( address from, address to, uint256 amount ) internal override { if (amount == 0) { super._update(from, to, 0); return; } if (lmtsInEfct) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !onSwpBck ) { if (!trdOpn) { require( feeExmpt[from] || feeExmpt[to], "Trading is not active." ); } //when buy if (dxPrs[from] && !wltLmtExmpt[to]) { require( amount <= txLmt, "Buy transfer amount exceeds the txLmt." ); require( amount + balanceOf(to) <= wltLmt, "Max wallet exceeded" ); } //when sell else if (dxPrs[to] && !wltLmtExmpt[from]) { require( amount <= txLmt, "Sell transfer amount exceeds the txLmt." ); } else if (!wltLmtExmpt[to]) { require( amount + balanceOf(to) <= wltLmt, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= mnSwpbckLmt; if ( canSwap && !onSwpBck && !dxPrs[from] && !feeExmpt[from] && !feeExmpt[to] ) { onSwpBck = true; triggerContractSell(); onSwpBck = false; } bool takeFee = !onSwpBck; // if any account belongs to _isExcludedFromFee account then remove the fee if (feeExmpt[from] || feeExmpt[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (dxPrs[to] && feeOnSells > 0) { fees = amount.mul(feeOnSells).div(100); } // on buy else if (dxPrs[from] && feeOnBuys > 0) { fees = amount.mul(feeOnBuys).div(100); } if (fees > 0) { super._update(from, address(this), fees); } amount -= fees; } super._update(from, to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"ERC20FailedDecreaseAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"TaxesSwaped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","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":"bananyaLaunch","outputs":[],"stateMutability":"nonpayable","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":"requestedDecrease","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dxPr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dxPrs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"lmtsInEfct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mktWlt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rmvLmts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeOnBuys","type":"uint256"}],"name":"setFeeOnBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeOnSells","type":"uint256"}],"name":"setFeeOnSells","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txLmt","type":"uint256"}],"name":"setTxLmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_wltLmt","type":"uint256"}],"name":"setWltLmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"trdOpn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"txLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wltLmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600d805461ffff191660011790553480156200001f57600080fd5b506040518060400160405280600781526020016642616e616e796160c81b8152506040518060400160405280600781526020016642414e414e594160c81b815250816003908162000071919062000f72565b50600462000080828262000f72565b5050506000620000956200041d60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa1580156200013a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016091906200103e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d491906200103e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024891906200103e565b6001600160a01b031660a08190526200026390600162000421565b6b033b2e3c9fd0803ce80000006200027d60648262001086565b6009556200028d60328262001086565b600a556019600b556032600c55612710620002aa826005620010a9565b620002b6919062001086565b6007556064620002c8826005620010a9565b620002d4919062001086565b600855600680546001600160a01b03191673bf4eff671b0d5e4ad5b563f4b368a39ec8e26210178155336000908152600e6020526040808220805460ff19908116600190811790925593546001600160a01b031683528183208054851682179055308352908220805484168217905561dead82527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80549093168117909255600f90620003896005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600f9093528183208054851660019081179091557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805486168217905560065490911683529120805490921617905562000415338262000475565b505062001178565b3390565b6001600160a01b038216600081815260106020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620004a55760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620004b360008383620004b7565b5050565b80600003620004d357620004ce8383600062000a5f565b505050565b600d5460ff16156200084e576005546001600160a01b038481169116148015906200050c57506005546001600160a01b03838116911614155b80156200052157506001600160a01b03821615155b80156200053957506001600160a01b03821661dead14155b8015620005505750600554600160a01b900460ff16155b156200084e57600d54610100900460ff16620005f4576001600160a01b0383166000908152600e602052604090205460ff1680620005a657506001600160a01b0382166000908152600e602052604090205460ff165b620005f45760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e0000000000000000000060448201526064016200049c565b6001600160a01b03831660009081526010602052604090205460ff1680156200063657506001600160a01b0382166000908152600f602052604090205460ff16155b1562000713576009548111156200069f5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152653a3c2636ba1760d11b60648201526084016200049c565b600a546001600160a01b038316600090815260208190526040902054620006c79083620010c3565b11156200070d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200049c565b6200084e565b6001600160a01b03821660009081526010602052604090205460ff1680156200075557506001600160a01b0383166000908152600f602052604090205460ff16155b15620007bf576009548111156200070d5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266103a3c2636ba1760c91b60648201526084016200049c565b6001600160a01b0382166000908152600f602052604090205460ff166200084e57600a546001600160a01b038316600090815260208190526040902054620008089083620010c3565b11156200084e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016200049c565b30600090815260208190526040902054600754811080159081906200087d5750600554600160a01b900460ff16155b8015620008a357506001600160a01b03851660009081526010602052604090205460ff16155b8015620008c957506001600160a01b0385166000908152600e602052604090205460ff16155b8015620008ef57506001600160a01b0384166000908152600e602052604090205460ff16155b1562000920576005805460ff60a01b1916600160a01b1790556200091262000b92565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b9092048216159116806200096f57506001600160a01b0385166000908152600e602052604090205460ff165b1562000979575060005b6000811562000a49576001600160a01b03861660009081526010602052604090205460ff168015620009ad57506000600c54115b15620009da57600c54620009d290606490620009cb90889062000dcc565b9062000de3565b905062000a26565b6001600160a01b03871660009081526010602052604090205460ff16801562000a0557506000600b54115b1562000a2657600b5462000a2390606490620009cb90889062000dcc565b90505b801562000a3a5762000a3a87308362000a5f565b62000a468186620010d9565b94505b62000a5687878762000a5f565b50505050505050565b6001600160a01b03831662000a8e57806002600082825462000a829190620010c3565b9091555062000b029050565b6001600160a01b0383166000908152602081905260409020548181101562000ae35760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016200049c565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821662000b205760028054829003905562000b3f565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b8591815260200190565b60405180910390a3505050565b306000908152602081905260408120549081810362000baf575050565b60085482111562000bc05760085491505b604080516002808252606082018352600092602083019080368337019050509050308160008151811062000bf85762000bf8620010ef565b60200260200101906001600160a01b031690816001600160a01b0316815250506080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c59573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c7f91906200103e565b8160018151811062000c955762000c95620010ef565b60200260200101906001600160a01b031690816001600160a01b03168152505062000cca306080518562000df160201b60201c565b6080516001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b815260040162000d0395949392919062001105565b600060405180830381600087803b15801562000d1e57600080fd5b505af115801562000d33573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d806000811462000dbf576040519150601f19603f3d011682016040523d82523d6000602084013e62000dc4565b606091505b505050505050565b600062000dda8284620010a9565b90505b92915050565b600062000dda828462001086565b620004ce83838360016001600160a01b03841662000e265760405163e602df0560e01b8152600060048201526024016200049c565b6001600160a01b03831662000e5257604051634a1406b160e11b8152600060048201526024016200049c565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801562000ed057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000ec791815260200190565b60405180910390a35b50505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000f0157607f821691505b60208210810362000f2257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004ce57600081815260208120601f850160051c8101602086101562000f515750805b601f850160051c820191505b8181101562000dc45782815560010162000f5d565b81516001600160401b0381111562000f8e5762000f8e62000ed6565b62000fa68162000f9f845462000eec565b8462000f28565b602080601f83116001811462000fde576000841562000fc55750858301515b600019600386901b1c1916600185901b17855562000dc4565b600085815260208120601f198616915b828110156200100f5788860151825594840194600190910190840162000fee565b50858210156200102e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200105157600080fd5b81516001600160a01b03811681146200106957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600082620010a457634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141762000ddd5762000ddd62001070565b8082018082111562000ddd5762000ddd62001070565b8181038181111562000ddd5762000ddd62001070565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015620011575784516001600160a01b03168352938301939183019160010162001130565b50506001600160a01b03969096166060850152505050608001529392505050565b60805160a051611783620011ac60003960006102d901526000818161126c01528181611325015261136101526117836000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063a457c2d711610095578063dd62ed3e11610064578063dd62ed3e1461050e578063f2fde38b1461052e578063fa17a7381461054e578063fdbe1d521461056357600080fd5b8063a457c2d714610498578063a9059cbb146104b8578063b197eac5146104d8578063d62037d8146104ee57600080fd5b80638b17cdbf116100d15780638b17cdbf146104155780638da5cb5b1461044557806395d89b41146104635780639781ed3e1461047857600080fd5b806370a08231146103b5578063715018a6146103eb5780637c832da41461040057600080fd5b80631d9c408111610164578063395093511161013e578063395093511461034f578063449bb27d1461036f578063590b5f5f146103855780636e9bb4a31461039b57600080fd5b80631d9c4081146102c757806323b872dd14610313578063313ce5671461033357600080fd5b806310a4cbac116101a057806310a4cbac1461024c578063128cdaa11461027057806318160ddd146102925780631c14774e146102a757600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780630b3c30591461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610583565b6040516101f49190611483565b60405180910390f35b34801561020957600080fd5b5061021d6102183660046114e9565b610615565b60405190151581526020016101f4565b34801561023957600080fd5b50600d5461021d90610100900460ff1681565b34801561025857600080fd5b5061026260095481565b6040519081526020016101f4565b34801561027c57600080fd5b5061029061028b366004611515565b61062f565b005b34801561029e57600080fd5b50600254610262565b3480156102b357600080fd5b506102906102c2366004611515565b610667565b3480156102d357600080fd5b506102fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101f4565b34801561031f57600080fd5b5061021d61032e36600461152e565b610696565b34801561033f57600080fd5b50604051601281526020016101f4565b34801561035b57600080fd5b5061021d61036a3660046114e9565b6106ba565b34801561037b57600080fd5b50610262600c5481565b34801561039157600080fd5b50610262600b5481565b3480156103a757600080fd5b50600d5461021d9060ff1681565b3480156103c157600080fd5b506102626103d036600461156f565b6001600160a01b031660009081526020819052604090205490565b3480156103f757600080fd5b506102906106dc565b34801561040c57600080fd5b50610290610750565b34801561042157600080fd5b5061021d61043036600461156f565b60106020526000908152604090205460ff1681565b34801561045157600080fd5b506005546001600160a01b03166102fb565b34801561046f57600080fd5b506101e7610786565b34801561048457600080fd5b506006546102fb906001600160a01b031681565b3480156104a457600080fd5b5061021d6104b33660046114e9565b610795565b3480156104c457600080fd5b5061021d6104d33660046114e9565b6107ec565b3480156104e457600080fd5b50610262600a5481565b3480156104fa57600080fd5b50610290610509366004611515565b6107fa565b34801561051a57600080fd5b5061026261052936600461158c565b610829565b34801561053a57600080fd5b5061029061054936600461156f565b610854565b34801561055a57600080fd5b5061029061093f565b34801561056f57600080fd5b5061029061057e366004611515565b61097a565b606060038054610592906115c5565b80601f01602080910402602001604051908101604052809291908181526020018280546105be906115c5565b801561060b5780601f106105e05761010080835404028352916020019161060b565b820191906000526020600020905b8154815290600101906020018083116105ee57829003601f168201915b5050505050905090565b6000336106238185856109a9565b60019150505b92915050565b6005546001600160a01b031633146106625760405162461bcd60e51b8152600401610659906115ff565b60405180910390fd5b600955565b6005546001600160a01b031633146106915760405162461bcd60e51b8152600401610659906115ff565b600b55565b6000336106a48582856109bb565b6106af858585610a21565b506001949350505050565b6000336106238185856106cd8383610829565b6106d7919061164a565b6109a9565b6005546001600160a01b031633146107065760405162461bcd60e51b8152600401610659906115ff565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461077a5760405162461bcd60e51b8152600401610659906115ff565b600d805460ff19169055565b606060048054610592906115c5565b600033816107a38286610829565b9050838110156107df57604051632983c0c360e21b81526001600160a01b03861660048201526024810182905260448101859052606401610659565b6106af82868684036109a9565b600033610623818585610a21565b6005546001600160a01b031633146108245760405162461bcd60e51b8152600401610659906115ff565b600a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461087e5760405162461bcd60e51b8152600401610659906115ff565b6001600160a01b0381166108e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610659565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109695760405162461bcd60e51b8152600401610659906115ff565b600d805461ff001916610100179055565b6005546001600160a01b031633146109a45760405162461bcd60e51b8152600401610659906115ff565b600c55565b6109b68383836001610a80565b505050565b60006109c78484610829565b90506000198114610a1b5781811015610a0c57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610659565b610a1b84848484036000610a80565b50505050565b6001600160a01b038316610a4b57604051634b637e8f60e11b815260006004820152602401610659565b6001600160a01b038216610a755760405163ec442f0560e01b815260006004820152602401610659565b6109b6838383610b55565b6001600160a01b038416610aaa5760405163e602df0560e01b815260006004820152602401610659565b6001600160a01b038316610ad457604051634a1406b160e11b815260006004820152602401610659565b6001600160a01b0380851660009081526001602090815260408083209387168352929052208290558015610a1b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b4791815260200190565b60405180910390a350505050565b80600003610b69576109b6838360006110bf565b600d5460ff1615610ec1576005546001600160a01b03848116911614801590610ba057506005546001600160a01b03838116911614155b8015610bb457506001600160a01b03821615155b8015610bcb57506001600160a01b03821661dead14155b8015610be15750600554600160a01b900460ff16155b15610ec157600d54610100900460ff16610c79576001600160a01b0383166000908152600e602052604090205460ff1680610c3457506001600160a01b0382166000908152600e602052604090205460ff165b610c795760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610659565b6001600160a01b03831660009081526010602052604090205460ff168015610cba57506001600160a01b0382166000908152600f602052604090205460ff16155b15610d8f57600954811115610d205760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152653a3c2636ba1760d11b6064820152608401610659565b600a546001600160a01b038316600090815260208190526040902054610d46908361164a565b1115610d8a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b610ec1565b6001600160a01b03821660009081526010602052604090205460ff168015610dd057506001600160a01b0383166000908152600f602052604090205460ff16155b15610e3757600954811115610d8a5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266103a3c2636ba1760c91b6064820152608401610659565b6001600160a01b0382166000908152600f602052604090205460ff16610ec157600a546001600160a01b038316600090815260208190526040902054610e7d908361164a565b1115610ec15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b3060009081526020819052604090205460075481108015908190610eef5750600554600160a01b900460ff16155b8015610f1457506001600160a01b03851660009081526010602052604090205460ff16155b8015610f3957506001600160a01b0385166000908152600e602052604090205460ff16155b8015610f5e57506001600160a01b0384166000908152600e602052604090205460ff16155b15610f8c576005805460ff60a01b1916600160a01b179055610f7e6111e9565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b909204821615911680610fda57506001600160a01b0385166000908152600e602052604090205460ff165b15610fe3575060005b600081156110ab576001600160a01b03861660009081526010602052604090205460ff16801561101557506000600c54115b156110415761103a6064611034600c548861146490919063ffffffff16565b90611477565b905061108d565b6001600160a01b03871660009081526010602052604090205460ff16801561106b57506000600b54115b1561108d5761108a6064611034600b548861146490919063ffffffff16565b90505b801561109e5761109e8730836110bf565b6110a8818661165d565b94505b6110b68787876110bf565b50505050505050565b6001600160a01b0383166110ea5780600260008282546110df919061164a565b9091555061115c9050565b6001600160a01b0383166000908152602081905260409020548181101561113d5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610659565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661117857600280548290039055611197565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111dc91815260200190565b60405180910390a3505050565b3060009081526020819052604081205490818103611205575050565b6008548211156112155760085491505b604080516002808252606082018352600092602083019080368337019050509050308160008151811061124a5761124a611670565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190611686565b816001815181106112ff576112ff611670565b60200260200101906001600160a01b031690816001600160a01b03168152505061134a307f0000000000000000000000000000000000000000000000000000000000000000856109a9565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061139f9086906000908690309042906004016116a3565b600060405180830381600087803b1580156113b957600080fd5b505af11580156113cd573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611457576040519150601f19603f3d011682016040523d82523d6000602084013e61145c565b606091505b505050505050565b60006114708284611714565b9392505050565b6000611470828461172b565b600060208083528351808285015260005b818110156114b057858101830151858201604001528201611494565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114e657600080fd5b50565b600080604083850312156114fc57600080fd5b8235611507816114d1565b946020939093013593505050565b60006020828403121561152757600080fd5b5035919050565b60008060006060848603121561154357600080fd5b833561154e816114d1565b9250602084013561155e816114d1565b929592945050506040919091013590565b60006020828403121561158157600080fd5b8135611470816114d1565b6000806040838503121561159f57600080fd5b82356115aa816114d1565b915060208301356115ba816114d1565b809150509250929050565b600181811c908216806115d957607f821691505b6020821081036115f957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561062957610629611634565b8181038181111561062957610629611634565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561169857600080fd5b8151611470816114d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116f35784516001600160a01b0316835293830193918301916001016116ce565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761062957610629611634565b60008261174857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85cb135f144f8bf7337ea92bce8cbcaec878646da750265a393723fe49eb90e64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c806370a08231116100f7578063a457c2d711610095578063dd62ed3e11610064578063dd62ed3e1461050e578063f2fde38b1461052e578063fa17a7381461054e578063fdbe1d521461056357600080fd5b8063a457c2d714610498578063a9059cbb146104b8578063b197eac5146104d8578063d62037d8146104ee57600080fd5b80638b17cdbf116100d15780638b17cdbf146104155780638da5cb5b1461044557806395d89b41146104635780639781ed3e1461047857600080fd5b806370a08231146103b5578063715018a6146103eb5780637c832da41461040057600080fd5b80631d9c408111610164578063395093511161013e578063395093511461034f578063449bb27d1461036f578063590b5f5f146103855780636e9bb4a31461039b57600080fd5b80631d9c4081146102c757806323b872dd14610313578063313ce5671461033357600080fd5b806310a4cbac116101a057806310a4cbac1461024c578063128cdaa11461027057806318160ddd146102925780631c14774e146102a757600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780630b3c30591461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610583565b6040516101f49190611483565b60405180910390f35b34801561020957600080fd5b5061021d6102183660046114e9565b610615565b60405190151581526020016101f4565b34801561023957600080fd5b50600d5461021d90610100900460ff1681565b34801561025857600080fd5b5061026260095481565b6040519081526020016101f4565b34801561027c57600080fd5b5061029061028b366004611515565b61062f565b005b34801561029e57600080fd5b50600254610262565b3480156102b357600080fd5b506102906102c2366004611515565b610667565b3480156102d357600080fd5b506102fb7f0000000000000000000000008c5dad5b717f8658745ad0b333466131a3df373781565b6040516001600160a01b0390911681526020016101f4565b34801561031f57600080fd5b5061021d61032e36600461152e565b610696565b34801561033f57600080fd5b50604051601281526020016101f4565b34801561035b57600080fd5b5061021d61036a3660046114e9565b6106ba565b34801561037b57600080fd5b50610262600c5481565b34801561039157600080fd5b50610262600b5481565b3480156103a757600080fd5b50600d5461021d9060ff1681565b3480156103c157600080fd5b506102626103d036600461156f565b6001600160a01b031660009081526020819052604090205490565b3480156103f757600080fd5b506102906106dc565b34801561040c57600080fd5b50610290610750565b34801561042157600080fd5b5061021d61043036600461156f565b60106020526000908152604090205460ff1681565b34801561045157600080fd5b506005546001600160a01b03166102fb565b34801561046f57600080fd5b506101e7610786565b34801561048457600080fd5b506006546102fb906001600160a01b031681565b3480156104a457600080fd5b5061021d6104b33660046114e9565b610795565b3480156104c457600080fd5b5061021d6104d33660046114e9565b6107ec565b3480156104e457600080fd5b50610262600a5481565b3480156104fa57600080fd5b50610290610509366004611515565b6107fa565b34801561051a57600080fd5b5061026261052936600461158c565b610829565b34801561053a57600080fd5b5061029061054936600461156f565b610854565b34801561055a57600080fd5b5061029061093f565b34801561056f57600080fd5b5061029061057e366004611515565b61097a565b606060038054610592906115c5565b80601f01602080910402602001604051908101604052809291908181526020018280546105be906115c5565b801561060b5780601f106105e05761010080835404028352916020019161060b565b820191906000526020600020905b8154815290600101906020018083116105ee57829003601f168201915b5050505050905090565b6000336106238185856109a9565b60019150505b92915050565b6005546001600160a01b031633146106625760405162461bcd60e51b8152600401610659906115ff565b60405180910390fd5b600955565b6005546001600160a01b031633146106915760405162461bcd60e51b8152600401610659906115ff565b600b55565b6000336106a48582856109bb565b6106af858585610a21565b506001949350505050565b6000336106238185856106cd8383610829565b6106d7919061164a565b6109a9565b6005546001600160a01b031633146107065760405162461bcd60e51b8152600401610659906115ff565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461077a5760405162461bcd60e51b8152600401610659906115ff565b600d805460ff19169055565b606060048054610592906115c5565b600033816107a38286610829565b9050838110156107df57604051632983c0c360e21b81526001600160a01b03861660048201526024810182905260448101859052606401610659565b6106af82868684036109a9565b600033610623818585610a21565b6005546001600160a01b031633146108245760405162461bcd60e51b8152600401610659906115ff565b600a55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461087e5760405162461bcd60e51b8152600401610659906115ff565b6001600160a01b0381166108e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610659565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109695760405162461bcd60e51b8152600401610659906115ff565b600d805461ff001916610100179055565b6005546001600160a01b031633146109a45760405162461bcd60e51b8152600401610659906115ff565b600c55565b6109b68383836001610a80565b505050565b60006109c78484610829565b90506000198114610a1b5781811015610a0c57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610659565b610a1b84848484036000610a80565b50505050565b6001600160a01b038316610a4b57604051634b637e8f60e11b815260006004820152602401610659565b6001600160a01b038216610a755760405163ec442f0560e01b815260006004820152602401610659565b6109b6838383610b55565b6001600160a01b038416610aaa5760405163e602df0560e01b815260006004820152602401610659565b6001600160a01b038316610ad457604051634a1406b160e11b815260006004820152602401610659565b6001600160a01b0380851660009081526001602090815260408083209387168352929052208290558015610a1b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b4791815260200190565b60405180910390a350505050565b80600003610b69576109b6838360006110bf565b600d5460ff1615610ec1576005546001600160a01b03848116911614801590610ba057506005546001600160a01b03838116911614155b8015610bb457506001600160a01b03821615155b8015610bcb57506001600160a01b03821661dead14155b8015610be15750600554600160a01b900460ff16155b15610ec157600d54610100900460ff16610c79576001600160a01b0383166000908152600e602052604090205460ff1680610c3457506001600160a01b0382166000908152600e602052604090205460ff165b610c795760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610659565b6001600160a01b03831660009081526010602052604090205460ff168015610cba57506001600160a01b0382166000908152600f602052604090205460ff16155b15610d8f57600954811115610d205760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152653a3c2636ba1760d11b6064820152608401610659565b600a546001600160a01b038316600090815260208190526040902054610d46908361164a565b1115610d8a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b610ec1565b6001600160a01b03821660009081526010602052604090205460ff168015610dd057506001600160a01b0383166000908152600f602052604090205460ff16155b15610e3757600954811115610d8a5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266103a3c2636ba1760c91b6064820152608401610659565b6001600160a01b0382166000908152600f602052604090205460ff16610ec157600a546001600160a01b038316600090815260208190526040902054610e7d908361164a565b1115610ec15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610659565b3060009081526020819052604090205460075481108015908190610eef5750600554600160a01b900460ff16155b8015610f1457506001600160a01b03851660009081526010602052604090205460ff16155b8015610f3957506001600160a01b0385166000908152600e602052604090205460ff16155b8015610f5e57506001600160a01b0384166000908152600e602052604090205460ff16155b15610f8c576005805460ff60a01b1916600160a01b179055610f7e6111e9565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152600e602052604090205460ff600160a01b909204821615911680610fda57506001600160a01b0385166000908152600e602052604090205460ff165b15610fe3575060005b600081156110ab576001600160a01b03861660009081526010602052604090205460ff16801561101557506000600c54115b156110415761103a6064611034600c548861146490919063ffffffff16565b90611477565b905061108d565b6001600160a01b03871660009081526010602052604090205460ff16801561106b57506000600b54115b1561108d5761108a6064611034600b548861146490919063ffffffff16565b90505b801561109e5761109e8730836110bf565b6110a8818661165d565b94505b6110b68787876110bf565b50505050505050565b6001600160a01b0383166110ea5780600260008282546110df919061164a565b9091555061115c9050565b6001600160a01b0383166000908152602081905260409020548181101561113d5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610659565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661117857600280548290039055611197565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111dc91815260200190565b60405180910390a3505050565b3060009081526020819052604081205490818103611205575050565b6008548211156112155760085491505b604080516002808252606082018352600092602083019080368337019050509050308160008151811061124a5761124a611670565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190611686565b816001815181106112ff576112ff611670565b60200260200101906001600160a01b031690816001600160a01b03168152505061134a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d856109a9565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061139f9086906000908690309042906004016116a3565b600060405180830381600087803b1580156113b957600080fd5b505af11580156113cd573d6000803e3d6000fd5b5050604080518681524760208201527f9f4559507f9a7857bc303531a378b99e27e335776551e2db760e6d1734b9137c935001905060405180910390a16006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611457576040519150601f19603f3d011682016040523d82523d6000602084013e61145c565b606091505b505050505050565b60006114708284611714565b9392505050565b6000611470828461172b565b600060208083528351808285015260005b818110156114b057858101830151858201604001528201611494565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114e657600080fd5b50565b600080604083850312156114fc57600080fd5b8235611507816114d1565b946020939093013593505050565b60006020828403121561152757600080fd5b5035919050565b60008060006060848603121561154357600080fd5b833561154e816114d1565b9250602084013561155e816114d1565b929592945050506040919091013590565b60006020828403121561158157600080fd5b8135611470816114d1565b6000806040838503121561159f57600080fd5b82356115aa816114d1565b915060208301356115ba816114d1565b809150509250929050565b600181811c908216806115d957607f821691505b6020821081036115f957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561062957610629611634565b8181038181111561062957610629611634565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561169857600080fd5b8151611470816114d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116f35784516001600160a01b0316835293830193918301916001016116ce565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761062957610629611634565b60008261174857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85cb135f144f8bf7337ea92bce8cbcaec878646da750265a393723fe49eb90e64736f6c63430008130033
Deployed Bytecode Sourcemap
16847:6426:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4172:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:190;;;;;;;;;;-1:-1:-1;5039:190:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5039:190:0;1023:187:1;17295:26:0;;;;;;;;;;-1:-1:-1;17295:26:0;;;;;;;;;;;17137:20;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;17137:20:0;1215:177:1;19164:86:0;;;;;;;;;;-1:-1:-1;19164:86:0;;;;;:::i;:::-;;:::i;:::-;;4466:99;;;;;;;;;;-1:-1:-1;4545:12:0;;4466:99;;18857:102;;;;;;;;;;-1:-1:-1;18857:102:0;;;;;:::i;:::-;;:::i;16969:29::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1746:32:1;;;1728:51;;1716:2;1701:18;16969:29:0;1582:203:1;5237:249:0;;;;;;;;;;-1:-1:-1;5237:249:0;;;;;:::i;:::-;;:::i;4374:84::-;;;;;;;;;;-1:-1:-1;4374:84:0;;4448:2;2393:36:1;;2381:2;2366:18;4374:84:0;2251:184:1;5494:238:0;;;;;;;;;;-1:-1:-1;5494:238:0;;;;;:::i;:::-;;:::i;17225:25::-;;;;;;;;;;;;;;;;17194:24;;;;;;;;;;;;;;;;17259:29;;;;;;;;;;-1:-1:-1;17259:29:0;;;;;;;;4573:118;;;;;;;;;;-1:-1:-1;4573:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;4665:18:0;4638:7;4665:18;;;;;;;;;;;;4573:118;1571:148;;;;;;;;;;;;;:::i;19081:75::-;;;;;;;;;;;;;:::i;17431:37::-;;;;;;;;;;-1:-1:-1;17431:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;929:79;;;;;;;;;;-1:-1:-1;994:6:0;;-1:-1:-1;;;;;994:6:0;929:79;;4271:95;;;;;;;;;;;;;:::i;17037:21::-;;;;;;;;;;-1:-1:-1;17037:21:0;;;;-1:-1:-1;;;;;17037:21:0;;;5740:504;;;;;;;;;;-1:-1:-1;5740:504:0;;;;;:::i;:::-;;:::i;4699:182::-;;;;;;;;;;-1:-1:-1;4699:182:0;;;;;:::i;:::-;;:::i;17164:21::-;;;;;;;;;;;;;;;;19258:90;;;;;;;;;;-1:-1:-1;19258:90:0;;;;;:::i;:::-;;:::i;4889:142::-;;;;;;;;;;-1:-1:-1;4889:142:0;;;;;:::i;:::-;;:::i;1874:281::-;;;;;;;;;;-1:-1:-1;1874:281:0;;;;;:::i;:::-;;:::i;18773:76::-;;;;;;;;;;;;;:::i;18967:106::-;;;;;;;;;;-1:-1:-1;18967:106:0;;;;;:::i;:::-;;:::i;4172:91::-;4217:13;4250:5;4243:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4172:91;:::o;5039:190::-;5112:4;279:10;5168:31;279:10;5184:7;5193:5;5168:8;:31::i;:::-;5217:4;5210:11;;;5039:190;;;;;:::o;19164:86::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;;;;;;;;;19228:5:::1;:14:::0;19164:86::o;18857:102::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;18929:9:::1;:22:::0;18857:102::o;5237:249::-;5324:4;279:10;5382:37;5398:4;279:10;5413:5;5382:15;:37::i;:::-;5430:26;5440:4;5446:2;5450:5;5430:9;:26::i;:::-;-1:-1:-1;5474:4:0;;5237:249;-1:-1:-1;;;;5237:249:0:o;5494:238::-;5582:4;279:10;5638:64;279:10;5654:7;5691:10;5663:25;279:10;5654:7;5663:9;:25::i;:::-;:38;;;;:::i;:::-;5638:8;:64::i;1571:148::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;1662:6:::1;::::0;1641:40:::1;::::0;1678:1:::1;::::0;-1:-1:-1;;;;;1662:6:0::1;::::0;1641:40:::1;::::0;1678:1;;1641:40:::1;1692:6;:19:::0;;-1:-1:-1;;;;;;1692:19:0::1;::::0;;1571:148::o;19081:75::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;19130:10:::1;:18:::0;;-1:-1:-1;;19130:18:0::1;::::0;;19081:75::o;4271:95::-;4318:13;4351:7;4344:14;;;;;:::i;5740:504::-;5835:4;279:10;5835:4;5918:25;279:10;5935:7;5918:9;:25::i;:::-;5891:52;;5977:17;5958:16;:36;5954:150;;;6018:74;;-1:-1:-1;;;6018:74:0;;-1:-1:-1;;;;;4313:32:1;;6018:74:0;;;4295:51:1;4362:18;;;4355:34;;;4405:18;;;4398:34;;;4268:18;;6018:74:0;4093:345:1;5954:150:0;6139:62;6148:5;6155:7;6183:17;6164:16;:36;6139:8;:62::i;4699:182::-;4768:4;279:10;4824:27;279:10;4841:2;4845:5;4824:9;:27::i;19258:90::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;19324:6:::1;:16:::0;19258:90::o;4889:142::-;-1:-1:-1;;;;;4996:18:0;;;4969:7;4996:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4889:142::o;1874:281::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1977:22:0;::::1;1955:110;;;::::0;-1:-1:-1;;;1955:110:0;;4645:2:1;1955:110:0::1;::::0;::::1;4627:21:1::0;4684:2;4664:18;;;4657:30;4723:34;4703:18;;;4696:62;-1:-1:-1;;;4774:18:1;;;4767:36;4820:19;;1955:110:0::1;4443:402:1::0;1955:110:0::1;2102:6;::::0;2081:38:::1;::::0;-1:-1:-1;;;;;2081:38:0;;::::1;::::0;2102:6:::1;::::0;2081:38:::1;::::0;2102:6:::1;::::0;2081:38:::1;2130:6;:17:::0;;-1:-1:-1;;;;;;2130:17:0::1;-1:-1:-1::0;;;;;2130:17:0;;;::::1;::::0;;;::::1;::::0;;1874:281::o;18773:76::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;18828:6:::1;:13:::0;;-1:-1:-1;;18828:13:0::1;;;::::0;;18773:76::o;18967:106::-;1141:6;;-1:-1:-1;;;;;1141:6:0;279:10;1141:22;1133:67;;;;-1:-1:-1;;;1133:67:0;;;;;;;:::i;:::-;19041:10:::1;:24:::0;18967:106::o;8151:130::-;8236:37;8245:5;8252:7;8261:5;8268:4;8236:8;:37::i;:::-;8151:130;;;:::o;8740:487::-;8840:24;8867:25;8877:5;8884:7;8867:9;:25::i;:::-;8840:52;;-1:-1:-1;;8907:16:0;:37;8903:317;;8984:5;8965:16;:24;8961:132;;;9017:60;;-1:-1:-1;;;9017:60:0;;-1:-1:-1;;;;;4313:32:1;;9017:60:0;;;4295:51:1;4362:18;;;4355:34;;;4405:18;;;4398:34;;;4268:18;;9017:60:0;4093:345:1;8961:132:0;9136:57;9145:5;9152:7;9180:5;9161:16;:24;9187:5;9136:8;:57::i;:::-;8829:398;8740:487;;;:::o;6252:308::-;-1:-1:-1;;;;;6336:18:0;;6332:88;;6378:30;;-1:-1:-1;;;6378:30:0;;6405:1;6378:30;;;1728:51:1;1701:18;;6378:30:0;1582:203:1;6332:88:0;-1:-1:-1;;;;;6434:16:0;;6430:88;;6474:32;;-1:-1:-1;;;6474:32:0;;6503:1;6474:32;;;1728:51:1;1701:18;;6474:32:0;1582:203:1;6430:88:0;6528:24;6536:4;6542:2;6546:5;6528:7;:24::i;8289:443::-;-1:-1:-1;;;;;8402:19:0;;8398:91;;8445:32;;-1:-1:-1;;;8445:32:0;;8474:1;8445:32;;;1728:51:1;1701:18;;8445:32:0;1582:203:1;8398:91:0;-1:-1:-1;;;;;8503:21:0;;8499:92;;8548:31;;-1:-1:-1;;;8548:31:0;;8576:1;8548:31;;;1728:51:1;1701:18;;8548:31:0;1582:203:1;8499:92:0;-1:-1:-1;;;;;8601:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;8647:78;;;;8698:7;-1:-1:-1;;;;;8682:31:0;8691:5;-1:-1:-1;;;;;8682:31:0;;8707:5;8682:31;;;;1361:25:1;;1349:2;1334:18;;1215:177;8682:31:0;;;;;;;;8289:443;;;;:::o;20433:2837::-;20561:6;20571:1;20561:11;20557:91;;20589:26;20603:4;20609:2;20613:1;20589:13;:26::i;20557:91::-;20664:10;;;;20660:1371;;;994:6;;-1:-1:-1;;;;;20713:15:0;;;994:6;;20713:15;;;;:49;;-1:-1:-1;994:6:0;;-1:-1:-1;;;;;20749:13:0;;;994:6;;20749:13;;20713:49;:86;;;;-1:-1:-1;;;;;;20783:16:0;;;;20713:86;:128;;;;-1:-1:-1;;;;;;20820:21:0;;20834:6;20820:21;;20713:128;:158;;;;-1:-1:-1;20863:8:0;;-1:-1:-1;;;20863:8:0;;;;20862:9;20713:158;20691:1329;;;20911:6;;;;;;;20906:194;;-1:-1:-1;;;;;20976:14:0;;;;;;:8;:14;;;;;;;;;:30;;-1:-1:-1;;;;;;20994:12:0;;;;;;:8;:12;;;;;;;;20976:30;20942:138;;;;-1:-1:-1;;;20942:138:0;;5052:2:1;20942:138:0;;;5034:21:1;5091:2;5071:18;;;5064:30;-1:-1:-1;;;5110:18:1;;;5103:52;5172:18;;20942:138:0;4850:346:1;20942:138:0;-1:-1:-1;;;;;21150:11:0;;;;;;:5;:11;;;;;;;;:31;;;;-1:-1:-1;;;;;;21166:15:0;;;;;;:11;:15;;;;;;;;21165:16;21150:31;21146:859;;;21250:5;;21240:6;:15;;21206:139;;;;-1:-1:-1;;;21206:139:0;;5403:2:1;21206:139:0;;;5385:21:1;5442:2;5422:18;;;5415:30;5481:34;5461:18;;;5454:62;-1:-1:-1;;;5532:18:1;;;5525:36;5578:19;;21206:139:0;5201:402:1;21206:139:0;21428:6;;-1:-1:-1;;;;;4665:18:0;;4638:7;4665:18;;;;;;;;;;;21402:22;;:6;:22;:::i;:::-;:32;;21368:137;;;;-1:-1:-1;;;21368:137:0;;5810:2:1;21368:137:0;;;5792:21:1;5849:2;5829:18;;;5822:30;-1:-1:-1;;;5868:18:1;;;5861:49;5927:18;;21368:137:0;5608:343:1;21368:137:0;21146:859;;;-1:-1:-1;;;;;21581:9:0;;;;;;:5;:9;;;;;;;;:31;;;;-1:-1:-1;;;;;;21595:17:0;;;;;;:11;:17;;;;;;;;21594:18;21581:31;21577:428;;;21681:5;;21671:6;:15;;21637:140;;;;-1:-1:-1;;;21637:140:0;;6158:2:1;21637:140:0;;;6140:21:1;6197:2;6177:18;;;6170:30;6236:34;6216:18;;;6209:62;-1:-1:-1;;;6287:18:1;;;6280:37;6334:19;;21637:140:0;5956:403:1;21577:428:0;-1:-1:-1;;;;;21808:15:0;;;;;;:11;:15;;;;;;;;21803:202;;21908:6;;-1:-1:-1;;;;;4665:18:0;;4638:7;4665:18;;;;;;;;;;;21882:22;;:6;:22;:::i;:::-;:32;;21848:137;;;;-1:-1:-1;;;21848:137:0;;5810:2:1;21848:137:0;;;5792:21:1;5849:2;5829:18;;;5822:30;-1:-1:-1;;;5868:18:1;;;5861:49;5927:18;;21848:137:0;5608:343:1;21848:137:0;22092:4;22043:28;4665:18;;;;;;;;;;;22150:11;;22126:35;;;;;;;22192:33;;-1:-1:-1;22217:8:0;;-1:-1:-1;;;22217:8:0;;;;22216:9;22192:33;:62;;;;-1:-1:-1;;;;;;22243:11:0;;;;;;:5;:11;;;;;;;;22242:12;22192:62;:94;;;;-1:-1:-1;;;;;;22272:14:0;;;;;;:8;:14;;;;;;;;22271:15;22192:94;:124;;;;-1:-1:-1;;;;;;22304:12:0;;;;;;:8;:12;;;;;;;;22303:13;22192:124;22174:267;;;22343:8;:15;;-1:-1:-1;;;;22343:15:0;-1:-1:-1;;;22343:15:0;;;22375:21;:19;:21::i;:::-;22413:8;:16;;-1:-1:-1;;;;22413:16:0;;;22174:267;22469:8;;-1:-1:-1;;;;;22579:14:0;;22453:12;22579:14;;;:8;:14;;;;;;22469:8;-1:-1:-1;;;22469:8:0;;;;;22468:9;;22579:14;;:30;;-1:-1:-1;;;;;;22597:12:0;;;;;;:8;:12;;;;;;;;22579:30;22575:78;;;-1:-1:-1;22636:5:0;22575:78;22665:12;22770:7;22766:453;;;-1:-1:-1;;;;;22822:9:0;;;;;;:5;:9;;;;;;;;:27;;;;;22848:1;22835:10;;:14;22822:27;22818:254;;;22877:31;22904:3;22877:22;22888:10;;22877:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;22870:38;;22818:254;;;-1:-1:-1;;;;;22970:11:0;;;;;;:5;:11;;;;;;;;:28;;;;;22997:1;22985:9;;:13;22970:28;22966:106;;;23026:30;23052:3;23026:21;23037:9;;23026:6;:10;;:21;;;;:::i;:30::-;23019:37;;22966:106;23092:8;;23088:89;;23121:40;23135:4;23149;23156;23121:13;:40::i;:::-;23193:14;23203:4;23193:14;;:::i;:::-;;;22766:453;23231:31;23245:4;23251:2;23255:6;23231:13;:31::i;:::-;20544:2726;;;;20433:2837;;;:::o;6568:1135::-;-1:-1:-1;;;;;6658:18:0;;6654:552;;6812:5;6796:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6654:552:0;;-1:-1:-1;6654:552:0;;-1:-1:-1;;;;;6872:15:0;;6850:19;6872:15;;;;;;;;;;;6906:19;;;6902:117;;;6953:50;;-1:-1:-1;;;6953:50:0;;-1:-1:-1;;;;;4313:32:1;;6953:50:0;;;4295:51:1;4362:18;;;4355:34;;;4405:18;;;4398:34;;;4268:18;;6953:50:0;4093:345:1;6902:117:0;-1:-1:-1;;;;;7142:15:0;;:9;:15;;;;;;;;;;7160:19;;;;7142:37;;6654:552;-1:-1:-1;;;;;7222:16:0;;7218:435;;7388:12;:21;;;;;;;7218:435;;;-1:-1:-1;;;;;7604:13:0;;:9;:13;;;;;;;;;;:22;;;;;;7218:435;7685:2;-1:-1:-1;;;;;7670:25:0;7679:4;-1:-1:-1;;;;;7670:25:0;;7689:5;7670:25;;;;1361::1;;1349:2;1334:18;;1215:177;7670:25:0;;;;;;;;6568:1135;;;:::o;19515:910::-;19606:4;19565:20;4665:18;;;;;;;;;;;;19652:17;;;19648:56;;19686:7;;19515:910::o;19648:56::-;19735:11;;19720:12;:26;19716:85;;;19778:11;;19763:26;;19716:85;19837:16;;;19851:1;19837:16;;;;;;;;19813:21;;19837:16;;;;;;;;;;-1:-1:-1;19837:16:0;19813:40;;19882:4;19864;19869:1;19864:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19864:23:0;;;-1:-1:-1;;;;;19864:23:0;;;;;19908:7;-1:-1:-1;;;;;19908:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19898:4;19903:1;19898:7;;;;;;;;:::i;:::-;;;;;;:24;-1:-1:-1;;;;;19898:24:0;;;-1:-1:-1;;;;;19898:24:0;;;;;19935:55;19952:4;19967:7;19977:12;19935:8;:55::i;:::-;20029:217;;-1:-1:-1;;;20029:217:0;;-1:-1:-1;;;;;20029:7:0;:58;;;;:217;;20102:12;;20129:1;;20173:4;;20200;;20220:15;;20029:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20264:48:0;;;8176:25:1;;;20290:21:0;8232:2:1;8217:18;;8210:34;20264:48:0;;-1:-1:-1;8149:18:1;;-1:-1:-1;20264:48:0;;;;;;;20347:6;;20339:78;;-1:-1:-1;;;;;20347:6:0;;;;20381:21;;20339:78;;;;20381:21;20347:6;20339:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19515:910:0:o;10711:98::-;10769:7;10796:5;10800:1;10796;:5;:::i;:::-;10789:12;10711:98;-1:-1:-1;;;10711:98:0:o;10817:::-;10875:7;10902:5;10906:1;10902;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1790:456::-;1867:6;1875;1883;1936:2;1924:9;1915:7;1911:23;1907:32;1904:52;;;1952:1;1949;1942:12;1904:52;1991:9;1978:23;2010:31;2035:5;2010:31;:::i;:::-;2060:5;-1:-1:-1;2117:2:1;2102:18;;2089:32;2130:33;2089:32;2130:33;:::i;:::-;1790:456;;2182:7;;-1:-1:-1;;;2236:2:1;2221:18;;;;2208:32;;1790:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:380::-;3164:1;3160:12;;;;3207;;;3228:61;;3282:4;3274:6;3270:17;3260:27;;3228:61;3335:2;3327:6;3324:14;3304:18;3301:38;3298:161;;3381:10;3376:3;3372:20;3369:1;3362:31;3416:4;3413:1;3406:15;3444:4;3441:1;3434:15;3298:161;;3085:380;;;:::o;3470:356::-;3672:2;3654:21;;;3691:18;;;3684:30;3750:34;3745:2;3730:18;;3723:62;3817:2;3802:18;;3470:356::o;3831:127::-;3892:10;3887:3;3883:20;3880:1;3873:31;3923:4;3920:1;3913:15;3947:4;3944:1;3937:15;3963:125;4028:9;;;4049:10;;;4046:36;;;4062:18;;:::i;6364:128::-;6431:9;;;6452:11;;;6449:37;;;6466:18;;:::i;6629:127::-;6690:10;6685:3;6681:20;6678:1;6671:31;6721:4;6718:1;6711:15;6745:4;6742:1;6735:15;6761:251;6831:6;6884:2;6872:9;6863:7;6859:23;6855:32;6852:52;;;6900:1;6897;6890:12;6852:52;6932:9;6926:16;6951:31;6976:5;6951:31;:::i;7017:980::-;7279:4;7327:3;7316:9;7312:19;7358:6;7347:9;7340:25;7384:2;7422:6;7417:2;7406:9;7402:18;7395:34;7465:3;7460:2;7449:9;7445:18;7438:31;7489:6;7524;7518:13;7555:6;7547;7540:22;7593:3;7582:9;7578:19;7571:26;;7632:2;7624:6;7620:15;7606:29;;7653:1;7663:195;7677:6;7674:1;7671:13;7663:195;;;7742:13;;-1:-1:-1;;;;;7738:39:1;7726:52;;7833:15;;;;7798:12;;;;7774:1;7692:9;7663:195;;;-1:-1:-1;;;;;;;7914:32:1;;;;7909:2;7894:18;;7887:60;-1:-1:-1;;;7978:3:1;7963:19;7956:35;7875:3;7017:980;-1:-1:-1;;;7017:980:1:o;8465:168::-;8538:9;;;8569;;8586:15;;;8580:22;;8566:37;8556:71;;8607:18;;:::i;8638:217::-;8678:1;8704;8694:132;;8748:10;8743:3;8739:20;8736:1;8729:31;8783:4;8780:1;8773:15;8811:4;8808:1;8801:15;8694:132;-1:-1:-1;8840:9:1;;8638:217::o
Swarm Source
ipfs://b85cb135f144f8bf7337ea92bce8cbcaec878646da750265a393723fe49eb90e
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.