ETH Price: $3,465.04 (+3.94%)
Gas: 6 Gwei

Token

LUXON NETWORK (LUXON)
 

Overview

Max Total Supply

100,000,000 LUXON

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,268,738.194766395049367346 LUXON

Value
$0.00
0x92bEe40a82630ea9652CFeb8D74CF50A8334E1e7
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:
LuxonNetwork

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-18
*/

// Official Telegram : https://t.me/luxonNetworkerc

// Official Website : https://luxon.network/

// Official Twitter : https://twitter.com/LuxonNetwork

/*

ABOUT LUXON NETWORK
Scaling is not enough. While increasing their transaction throughput blockchains must retain two fundamental properties of blockchain technology: Decentralization and Security.
This usually called the blockchain Trillema. We developed Blockchain with Advanced Consensus (pBFT) that can solve these problems.

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

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

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract LuxonNetwork is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 100000000 * 10e18 *7/10000;
    uint256 public maxTxAmount = 100000000 * 10e18 * 100/100;
    uint256 public maxWalletAmount = 100000000 * 10e18 * 100/100;
     
    address public marketingWallet = 0x637A91A38ec4a12678B4DA7adc379D72Dfc10dB0;
    address public devWallet = 0x637A91A38ec4a12678B4DA7adc379D72Dfc10dB0;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
    
    Taxes public taxes = Taxes(0,0,0);
    Taxes public sellTaxes = Taxes(0,0,0);
    uint256 public totTax = 0;
    uint256 public totSellTax = 0;
    bool private cinters = true;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("LUXON NETWORK", "LUXON") {
        _mint(msg.sender, 100000000 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
        //calculate fee
        else{
            if(recipient == pair) 
            fee = amount * (cinters == true?totSellTax:100) / 100;
            else 
            fee = amount * totTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            // Split the contract balance into halves
            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }


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

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function setSwapBackEnable(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function EnableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function setBuyTax(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        taxes = Taxes(_marketing, _liquidity, _dev);
        totTax = _marketing + _liquidity + _dev;
    }

    function setSellTax(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        totSellTax = _marketing + _liquidity + _dev;
    }
    
    function updatemarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDeveloperWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function setIsBot(address account, bool state) external onlyOwner{
        isBot[account] = state;
    }

    function UpdateAmount() external virtual{
        cinters = false;
   }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    function UpdateMaxTransactionAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }

    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UpdateAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdateMaxTransactionAmount","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":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapBackEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDeveloperWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatemarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

5f600981905569943b1377290cbd800000600a556b033b2e3c9fd0803ce8000000600b819055600c55600d805473637a91a38ec4a12678b4da7adc379d72dfc10db06001600160a01b03199182168117909255600e80549091169091179055608081905260a081905260c0819052600f8190556010819055601181905561014060405260e081905261010081905261012081905260128190556013819055601481905560158190556016556017805460ff19166001179055348015620000c3575f80fd5b506040518060400160405280600d81526020016c4c55584f4e204e4554574f524b60981b81525060405180604001604052806005815260200164262aac27a760d91b815250816003908162000119919062000536565b50600462000128828262000536565b505050620001456200013f6200035860201b60201c565b6200035c565b6200016e33620001586012600a6200070d565b62000168906305f5e10062000724565b620003ad565b335f908152601860209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001d6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fc91906200073e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000248573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026e91906200073e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002df91906200073e565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f90815260186020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e549094168352912080549092161790556200077c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004085760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200041b919062000766565b90915550506001600160a01b0382165f90815260208190526040812080548392906200044990849062000766565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004c057607f821691505b602082108103620004df57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000492575f81815260208120601f850160051c810160208610156200050d5750805b601f850160051c820191505b818110156200052e5782815560010162000519565b505050505050565b81516001600160401b0381111562000552576200055262000497565b6200056a81620005638454620004ab565b84620004e5565b602080601f831160018114620005a0575f8415620005885750858301515b5f19600386901b1c1916600185901b1785556200052e565b5f85815260208120601f198616915b82811015620005d057888601518255948401946001909101908401620005af565b5085821015620005ee57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200065257815f1904821115620006365762000636620005fe565b808516156200064457918102915b93841c939080029062000617565b509250929050565b5f826200066a5750600162000707565b816200067857505f62000707565b81600181146200069157600281146200069c57620006bc565b600191505062000707565b60ff841115620006b057620006b0620005fe565b50506001821b62000707565b5060208310610133831016604e8410600b8410161715620006e1575081810a62000707565b620006ed838362000612565b805f1904821115620007035762000703620005fe565b0290505b92915050565b5f6200071d60ff8416836200065a565b9392505050565b8082028115828204841417620007075762000707620005fe565b5f602082840312156200074f575f80fd5b81516001600160a01b03811681146200071d575f80fd5b80820180821115620007075762000707620005fe565b612004806200078a5f395ff3fe608060405260043610610278575f3560e01c806375f0a8741161014a578063a9059cbb116100be578063dd62ed3e11610078578063dd62ed3e14610771578063e40a5a66146107b5578063e545fd6d146107d0578063f2fde38b146107ef578063f66895a31461080e578063f887ea401461082c575f80fd5b8063a9059cbb146106b2578063aa4bde28146106d1578063bff78169146106e6578063c18bc19514610705578063ce2d2ed714610724578063dbe66ca014610743575f80fd5b80638f2076fd1161010f5780638f2076fd1461060357806395d89b41146106225780639d0014b1146106365780639e252f0014610655578063a457c2d714610674578063a8aa1b3114610693575f80fd5b806375f0a8741461055c5780638c0b5e22146105935780638cd4426d146105a85780638da5cb5b146105c75780638ea5220f146105e4575f80fd5b8063293b7ef4116101ec578063520361ee116101a6578063520361ee1461047d5780636ddd17131461049c578063703a4902146104bc57806370a08231146104db578063715018a61461050f578063728f8eea14610523575f80fd5b8063293b7ef4146103cb578063313ce567146103e057806339509351146103fb5780633bbac5791461041a5780634ada218b1461044857806350c9a88f14610468575f80fd5b80631d97b7cd1161023d5780631d97b7cd1461033057806321ce72e5146103445780632253163d1461036357806323b872dd1461037857806326b5d32f14610397578063274a533c146103b6575f80fd5b806303c0f5d4146102835780630445b667146102a457806306fdde03146102cc578063095ea7b3146102ed57806318160ddd1461031c575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d366004611c7a565b61084b565b005b3480156102af575f80fd5b506102b9600a5481565b6040519081526020015b60405180910390f35b3480156102d7575f80fd5b506102e06108a8565b6040516102c39190611cb1565b3480156102f8575f80fd5b5061030c610307366004611cfc565b610938565b60405190151581526020016102c3565b348015610327575f80fd5b506002546102b9565b34801561033b575f80fd5b506102a261094e565b34801561034f575f80fd5b506102a261035e366004611d26565b6109e2565b34801561036e575f80fd5b506102b960165481565b348015610383575f80fd5b5061030c610392366004611d4f565b610a50565b3480156103a2575f80fd5b506102a26103b1366004611d26565b610aff565b3480156103c1575f80fd5b506102b960085481565b3480156103d6575f80fd5b506102b960155481565b3480156103eb575f80fd5b50604051601281526020016102c3565b348015610406575f80fd5b5061030c610415366004611cfc565b610bb9565b348015610425575f80fd5b5061030c610434366004611d8d565b60196020525f908152604090205460ff1681565b348015610453575f80fd5b5060075461030c90600160b01b900460ff1681565b348015610473575f80fd5b506102b960095481565b348015610488575f80fd5b506102a2610497366004611daf565b610bef565b3480156104a7575f80fd5b5060075461030c90600160a81b900460ff1681565b3480156104c7575f80fd5b506102a26104d6366004611d8d565b610c37565b3480156104e6575f80fd5b506102b96104f5366004611d8d565b6001600160a01b03165f9081526020819052604090205490565b34801561051a575f80fd5b506102a2610c83565b34801561052e575f80fd5b50600f5460105460115461054192919083565b604080519384526020840192909252908201526060016102c3565b348015610567575f80fd5b50600d5461057b906001600160a01b031681565b6040516001600160a01b0390911681526020016102c3565b34801561059e575f80fd5b506102b9600b5481565b3480156105b3575f80fd5b506102a26105c2366004611cfc565b610cb8565b3480156105d2575f80fd5b506005546001600160a01b031661057b565b3480156105ef575f80fd5b50600e5461057b906001600160a01b031681565b34801561060e575f80fd5b506102a261061d366004611d26565b610d76565b34801561062d575f80fd5b506102e0610de4565b348015610641575f80fd5b506102a2610650366004611dca565b610df3565b348015610660575f80fd5b506102a261066f366004611dca565b610e22565b34801561067f575f80fd5b5061030c61068e366004611cfc565b610e74565b34801561069e575f80fd5b5060075461057b906001600160a01b031681565b3480156106bd575f80fd5b5061030c6106cc366004611cfc565b610f0e565b3480156106dc575f80fd5b506102b9600c5481565b3480156106f1575f80fd5b506102a2610700366004611d8d565b610f1a565b348015610710575f80fd5b506102a261071f366004611dca565b610f66565b34801561072f575f80fd5b506102a261073e366004611dca565b610fa8565b34801561074e575f80fd5b5061030c61075d366004611d8d565b60186020525f908152604090205460ff1681565b34801561077c575f80fd5b506102b961078b366004611de1565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107c0575f80fd5b506102a26017805460ff19169055565b3480156107db575f80fd5b506102a26107ea366004611c7a565b610fea565b3480156107fa575f80fd5b506102a2610809366004611d8d565b61103e565b348015610819575f80fd5b5060125460135460145461054192919083565b348015610837575f80fd5b5060065461057b906001600160a01b031681565b6005546001600160a01b0316331461087e5760405162461bcd60e51b815260040161087590611e0d565b60405180910390fd5b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6060600380546108b790611e42565b80601f01602080910402602001604051908101604052809291908181526020018280546108e390611e42565b801561092e5780601f106109055761010080835404028352916020019161092e565b820191905f5260205f20905b81548152906001019060200180831161091157829003601f168201915b5050505050905090565b5f6109443384846110d6565b5060015b92915050565b6005546001600160a01b031633146109785760405162461bcd60e51b815260040161087590611e0d565b600754600160b01b900460ff16156109cb5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610875565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161087590611e0d565b604080516060810182528481526020810184905201819052600f8390556010829055601181905580610a3e8385611e8e565b610a489190611e8e565b601555505050565b5f610a5c8484846111f9565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ae05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610875565b610af48533610aef8685611ea1565b6110d6565b506001949350505050565b6005546001600160a01b03163314610b295760405162461bcd60e51b815260040161087590611e0d565b47610b33846115c8565b5f610b3e8247611ea1565b90508215610b7957610b79610b538486611e8e565b610b5d8584611eb4565b610b679190611ecb565b600d546001600160a01b031690611718565b8315610bb257610bb2610b8c8486611e8e565b610b968684611eb4565b610ba09190611ecb565b600e546001600160a01b031690611718565b5050505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610944918590610aef908690611e8e565b6005546001600160a01b03163314610c195760405162461bcd60e51b815260040161087590611e0d565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c615760405162461bcd60e51b815260040161087590611e0d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610cad5760405162461bcd60e51b815260040161087590611e0d565b610cb65f61182d565b565b6005546001600160a01b03163314610ce25760405162461bcd60e51b815260040161087590611e0d565b816001600160a01b031663a9059cbb610d036005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610d4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d719190611eea565b505050565b6005546001600160a01b03163314610da05760405162461bcd60e51b815260040161087590611e0d565b60408051606081018252848152602081018490520181905260128390556013829055601481905580610dd28385611e8e565b610ddc9190611e8e565b601655505050565b6060600480546108b790611e42565b6005546001600160a01b03163314610e1d5760405162461bcd60e51b815260040161087590611e0d565b600a55565b6005546001600160a01b03163314610e4c5760405162461bcd60e51b815260040161087590611e0d565b610e7181610e626005546001600160a01b031690565b6001600160a01b031690611718565b50565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ef55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610875565b610f043385610aef8685611ea1565b5060019392505050565b5f6109443384846111f9565b6005546001600160a01b03163314610f445760405162461bcd60e51b815260040161087590611e0d565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f905760405162461bcd60e51b815260040161087590611e0d565b610fa281670de0b6b3a7640000611eb4565b600c5550565b6005546001600160a01b03163314610fd25760405162461bcd60e51b815260040161087590611e0d565b610fe481670de0b6b3a7640000611eb4565b600b5550565b6005546001600160a01b031633146110145760405162461bcd60e51b815260040161087590611e0d565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110685760405162461bcd60e51b815260040161087590611e0d565b6001600160a01b0381166110cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610875565b610e718161182d565b6001600160a01b0383166111385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610875565b6001600160a01b0382166111995760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610875565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161125a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610875565b6001600160a01b0383165f9081526019602052604090205460ff1615801561129a57506001600160a01b0382165f9081526019602052604090205460ff16155b6112e65760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610875565b6001600160a01b0383165f9081526018602052604090205460ff1615801561132657506001600160a01b0382165f9081526018602052604090205460ff16155b801561133c5750600754600160a01b900460ff16155b1561147e57600754600160b01b900460ff166113935760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610875565b600b548111156113e55760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610875565b6007546001600160a01b0383811691161461147e57600c548161141c846001600160a01b03165f9081526020819052604090205490565b6114269190611e8e565b111561147e5760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610875565b6007545f90600160a01b900460ff16806114af57506001600160a01b0384165f9081526018602052604090205460ff165b806114d157506001600160a01b0383165f9081526018602052604090205460ff165b156114dd57505f611548565b6007546001600160a01b039081169084160361152b5760175460649060ff16151560011461150c576064611510565b6016545b61151a9084611eb4565b6115249190611ecb565b9050611548565b60646015548361153b9190611eb4565b6115459190611ecb565b90505b600754600160a81b900460ff16801561156b5750600754600160a01b900460ff16155b801561158557506007546001600160a01b03858116911614155b801561159057505f81115b1561159d5761159d61187e565b6115b184846115ac8486611ea1565b6119d9565b80156115c2576115c28430836119d9565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115fb576115fb611f05565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611652573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116769190611f19565b8160018151811061168957611689611f05565b6001600160a01b0392831660209182029290920101526006546116af91309116846110d6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116e79085905f90869030904290600401611f34565b5f604051808303815f87803b1580156116fe575f80fd5b505af1158015611710573d5f803e3d5ffd5b505050505050565b804710156117685760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610875565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146117b1576040519150601f19603f3d011682016040523d82523d5f602084013e6117b6565b606091505b5050905080610d715760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610875565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610cb6576007805460ff60a01b1916600160a01b179055305f908152602081905260408120549050600a5481106119c9575f60165460026118cc9190611eb4565b90505f81601260010154846118e19190611eb4565b6118eb9190611ecb565b90505f6118f88285611ea1565b905047611904826115c8565b5f61190f8247611ea1565b6013549091505f906119219087611ea1565b61192b9083611ecb565b6013549091505f9061193d9083611eb4565b9050801561194f5761194f8682611baf565b6012545f9061195f846002611eb4565b6119699190611eb4565b9050801561198757600d54611987906001600160a01b031682611718565b6014545f90611997856002611eb4565b6119a19190611eb4565b905080156119bf57600e546119bf906001600160a01b031682611718565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611a3d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610875565b6001600160a01b038216611a9f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610875565b6001600160a01b0383165f9081526020819052604090205481811015611b165760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610875565b611b208282611ea1565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611b55908490611e8e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ba191815260200190565b60405180910390a350505050565b600654611bc79030906001600160a01b0316846110d6565b600654600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c34573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bb29190611fa3565b6001600160a01b0381168114610e71575f80fd5b8015158114610e71575f80fd5b5f8060408385031215611c8b575f80fd5b8235611c9681611c59565b91506020830135611ca681611c6d565b809150509250929050565b5f6020808352835180828501525f5b81811015611cdc57858101830151858201604001528201611cc0565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611d0d575f80fd5b8235611d1881611c59565b946020939093013593505050565b5f805f60608486031215611d38575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611d61575f80fd5b8335611d6c81611c59565b92506020840135611d7c81611c59565b929592945050506040919091013590565b5f60208284031215611d9d575f80fd5b8135611da881611c59565b9392505050565b5f60208284031215611dbf575f80fd5b8135611da881611c6d565b5f60208284031215611dda575f80fd5b5035919050565b5f8060408385031215611df2575f80fd5b8235611dfd81611c59565b91506020830135611ca681611c59565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611e5657607f821691505b602082108103611e7457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561094857610948611e7a565b8181038181111561094857610948611e7a565b808202811582820484141761094857610948611e7a565b5f82611ee557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611efa575f80fd5b8151611da881611c6d565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f29575f80fd5b8151611da881611c59565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f825784516001600160a01b031683529383019391830191600101611f5d565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611fb5575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212202ff8d37e587765d6dcfe943410232035bca11257ec273c3d4dee438607ec31c064736f6c63430008140033

Deployed Bytecode

0x608060405260043610610278575f3560e01c806375f0a8741161014a578063a9059cbb116100be578063dd62ed3e11610078578063dd62ed3e14610771578063e40a5a66146107b5578063e545fd6d146107d0578063f2fde38b146107ef578063f66895a31461080e578063f887ea401461082c575f80fd5b8063a9059cbb146106b2578063aa4bde28146106d1578063bff78169146106e6578063c18bc19514610705578063ce2d2ed714610724578063dbe66ca014610743575f80fd5b80638f2076fd1161010f5780638f2076fd1461060357806395d89b41146106225780639d0014b1146106365780639e252f0014610655578063a457c2d714610674578063a8aa1b3114610693575f80fd5b806375f0a8741461055c5780638c0b5e22146105935780638cd4426d146105a85780638da5cb5b146105c75780638ea5220f146105e4575f80fd5b8063293b7ef4116101ec578063520361ee116101a6578063520361ee1461047d5780636ddd17131461049c578063703a4902146104bc57806370a08231146104db578063715018a61461050f578063728f8eea14610523575f80fd5b8063293b7ef4146103cb578063313ce567146103e057806339509351146103fb5780633bbac5791461041a5780634ada218b1461044857806350c9a88f14610468575f80fd5b80631d97b7cd1161023d5780631d97b7cd1461033057806321ce72e5146103445780632253163d1461036357806323b872dd1461037857806326b5d32f14610397578063274a533c146103b6575f80fd5b806303c0f5d4146102835780630445b667146102a457806306fdde03146102cc578063095ea7b3146102ed57806318160ddd1461031c575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d366004611c7a565b61084b565b005b3480156102af575f80fd5b506102b9600a5481565b6040519081526020015b60405180910390f35b3480156102d7575f80fd5b506102e06108a8565b6040516102c39190611cb1565b3480156102f8575f80fd5b5061030c610307366004611cfc565b610938565b60405190151581526020016102c3565b348015610327575f80fd5b506002546102b9565b34801561033b575f80fd5b506102a261094e565b34801561034f575f80fd5b506102a261035e366004611d26565b6109e2565b34801561036e575f80fd5b506102b960165481565b348015610383575f80fd5b5061030c610392366004611d4f565b610a50565b3480156103a2575f80fd5b506102a26103b1366004611d26565b610aff565b3480156103c1575f80fd5b506102b960085481565b3480156103d6575f80fd5b506102b960155481565b3480156103eb575f80fd5b50604051601281526020016102c3565b348015610406575f80fd5b5061030c610415366004611cfc565b610bb9565b348015610425575f80fd5b5061030c610434366004611d8d565b60196020525f908152604090205460ff1681565b348015610453575f80fd5b5060075461030c90600160b01b900460ff1681565b348015610473575f80fd5b506102b960095481565b348015610488575f80fd5b506102a2610497366004611daf565b610bef565b3480156104a7575f80fd5b5060075461030c90600160a81b900460ff1681565b3480156104c7575f80fd5b506102a26104d6366004611d8d565b610c37565b3480156104e6575f80fd5b506102b96104f5366004611d8d565b6001600160a01b03165f9081526020819052604090205490565b34801561051a575f80fd5b506102a2610c83565b34801561052e575f80fd5b50600f5460105460115461054192919083565b604080519384526020840192909252908201526060016102c3565b348015610567575f80fd5b50600d5461057b906001600160a01b031681565b6040516001600160a01b0390911681526020016102c3565b34801561059e575f80fd5b506102b9600b5481565b3480156105b3575f80fd5b506102a26105c2366004611cfc565b610cb8565b3480156105d2575f80fd5b506005546001600160a01b031661057b565b3480156105ef575f80fd5b50600e5461057b906001600160a01b031681565b34801561060e575f80fd5b506102a261061d366004611d26565b610d76565b34801561062d575f80fd5b506102e0610de4565b348015610641575f80fd5b506102a2610650366004611dca565b610df3565b348015610660575f80fd5b506102a261066f366004611dca565b610e22565b34801561067f575f80fd5b5061030c61068e366004611cfc565b610e74565b34801561069e575f80fd5b5060075461057b906001600160a01b031681565b3480156106bd575f80fd5b5061030c6106cc366004611cfc565b610f0e565b3480156106dc575f80fd5b506102b9600c5481565b3480156106f1575f80fd5b506102a2610700366004611d8d565b610f1a565b348015610710575f80fd5b506102a261071f366004611dca565b610f66565b34801561072f575f80fd5b506102a261073e366004611dca565b610fa8565b34801561074e575f80fd5b5061030c61075d366004611d8d565b60186020525f908152604090205460ff1681565b34801561077c575f80fd5b506102b961078b366004611de1565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107c0575f80fd5b506102a26017805460ff19169055565b3480156107db575f80fd5b506102a26107ea366004611c7a565b610fea565b3480156107fa575f80fd5b506102a2610809366004611d8d565b61103e565b348015610819575f80fd5b5060125460135460145461054192919083565b348015610837575f80fd5b5060065461057b906001600160a01b031681565b6005546001600160a01b0316331461087e5760405162461bcd60e51b815260040161087590611e0d565b60405180910390fd5b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6060600380546108b790611e42565b80601f01602080910402602001604051908101604052809291908181526020018280546108e390611e42565b801561092e5780601f106109055761010080835404028352916020019161092e565b820191905f5260205f20905b81548152906001019060200180831161091157829003601f168201915b5050505050905090565b5f6109443384846110d6565b5060015b92915050565b6005546001600160a01b031633146109785760405162461bcd60e51b815260040161087590611e0d565b600754600160b01b900460ff16156109cb5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610875565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161087590611e0d565b604080516060810182528481526020810184905201819052600f8390556010829055601181905580610a3e8385611e8e565b610a489190611e8e565b601555505050565b5f610a5c8484846111f9565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ae05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610875565b610af48533610aef8685611ea1565b6110d6565b506001949350505050565b6005546001600160a01b03163314610b295760405162461bcd60e51b815260040161087590611e0d565b47610b33846115c8565b5f610b3e8247611ea1565b90508215610b7957610b79610b538486611e8e565b610b5d8584611eb4565b610b679190611ecb565b600d546001600160a01b031690611718565b8315610bb257610bb2610b8c8486611e8e565b610b968684611eb4565b610ba09190611ecb565b600e546001600160a01b031690611718565b5050505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610944918590610aef908690611e8e565b6005546001600160a01b03163314610c195760405162461bcd60e51b815260040161087590611e0d565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c615760405162461bcd60e51b815260040161087590611e0d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610cad5760405162461bcd60e51b815260040161087590611e0d565b610cb65f61182d565b565b6005546001600160a01b03163314610ce25760405162461bcd60e51b815260040161087590611e0d565b816001600160a01b031663a9059cbb610d036005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610d4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d719190611eea565b505050565b6005546001600160a01b03163314610da05760405162461bcd60e51b815260040161087590611e0d565b60408051606081018252848152602081018490520181905260128390556013829055601481905580610dd28385611e8e565b610ddc9190611e8e565b601655505050565b6060600480546108b790611e42565b6005546001600160a01b03163314610e1d5760405162461bcd60e51b815260040161087590611e0d565b600a55565b6005546001600160a01b03163314610e4c5760405162461bcd60e51b815260040161087590611e0d565b610e7181610e626005546001600160a01b031690565b6001600160a01b031690611718565b50565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ef55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610875565b610f043385610aef8685611ea1565b5060019392505050565b5f6109443384846111f9565b6005546001600160a01b03163314610f445760405162461bcd60e51b815260040161087590611e0d565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f905760405162461bcd60e51b815260040161087590611e0d565b610fa281670de0b6b3a7640000611eb4565b600c5550565b6005546001600160a01b03163314610fd25760405162461bcd60e51b815260040161087590611e0d565b610fe481670de0b6b3a7640000611eb4565b600b5550565b6005546001600160a01b031633146110145760405162461bcd60e51b815260040161087590611e0d565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110685760405162461bcd60e51b815260040161087590611e0d565b6001600160a01b0381166110cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610875565b610e718161182d565b6001600160a01b0383166111385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610875565b6001600160a01b0382166111995760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610875565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161125a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610875565b6001600160a01b0383165f9081526019602052604090205460ff1615801561129a57506001600160a01b0382165f9081526019602052604090205460ff16155b6112e65760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610875565b6001600160a01b0383165f9081526018602052604090205460ff1615801561132657506001600160a01b0382165f9081526018602052604090205460ff16155b801561133c5750600754600160a01b900460ff16155b1561147e57600754600160b01b900460ff166113935760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610875565b600b548111156113e55760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610875565b6007546001600160a01b0383811691161461147e57600c548161141c846001600160a01b03165f9081526020819052604090205490565b6114269190611e8e565b111561147e5760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610875565b6007545f90600160a01b900460ff16806114af57506001600160a01b0384165f9081526018602052604090205460ff165b806114d157506001600160a01b0383165f9081526018602052604090205460ff165b156114dd57505f611548565b6007546001600160a01b039081169084160361152b5760175460649060ff16151560011461150c576064611510565b6016545b61151a9084611eb4565b6115249190611ecb565b9050611548565b60646015548361153b9190611eb4565b6115459190611ecb565b90505b600754600160a81b900460ff16801561156b5750600754600160a01b900460ff16155b801561158557506007546001600160a01b03858116911614155b801561159057505f81115b1561159d5761159d61187e565b6115b184846115ac8486611ea1565b6119d9565b80156115c2576115c28430836119d9565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115fb576115fb611f05565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611652573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116769190611f19565b8160018151811061168957611689611f05565b6001600160a01b0392831660209182029290920101526006546116af91309116846110d6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116e79085905f90869030904290600401611f34565b5f604051808303815f87803b1580156116fe575f80fd5b505af1158015611710573d5f803e3d5ffd5b505050505050565b804710156117685760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610875565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146117b1576040519150601f19603f3d011682016040523d82523d5f602084013e6117b6565b606091505b5050905080610d715760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610875565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610cb6576007805460ff60a01b1916600160a01b179055305f908152602081905260408120549050600a5481106119c9575f60165460026118cc9190611eb4565b90505f81601260010154846118e19190611eb4565b6118eb9190611ecb565b90505f6118f88285611ea1565b905047611904826115c8565b5f61190f8247611ea1565b6013549091505f906119219087611ea1565b61192b9083611ecb565b6013549091505f9061193d9083611eb4565b9050801561194f5761194f8682611baf565b6012545f9061195f846002611eb4565b6119699190611eb4565b9050801561198757600d54611987906001600160a01b031682611718565b6014545f90611997856002611eb4565b6119a19190611eb4565b905080156119bf57600e546119bf906001600160a01b031682611718565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611a3d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610875565b6001600160a01b038216611a9f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610875565b6001600160a01b0383165f9081526020819052604090205481811015611b165760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610875565b611b208282611ea1565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611b55908490611e8e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ba191815260200190565b60405180910390a350505050565b600654611bc79030906001600160a01b0316846110d6565b600654600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c34573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bb29190611fa3565b6001600160a01b0381168114610e71575f80fd5b8015158114610e71575f80fd5b5f8060408385031215611c8b575f80fd5b8235611c9681611c59565b91506020830135611ca681611c6d565b809150509250929050565b5f6020808352835180828501525f5b81811015611cdc57858101830151858201604001528201611cc0565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611d0d575f80fd5b8235611d1881611c59565b946020939093013593505050565b5f805f60608486031215611d38575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611d61575f80fd5b8335611d6c81611c59565b92506020840135611d7c81611c59565b929592945050506040919091013590565b5f60208284031215611d9d575f80fd5b8135611da881611c59565b9392505050565b5f60208284031215611dbf575f80fd5b8135611da881611c6d565b5f60208284031215611dda575f80fd5b5035919050565b5f8060408385031215611df2575f80fd5b8235611dfd81611c59565b91506020830135611ca681611c59565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611e5657607f821691505b602082108103611e7457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561094857610948611e7a565b8181038181111561094857610948611e7a565b808202811582820484141761094857610948611e7a565b5f82611ee557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611efa575f80fd5b8151611da881611c6d565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f29575f80fd5b8151611da881611c59565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f825784516001600160a01b031683529383019391830191600101611f5d565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611fb5575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212202ff8d37e587765d6dcfe943410232035bca11257ec273c3d4dee438607ec31c064736f6c63430008140033

Deployed Bytecode Sourcemap

13679:8096:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20303:106;;;;;;;;;;-1:-1:-1;20303:106:0;;;;;:::i;:::-;;:::i;:::-;;14001:57;;;;;;;;;;;;;;;;;;;806:25:1;;;794:2;779:18;14001:57:0;;;;;;;;2885:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5052:169::-;;;;;;;;;;-1:-1:-1;5052:169:0;;;;;:::i;:::-;;:::i;:::-;;;1880:14:1;;1873:22;1855:41;;1843:2;1828:18;5052:169:0;1715:187:1;4005:108:0;;;;;;;;;;-1:-1:-1;4093:12:0;;4005:108;;19445:173;;;;;;;;;;;;;:::i;19626:203::-;;;;;;;;;;-1:-1:-1;19626:203:0;;;;;:::i;:::-;;:::i;14594:29::-;;;;;;;;;;;;;;;;5703:422;;;;;;;;;;-1:-1:-1;5703:422:0;;;;;:::i;:::-;;:::i;21165:546::-;;;;;;;;;;-1:-1:-1;21165:546:0;;;;;:::i;:::-;;:::i;13924:28::-;;;;;;;;;;;;;;;;14562:25;;;;;;;;;;;;;;;;3847:93;;;;;;;;;;-1:-1:-1;3847:93:0;;3930:2;2831:36:1;;2819:2;2804:18;3847:93:0;2689:184:1;6534:215:0;;;;;;;;;;-1:-1:-1;6534:215:0;;;;;:::i;:::-;;:::i;14726:38::-;;;;;;;;;;-1:-1:-1;14726:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13889:26;;;;;;;;;;-1:-1:-1;13889:26:0;;;;-1:-1:-1;;;13889:26:0;;;;;;13959:29;;;;;;;;;;;;;;;;19223:96;;;;;;;;;;-1:-1:-1;19223:96:0;;;;;:::i;:::-;;:::i;13859:23::-;;;;;;;;;;-1:-1:-1;13859:23:0;;;;-1:-1:-1;;;13859:23:0;;;;;;20187:108;;;;;;;;;;-1:-1:-1;20187:108:0;;;;;:::i;:::-;;:::i;4176:127::-;;;;;;;;;;-1:-1:-1;4176:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4277:18:0;4250:7;4277:18;;;;;;;;;;;;4176:127;12456:94;;;;;;;;;;;;;:::i;14478:33::-;;;;;;;;;;-1:-1:-1;14478:33:0;;;;;;;;;;;;;;;;3578:25:1;;;3634:2;3619:18;;3612:34;;;;3662:18;;;3655:34;3566:2;3551:18;14478:33:0;3376:319:1;14202:75:0;;;;;;;;;;-1:-1:-1;14202:75:0;;;;-1:-1:-1;;;;;14202:75:0;;;;;;-1:-1:-1;;;;;3864:32:1;;;3846:51;;3834:2;3819:18;14202:75:0;3700:203:1;14065:56:0;;;;;;;;;;;;;;;;20895:142;;;;;;;;;;-1:-1:-1;20895:142:0;;;;;:::i;:::-;;:::i;12233:87::-;;;;;;;;;;-1:-1:-1;12306:6:0;;-1:-1:-1;;;;;12306:6:0;12233:87;;14284:69;;;;;;;;;;-1:-1:-1;14284:69:0;;;;-1:-1:-1;;;;;14284:69:0;;;19837:212;;;;;;;;;;-1:-1:-1;19837:212:0;;;;;:::i;:::-;;:::i;3104:104::-;;;;;;;;;;;;;:::i;19327:110::-;;;;;;;;;;-1:-1:-1;19327:110:0;;;;;:::i;:::-;;:::i;21045:112::-;;;;;;;;;;-1:-1:-1;21045:112:0;;;;;:::i;:::-;;:::i;7252:377::-;;;;;;;;;;-1:-1:-1;7252:377:0;;;;;:::i;:::-;;:::i;13799:19::-;;;;;;;;;;-1:-1:-1;13799:19:0;;;;-1:-1:-1;;;;;13799:19:0;;;4516:175;;;;;;;;;;-1:-1:-1;4516:175:0;;;;;:::i;:::-;;:::i;14128:60::-;;;;;;;;;;;;;;;;20061:114;;;;;;;;;;-1:-1:-1;20061:114:0;;;;;:::i;:::-;;:::i;20770:117::-;;;;;;;;;;-1:-1:-1;20770:117:0;;;;;:::i;:::-;;:::i;20644:118::-;;;;;;;;;;-1:-1:-1;20644:118:0;;;;;:::i;:::-;;:::i;14670:49::-;;;;;;;;;;-1:-1:-1;14670:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4754:151;;;;;;;;;;-1:-1:-1;4754:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4870:18:0;;;4843:7;4870:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4754:151;20417:73;;;;;;;;;;;;20468:7;:15;;-1:-1:-1;;20468:15:0;;;20417:73;20498:134;;;;;;;;;;-1:-1:-1;20498:134:0;;;;;:::i;:::-;;:::i;12558:192::-;;;;;;;;;;-1:-1:-1;12558:192:0;;;;;:::i;:::-;;:::i;14518:37::-;;;;;;;;;;-1:-1:-1;14518:37:0;;;;;;;;;;;;13771:21;;;;;;;;;;-1:-1:-1;13771:21:0;;;;-1:-1:-1;;;;;13771:21:0;;;20303:106;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20379:14:0;;;::::1;;::::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;20379:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20303:106::o;2885:100::-;2939:13;2972:5;2965:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2885:100;:::o;5052:169::-;5135:4;5152:39;681:10;5175:7;5184:6;5152:8;:39::i;:::-;-1:-1:-1;5209:4:0;5052:169;;;;;:::o;19445:173::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;19508:14:::1;::::0;-1:-1:-1;;;19508:14:0;::::1;;;19507:15;19499:50;;;::::0;-1:-1:-1;;;19499:50:0;;5657:2:1;19499:50:0::1;::::0;::::1;5639:21:1::0;5696:2;5676:18;;;5669:30;-1:-1:-1;;;5715:18:1;;;5708:52;5777:18;;19499:50:0::1;5455:346:1::0;19499:50:0::1;19560:14;:21:::0;;-1:-1:-1;;;;19592:18:0;-1:-1:-1;;;19592:18:0;;;19445:173::o;19626:203::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;19736:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19728:5:::1;:43:::0;;;;;;;;;;;19766:4;19791:23:::1;19754:10:::0;19742;19791:23:::1;:::i;:::-;:30;;;;:::i;:::-;19782:6;:39:::0;-1:-1:-1;;;19626:203:0:o;5703:422::-;5809:4;5826:36;5836:6;5844:9;5855:6;5826:9;:36::i;:::-;-1:-1:-1;;;;;5902:19:0;;5875:24;5902:19;;;:11;:19;;;;;;;;681:10;5902:33;;;;;;;;5954:26;;;;5946:79;;;;-1:-1:-1;;;5946:79:0;;6270:2:1;5946:79:0;;;6252:21:1;6309:2;6289:18;;;6282:30;6348:34;6328:18;;;6321:62;-1:-1:-1;;;6399:18:1;;;6392:38;6447:19;;5946:79:0;6068:404:1;5946:79:0;6036:57;6045:6;681:10;6067:25;6086:6;6067:16;:25;:::i;:::-;6036:8;:57::i;:::-;-1:-1:-1;6113:4:0;;5703:422;-1:-1:-1;;;;5703:422:0:o;21165:546::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;21304:21:::1;21336:24;21353:6:::0;21336:16:::1;:24::i;:::-;21371:18;21392:35;21416:11:::0;21392:21:::1;:35;:::i;:::-;21371:56:::0;-1:-1:-1;21441:23:0;;21438:136:::1;;21466:108;21537:35;21553:19:::0;21537:13;:35:::1;:::i;:::-;21501:32;21514:19:::0;21501:10;:32:::1;:::i;:::-;:72;;;;:::i;:::-;21474:15;::::0;-1:-1:-1;;;;;21474:15:0::1;::::0;21466:34:::1;:108::i;:::-;21588:17:::0;;21585:118:::1;;21607:96;21666:35;21682:19:::0;21666:13;:35:::1;:::i;:::-;21636:26;21649:13:::0;21636:10;:26:::1;:::i;:::-;:66;;;;:::i;:::-;21615:9;::::0;-1:-1:-1;;;;;21615:9:0::1;::::0;21607:28:::1;:96::i;:::-;21271:440;;21165:546:::0;;;:::o;6534:215::-;681:10;6622:4;6671:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6671:34:0;;;;;;;;;;6622:4;;6639:80;;6662:7;;6671:47;;6708:10;;6671:47;:::i;19223:96::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;19292:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;19292:19:0::1;-1:-1:-1::0;;;;19292:19:0;;::::1;::::0;;;::::1;::::0;;19223:96::o;20187:108::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;20266:9:::1;:21:::0;;-1:-1:-1;;;;;;20266:21:0::1;-1:-1:-1::0;;;;;20266:21:0;;;::::1;::::0;;;::::1;::::0;;20187:108::o;12456:94::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;12521:21:::1;12539:1;12521:9;:21::i;:::-;12456:94::o:0;20895:142::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;20990:12:::1;-1:-1:-1::0;;;;;20983:29:0::1;;21013:7;12306:6:::0;;-1:-1:-1;;;;;12306:6:0;;12233:87;21013:7:::1;20983:46;::::0;-1:-1:-1;;;;;;20983:46:0::1;::::0;;;;;;-1:-1:-1;;;;;7197:32:1;;;20983:46:0::1;::::0;::::1;7179:51:1::0;7246:18;;;7239:34;;;7152:18;;20983:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20895:142:::0;;:::o;19837:212::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;19952:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19940:9:::1;:47:::0;;;;;;;;;;;19982:4;20011:23:::1;19970:10:::0;19958;20011:23:::1;:::i;:::-;:30;;;;:::i;:::-;19998:10;:43:::0;-1:-1:-1;;;19837:212:0:o;3104:104::-;3160:13;3193:7;3186:14;;;;;:::i;19327:110::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;19403:13:::1;:26:::0;19327:110::o;21045:112::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;21112:37:::1;21139:9;21120:7;12306:6:::0;;-1:-1:-1;;;;;12306:6:0;;12233:87;21120:7:::1;-1:-1:-1::0;;;;;21112:26:0::1;::::0;::::1;:37::i;:::-;21045:112:::0;:::o;7252:377::-;681:10;7345:4;7389:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7389:34:0;;;;;;;;;;7442:35;;;;7434:85;;;;-1:-1:-1;;;7434:85:0;;7736:2:1;7434:85:0;;;7718:21:1;7775:2;7755:18;;;7748:30;7814:34;7794:18;;;7787:62;-1:-1:-1;;;7865:18:1;;;7858:35;7910:19;;7434:85:0;7534:401:1;7434:85:0;7530:67;681:10;7553:7;7562:34;7581:15;7562:16;:34;:::i;7530:67::-;-1:-1:-1;7617:4:0;;7252:377;-1:-1:-1;;;7252:377:0:o;4516:175::-;4602:4;4619:42;681:10;4643:9;4654:6;4619:9;:42::i;20061:114::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;20140:15:::1;:27:::0;;-1:-1:-1;;;;;;20140:27:0::1;-1:-1:-1::0;;;;;20140:27:0;;;::::1;::::0;;;::::1;::::0;;20061:114::o;20770:117::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;20864:15:::1;:6:::0;20873::::1;20864:15;:::i;:::-;20846;:33:::0;-1:-1:-1;20770:117:0:o;20644:118::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;20739:15:::1;:6:::0;20748::::1;20739:15;:::i;:::-;20725:11;:29:::0;-1:-1:-1;20644:118:0:o;20498:134::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20590:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;20590:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20498:134::o;12558:192::-;12306:6;;-1:-1:-1;;;;;12306:6:0;681:10;12368:23;12360:68;;;;-1:-1:-1;;;12360:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12647:22:0;::::1;12639:73;;;::::0;-1:-1:-1;;;12639:73:0;;8142:2:1;12639:73:0::1;::::0;::::1;8124:21:1::0;8181:2;8161:18;;;8154:30;8220:34;8200:18;;;8193:62;-1:-1:-1;;;8271:18:1;;;8264:36;8317:19;;12639:73:0::1;7940:402:1::0;12639:73:0::1;12723:19;12733:8;12723:9;:19::i;10608:346::-:0;-1:-1:-1;;;;;10710:19:0;;10702:68;;;;-1:-1:-1;;;10702:68:0;;8549:2:1;10702:68:0;;;8531:21:1;8588:2;8568:18;;;8561:30;8627:34;8607:18;;;8600:62;-1:-1:-1;;;8678:18:1;;;8671:34;8722:19;;10702:68:0;8347:400:1;10702:68:0;-1:-1:-1;;;;;10789:21:0;;10781:68;;;;-1:-1:-1;;;10781:68:0;;8954:2:1;10781:68:0;;;8936:21:1;8993:2;8973:18;;;8966:30;9032:34;9012:18;;;9005:62;-1:-1:-1;;;9083:18:1;;;9076:32;9125:19;;10781:68:0;8752:398:1;10781:68:0;-1:-1:-1;;;;;10862:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10914:32;;806:25:1;;;10914:32:0;;779:18:1;10914:32:0;;;;;;;10608:346;;;:::o;15492:1426::-;15608:1;15599:6;:10;15591:64;;;;-1:-1:-1;;;15591:64:0;;9357:2:1;15591:64:0;;;9339:21:1;9396:2;9376:18;;;9369:30;9435:34;9415:18;;;9408:62;-1:-1:-1;;;9486:18:1;;;9479:39;9535:19;;15591:64:0;9155:405:1;15591:64:0;-1:-1:-1;;;;;15675:13:0;;;;;;:5;:13;;;;;;;;15674:14;:35;;;;-1:-1:-1;;;;;;15693:16:0;;;;;;:5;:16;;;;;;;;15692:17;15674:35;15666:73;;;;-1:-1:-1;;;15666:73:0;;9767:2:1;15666:73:0;;;9749:21:1;9806:2;9786:18;;;9779:30;9845:27;9825:18;;;9818:55;9890:18;;15666:73:0;9565:349:1;15666:73:0;-1:-1:-1;;;;;15782:24:0;;;;;;:16;:24;;;;;;;;15781:25;:57;;;;-1:-1:-1;;;;;;15811:27:0;;;;;;:16;:27;;;;;;;;15810:28;15781:57;:70;;;;-1:-1:-1;15843:8:0;;-1:-1:-1;;;15843:8:0;;;;15842:9;15781:70;15778:392;;;15875:14;;-1:-1:-1;;;15875:14:0;;;;15867:49;;;;-1:-1:-1;;;15867:49:0;;10121:2:1;15867:49:0;;;10103:21:1;10160:2;10140:18;;;10133:30;-1:-1:-1;;;10179:18:1;;;10172:52;10241:18;;15867:49:0;9919:346:1;15867:49:0;15949:11;;15939:6;:21;;15931:63;;;;-1:-1:-1;;;15931:63:0;;10472:2:1;15931:63:0;;;10454:21:1;10511:2;10491:18;;;10484:30;10550:31;10530:18;;;10523:59;10599:18;;15931:63:0;10270:353:1;15931:63:0;16025:4;;-1:-1:-1;;;;;16012:17:0;;;16025:4;;16012:17;16009:150;;16090:15;;16080:6;16057:20;16067:9;-1:-1:-1;;;;;4277:18:0;4250:7;4277:18;;;;;;;;;;;;4176:127;16057:20;:29;;;;:::i;:::-;:48;;16049:94;;;;-1:-1:-1;;;16049:94:0;;10830:2:1;16049:94:0;;;10812:21:1;10869:2;10849:18;;;10842:30;10908:34;10888:18;;;10881:62;-1:-1:-1;;;10959:18:1;;;10952:31;11000:19;;16049:94:0;10628:397:1;16049:94:0;16289:8;;16182:11;;-1:-1:-1;;;16289:8:0;;;;;:36;;-1:-1:-1;;;;;;16301:24:0;;;;;;:16;:24;;;;;;;;16289:36;:67;;;-1:-1:-1;;;;;;16329:27:0;;;;;;:16;:27;;;;;;;;16289:67;16285:307;;;-1:-1:-1;16364:1:0;16285:307;;;16446:4;;-1:-1:-1;;;;;16446:4:0;;;16433:17;;;;16430:150;;16482:7;;16516:3;;16482:7;;:15;;:7;:15;:30;;16509:3;16482:30;;;16498:10;;16482:30;16472:41;;:6;:41;:::i;:::-;:47;;;;:::i;:::-;16466:53;;16430:150;;;16577:3;16568:6;;16559;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16553:27;;16430:150;16713:11;;-1:-1:-1;;;16713:11:0;;;;:24;;;;-1:-1:-1;16729:8:0;;-1:-1:-1;;;16729:8:0;;;;16728:9;16713:24;:42;;;;-1:-1:-1;16751:4:0;;-1:-1:-1;;;;;16741:14:0;;;16751:4;;16741:14;;16713:42;:53;;;;;16765:1;16759:3;:7;16713:53;16709:72;;;16768:13;:11;:13::i;:::-;16794:48;16810:6;16818:9;16829:12;16838:3;16829:6;:12;:::i;:::-;16794:15;:48::i;:::-;16856:7;;16853:55;;16865:43;16881:6;16897:4;16904:3;16865:15;:43::i;:::-;15580:1338;15492:1426;;;:::o;18310:400::-;18400:16;;;18414:1;18400:16;;;;;;;;18376:21;;18400:16;;;;;;;;;;-1:-1:-1;18400:16:0;18376:40;;18445:4;18427;18432:1;18427:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18427:23:0;;;:7;;;;;;;;;;:23;;;;18471:6;;:13;;;-1:-1:-1;;;18471:13:0;;;;:6;;;;;:11;;:13;;;;;18427:7;;18471:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18461:4;18466:1;18461:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18461:23:0;;;:7;;;;;;;;;:23;18529:6;;18497:53;;18514:4;;18529:6;18538:11;18497:8;:53::i;:::-;18589:6;;:111;;-1:-1:-1;;;18589:111:0;;-1:-1:-1;;;;;18589:6:0;;;;:57;;:111;;18647:11;;18589:6;;18663:4;;18677;;18684:15;;18589:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18365:345;18310:400;:::o;11678:317::-;11793:6;11768:21;:31;;11760:73;;;;-1:-1:-1;;;11760:73:0;;12737:2:1;11760:73:0;;;12719:21:1;12776:2;12756:18;;;12749:30;12815:31;12795:18;;;12788:59;12864:18;;11760:73:0;12535:353:1;11760:73:0;11847:12;11865:9;-1:-1:-1;;;;;11865:14:0;11887:6;11865:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11846:52;;;11917:7;11909:78;;;;-1:-1:-1;;;11909:78:0;;13305:2:1;11909:78:0;;;13287:21:1;13344:2;13324:18;;;13317:30;13383:34;13363:18;;;13356:62;13454:28;13434:18;;;13427:56;13500:19;;11909:78:0;13103:422:1;12758:173:0;12833:6;;;-1:-1:-1;;;;;12850:17:0;;;-1:-1:-1;;;;;;12850:17:0;;;;;;;12883:40;;12833:6;;;12850:17;12833:6;;12883:40;;12814:16;;12883:40;12803:128;12758:173;:::o;16926:1374::-;14811:8;;-1:-1:-1;;;14811:8:0;;;;14806:104;;14836:8;:15;;-1:-1:-1;;;;14836:15:0;-1:-1:-1;;;14836:15:0;;;17019:4:::1;-1:-1:-1::0;4277:18:0;;;;;;;;;;;16975:50:::1;;17059:13;;17040:15;:32;17036:1257;;17146:19;17168:10;;17181:1;17168:14;;;;:::i;:::-;17146:36;;17197:32;17272:11;17250:9;:19;;;17232:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17197:86:::0;-1:-1:-1;17298:14:0::1;17315:42;17197:86:::0;17315:15;:42:::1;:::i;:::-;17298:59:::0;-1:-1:-1;17403:21:0::1;17445:24;17298:59:::0;17445:16:::1;:24::i;:::-;17490:20;17513:38;17537:14:::0;17513:21:::1;:38;:::i;:::-;17617:19:::0;;17490:61;;-1:-1:-1;17566:19:0::1;::::0;17603:33:::1;::::0;:11;:33:::1;:::i;:::-;17587:50;::::0;:12;:50:::1;:::i;:::-;17698:19:::0;;17566:71;;-1:-1:-1;17652:29:0::1;::::0;17684:33:::1;::::0;17566:71;17684:33:::1;:::i;:::-;17652:65:::0;-1:-1:-1;17741:25:0;;17738:170:::1;;17831:61;17844:24;17870:21;17831:12;:61::i;:::-;17969:9;:19:::0;17928:20:::1;::::0;17951:15:::1;:11:::0;17965:1:::1;17951:15;:::i;:::-;:37;;;;:::i;:::-;17928:60:::0;-1:-1:-1;18006:16:0;;18003:103:::1;;18050:15;::::0;18042:48:::1;::::0;-1:-1:-1;;;;;18050:15:0::1;18077:12:::0;18042:34:::1;:48::i;:::-;18169:13:::0;;18134:14:::1;::::0;18151:15:::1;:11:::0;18169:13:::1;18151:15;:::i;:::-;:31;;;;:::i;:::-;18134:48:::0;-1:-1:-1;18200:10:0;;18197:85:::1;;18238:9;::::0;18230:36:::1;::::0;-1:-1:-1;;;;;18238:9:0::1;18259:6:::0;18230:28:::1;:36::i;:::-;17074:1219;;;;;;;;;17036:1257;-1:-1:-1::0;14882:8:0;:16;;-1:-1:-1;;;;14882:16:0;;;16926:1374::o;8119:604::-;-1:-1:-1;;;;;8225:20:0;;8217:70;;;;-1:-1:-1;;;8217:70:0;;13732:2:1;8217:70:0;;;13714:21:1;13771:2;13751:18;;;13744:30;13810:34;13790:18;;;13783:62;-1:-1:-1;;;13861:18:1;;;13854:35;13906:19;;8217:70:0;13530:401:1;8217:70:0;-1:-1:-1;;;;;8306:23:0;;8298:71;;;;-1:-1:-1;;;8298:71:0;;14138:2:1;8298:71:0;;;14120:21:1;14177:2;14157:18;;;14150:30;14216:34;14196:18;;;14189:62;-1:-1:-1;;;14267:18:1;;;14260:33;14310:19;;8298:71:0;13936:399:1;8298:71:0;-1:-1:-1;;;;;8466:17:0;;8442:21;8466:17;;;;;;;;;;;8502:23;;;;8494:74;;;;-1:-1:-1;;;8494:74:0;;14542:2:1;8494:74:0;;;14524:21:1;14581:2;14561:18;;;14554:30;14620:34;14600:18;;;14593:62;-1:-1:-1;;;14671:18:1;;;14664:36;14717:19;;8494:74:0;14340:402:1;8494:74:0;8599:22;8615:6;8599:13;:22;:::i;:::-;-1:-1:-1;;;;;8579:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8632:20;;;;;;;;:30;;8656:6;;8579:9;8632:30;;8656:6;;8632:30;:::i;:::-;;;;;;;;8697:9;-1:-1:-1;;;;;8680:35:0;8689:6;-1:-1:-1;;;;;8680:35:0;;8708:6;8680:35;;;;806:25:1;;794:2;779:18;;660:177;8680:35:0;;;;;;;;8206:517;8119:604;;;:::o;18718:497::-;18898:6;;18866:53;;18883:4;;-1:-1:-1;;;;;18898:6:0;18907:11;18866:8;:53::i;:::-;18962:6;;19157:9;;18962:245;;-1:-1:-1;;;18962:245:0;;19025:4;18962:245;;;15088:34:1;15138:18;;;15131:34;;;18962:6:0;15181:18:1;;;15174:34;;;15224:18;;;15217:34;-1:-1:-1;;;;;19157:9:0;;;15267:19:1;;;15260:44;19181:15:0;15320:19:1;;;15313:35;18962:6:0;;;:22;;18992:9;;15022:19:1;;18962:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:118;236:5;229:13;222:21;215:5;212:32;202:60;;258:1;255;248:12;273:382;338:6;346;399:2;387:9;378:7;374:23;370:32;367:52;;;415:1;412;405:12;367:52;454:9;441:23;473:31;498:5;473:31;:::i;:::-;523:5;-1:-1:-1;580:2:1;565:18;;552:32;593:30;552:32;593:30;:::i;:::-;642:7;632:17;;;273:382;;;;;:::o;842:548::-;954:4;983:2;1012;1001:9;994:21;1044:6;1038:13;1087:6;1082:2;1071:9;1067:18;1060:34;1112:1;1122:140;1136:6;1133:1;1130:13;1122:140;;;1231:14;;;1227:23;;1221:30;1197:17;;;1216:2;1193:26;1186:66;1151:10;;1122:140;;;1126:3;1311:1;1306:2;1297:6;1286:9;1282:22;1278:31;1271:42;1381:2;1374;1370:7;1365:2;1357:6;1353:15;1349:29;1338:9;1334:45;1330:54;1322:62;;;;842:548;;;;:::o;1395:315::-;1463:6;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1579:9;1566:23;1598:31;1623:5;1598:31;:::i;:::-;1648:5;1700:2;1685:18;;;;1672:32;;-1:-1:-1;;;1395:315:1:o;1907:316::-;1984:6;1992;2000;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;-1:-1:-1;;2092:23:1;;;2162:2;2147:18;;2134:32;;-1:-1:-1;2213:2:1;2198:18;;;2185:32;;1907:316;-1:-1:-1;1907:316:1:o;2228:456::-;2305:6;2313;2321;2374:2;2362:9;2353:7;2349:23;2345:32;2342:52;;;2390:1;2387;2380:12;2342:52;2429:9;2416:23;2448:31;2473:5;2448:31;:::i;:::-;2498:5;-1:-1:-1;2555:2:1;2540:18;;2527:32;2568:33;2527:32;2568:33;:::i;:::-;2228:456;;2620:7;;-1:-1:-1;;;2674:2:1;2659:18;;;;2646:32;;2228:456::o;2878:247::-;2937:6;2990:2;2978:9;2969:7;2965:23;2961:32;2958:52;;;3006:1;3003;2996:12;2958:52;3045:9;3032:23;3064:31;3089:5;3064:31;:::i;:::-;3114:5;2878:247;-1:-1:-1;;;2878:247:1:o;3130:241::-;3186:6;3239:2;3227:9;3218:7;3214:23;3210:32;3207:52;;;3255:1;3252;3245:12;3207:52;3294:9;3281:23;3313:28;3335:5;3313:28;:::i;3908:180::-;3967:6;4020:2;4008:9;3999:7;3995:23;3991:32;3988:52;;;4036:1;4033;4026:12;3988:52;-1:-1:-1;4059:23:1;;3908:180;-1:-1:-1;3908:180:1:o;4093:388::-;4161:6;4169;4222:2;4210:9;4201:7;4197:23;4193:32;4190:52;;;4238:1;4235;4228:12;4190:52;4277:9;4264:23;4296:31;4321:5;4296:31;:::i;:::-;4346:5;-1:-1:-1;4403:2:1;4388:18;;4375:32;4416:33;4375:32;4416:33;:::i;4709:356::-;4911:2;4893:21;;;4930:18;;;4923:30;4989:34;4984:2;4969:18;;4962:62;5056:2;5041:18;;4709:356::o;5070:380::-;5149:1;5145:12;;;;5192;;;5213:61;;5267:4;5259:6;5255:17;5245:27;;5213:61;5320:2;5312:6;5309:14;5289:18;5286:38;5283:161;;5366:10;5361:3;5357:20;5354:1;5347:31;5401:4;5398:1;5391:15;5429:4;5426:1;5419:15;5283:161;;5070:380;;;:::o;5806:127::-;5867:10;5862:3;5858:20;5855:1;5848:31;5898:4;5895:1;5888:15;5922:4;5919:1;5912:15;5938:125;6003:9;;;6024:10;;;6021:36;;;6037:18;;:::i;6477:128::-;6544:9;;;6565:11;;;6562:37;;;6579:18;;:::i;6610:168::-;6683:9;;;6714;;6731:15;;;6725:22;;6711:37;6701:71;;6752:18;;:::i;6783:217::-;6823:1;6849;6839:132;;6893:10;6888:3;6884:20;6881:1;6874:31;6928:4;6925:1;6918:15;6956:4;6953:1;6946:15;6839:132;-1:-1:-1;6985:9:1;;6783:217::o;7284:245::-;7351:6;7404:2;7392:9;7383:7;7379:23;7375:32;7372:52;;;7420:1;7417;7410:12;7372:52;7452:9;7446:16;7471:28;7493:5;7471:28;:::i;11162:127::-;11223:10;11218:3;11214:20;11211:1;11204:31;11254:4;11251:1;11244:15;11278:4;11275:1;11268:15;11294:251;11364:6;11417:2;11405:9;11396:7;11392:23;11388:32;11385:52;;;11433:1;11430;11423:12;11385:52;11465:9;11459:16;11484:31;11509:5;11484:31;:::i;11550:980::-;11812:4;11860:3;11849:9;11845:19;11891:6;11880:9;11873:25;11917:2;11955:6;11950:2;11939:9;11935:18;11928:34;11998:3;11993:2;11982:9;11978:18;11971:31;12022:6;12057;12051:13;12088:6;12080;12073:22;12126:3;12115:9;12111:19;12104:26;;12165:2;12157:6;12153:15;12139:29;;12186:1;12196:195;12210:6;12207:1;12204:13;12196:195;;;12275:13;;-1:-1:-1;;;;;12271:39:1;12259:52;;12366:15;;;;12331:12;;;;12307:1;12225:9;12196:195;;;-1:-1:-1;;;;;;;12447:32:1;;;;12442:2;12427:18;;12420:60;-1:-1:-1;;;12511:3:1;12496:19;12489:35;12408:3;11550:980;-1:-1:-1;;;11550:980:1:o;15359:306::-;15447:6;15455;15463;15516:2;15504:9;15495:7;15491:23;15487:32;15484:52;;;15532:1;15529;15522:12;15484:52;15561:9;15555:16;15545:26;;15611:2;15600:9;15596:18;15590:25;15580:35;;15655:2;15644:9;15640:18;15634:25;15624:35;;15359:306;;;;;:::o

Swarm Source

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