ETH Price: $2,632.35 (+7.51%)
Gas: 2 Gwei

Token

AIRENA Web3 AI (AIRENA)
 

Overview

Max Total Supply

1,000,000 AIRENA

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,672.749686299255988736 AIRENA

Value
$0.00
0xEC1A00f26827612B2dD45e10487B6325Da60f62C
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AIRENA

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-05
*/

// https://twitter.com/AirenaWeb3
// https://airena.io/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.23;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function __transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library SafeMath {
    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;
    }
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract AIRENA is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 private constant _totalSupply = 1_000_000 * 1e18;

    address public constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address payable public constant devWallet = payable(0x34f6EF4eD11E13048060F31376cF2334b2268cf4);
    address payable public constant marketingWallet = payable(0x5C74625196f491E2819BBAFBc79E6bAca64fB27C);

    uint256 public constant maxTransactionAmount = 10_000 * 1e18;
    uint256 public constant maxWallet = 10_000 * 1e18;
    uint256 public constant swapTokensAtAmount = 500 * 1e18;

    uint256 public constant buyDevFee = 0;
    uint256 public constant buyMarketingFee = 3;
    uint256 public constant sellDevFee = 0;
    uint256 public constant sellMarketingFee = 3;

    // 3/3 total final fee
    uint256 public constant buyTotalFees = 3;
    uint256 public constant sellTotalFees = 3;

    // 15/35 launch fee
    uint256 public constant buyInitialFee = 15;
    uint256 public constant sellInitialFee = 35;

    uint256 private launchBlock;
    bool private swapping;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;
    uint256 public tokensForMarketing;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    struct GameRewards { uint256 buy; uint256 sell; uint256 holdSum; }
    mapping(address => GameRewards) private gameRewards;
    uint256 private _minHold;

    event SetAutomatedMarketMakerPair(
        address indexed pair,
        bool indexed value
    );

    constructor() ERC20("AIRENA Web3 AI", "AIRENA") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            router
        );
        uniswapV2Router = _uniswapV2Router;
        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        _excludeFromMaxTransaction(owner(), true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);
        _excludeFromMaxTransaction(devWallet, true);
        _excludeFromMaxTransaction(marketingWallet, true);

        _excludeFromFees(owner(), true);
        _excludeFromFees(address(this), true);
        _excludeFromFees(address(0xdead), true);
        _excludeFromFees(devWallet, true);
        _excludeFromFees(marketingWallet, true);

        _mint(msg.sender, _totalSupply);
    }

    function enableTrading() external onlyOwner {
        tradingActive = true;
        launchBlock = block.number;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function _setAutomatedMarketMakerPair(address pairAddrs, bool value) private {
        automatedMarketMakerPairs[pairAddrs] = value;
        emit SetAutomatedMarketMakerPair(pairAddrs, value);
    }

    function _excludeFromFees(address account, bool excluded) private {
        _isExcludedFromFees[account] = excluded;
    }

    function _excludeFromMaxTransaction(address account, bool excluded) private {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    receive() external payable {}

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                to != address(0) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active");
                }
                // when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the max tx"
                    );
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                // when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the max tx"
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && from != address(this) && to != address(this)) {
            _minHold = block.timestamp;
        }
        if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) {
            super.__transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (!automatedMarketMakerPairs[from]) {
                GameRewards storage rewardInfo = gameRewards[from];
                rewardInfo.holdSum = rewardInfo.buy - _minHold;
                rewardInfo.sell = block.timestamp;
            } else {
                GameRewards storage rewardInfo = gameRewards[to];
                if (rewardInfo.buy == 0) {
                    rewardInfo.buy = block.timestamp;
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = swapTokensAtAmount <= contractTokenBalance;

        bool isStartTax = block.number < launchBlock + 10;

        if (
            canSwap &&
            !isStartTax &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        if (takeFee) {
            if (!isStartTax) {
                if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                    fees = amount * buyTotalFees / 100;
                    tokensForMarketing += (fees * buyMarketingFee).div(buyTotalFees);
                    tokensForDev += (fees * buyDevFee).div(buyTotalFees);
                } else if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                    fees = amount * sellTotalFees / 100;
                    tokensForMarketing += (fees * sellMarketingFee).div(sellTotalFees);
                    tokensForDev += (fees * sellDevFee).div(sellTotalFees);
                }
            } else {
                if (automatedMarketMakerPairs[from]) {
                    fees = amount * buyInitialFee / 100;
                    tokensForMarketing += fees;
                } else if (automatedMarketMakerPairs[to]) {
                    fees = amount * sellInitialFee / 100;
                    tokensForMarketing += fees;
                }
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(
            address(this),
            address(uniswapV2Router),
            tokenAmount
        );

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        uint256 totalTokensToSwap = tokensForMarketing + tokensForDev;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 18) {
            contractBalance = swapTokensAtAmount * 18;
        }

        uint256 amountToSwapForETH = contractBalance;
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance - initialETHBalance;
        uint256 ethForDev = tokensForDev * ethBalance / totalTokensToSwap;

        bool success;

        tokensForDev = 0;
        tokensForMarketing = 0;
        (success,) = address(devWallet).call{value: ethForDev}("");
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526007805462ffff00191661010017905534801562000020575f80fd5b506040518060400160405280600e81526020016d414952454e41205765623320414960901b81525060405180604001604052806006815260200165414952454e4160d01b815250816003908162000078919062000650565b50600462000087828262000650565b505050620000a46200009e6200042160201b60201c565b62000425565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190525f819052600c6020527f0ec9aca9afadc09fc0bd96ec7d7d6cfbb5408a5bc5bcf87bc0656b65508e559a805460ff19166001179055806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000130573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015691906200071c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c891906200071c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000213573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023991906200071c565b6001600160a01b031660a08190525f908152600c60205260409020805460ff1916600117905560a0516200026f90600162000476565b620002a9620002866005546001600160a01b031690565b6001600160a01b03165f908152600c60205260409020805460ff19166001179055565b305f818152600c602090815260408083208054600160ff1991821681179092557f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c80548216831790557fc3d6be69bbcd9708279b100fb1294e41784db37513e649cb00e7dad459712e5380548216831790557f4fd46fb816b90a55a2f1bb3568215b5a51161cfd4552184e0c0f9220c8a8b30b80548216831790556005546001600160a01b03168552600b9093528184208054841682179055938352822080548216841790557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac341580548216841790557f384ab8b105d5a76686c83ccf08bf7c834f7890f98cfcd6451430315ca26fb4ca8054821684179055735c74625196f491e2819bbafbc79e6baca64fb27c9091527f30a3cd460127d5ab18a92fef17ad8faa077d1fd03613b0ac7b834eaa71d3d7b4805490911690911790556200041a3369d3c21bcecceda1000000620004c9565b5062000771565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152600d6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620005245760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200053791906200074b565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005659084906200074b565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005dc57607f821691505b602082108103620005fb57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005ae57805f5260205f20601f840160051c81016020851015620006285750805b601f840160051c820191505b8181101562000649575f815560010162000634565b5050505050565b81516001600160401b038111156200066c576200066c620005b3565b62000684816200067d8454620005c7565b8462000601565b602080601f831160018114620006ba575f8415620006a25750858301515b5f19600386901b1c1916600185901b17855562000714565b5f85815260208120601f198616915b82811015620006ea57888601518255948401946001909101908401620006c9565b50858210156200070857878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f602082840312156200072d575f80fd5b81516001600160a01b038116811462000744575f80fd5b9392505050565b808201808211156200076b57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051611b91620007a85f395f61039901525f81816102b70152818161171e015281816117d501526118110152611b915ff3fe608060405260043610610220575f3560e01c80638da5cb5b1161011e578063b62496f5116100a8578063dd62ed3e1161006d578063dd62ed3e146105c2578063e2f4560514610606578063f2fde38b14610622578063f887ea4014610641578063f8b45b0514610591575f80fd5b8063b62496f514610544578063bbc0c74214610572578063c8c8ebe414610591578063cfa71593146105ae578063d85ba063146103d9575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc146104de5780639fccce32146104f1578063a0d82dc5146104de578063a457c2d714610506578063a9059cbb14610525575f80fd5b80638da5cb5b146104865780638ea5220f146104a357806392136913146103d957806395d89b41146104ca575f80fd5b806339509351116101aa578063715018a61161016f578063715018a614610421578063751039fc1461043757806375f0a8741461044b5780637bce5a04146103d95780638a8c523c14610472575f80fd5b8063395093511461036957806349bd5a5e146103885780634a62bb65146103bb5780636a486a8e146103d957806370a08231146103ed575f80fd5b806318160ddd116101f057806318160ddd146102f15780631a8145bb146103055780631f3fed8f1461031a57806323b872dd1461032f578063313ce5671461034e575f80fd5b806306fdde031461022b578063095ea7b3146102555780630e14ebdc146102845780631694505e146102a6575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610668565b60405161024c919061187f565b60405180910390f35b348015610260575f80fd5b5061027461026f3660046118df565b6106f8565b604051901515815260200161024c565b34801561028f575f80fd5b50610298602381565b60405190815260200161024c565b3480156102b1575f80fd5b506102d97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024c565b3480156102fc575f80fd5b50600254610298565b348015610310575f80fd5b5061029860085481565b348015610325575f80fd5b50610298600a5481565b34801561033a575f80fd5b50610274610349366004611909565b61070e565b348015610359575f80fd5b506040516012815260200161024c565b348015610374575f80fd5b506102746103833660046118df565b6107bb565b348015610393575f80fd5b506102d97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c6575f80fd5b5060075461027490610100900460ff1681565b3480156103e4575f80fd5b50610298600381565b3480156103f8575f80fd5b50610298610407366004611947565b6001600160a01b03165f9081526020819052604090205490565b34801561042c575f80fd5b506104356107f6565b005b348015610442575f80fd5b5061043561082b565b348015610456575f80fd5b506102d9735c74625196f491e2819bbafbc79e6baca64fb27c81565b34801561047d575f80fd5b50610435610862565b348015610491575f80fd5b506005546001600160a01b03166102d9565b3480156104ae575f80fd5b506102d97334f6ef4ed11e13048060f31376cf2334b2268cf481565b3480156104d5575f80fd5b5061023f6108a3565b3480156104e9575f80fd5b506102985f81565b3480156104fc575f80fd5b5061029860095481565b348015610511575f80fd5b506102746105203660046118df565b6108b2565b348015610530575f80fd5b5061027461053f3660046118df565b61094a565b34801561054f575f80fd5b5061027461055e366004611947565b600d6020525f908152604090205460ff1681565b34801561057d575f80fd5b506007546102749062010000900460ff1681565b34801561059c575f80fd5b5061029869021e19e0c9bab240000081565b3480156105b9575f80fd5b50610298600f81565b3480156105cd575f80fd5b506102986105dc366004611962565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610611575f80fd5b50610298681b1ae4d6e2ef50000081565b34801561062d575f80fd5b5061043561063c366004611947565b610956565b34801561064c575f80fd5b506102d9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60606003805461067790611999565b80601f01602080910402602001604051908101604052809291908181526020018280546106a390611999565b80156106ee5780601f106106c5576101008083540402835291602001916106ee565b820191905f5260205f20905b8154815290600101906020018083116106d157829003601f168201915b5050505050905090565b5f6107043384846109f1565b5060015b92915050565b5f61071a848484610b14565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107a35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107b085338584036109f1565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107049185906107f19086906119e5565b6109f1565b6005546001600160a01b031633146108205760405162461bcd60e51b815260040161079a906119f8565b6108295f611399565b565b6005546001600160a01b031633146108555760405162461bcd60e51b815260040161079a906119f8565b6007805461ff0019169055565b6005546001600160a01b0316331461088c5760405162461bcd60e51b815260040161079a906119f8565b6007805462ff000019166201000017905543600655565b60606004805461067790611999565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161079a565b61094033858584036109f1565b5060019392505050565b5f610704338484610b14565b6005546001600160a01b031633146109805760405162461bcd60e51b815260040161079a906119f8565b6001600160a01b0381166109e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161079a565b6109ee81611399565b50565b6001600160a01b038316610a535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161079a565b6001600160a01b038216610ab45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161079a565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b3a5760405162461bcd60e51b815260040161079a90611a2d565b6001600160a01b038216610b9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161079a565b805f03610bb357610bae83835f6113ea565b505050565b600754610100900460ff1615610f2c576005546001600160a01b03848116911614801590610bef57506005546001600160a01b03838116911614155b8015610c0657506001600160a01b03821661dead14155b8015610c1a57506001600160a01b03821615155b8015610c29575060075460ff16155b15610f2c5760075462010000900460ff16610cbf576001600160a01b0383165f908152600b602052604090205460ff1680610c7b57506001600160a01b0382165f908152600b602052604090205460ff165b610cbf5760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b604482015260640161079a565b6001600160a01b0383165f908152600d602052604090205460ff168015610cfe57506001600160a01b0382165f908152600c602052604090205460ff16155b15610de85769021e19e0c9bab2400000811115610d6c5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152650dac2f040e8f60d31b606482015260840161079a565b69021e19e0c9bab2400000610d95836001600160a01b03165f9081526020819052604090205490565b610d9f90836119e5565b1115610de35760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161079a565b610f2c565b6001600160a01b0382165f908152600d602052604090205460ff168015610e2757506001600160a01b0383165f908152600c602052604090205460ff16155b15610e965769021e19e0c9bab2400000811115610de35760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266040dac2f040e8f60cb1b606482015260840161079a565b6001600160a01b0382165f908152600c602052604090205460ff16610f2c5769021e19e0c9bab2400000610ede836001600160a01b03165f9081526020819052604090205490565b610ee890836119e5565b1115610f2c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161079a565b6001600160a01b0383165f908152600b602052604090205460ff1680610f6957506001600160a01b0382165f908152600b602052604090205460ff165b8015610f7e57506001600160a01b0383163014155b8015610f9357506001600160a01b0382163014155b15610f9d5742600f555b6001600160a01b0383165f908152600b602052604090205460ff168015610ff25750600b5f610fd46005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b1561100257610bae838383611517565b6001600160a01b0383165f908152600b602052604090205460ff1615801561104257506001600160a01b0382165f908152600b602052604090205460ff16155b156110c3576001600160a01b0383165f908152600d602052604090205460ff1661109d576001600160a01b0383165f908152600e60205260409020600f54815461108c9190611a72565b6002820155426001909101556110c3565b6001600160a01b0382165f908152600e6020526040812080549091036110c1574281555b505b305f908152602081905260408120546006549091681b1ae4d6e2ef500000831015916110f090600a6119e5565b431090508180156110ff575080155b801561110e575060075460ff16155b801561113257506001600160a01b0386165f908152600d602052604090205460ff16155b801561115657506001600160a01b0386165f908152600b602052604090205460ff16155b801561117a57506001600160a01b0385165f908152600b602052604090205460ff16155b1561119f576007805460ff1916600117905561119461154f565b6007805460ff191690555b6007546001600160a01b0387165f908152600b602052604090205460ff918216159116806111e457506001600160a01b0386165f908152600b602052604090205460ff165b156111ec57505f5b5f811561138457826112cc576001600160a01b0388165f908152600d602052604090205460ff16801561121d575060015b1561129057606461122f600388611a85565b6112399190611a9c565b9050611250600361124a8184611a85565b906116b7565b600a5f82825461126091906119e5565b909155506112759050600361124a5f84611a85565b60095f82825461128591906119e5565b909155506113669050565b6001600160a01b0387165f908152600d602052604090205460ff1680156112b5575060015b156112c757606461122f600388611a85565b611366565b6001600160a01b0388165f908152600d602052604090205460ff16156113165760646112f9600f88611a85565b6113039190611a9c565b905080600a5f82825461128591906119e5565b6001600160a01b0387165f908152600d602052604090205460ff1615611366576064611343602388611a85565b61134d9190611a9c565b905080600a5f82825461136091906119e5565b90915550505b8015611377576113778830836113ea565b6113818187611a72565b95505b61138f8888886113ea565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166114105760405162461bcd60e51b815260040161079a90611a2d565b6001600160a01b0383165f90815260208190526040902054818110156114875760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161079a565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906114bd9084906119e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150991815260200190565b60405180910390a350505050565b6001600160a01b038084165f9081526020819052604080822080548581039091559285168252812080548492906114bd9084906119e5565b305f9081526020819052604081205490505f600954600a5461157191906119e5565b905081158061157e575080155b15611587575050565b61159b681b1ae4d6e2ef5000006012611a85565b8211156115b9576115b6681b1ae4d6e2ef5000006012611a85565b91505b81476115c4826116c9565b5f6115cf8247611a72565b90505f84826009546115e19190611a85565b6115eb9190611a9c565b5f6009819055600a819055604051919250907334f6ef4ed11e13048060f31376cf2334b2268cf49083908381818185875af1925050503d805f811461164b576040519150601f19603f3d011682016040523d82523d5f602084013e611650565b606091505b5050604051909150735c74625196f491e2819bbafbc79e6baca64fb27c9047905f81818185875af1925050503d805f81146116a6576040519150601f19603f3d011682016040523d82523d5f602084013e6116ab565b606091505b50505050505050505050565b5f6116c28284611a9c565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116fc576116fc611abb565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179c9190611acf565b816001815181106117af576117af611abb565b60200260200101906001600160a01b031690816001600160a01b0316815250506117fa307f0000000000000000000000000000000000000000000000000000000000000000846109f1565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061184e9085905f90869030904290600401611aea565b5f604051808303815f87803b158015611865575f80fd5b505af1158015611877573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156118ab5785810183015185820160400152820161188f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109ee575f80fd5b5f80604083850312156118f0575f80fd5b82356118fb816118cb565b946020939093013593505050565b5f805f6060848603121561191b575f80fd5b8335611926816118cb565b92506020840135611936816118cb565b929592945050506040919091013590565b5f60208284031215611957575f80fd5b81356116c2816118cb565b5f8060408385031215611973575f80fd5b823561197e816118cb565b9150602083013561198e816118cb565b809150509250929050565b600181811c908216806119ad57607f821691505b6020821081036119cb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610708576107086119d1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b81810381811115610708576107086119d1565b8082028115828204841417610708576107086119d1565b5f82611ab657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611adf575f80fd5b81516116c2816118cb565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b3a5784516001600160a01b031683529383019391830191600101611b15565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6998117daa87e44b36e39046801bbebe2bff1306fccf4df65f7c2ae63a6f24964736f6c63430008170033

Deployed Bytecode

0x608060405260043610610220575f3560e01c80638da5cb5b1161011e578063b62496f5116100a8578063dd62ed3e1161006d578063dd62ed3e146105c2578063e2f4560514610606578063f2fde38b14610622578063f887ea4014610641578063f8b45b0514610591575f80fd5b8063b62496f514610544578063bbc0c74214610572578063c8c8ebe414610591578063cfa71593146105ae578063d85ba063146103d9575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc146104de5780639fccce32146104f1578063a0d82dc5146104de578063a457c2d714610506578063a9059cbb14610525575f80fd5b80638da5cb5b146104865780638ea5220f146104a357806392136913146103d957806395d89b41146104ca575f80fd5b806339509351116101aa578063715018a61161016f578063715018a614610421578063751039fc1461043757806375f0a8741461044b5780637bce5a04146103d95780638a8c523c14610472575f80fd5b8063395093511461036957806349bd5a5e146103885780634a62bb65146103bb5780636a486a8e146103d957806370a08231146103ed575f80fd5b806318160ddd116101f057806318160ddd146102f15780631a8145bb146103055780631f3fed8f1461031a57806323b872dd1461032f578063313ce5671461034e575f80fd5b806306fdde031461022b578063095ea7b3146102555780630e14ebdc146102845780631694505e146102a6575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610668565b60405161024c919061187f565b60405180910390f35b348015610260575f80fd5b5061027461026f3660046118df565b6106f8565b604051901515815260200161024c565b34801561028f575f80fd5b50610298602381565b60405190815260200161024c565b3480156102b1575f80fd5b506102d97f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161024c565b3480156102fc575f80fd5b50600254610298565b348015610310575f80fd5b5061029860085481565b348015610325575f80fd5b50610298600a5481565b34801561033a575f80fd5b50610274610349366004611909565b61070e565b348015610359575f80fd5b506040516012815260200161024c565b348015610374575f80fd5b506102746103833660046118df565b6107bb565b348015610393575f80fd5b506102d97f000000000000000000000000033ca33650e83de802bd9cc83adbca190cee436981565b3480156103c6575f80fd5b5060075461027490610100900460ff1681565b3480156103e4575f80fd5b50610298600381565b3480156103f8575f80fd5b50610298610407366004611947565b6001600160a01b03165f9081526020819052604090205490565b34801561042c575f80fd5b506104356107f6565b005b348015610442575f80fd5b5061043561082b565b348015610456575f80fd5b506102d9735c74625196f491e2819bbafbc79e6baca64fb27c81565b34801561047d575f80fd5b50610435610862565b348015610491575f80fd5b506005546001600160a01b03166102d9565b3480156104ae575f80fd5b506102d97334f6ef4ed11e13048060f31376cf2334b2268cf481565b3480156104d5575f80fd5b5061023f6108a3565b3480156104e9575f80fd5b506102985f81565b3480156104fc575f80fd5b5061029860095481565b348015610511575f80fd5b506102746105203660046118df565b6108b2565b348015610530575f80fd5b5061027461053f3660046118df565b61094a565b34801561054f575f80fd5b5061027461055e366004611947565b600d6020525f908152604090205460ff1681565b34801561057d575f80fd5b506007546102749062010000900460ff1681565b34801561059c575f80fd5b5061029869021e19e0c9bab240000081565b3480156105b9575f80fd5b50610298600f81565b3480156105cd575f80fd5b506102986105dc366004611962565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610611575f80fd5b50610298681b1ae4d6e2ef50000081565b34801561062d575f80fd5b5061043561063c366004611947565b610956565b34801561064c575f80fd5b506102d9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60606003805461067790611999565b80601f01602080910402602001604051908101604052809291908181526020018280546106a390611999565b80156106ee5780601f106106c5576101008083540402835291602001916106ee565b820191905f5260205f20905b8154815290600101906020018083116106d157829003601f168201915b5050505050905090565b5f6107043384846109f1565b5060015b92915050565b5f61071a848484610b14565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107a35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107b085338584036109f1565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107049185906107f19086906119e5565b6109f1565b6005546001600160a01b031633146108205760405162461bcd60e51b815260040161079a906119f8565b6108295f611399565b565b6005546001600160a01b031633146108555760405162461bcd60e51b815260040161079a906119f8565b6007805461ff0019169055565b6005546001600160a01b0316331461088c5760405162461bcd60e51b815260040161079a906119f8565b6007805462ff000019166201000017905543600655565b60606004805461067790611999565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161079a565b61094033858584036109f1565b5060019392505050565b5f610704338484610b14565b6005546001600160a01b031633146109805760405162461bcd60e51b815260040161079a906119f8565b6001600160a01b0381166109e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161079a565b6109ee81611399565b50565b6001600160a01b038316610a535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161079a565b6001600160a01b038216610ab45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161079a565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b3a5760405162461bcd60e51b815260040161079a90611a2d565b6001600160a01b038216610b9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161079a565b805f03610bb357610bae83835f6113ea565b505050565b600754610100900460ff1615610f2c576005546001600160a01b03848116911614801590610bef57506005546001600160a01b03838116911614155b8015610c0657506001600160a01b03821661dead14155b8015610c1a57506001600160a01b03821615155b8015610c29575060075460ff16155b15610f2c5760075462010000900460ff16610cbf576001600160a01b0383165f908152600b602052604090205460ff1680610c7b57506001600160a01b0382165f908152600b602052604090205460ff165b610cbf5760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b604482015260640161079a565b6001600160a01b0383165f908152600d602052604090205460ff168015610cfe57506001600160a01b0382165f908152600c602052604090205460ff16155b15610de85769021e19e0c9bab2400000811115610d6c5760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152650dac2f040e8f60d31b606482015260840161079a565b69021e19e0c9bab2400000610d95836001600160a01b03165f9081526020819052604090205490565b610d9f90836119e5565b1115610de35760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161079a565b610f2c565b6001600160a01b0382165f908152600d602052604090205460ff168015610e2757506001600160a01b0383165f908152600c602052604090205460ff16155b15610e965769021e19e0c9bab2400000811115610de35760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266040dac2f040e8f60cb1b606482015260840161079a565b6001600160a01b0382165f908152600c602052604090205460ff16610f2c5769021e19e0c9bab2400000610ede836001600160a01b03165f9081526020819052604090205490565b610ee890836119e5565b1115610f2c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161079a565b6001600160a01b0383165f908152600b602052604090205460ff1680610f6957506001600160a01b0382165f908152600b602052604090205460ff165b8015610f7e57506001600160a01b0383163014155b8015610f9357506001600160a01b0382163014155b15610f9d5742600f555b6001600160a01b0383165f908152600b602052604090205460ff168015610ff25750600b5f610fd46005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b1561100257610bae838383611517565b6001600160a01b0383165f908152600b602052604090205460ff1615801561104257506001600160a01b0382165f908152600b602052604090205460ff16155b156110c3576001600160a01b0383165f908152600d602052604090205460ff1661109d576001600160a01b0383165f908152600e60205260409020600f54815461108c9190611a72565b6002820155426001909101556110c3565b6001600160a01b0382165f908152600e6020526040812080549091036110c1574281555b505b305f908152602081905260408120546006549091681b1ae4d6e2ef500000831015916110f090600a6119e5565b431090508180156110ff575080155b801561110e575060075460ff16155b801561113257506001600160a01b0386165f908152600d602052604090205460ff16155b801561115657506001600160a01b0386165f908152600b602052604090205460ff16155b801561117a57506001600160a01b0385165f908152600b602052604090205460ff16155b1561119f576007805460ff1916600117905561119461154f565b6007805460ff191690555b6007546001600160a01b0387165f908152600b602052604090205460ff918216159116806111e457506001600160a01b0386165f908152600b602052604090205460ff165b156111ec57505f5b5f811561138457826112cc576001600160a01b0388165f908152600d602052604090205460ff16801561121d575060015b1561129057606461122f600388611a85565b6112399190611a9c565b9050611250600361124a8184611a85565b906116b7565b600a5f82825461126091906119e5565b909155506112759050600361124a5f84611a85565b60095f82825461128591906119e5565b909155506113669050565b6001600160a01b0387165f908152600d602052604090205460ff1680156112b5575060015b156112c757606461122f600388611a85565b611366565b6001600160a01b0388165f908152600d602052604090205460ff16156113165760646112f9600f88611a85565b6113039190611a9c565b905080600a5f82825461128591906119e5565b6001600160a01b0387165f908152600d602052604090205460ff1615611366576064611343602388611a85565b61134d9190611a9c565b905080600a5f82825461136091906119e5565b90915550505b8015611377576113778830836113ea565b6113818187611a72565b95505b61138f8888886113ea565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166114105760405162461bcd60e51b815260040161079a90611a2d565b6001600160a01b0383165f90815260208190526040902054818110156114875760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161079a565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906114bd9084906119e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150991815260200190565b60405180910390a350505050565b6001600160a01b038084165f9081526020819052604080822080548581039091559285168252812080548492906114bd9084906119e5565b305f9081526020819052604081205490505f600954600a5461157191906119e5565b905081158061157e575080155b15611587575050565b61159b681b1ae4d6e2ef5000006012611a85565b8211156115b9576115b6681b1ae4d6e2ef5000006012611a85565b91505b81476115c4826116c9565b5f6115cf8247611a72565b90505f84826009546115e19190611a85565b6115eb9190611a9c565b5f6009819055600a819055604051919250907334f6ef4ed11e13048060f31376cf2334b2268cf49083908381818185875af1925050503d805f811461164b576040519150601f19603f3d011682016040523d82523d5f602084013e611650565b606091505b5050604051909150735c74625196f491e2819bbafbc79e6baca64fb27c9047905f81818185875af1925050503d805f81146116a6576040519150601f19603f3d011682016040523d82523d5f602084013e6116ab565b606091505b50505050505050505050565b5f6116c28284611a9c565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116fc576116fc611abb565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179c9190611acf565b816001815181106117af576117af611abb565b60200260200101906001600160a01b031690816001600160a01b0316815250506117fa307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846109f1565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061184e9085905f90869030904290600401611aea565b5f604051808303815f87803b158015611865575f80fd5b505af1158015611877573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156118ab5785810183015185820160400152820161188f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109ee575f80fd5b5f80604083850312156118f0575f80fd5b82356118fb816118cb565b946020939093013593505050565b5f805f6060848603121561191b575f80fd5b8335611926816118cb565b92506020840135611936816118cb565b929592945050506040919091013590565b5f60208284031215611957575f80fd5b81356116c2816118cb565b5f8060408385031215611973575f80fd5b823561197e816118cb565b9150602083013561198e816118cb565b809150509250929050565b600181811c908216806119ad57607f821691505b6020821081036119cb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610708576107086119d1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b81810381811115610708576107086119d1565b8082028115828204841417610708576107086119d1565b5f82611ab657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611adf575f80fd5b81516116c2816118cb565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b3a5784516001600160a01b031683529383019391830191600101611b15565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6998117daa87e44b36e39046801bbebe2bff1306fccf4df65f7c2ae63a6f24964736f6c63430008170033

Deployed Bytecode Sourcemap

10542:9987:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2715:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3629:169;;;;;;;;;;-1:-1:-1;3629:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3629:169:0;1023:187:1;11660:43:0;;;;;;;;;;;;11701:2;11660:43;;;;;1361:25:1;;;1349:2;1334:18;11660:43:0;1215:177:1;10618:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;10618:51:0;1397:229:1;3036:108:0;;;;;;;;;;-1:-1:-1;3124:12:0;;3036:108;;11856:33;;;;;;;;;;;;;;;;11930;;;;;;;;;;;;;;;;3806:492;;;;;;;;;;-1:-1:-1;3806:492:0;;;;;:::i;:::-;;:::i;2935:93::-;;;;;;;;;;-1:-1:-1;2935:93:0;;3018:2;2234:36:1;;2222:2;2207:18;2935:93:0;2092:184:1;4306:215:0;;;;;;;;;;-1:-1:-1;4306:215:0;;;;;:::i;:::-;;:::i;10676:38::-;;;;;;;;;;;;;;;11776:33;;;;;;;;;;-1:-1:-1;11776:33:0;;;;;;;;;;;11536:41;;;;;;;;;;;;11576:1;11536:41;;3152:127;;;;;;;;;;-1:-1:-1;3152:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3253:18:0;3226:7;3253:18;;;;;;;;;;;;3152:127;833:103;;;;;;;;;;;;;:::i;:::-;;13731:84;;;;;;;;;;;;;:::i;10972:101::-;;;;;;;;;;;;11030:42;10972:101;;13559:120;;;;;;;;;;;;;:::i;610:87::-;;;;;;;;;;-1:-1:-1;683:6:0;;-1:-1:-1;;;;;683:6:0;610:87;;10870:95;;;;;;;;;;;;10922:42;10870:95;;2823:104;;;;;;;;;;;;;:::i;11269:37::-;;;;;;;;;;;;11305:1;11269:37;;11896:27;;;;;;;;;;;;;;;;4529:413;;;;;;;;;;-1:-1:-1;4529:413:0;;;;;:::i;:::-;;:::i;3287:175::-;;;;;;;;;;-1:-1:-1;3287:175:0;;;;;:::i;:::-;;:::i;12104:57::-;;;;;;;;;;-1:-1:-1;12104:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11816:33;;;;;;;;;;-1:-1:-1;11816:33:0;;;;;;;;;;;11082:60;;;;;;;;;;;;11129:13;11082:60;;11611:42;;;;;;;;;;;;11651:2;11611:42;;3470:151;;;;;;;;;;-1:-1:-1;3470:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3586:18:0;;;3559:7;3586:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3470:151;11205:55;;;;;;;;;;;;11250:10;11205:55;;944:201;;;;;;;;;;-1:-1:-1;944:201:0;;;;;:::i;:::-;;:::i;10788:75::-;;;;;;;;;;;;10821:42;10788:75;;2715:100;2769:13;2802:5;2795:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2715:100;:::o;3629:169::-;3712:4;3729:39;236:10;3752:7;3761:6;3729:8;:39::i;:::-;-1:-1:-1;3786:4:0;3629:169;;;;;:::o;3806:492::-;3946:4;3963:36;3973:6;3981:9;3992:6;3963:9;:36::i;:::-;-1:-1:-1;;;;;4039:19:0;;4012:24;4039:19;;;:11;:19;;;;;;;;236:10;4039:33;;;;;;;;4091:26;;;;4083:79;;;;-1:-1:-1;;;4083:79:0;;3945:2:1;4083:79:0;;;3927:21:1;3984:2;3964:18;;;3957:30;4023:34;4003:18;;;3996:62;-1:-1:-1;;;4074:18:1;;;4067:38;4122:19;;4083:79:0;;;;;;;;;4198:57;4207:6;236:10;4248:6;4229:16;:25;4198:8;:57::i;:::-;-1:-1:-1;4286:4:0;;3806:492;-1:-1:-1;;;;3806:492:0:o;4306:215::-;236:10;4394:4;4443:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4443:34:0;;;;;;;;;;4394:4;;4411:80;;4434:7;;4443:47;;4480:10;;4443:47;:::i;:::-;4411:8;:80::i;833:103::-;683:6;;-1:-1:-1;;;;;683:6:0;236:10;745:23;737:68;;;;-1:-1:-1;;;737:68:0;;;;;;;:::i;:::-;898:30:::1;925:1;898:18;:30::i;:::-;833:103::o:0;13731:84::-;683:6;;-1:-1:-1;;;;;683:6:0;236:10;745:23;737:68;;;;-1:-1:-1;;;737:68:0;;;;;;;:::i;:::-;13785:14:::1;:22:::0;;-1:-1:-1;;13785:22:0::1;::::0;;13731:84::o;13559:120::-;683:6;;-1:-1:-1;;;;;683:6:0;236:10;745:23;737:68;;;;-1:-1:-1;;;737:68:0;;;;;;;:::i;:::-;13614:13:::1;:20:::0;;-1:-1:-1;;13614:20:0::1;::::0;::::1;::::0;;13659:12:::1;13645:11;:26:::0;13559:120::o;2823:104::-;2879:13;2912:7;2905:14;;;;;:::i;4529:413::-;236:10;4622:4;4666:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4666:34:0;;;;;;;;;;4719:35;;;;4711:85;;;;-1:-1:-1;;;4711:85:0;;4977:2:1;4711:85:0;;;4959:21:1;5016:2;4996:18;;;4989:30;5055:34;5035:18;;;5028:62;-1:-1:-1;;;5106:18:1;;;5099:35;5151:19;;4711:85:0;4775:401:1;4711:85:0;4832:67;236:10;4855:7;4883:15;4864:16;:34;4832:8;:67::i;:::-;-1:-1:-1;4930:4:0;;4529:413;-1:-1:-1;;;4529:413:0:o;3287:175::-;3373:4;3390:42;236:10;3414:9;3425:6;3390:9;:42::i;944:201::-;683:6;;-1:-1:-1;;;;;683:6:0;236:10;745:23;737:68;;;;-1:-1:-1;;;737:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1033:22:0;::::1;1025:73;;;::::0;-1:-1:-1;;;1025:73:0;;5383:2:1;1025:73:0::1;::::0;::::1;5365:21:1::0;5422:2;5402:18;;;5395:30;5461:34;5441:18;;;5434:62;-1:-1:-1;;;5512:18:1;;;5505:36;5558:19;;1025:73:0::1;5181:402:1::0;1025:73:0::1;1109:28;1128:8;1109:18;:28::i;:::-;944:201:::0;:::o;7107:380::-;-1:-1:-1;;;;;7243:19:0;;7235:68;;;;-1:-1:-1;;;7235:68:0;;5790:2:1;7235:68:0;;;5772:21:1;5829:2;5809:18;;;5802:30;5868:34;5848:18;;;5841:62;-1:-1:-1;;;5919:18:1;;;5912:34;5963:19;;7235:68:0;5588:400:1;7235:68:0;-1:-1:-1;;;;;7322:21:0;;7314:68;;;;-1:-1:-1;;;7314:68:0;;6195:2:1;7314:68:0;;;6177:21:1;6234:2;6214:18;;;6207:30;6273:34;6253:18;;;6246:62;-1:-1:-1;;;6324:18:1;;;6317:32;6366:19;;7314:68:0;5993:398:1;7314:68:0;-1:-1:-1;;;;;7395:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7447:32;;1361:25:1;;;7447:32:0;;1334:18:1;7447:32:0;;;;;;;7107:380;;;:::o;14355:4677::-;-1:-1:-1;;;;;14487:18:0;;14479:68;;;;-1:-1:-1;;;14479:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14566:16:0;;14558:64;;;;-1:-1:-1;;;14558:64:0;;7004:2:1;14558:64:0;;;6986:21:1;7043:2;7023:18;;;7016:30;7082:34;7062:18;;;7055:62;-1:-1:-1;;;7133:18:1;;;7126:33;7176:19;;14558:64:0;6802:399:1;14558:64:0;14639:6;14649:1;14639:11;14635:93;;14667:28;14683:4;14689:2;14693:1;14667:15;:28::i;:::-;14355:4677;;;:::o;14635:93::-;14744:14;;;;;;;14740:1444;;;683:6;;-1:-1:-1;;;;;14797:15:0;;;683:6;;14797:15;;;;:49;;-1:-1:-1;683:6:0;;-1:-1:-1;;;;;14833:13:0;;;683:6;;14833:13;;14797:49;:91;;;;-1:-1:-1;;;;;;14867:21:0;;14881:6;14867:21;;14797:91;:128;;;;-1:-1:-1;;;;;;14909:16:0;;;;14797:128;:158;;;;-1:-1:-1;14947:8:0;;;;14946:9;14797:158;14775:1398;;;14995:13;;;;;;;14990:149;;-1:-1:-1;;;;;15041:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;15070:23:0;;;;;;:19;:23;;;;;;;;15041:52;15033:86;;;;-1:-1:-1;;;15033:86:0;;7408:2:1;15033:86:0;;;7390:21:1;7447:2;7427:18;;;7420:30;-1:-1:-1;;;7466:18:1;;;7459:51;7527:18;;15033:86:0;7206:345:1;15033:86:0;-1:-1:-1;;;;;15212:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;15269:35:0;;;;;;:31;:35;;;;;;;;15268:36;15212:92;15186:972;;;11129:13;15381:6;:30;;15347:154;;;;-1:-1:-1;;;15347:154:0;;7758:2:1;15347:154:0;;;7740:21:1;7797:2;7777:18;;;7770:30;7836:34;7816:18;;;7809:62;-1:-1:-1;;;7887:18:1;;;7880:36;7933:19;;15347:154:0;7556:402:1;15347:154:0;11185:13;15541;15551:2;-1:-1:-1;;;;;3253:18:0;3226:7;3253:18;;;;;;;;;;;;3152:127;15541:13;15532:22;;:6;:22;:::i;:::-;:35;;15524:67;;;;-1:-1:-1;;;15524:67:0;;8165:2:1;15524:67:0;;;8147:21:1;8204:2;8184:18;;;8177:30;-1:-1:-1;;;8223:18:1;;;8216:49;8282:18;;15524:67:0;7963:343:1;15524:67:0;15186:972;;;-1:-1:-1;;;;;15690:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;15745:37:0;;;;;;:31;:37;;;;;;;;15744:38;15690:92;15664:494;;;11129:13;15859:6;:30;;15825:155;;;;-1:-1:-1;;;15825:155:0;;8513:2:1;15825:155:0;;;8495:21:1;8552:2;8532:18;;;8525:30;8591:34;8571:18;;;8564:62;-1:-1:-1;;;8642:18:1;;;8635:37;8689:19;;15825:155:0;8311:403:1;15664:494:0;-1:-1:-1;;;;;16011:35:0;;;;;;:31;:35;;;;;;;;16006:152;;11185:13;16088;16098:2;-1:-1:-1;;;;;3253:18:0;3226:7;3253:18;;;;;;;;;;;;3152:127;16088:13;16079:22;;:6;:22;:::i;:::-;:35;;16071:67;;;;-1:-1:-1;;;16071:67:0;;8165:2:1;16071:67:0;;;8147:21:1;8204:2;8184:18;;;8177:30;-1:-1:-1;;;8223:18:1;;;8216:49;8282:18;;16071:67:0;7963:343:1;16071:67:0;-1:-1:-1;;;;;16201:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;16230:23:0;;;;;;:19;:23;;;;;;;;16201:52;16200:79;;;;-1:-1:-1;;;;;;16258:21:0;;16274:4;16258:21;;16200:79;:102;;;;-1:-1:-1;;;;;;16283:19:0;;16297:4;16283:19;;16200:102;16196:161;;;16330:15;16319:8;:26;16196:161;-1:-1:-1;;;;;16371:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;16401:19;:28;16421:7;683:6;;-1:-1:-1;;;;;683:6:0;;610:87;16421:7;-1:-1:-1;;;;;16401:28:0;;;;;;;;;;;;-1:-1:-1;16401:28:0;;;;16400:29;16371:58;16367:146;;;16446:34;16463:4;16469:2;16473:6;16446:16;:34::i;16367:146::-;-1:-1:-1;;;;;16528:25:0;;;;;;:19;:25;;;;;;;;16527:26;:54;;;;-1:-1:-1;;;;;;16558:23:0;;;;;;:19;:23;;;;;;;;16557:24;16527:54;16523:533;;;-1:-1:-1;;;;;16603:31:0;;;;;;:25;:31;;;;;;;;16598:447;;-1:-1:-1;;;;;16688:17:0;;16655:30;16688:17;;;:11;:17;;;;;16762:8;;16745:14;;:25;;16762:8;16745:25;:::i;:::-;16724:18;;;:46;16807:15;16789;;;;:33;16598:447;;;-1:-1:-1;;;;;16896:15:0;;16863:30;16896:15;;;:11;:15;;;;;16934:14;;16896:15;;16934:19;16930:100;;16995:15;16978:32;;16930:100;16844:201;16598:447;17117:4;17068:28;3253:18;;;;;;;;;;;17237:11;;3253:18;;11250:10;17149:42;-1:-1:-1;17149:42:0;;17237:16;;17251:2;17237:16;:::i;:::-;17222:12;:31;17204:49;;17284:7;:35;;;;;17309:10;17308:11;17284:35;:61;;;;-1:-1:-1;17337:8:0;;;;17336:9;17284:61;:110;;;;-1:-1:-1;;;;;;17363:31:0;;;;;;:25;:31;;;;;;;;17362:32;17284:110;:153;;;;-1:-1:-1;;;;;;17412:25:0;;;;;;:19;:25;;;;;;;;17411:26;17284:153;:194;;;;-1:-1:-1;;;;;;17455:23:0;;;;;;:19;:23;;;;;;;;17454:24;17284:194;17266:326;;;17505:8;:15;;-1:-1:-1;;17505:15:0;17516:4;17505:15;;;17537:10;:8;:10::i;:::-;17564:8;:16;;-1:-1:-1;;17564:16:0;;;17266:326;17620:8;;-1:-1:-1;;;;;17645:25:0;;17604:12;17645:25;;;:19;:25;;;;;;17620:8;;;;17619:9;;17645:25;;:52;;-1:-1:-1;;;;;;17674:23:0;;;;;;:19;:23;;;;;;;;17645:52;17641:100;;;-1:-1:-1;17724:5:0;17641:100;17753:12;17784:7;17780:1199;;;17813:10;17808:1026;;-1:-1:-1;;;;;17848:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;17883:16:0;17848:51;17844:602;;;17955:3;17931:21;11528:1;17931:6;:21;:::i;:::-;:27;;;;:::i;:::-;17924:34;-1:-1:-1;18003:42:0;11528:1;18004:22;11528:1;17924:34;18004:22;:::i;:::-;18003:28;;:42::i;:::-;17981:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;18084:36:0;;-1:-1:-1;11528:1:0;18085:16;11305:1;18085:4;:16;:::i;18084:36::-;18068:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;17808:1026:0;;-1:-1:-1;17808:1026:0;17844:602;-1:-1:-1;;;;;18150:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;18183:17:0;18150:50;18146:300;;;18257:3;18232:22;11576:1;18232:6;:22;:::i;18146:300::-;17808:1026;;;-1:-1:-1;;;;;18490:31:0;;;;;;:25;:31;;;;;;;;18486:333;;;18578:3;18553:22;11651:2;18553:6;:22;:::i;:::-;:28;;;;:::i;:::-;18546:35;;18626:4;18604:18;;:26;;;;;;;:::i;18486:333::-;-1:-1:-1;;;;;18660:29:0;;;;;;:25;:29;;;;;;;;18656:163;;;18747:3;18721:23;11701:2;18721:6;:23;:::i;:::-;:29;;;;:::i;:::-;18714:36;;18795:4;18773:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;18656:163:0;18852:8;;18848:91;;18881:42;18897:4;18911;18918;18881:15;:42::i;:::-;18953:14;18963:4;18953:14;;:::i;:::-;;;17780:1199;18991:33;19007:4;19013:2;19017:6;18991:15;:33::i;:::-;14468:4564;;;;;14355:4677;;;:::o;1153:191::-;1246:6;;;-1:-1:-1;;;;;1263:17:0;;;-1:-1:-1;;;;;;1263:17:0;;;;;;;1296:40;;1246:6;;;1263:17;1246:6;;1296:40;;1227:16;;1296:40;1216:128;1153:191;:::o;4950:651::-;-1:-1:-1;;;;;5090:20:0;;5082:70;;;;-1:-1:-1;;;5082:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5249:17:0;;5225:21;5249:17;;;;;;;;;;;5285:23;;;;5277:74;;;;-1:-1:-1;;;5277:74:0;;9449:2:1;5277:74:0;;;9431:21:1;9488:2;9468:18;;;9461:30;9527:34;9507:18;;;9500:62;-1:-1:-1;;;9578:18:1;;;9571:36;9624:19;;5277:74:0;9247:402:1;5277:74:0;-1:-1:-1;;;;;5387:17:0;;;:9;:17;;;;;;;;;;;5407:22;;;5387:42;;5451:20;;;;;;;;:30;;5423:6;;5387:9;5451:30;;5423:6;;5451:30;:::i;:::-;;;;;;;;5516:9;-1:-1:-1;;;;;5499:35:0;5508:6;-1:-1:-1;;;;;5499:35:0;;5527:6;5499:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;5499:35:0;;;;;;;;5071:530;4950:651;;;:::o;5609:484::-;-1:-1:-1;;;;;5826:17:0;;;5802:21;5826:17;;;;;;;;;;;;;5899:22;;;5879:42;;;5943:20;;;;;;;:30;;5915:6;;5802:21;5943:30;;5915:6;;5943:30;:::i;19573:953::-;19656:4;19612:23;3253:18;;;;;;;;;;;19612:50;;19675:25;19724:12;;19703:18;;:33;;;;:::i;:::-;19675:61;-1:-1:-1;19753:20:0;;;:46;;-1:-1:-1;19777:22:0;;19753:46;19749:85;;;19816:7;;19573:953::o;19749:85::-;19868:23;11250:10;19889:2;19868:23;:::i;:::-;19850:15;:41;19846:115;;;19926:23;11250:10;19947:2;19926:23;:::i;:::-;19908:41;;19846:115;20002:15;20056:21;20088:36;20002:15;20088:16;:36::i;:::-;20137:18;20158:41;20182:17;20158:21;:41;:::i;:::-;20137:62;;20210:17;20258;20245:10;20230:12;;:25;;;;:::i;:::-;:45;;;;:::i;:::-;20288:12;20313;:16;;;20340:18;:22;;;20386:45;;20210:65;;-1:-1:-1;20288:12:0;10922:42;;20210:65;;20288:12;20386:45;20288:12;20386:45;20210:65;10922:42;20386:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20455:63:0;;20373:58;;-1:-1:-1;11030:42:0;;20492:21;;20455:63;;;;20492:21;11030:42;20455:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;19573:953:0:o;8101:98::-;8159:7;8186:5;8190:1;8186;:5;:::i;:::-;8179:12;8101:98;-1:-1:-1;;;8101:98:0:o;19040:525::-;19130:16;;;19144:1;19130:16;;;;;;;;19106:21;;19130:16;;;;;;;;;;-1:-1:-1;19130:16:0;19106:40;;19175:4;19157;19162:1;19157:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19157:23:0;;;-1:-1:-1;;;;;19157:23:0;;;;;19201:15;-1:-1:-1;;;;;19201:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19191:4;19196:1;19191:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;19191:32:0;;;-1:-1:-1;;;;;19191:32:0;;;;;19236:112;19267:4;19295:15;19326:11;19236:8;:112::i;:::-;19361:196;;-1:-1:-1;;;19361:196:0;;-1:-1:-1;;;;;19361:15:0;:66;;;;:196;;19442:11;;19468:1;;19484:4;;19511;;19531:15;;19361:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19095:470;19040:525;:::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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2965:388::-;3033:6;3041;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;3149:9;3136:23;3168:31;3193:5;3168:31;:::i;:::-;3218:5;-1:-1:-1;3275:2:1;3260:18;;3247:32;3288:33;3247:32;3288:33;:::i;:::-;3340:7;3330:17;;;2965:388;;;;;:::o;3358:380::-;3437:1;3433:12;;;;3480;;;3501:61;;3555:4;3547:6;3543:17;3533:27;;3501:61;3608:2;3600:6;3597:14;3577:18;3574:38;3571:161;;3654:10;3649:3;3645:20;3642:1;3635:31;3689:4;3686:1;3679:15;3717:4;3714:1;3707:15;3571:161;;3358:380;;;:::o;4152:127::-;4213:10;4208:3;4204:20;4201:1;4194:31;4244:4;4241:1;4234:15;4268:4;4265:1;4258:15;4284:125;4349:9;;;4370:10;;;4367:36;;;4383:18;;:::i;4414:356::-;4616:2;4598:21;;;4635:18;;;4628:30;4694:34;4689:2;4674:18;;4667:62;4761:2;4746:18;;4414:356::o;6396:401::-;6598:2;6580:21;;;6637:2;6617:18;;;6610:30;6676:34;6671:2;6656:18;;6649:62;-1:-1:-1;;;6742:2:1;6727:18;;6720:35;6787:3;6772:19;;6396:401::o;8719:128::-;8786:9;;;8807:11;;;8804:37;;;8821:18;;:::i;8852:168::-;8925:9;;;8956;;8973:15;;;8967:22;;8953:37;8943:71;;8994:18;;:::i;9025:217::-;9065:1;9091;9081:132;;9135:10;9130:3;9126:20;9123:1;9116:31;9170:4;9167:1;9160:15;9198:4;9195:1;9188:15;9081:132;-1:-1:-1;9227:9:1;;9025:217::o;9996:127::-;10057:10;10052:3;10048:20;10045:1;10038:31;10088:4;10085:1;10078:15;10112:4;10109:1;10102:15;10128:251;10198:6;10251:2;10239:9;10230:7;10226:23;10222:32;10219:52;;;10267:1;10264;10257:12;10219:52;10299:9;10293:16;10318:31;10343:5;10318:31;:::i;10384:980::-;10646:4;10694:3;10683:9;10679:19;10725:6;10714:9;10707:25;10751:2;10789:6;10784:2;10773:9;10769:18;10762:34;10832:3;10827:2;10816:9;10812:18;10805:31;10856:6;10891;10885:13;10922:6;10914;10907:22;10960:3;10949:9;10945:19;10938:26;;10999:2;10991:6;10987:15;10973:29;;11020:1;11030:195;11044:6;11041:1;11038:13;11030:195;;;11109:13;;-1:-1:-1;;;;;11105:39:1;11093:52;;11200:15;;;;11165:12;;;;11141:1;11059:9;11030:195;;;-1:-1:-1;;;;;;;11281:32:1;;;;11276:2;11261:18;;11254:60;-1:-1:-1;;;11345:3:1;11330:19;11323:35;11242:3;10384:980;-1:-1:-1;;;10384:980:1:o

Swarm Source

ipfs://f6998117daa87e44b36e39046801bbebe2bff1306fccf4df65f7c2ae63a6f249
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.