ETH Price: $2,421.79 (+1.74%)

Token

VoxRoyale (VXR)
 

Overview

Max Total Supply

1,000,000 VXR

Holders

282 ( -0.355%)

Market

Price

$0.24 @ 0.000097 ETH (+14.27%)

Onchain Market Cap

$235,449.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 4 Decimals)

Balance
11,703.185 VXR

Value
$2,755.50 ( ~1.1378 Eth) [1.1703%]
0xfdBDF6AEA1bdc4478fA076d68F24F85692EfE006
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Vox Royale is a dynamic, competitive game that integrates a comprehensive set of blockchain mechanics. Developed using Unity, it features low poly voxel-style graphics, delivering a visually appealing and engaging experience.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
VoxRoyale

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

// Website: https://voxroyale.xyz
// Telegram: https://t.me/voxroyale

pragma solidity ^0.8.8;

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 {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _setOwner(msg.sender);
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "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 IERC20 {
    function name() external view returns (string memory);

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

    function decimals() external view returns (uint8);

    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
    );
}

contract ERC20 is IERC20 {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

    function _tokengeneration(
        address account,
        uint256 amount
    ) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, 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);
    }
}

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,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

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

contract VoxRoyale is ERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;
    bool private _interlock = false;
    bool public providingLiquidity = false;
    bool public tradingEnabled = false;
    uint256 public tokenLiquidityThreshold = 5e3 * 10 ** 4;
    uint256 public maxBuyLimit = 2e4 * 10 ** 4;
    uint256 public maxSellLimit = 2e4 * 10 ** 4;
    uint256 public maxWalletLimit = 2e4 * 10 ** 4;
    uint256 public genesis_block;
    uint256 private deadline = 1;
    uint256 private launchtax = 99;
    address public marketingWallet = 0x590408d409457DF8D6c2b3F479B71D0309297eEC;
    address public devWallet = 0x590408d409457DF8D6c2b3F479B71D0309297eEC;
    address public dev2Wallet = 0x590408d409457DF8D6c2b3F479B71D0309297eEC;
    address public ecosystemWallet = 0x590408d409457DF8D6c2b3F479B71D0309297eEC;
    address public constant deadWallet =
        0x000000000000000000000000000000000000dEaD;

    struct Fees {
        uint256 marketing;
        uint256 liquidity;
        uint256 ecosystem;
        uint256 dev;
        uint256 dev2;
    }

    Fees public fees = Fees(0, 0, 0, 0, 0);
    Fees public sellFees = Fees(0, 0, 0, 0, 0);
    mapping(address => uint256) public antiBot;
    mapping(address => bool) public feeExempts;
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 5 seconds;
    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }

    constructor() ERC20("VoxRoyale", "VXR") {
        _tokengeneration(msg.sender, 1e6 * 10 ** decimals());
        feeExempts[msg.sender] = true;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(
            address(this),
            _router.WETH()
        );
        router = _router;
        pair = _pair;
        feeExempts[address(this)] = true;
        feeExempts[marketingWallet] = true;
        feeExempts[ecosystemWallet] = true;
        feeExempts[devWallet] = true;
        feeExempts[dev2Wallet] = true;
        feeExempts[deadWallet] = true;
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, msg.sender, currentAllowance - amount);

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public override returns (bool) {
        _approve(
            msg.sender,
            spender,
            _allowances[msg.sender][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        _approve(msg.sender, spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!feeExempts[sender] && !feeExempts[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        if (sender == pair && !feeExempts[recipient] && !_interlock) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }
        if (
            sender != pair &&
            !feeExempts[recipient] &&
            !feeExempts[sender] &&
            !_interlock
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }
        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Fees memory currentFees;
        bool useLaunchFee = !feeExempts[sender] &&
            !feeExempts[recipient] &&
            block.number < genesis_block + deadline;
        if (_interlock || feeExempts[sender] || feeExempts[recipient]) fee = 0;
        else if (recipient == pair && !useLaunchFee) {
            if (antiBot[sender] != 0) {
                uint256 total = sellFees.marketing +
                    sellFees.liquidity +
                    sellFees.ecosystem +
                    sellFees.dev +
                    sellFees.dev2;

                uint256 target = antiBot[sender] * 10;

                currentFees = Fees(
                    sellFees.marketing * target / total,
                    sellFees.liquidity * target / total,
                    sellFees.ecosystem * target / total,
                    sellFees.dev * target / total,
                    sellFees.dev2 * target / total
                );
            } else {
                currentFees = sellFees;
            }

            feeswap =
                currentFees.liquidity +
                currentFees.marketing +
                currentFees.ecosystem +
                currentFees.dev +
                currentFees.dev2;
            feesum = feeswap;
        } else if (!useLaunchFee) {
            feeswap =
                fees.liquidity +
                fees.marketing +
                fees.ecosystem +
                fees.dev +
                fees.dev2;
            feesum = feeswap;
            currentFees = fees;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }
        fee = (amount * feesum) / 1000;
        if (providingLiquidity && sender != pair)
            liquify(feeswap, currentFees);
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 1000;
                super._transfer(sender, address(this), feeAmount);
            }
        }
    }

    function liquify(
        uint256 feeswap,
        Fees memory swapFees
    ) private lockTheSwap {
        if (feeswap == 0) {
            return;
        }
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance *
                swapFees.liquidity) / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
            uint256 initialBalance = address(this).balance;
            swapTokensForETH(toSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance /
                (denominator - swapFees.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapFees.liquidity;
            if (ethToAddLiquidityWith > 0) {
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
            uint256 marketingAmt = unitBalance * 2 * swapFees.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
            uint256 ecosystemAmt = unitBalance * 2 * swapFees.ecosystem;
            if (ecosystemAmt > 0) {
                payable(ecosystemWallet).sendValue(ecosystemAmt);
            }
            uint256 devAmt = unitBalance * 2 * swapFees.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }
            uint256 dev2Amt = unitBalance * 2 * swapFees.dev2;
            if (dev2Amt > 0) {
                payable(dev2Wallet).sendValue(dev2Amt);
            }
        }
    }

    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);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            deadWallet,
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        require(
            new_amount <= 1e4,
            "Swap threshold amount should be lower or equal to 1% of tokens"
        );
        tokenLiquidityThreshold = new_amount * 10 ** decimals();
    }

    function setBuyFees(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _ecosystem,
        uint256 _dev,
        uint256 _dev2
    ) external onlyOwner {
        fees = Fees(_marketing, _liquidity, _ecosystem, _dev, _dev2);
        require(
            (_marketing + _liquidity + _ecosystem + _dev + _dev2) / 10 <= 25,
            "Must keep fees at 25% or less"
        );
    }

    function setSellFees(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _ecosystem,
        uint256 _dev,
        uint256 _dev2
    ) external onlyOwner {
        sellFees = Fees(_marketing, _liquidity, _ecosystem, _dev, _dev2);
        require(
            (_marketing + _liquidity + _ecosystem + _dev + _dev2) / 10 <= 25,
            "Must keep fees at 25% or less"
        );
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5, "Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }

    function updateEcosystemWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        ecosystemWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        devWallet = newWallet;
    }

    function updateDev2Wallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        dev2Wallet = newWallet;
    }

    function updateCooldown(bool state, uint256 time) external onlyOwner {
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
        require(time <= 300, "cooldown timer cannot exceed 5 minutes");
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        feeExempts[_address] = state;
    }

    function bulkExemptFee(
        address[] memory accounts,
        bool state
    ) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            feeExempts[accounts[i]] = state;
        }
    }

    function updateAntiBot(
        address _address,
        uint256 _value
    ) external onlyOwner {
        require(
            _value <= 25,
            "Must be 25 or less"
        );
        antiBot[_address] = _value;
    }

    function updateMaxTxLimit(
        uint256 maxBuy,
        uint256 maxSell,
        uint256 maxWallet
    ) external onlyOwner {
        require(maxBuy >= 1e4, "Cannot set max buy amount lower than 1%");
        require(maxSell >= 1e4, "Cannot set max sell amount lower than 1%");
        require(maxWallet >= 1e4, "Cannot set max wallet amount lower than 1%");
        maxBuyLimit = maxBuy * 10 ** decimals();
        maxSellLimit = maxSell * 10 ** decimals();
        maxWalletLimit = maxWallet * 10 ** decimals();
    }

    function rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(
            tokenAdd != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    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":[{"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":"","type":"address"}],"name":"antiBot","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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"dev2Wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecosystemWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fees","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"dev2","type":"uint256"}],"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":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"dev2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_ecosystem","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_dev2","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_ecosystem","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_dev2","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","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":"_address","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"updateAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDev2Wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateEcosystemWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556302faf080600855630bebc2006009819055600a819055600b556001600d8190556063600e55600f805473590408d409457df8d6c2b3f479b71d0309297eec6001600160a01b0319918216811790925560108054821683179055601180548216831790556012805490911690911790556000608081905260a081905260c081905260e0819052610100819052601381905560148190556015819055601681905560178190556101c06040526101208190526101408190526101608190526101808190526101a081905260188190556019819055601a819055601b819055601c556020805460ff1916909117905560056021553480156200010d57600080fd5b5060405180604001604052806009815260200168566f78526f79616c6560b81b815250604051806040016040528060038152602001622b2c2960e91b815250816003908051906020019062000164929190620004d3565b5080516200017a906004906020840190620004d3565b5050506200018e336200042d60201b60201c565b620001b633620001a16004600a6200068e565b620001b090620f4240620006a6565b6200047f565b336000908152601e60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a01559260048083019392829003018186803b1580156200021c57600080fd5b505afa15801562000231573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002579190620006c8565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a057600080fd5b505afa158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620006c8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200032457600080fd5b505af115801562000339573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035f9190620006c8565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152601e6020526040808220805460ff199081166001908117909255600f548516845282842080548216831790556012548516845282842080548216831790556010548516845282842080548216831790556011549094168352908220805484168217905561dead9091527f8a622fd893f993f50f1795ae2bf707bdf4143f678ec4998626679a2f447616df805490921617905562000730565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620004e190620006f3565b90600052602060002090601f01602090048101928262000505576000855562000550565b82601f106200052057805160ff191683800117855562000550565b8280016001018555821562000550579182015b828111156200055057825182559160200191906001019062000533565b506200055e92915062000562565b5090565b5b808211156200055e576000815560010162000563565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005d0578160001904821115620005b457620005b462000579565b80851615620005c257918102915b93841c939080029062000594565b509250929050565b600082620005e95750600162000688565b81620005f85750600062000688565b81600181146200061157600281146200061c576200063c565b600191505062000688565b60ff84111562000630576200063062000579565b50506001821b62000688565b5060208310610133831016604e8410600b841016171562000661575081810a62000688565b6200066d83836200058f565b806000190482111562000684576200068462000579565b0290505b92915050565b60006200069f60ff841683620005d8565b9392505050565b6000816000190483118215151615620006c357620006c362000579565b500290565b600060208284031215620006db57600080fd5b81516001600160a01b03811681146200069f57600080fd5b600181811c908216806200070857607f821691505b602082108114156200072a57634e487b7160e01b600052602260045260246000fd5b50919050565b61304780620007406000396000f3fe6080604052600436106102e85760003560e01c806385141a7711610190578063dd62ed3e116100dc578063edaa116811610095578063f2fde38b1161006f578063f2fde38b1461091e578063f887ea401461093e578063fbe6324e1461095e578063ffa664f61461097f57600080fd5b8063edaa1168146108c4578063ee36e359146108e4578063f186a68c146108fe57600080fd5b8063dd62ed3e146107c7578063dde993f41461080d578063ddf10b7f1461082d578063e0f3ccf51461085d578063e1b450ad14610884578063e517f2b9146108a457600080fd5b80639af1d35a11610149578063a9059cbb11610123578063a9059cbb14610751578063aacebbe314610771578063c1cf53c414610791578063d2ce0db2146107b157600080fd5b80639af1d35a146106c2578063a457c2d714610711578063a8aa1b311461073157600080fd5b806385141a77146106245780638a8c523c1461063a5780638cd4426d1461064f5780638da5cb5b1461066f5780638ea5220f1461068d57806395d89b41146106ad57600080fd5b8063395093511161024f578063652e2f041161020857806370a08231116101e257806370a0823114610599578063715018a6146105cf57806375f0a874146105e457806384ded6c71461060457600080fd5b8063652e2f041461055757806366a88d961461056d5780636aa5b37f1461058357600080fd5b806339509351146104715780633fa1410f1461049157806342b6fa11146104be578063435263ef146104de57806347a28b79146105165780634ada218b1461053657600080fd5b80631816467f116102a15780631816467f146103ca57806320800a00146103ea57806323b872dd146103ff578063274a533c1461041f578063313ce56714610435578063355496ca1461045157600080fd5b806306fdde03146102f4578063095ea7b31461031f5780630e375a5c1461034f5780631340538f146103715780631675d8021461039157806318160ddd146103b557600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961099f565b60405161031691906129a9565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612a23565b610a31565b6040519015158152602001610316565b34801561035b57600080fd5b5061036f61036a366004612a7e565b610a48565b005b34801561037d57600080fd5b5061036f61038c366004612b55565b610af6565b34801561039d57600080fd5b506103a760085481565b604051908152602001610316565b3480156103c157600080fd5b506002546103a7565b3480156103d657600080fd5b5061036f6103e5366004612b79565b610b4d565b3480156103f657600080fd5b5061036f610bce565b34801561040b57600080fd5b5061033f61041a366004612b96565b610c56565b34801561042b57600080fd5b506103a7600c5481565b34801561044157600080fd5b5060405160048152602001610316565b34801561045d57600080fd5b5061036f61046c366004612bd7565b610d07565b34801561047d57600080fd5b5061033f61048c366004612a23565b610d6b565b34801561049d57600080fd5b506103a76104ac366004612b79565b601d6020526000908152604090205481565b3480156104ca57600080fd5b5061036f6104d9366004612c10565b610da2565b3480156104ea57600080fd5b506012546104fe906001600160a01b031681565b6040516001600160a01b039091168152602001610316565b34801561052257600080fd5b5061036f610531366004612c29565b610e6f565b34801561054257600080fd5b5060075461033f90600160b01b900460ff1681565b34801561056357600080fd5b506103a7600a5481565b34801561057957600080fd5b506103a7600b5481565b34801561058f57600080fd5b506103a760095481565b3480156105a557600080fd5b506103a76105b4366004612b79565b6001600160a01b031660009081526020819052604090205490565b3480156105db57600080fd5b5061036f610f76565b3480156105f057600080fd5b50600f546104fe906001600160a01b031681565b34801561061057600080fd5b506011546104fe906001600160a01b031681565b34801561063057600080fd5b506104fe61dead81565b34801561064657600080fd5b5061036f610fbb565b34801561065b57600080fd5b5061036f61066a366004612a23565b611069565b34801561067b57600080fd5b506005546001600160a01b03166104fe565b34801561069957600080fd5b506010546104fe906001600160a01b031681565b3480156106b957600080fd5b506103096111bb565b3480156106ce57600080fd5b506013546014546015546016546017546106e9949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610316565b34801561071d57600080fd5b5061033f61072c366004612a23565b6111ca565b34801561073d57600080fd5b506007546104fe906001600160a01b031681565b34801561075d57600080fd5b5061033f61076c366004612a23565b611265565b34801561077d57600080fd5b5061036f61078c366004612b79565b611272565b34801561079d57600080fd5b5061036f6107ac366004612c29565b6112f3565b3480156107bd57600080fd5b506103a760215481565b3480156107d357600080fd5b506103a76107e2366004612c64565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561081957600080fd5b5061036f610828366004612a23565b61137b565b34801561083957600080fd5b5061033f610848366004612b79565b601e6020526000908152604090205460ff1681565b34801561086957600080fd5b50601854601954601a54601b54601c546106e9949392919085565b34801561089057600080fd5b5061036f61089f366004612c92565b611416565b3480156108b057600080fd5b5061036f6108bf366004612cbe565b6115ca565b3480156108d057600080fd5b5061036f6108df366004612c10565b611680565b3480156108f057600080fd5b5060205461033f9060ff1681565b34801561090a57600080fd5b5061036f610919366004612b79565b611784565b34801561092a57600080fd5b5061036f610939366004612b79565b611805565b34801561094a57600080fd5b506006546104fe906001600160a01b031681565b34801561096a57600080fd5b5060075461033f90600160a81b900460ff1681565b34801561098b57600080fd5b5061036f61099a366004612b79565b6118af565b6060600380546109ae90612cdc565b80601f01602080910402602001604051908101604052809291908181526020018280546109da90612cdc565b8015610a275780601f106109fc57610100808354040283529160200191610a27565b820191906000526020600020905b815481529060010190602001808311610a0a57829003601f168201915b5050505050905090565b6000610a3e338484611930565b5060015b92915050565b33610a5b6005546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b8152600401610a8190612d17565b60405180910390fd5b60005b8251811015610af15781601e6000858481518110610aad57610aad612d4c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ae981612d78565b915050610a8d565b505050565b33610b096005546001600160a01b031690565b6001600160a01b031614610b2f5760405162461bcd60e51b8152600401610a8190612d17565b60078054911515600160a81b0260ff60a81b19909216919091179055565b33610b606005546001600160a01b031690565b6001600160a01b031614610b865760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b038116610bac5760405162461bcd60e51b8152600401610a8190612d93565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b33610be16005546001600160a01b031690565b6001600160a01b031614610c075760405162461bcd60e51b8152600401610a8190612d17565b47610c1a6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610c52573d6000803e3d6000fd5b5050565b6000610c63848484611a54565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610ce85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a81565b610cfc8533610cf78685612dd5565b611930565b506001949350505050565b33610d1a6005546001600160a01b031690565b6001600160a01b031614610d405760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a3e918590610cf7908690612dec565b33610db56005546001600160a01b031690565b6001600160a01b031614610ddb5760405162461bcd60e51b8152600401610a8190612d17565b612710811115610e535760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610a81565b610e5f6004600a612ee8565b610e699082612ef7565b60085550565b33610e826005546001600160a01b031690565b6001600160a01b031614610ea85760405162461bcd60e51b8152600401610a8190612d17565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052601385905560148490556015839055601682905560178190556019600a828486610ef9898b612dec565b610f039190612dec565b610f0d9190612dec565b610f179190612dec565b610f219190612f16565b1115610f6f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a81565b5050505050565b33610f896005546001600160a01b031690565b6001600160a01b031614610faf5760405162461bcd60e51b8152600401610a8190612d17565b610fb9600061224e565b565b33610fce6005546001600160a01b031690565b6001600160a01b031614610ff45760405162461bcd60e51b8152600401610a8190612d17565b600754600160b01b900460ff161561104e5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610a81565b6007805461ffff60a81b191661010160a81b17905543600c55565b3361107c6005546001600160a01b031690565b6001600160a01b0316146110a25760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b03821630141561111a5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610a81565b816001600160a01b031663a9059cbb61113b6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190612f38565b6060600480546109ae90612cdc565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561124c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a81565b61125b3385610cf78685612dd5565b5060019392505050565b6000610a3e338484611a54565b336112856005546001600160a01b031690565b6001600160a01b0316146112ab5760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b0381166112d15760405162461bcd60e51b8152600401610a8190612d93565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b336113066005546001600160a01b031690565b6001600160a01b03161461132c5760405162461bcd60e51b8152600401610a8190612d17565b6040805160a081018252868152602081018690529081018490526060810183905260800181905260188590556019848155601a849055601b839055601c829055600a828486610ef9898b612dec565b3361138e6005546001600160a01b031690565b6001600160a01b0316146113b45760405162461bcd60e51b8152600401610a8190612d17565b60198111156113fa5760405162461bcd60e51b81526020600482015260126024820152714d757374206265203235206f72206c65737360701b6044820152606401610a81565b6001600160a01b039091166000908152601d6020526040902055565b336114296005546001600160a01b031690565b6001600160a01b03161461144f5760405162461bcd60e51b8152600401610a8190612d17565b6127108310156114b15760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610a81565b6127108210156115145760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610a81565b6127108110156115795760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610a81565b6115856004600a612ee8565b61158f9084612ef7565b60095561159e6004600a612ee8565b6115a89083612ef7565b600a5560046115b890600a612ee8565b6115c29082612ef7565b600b55505050565b336115dd6005546001600160a01b031690565b6001600160a01b0316146116035760405162461bcd60e51b8152600401610a8190612d17565b61160e816001612ef7565b6021556020805460ff191683151517905561012c811115610c525760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b6064820152608401610a81565b336116936005546001600160a01b031690565b6001600160a01b0316146116b95760405162461bcd60e51b8152600401610a8190612d17565b600754600160b01b900460ff16156117215760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610a81565b6005811061177f5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610a81565b600d55565b336117976005546001600160a01b031690565b6001600160a01b0316146117bd5760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b0381166117e35760405162461bcd60e51b8152600401610a8190612d93565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b336118186005546001600160a01b031690565b6001600160a01b03161461183e5760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b0381166118a35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a81565b6118ac8161224e565b50565b336118c26005546001600160a01b031690565b6001600160a01b0316146118e85760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b03811661190e5760405162461bcd60e51b8152600401610a8190612d93565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166119925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a81565b6001600160a01b0382166119f35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a81565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111611ab65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a81565b6001600160a01b0383166000908152601e602052604090205460ff16158015611af857506001600160a01b0382166000908152601e602052604090205460ff16155b15611b4c57600754600160b01b900460ff16611b4c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a81565b6007546001600160a01b038481169116148015611b8257506001600160a01b0382166000908152601e602052604090205460ff16155b8015611b985750600754600160a01b900460ff16155b15611c6a57600954811115611bef5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a81565b600b5481611c12846001600160a01b031660009081526020819052604090205490565b611c1c9190612dec565b1115611c6a5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a81565b6007546001600160a01b03848116911614801590611ca157506001600160a01b0382166000908152601e602052604090205460ff16155b8015611cc657506001600160a01b0383166000908152601e602052604090205460ff16155b8015611cdc5750600754600160a01b900460ff16155b15611e5557600a54811115611d335760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a81565b6007546001600160a01b03838116911614611dc357600b5481611d6b846001600160a01b031660009081526020819052604090205490565b611d759190612dec565b1115611dc35760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a81565b60205460ff1615611e55576001600160a01b0383166000908152601f6020526040812054611df19042612dd5565b9050602154811015611e385760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a81565b506001600160a01b0383166000908152601f602052604090204290555b6000806000611e8c6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601e602052604081205460ff16158015611ece57506001600160a01b0387166000908152601e602052604090205460ff16155b8015611ee85750600d54600c54611ee59190612dec565b43105b600754909150600160a01b900460ff1680611f1b57506001600160a01b0388166000908152601e602052604090205460ff165b80611f3e57506001600160a01b0387166000908152601e602052604090205460ff165b15611f4c57600092506121ac565b6007546001600160a01b038881169116148015611f67575080155b15612123576001600160a01b0388166000908152601d6020526040902054156120a757601c54601b54601a54601954601854600094939291611fa891612dec565b611fb29190612dec565b611fbc9190612dec565b611fc69190612dec565b6001600160a01b038a166000908152601d602052604081205491925090611fee90600a612ef7565b90506040518060a00160405280838360186000015461200d9190612ef7565b6120179190612f16565b8152602001838360186001015461202e9190612ef7565b6120389190612f16565b8152602001838360186002015461204f9190612ef7565b6120599190612f16565b815260200183836018600301546120709190612ef7565b61207a9190612f16565b815260200183836018600401546120919190612ef7565b61209b9190612f16565b815250935050506120db565b6040805160a08101825260185481526019546020820152601a5491810191909152601b546060820152601c54608082015291505b608082015160608301516040840151845160208601516120fb9190612dec565b6121059190612dec565b61210f9190612dec565b6121199190612dec565b94508493506121ac565b8061219d576017546016546015546013546014546121419190612dec565b61214b9190612dec565b6121559190612dec565b61215f9190612dec565b6040805160a08101825260135481526014546020820152601554918101919091526016546060820152601754608082015290955085945091506121ac565b80156121ac57600e5494508493505b6103e86121b98588612ef7565b6121c39190612f16565b600754909350600160a81b900460ff1680156121ed57506007546001600160a01b03898116911614155b156121fc576121fc85836122a0565b612210888861220b868a612dd5565b612495565b82156122445784156122445760006103e861222b8789612ef7565b6122359190612f16565b9050612242893083612495565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c52576007805460ff60a01b1916600160a01b179055816122ce57612484565b30600090815260208190526040902054600854811061248257600160085411156122f757506008545b6000612304846002612ef7565b90506000818460200151846123199190612ef7565b6123239190612f16565b905060006123318285612dd5565b90504761233d8261266d565b60006123498247612dd5565b9050600087602001518661235d9190612dd5565b6123679083612f16565b9050600088602001518261237b9190612ef7565b9050801561238d5761238d86826127d6565b885160009061239d846002612ef7565b6123a79190612ef7565b905080156123c557600f546123c5906001600160a01b031682612890565b60408a01516000906123d8856002612ef7565b6123e29190612ef7565b9050801561240057601254612400906001600160a01b031682612890565b60608b0151600090612413866002612ef7565b61241d9190612ef7565b9050801561243b5760105461243b906001600160a01b031682612890565b60808c015160009061244e876002612ef7565b6124589190612ef7565b9050801561247657601154612476906001600160a01b031682612890565b50505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166124f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a81565b6001600160a01b03821661255b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a81565b6001600160a01b038316600090815260208190526040902054818110156125d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a81565b6125dd8282612dd5565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290612613908490612dec565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161265f91815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126a2576126a2612d4c565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156126f657600080fd5b505afa15801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190612f55565b8160018151811061274157612741612d4c565b6001600160a01b0392831660209182029290920101526006546127679130911684611930565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906127a0908590600090869030904290600401612f72565b600060405180830381600087803b1580156127ba57600080fd5b505af11580156127ce573d6000803e3d6000fd5b505050505050565b6006546127ee9030906001600160a01b031684611930565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561285757600080fd5b505af115801561286b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f6f9190612fe3565b804710156128e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a81565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461292d576040519150601f19603f3d011682016040523d82523d6000602084013e612932565b606091505b5050905080610af15760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a81565b600060208083528351808285015260005b818110156129d6578581018301518582016040015282016129ba565b818111156129e8576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146118ac57600080fd5b8035612a1e816129fe565b919050565b60008060408385031215612a3657600080fd5b8235612a41816129fe565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146118ac57600080fd5b8035612a1e81612a65565b60008060408385031215612a9157600080fd5b823567ffffffffffffffff80821115612aa957600080fd5b818501915085601f830112612abd57600080fd5b8135602082821115612ad157612ad1612a4f565b8160051b604051601f19603f83011681018181108682111715612af657612af6612a4f565b604052928352818301935084810182019289841115612b1457600080fd5b948201945b83861015612b3957612b2a86612a13565b85529482019493820193612b19565b9650612b489050878201612a73565b9450505050509250929050565b600060208284031215612b6757600080fd5b8135612b7281612a65565b9392505050565b600060208284031215612b8b57600080fd5b8135612b72816129fe565b600080600060608486031215612bab57600080fd5b8335612bb6816129fe565b92506020840135612bc6816129fe565b929592945050506040919091013590565b60008060408385031215612bea57600080fd5b8235612bf5816129fe565b91506020830135612c0581612a65565b809150509250929050565b600060208284031215612c2257600080fd5b5035919050565b600080600080600060a08688031215612c4157600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612c7757600080fd5b8235612c82816129fe565b91506020830135612c05816129fe565b600080600060608486031215612ca757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612cd157600080fd5b8235612a4181612a65565b600181811c90821680612cf057607f821691505b60208210811415612d1157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612d8c57612d8c612d62565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b600082821015612de757612de7612d62565b500390565b60008219821115612dff57612dff612d62565b500190565b600181815b80851115612e3f578160001904821115612e2557612e25612d62565b80851615612e3257918102915b93841c9390800290612e09565b509250929050565b600082612e5657506001610a42565b81612e6357506000610a42565b8160018114612e795760028114612e8357612e9f565b6001915050610a42565b60ff841115612e9457612e94612d62565b50506001821b610a42565b5060208310610133831016604e8410600b8410161715612ec2575081810a610a42565b612ecc8383612e04565b8060001904821115612ee057612ee0612d62565b029392505050565b6000612b7260ff841683612e47565b6000816000190483118215151615612f1157612f11612d62565b500290565b600082612f3357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612f4a57600080fd5b8151612b7281612a65565b600060208284031215612f6757600080fd5b8151612b72816129fe565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612fc25784516001600160a01b031683529383019391830191600101612f9d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ff857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208462d5e344bdaa3579f55bb6c18e6352417621b5945755347826537951d4aebc64736f6c63430008080033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806385141a7711610190578063dd62ed3e116100dc578063edaa116811610095578063f2fde38b1161006f578063f2fde38b1461091e578063f887ea401461093e578063fbe6324e1461095e578063ffa664f61461097f57600080fd5b8063edaa1168146108c4578063ee36e359146108e4578063f186a68c146108fe57600080fd5b8063dd62ed3e146107c7578063dde993f41461080d578063ddf10b7f1461082d578063e0f3ccf51461085d578063e1b450ad14610884578063e517f2b9146108a457600080fd5b80639af1d35a11610149578063a9059cbb11610123578063a9059cbb14610751578063aacebbe314610771578063c1cf53c414610791578063d2ce0db2146107b157600080fd5b80639af1d35a146106c2578063a457c2d714610711578063a8aa1b311461073157600080fd5b806385141a77146106245780638a8c523c1461063a5780638cd4426d1461064f5780638da5cb5b1461066f5780638ea5220f1461068d57806395d89b41146106ad57600080fd5b8063395093511161024f578063652e2f041161020857806370a08231116101e257806370a0823114610599578063715018a6146105cf57806375f0a874146105e457806384ded6c71461060457600080fd5b8063652e2f041461055757806366a88d961461056d5780636aa5b37f1461058357600080fd5b806339509351146104715780633fa1410f1461049157806342b6fa11146104be578063435263ef146104de57806347a28b79146105165780634ada218b1461053657600080fd5b80631816467f116102a15780631816467f146103ca57806320800a00146103ea57806323b872dd146103ff578063274a533c1461041f578063313ce56714610435578063355496ca1461045157600080fd5b806306fdde03146102f4578063095ea7b31461031f5780630e375a5c1461034f5780631340538f146103715780631675d8021461039157806318160ddd146103b557600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961099f565b60405161031691906129a9565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612a23565b610a31565b6040519015158152602001610316565b34801561035b57600080fd5b5061036f61036a366004612a7e565b610a48565b005b34801561037d57600080fd5b5061036f61038c366004612b55565b610af6565b34801561039d57600080fd5b506103a760085481565b604051908152602001610316565b3480156103c157600080fd5b506002546103a7565b3480156103d657600080fd5b5061036f6103e5366004612b79565b610b4d565b3480156103f657600080fd5b5061036f610bce565b34801561040b57600080fd5b5061033f61041a366004612b96565b610c56565b34801561042b57600080fd5b506103a7600c5481565b34801561044157600080fd5b5060405160048152602001610316565b34801561045d57600080fd5b5061036f61046c366004612bd7565b610d07565b34801561047d57600080fd5b5061033f61048c366004612a23565b610d6b565b34801561049d57600080fd5b506103a76104ac366004612b79565b601d6020526000908152604090205481565b3480156104ca57600080fd5b5061036f6104d9366004612c10565b610da2565b3480156104ea57600080fd5b506012546104fe906001600160a01b031681565b6040516001600160a01b039091168152602001610316565b34801561052257600080fd5b5061036f610531366004612c29565b610e6f565b34801561054257600080fd5b5060075461033f90600160b01b900460ff1681565b34801561056357600080fd5b506103a7600a5481565b34801561057957600080fd5b506103a7600b5481565b34801561058f57600080fd5b506103a760095481565b3480156105a557600080fd5b506103a76105b4366004612b79565b6001600160a01b031660009081526020819052604090205490565b3480156105db57600080fd5b5061036f610f76565b3480156105f057600080fd5b50600f546104fe906001600160a01b031681565b34801561061057600080fd5b506011546104fe906001600160a01b031681565b34801561063057600080fd5b506104fe61dead81565b34801561064657600080fd5b5061036f610fbb565b34801561065b57600080fd5b5061036f61066a366004612a23565b611069565b34801561067b57600080fd5b506005546001600160a01b03166104fe565b34801561069957600080fd5b506010546104fe906001600160a01b031681565b3480156106b957600080fd5b506103096111bb565b3480156106ce57600080fd5b506013546014546015546016546017546106e9949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610316565b34801561071d57600080fd5b5061033f61072c366004612a23565b6111ca565b34801561073d57600080fd5b506007546104fe906001600160a01b031681565b34801561075d57600080fd5b5061033f61076c366004612a23565b611265565b34801561077d57600080fd5b5061036f61078c366004612b79565b611272565b34801561079d57600080fd5b5061036f6107ac366004612c29565b6112f3565b3480156107bd57600080fd5b506103a760215481565b3480156107d357600080fd5b506103a76107e2366004612c64565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561081957600080fd5b5061036f610828366004612a23565b61137b565b34801561083957600080fd5b5061033f610848366004612b79565b601e6020526000908152604090205460ff1681565b34801561086957600080fd5b50601854601954601a54601b54601c546106e9949392919085565b34801561089057600080fd5b5061036f61089f366004612c92565b611416565b3480156108b057600080fd5b5061036f6108bf366004612cbe565b6115ca565b3480156108d057600080fd5b5061036f6108df366004612c10565b611680565b3480156108f057600080fd5b5060205461033f9060ff1681565b34801561090a57600080fd5b5061036f610919366004612b79565b611784565b34801561092a57600080fd5b5061036f610939366004612b79565b611805565b34801561094a57600080fd5b506006546104fe906001600160a01b031681565b34801561096a57600080fd5b5060075461033f90600160a81b900460ff1681565b34801561098b57600080fd5b5061036f61099a366004612b79565b6118af565b6060600380546109ae90612cdc565b80601f01602080910402602001604051908101604052809291908181526020018280546109da90612cdc565b8015610a275780601f106109fc57610100808354040283529160200191610a27565b820191906000526020600020905b815481529060010190602001808311610a0a57829003601f168201915b5050505050905090565b6000610a3e338484611930565b5060015b92915050565b33610a5b6005546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b8152600401610a8190612d17565b60405180910390fd5b60005b8251811015610af15781601e6000858481518110610aad57610aad612d4c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ae981612d78565b915050610a8d565b505050565b33610b096005546001600160a01b031690565b6001600160a01b031614610b2f5760405162461bcd60e51b8152600401610a8190612d17565b60078054911515600160a81b0260ff60a81b19909216919091179055565b33610b606005546001600160a01b031690565b6001600160a01b031614610b865760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b038116610bac5760405162461bcd60e51b8152600401610a8190612d93565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b33610be16005546001600160a01b031690565b6001600160a01b031614610c075760405162461bcd60e51b8152600401610a8190612d17565b47610c1a6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610c52573d6000803e3d6000fd5b5050565b6000610c63848484611a54565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610ce85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a81565b610cfc8533610cf78685612dd5565b611930565b506001949350505050565b33610d1a6005546001600160a01b031690565b6001600160a01b031614610d405760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a3e918590610cf7908690612dec565b33610db56005546001600160a01b031690565b6001600160a01b031614610ddb5760405162461bcd60e51b8152600401610a8190612d17565b612710811115610e535760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610a81565b610e5f6004600a612ee8565b610e699082612ef7565b60085550565b33610e826005546001600160a01b031690565b6001600160a01b031614610ea85760405162461bcd60e51b8152600401610a8190612d17565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052601385905560148490556015839055601682905560178190556019600a828486610ef9898b612dec565b610f039190612dec565b610f0d9190612dec565b610f179190612dec565b610f219190612f16565b1115610f6f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a81565b5050505050565b33610f896005546001600160a01b031690565b6001600160a01b031614610faf5760405162461bcd60e51b8152600401610a8190612d17565b610fb9600061224e565b565b33610fce6005546001600160a01b031690565b6001600160a01b031614610ff45760405162461bcd60e51b8152600401610a8190612d17565b600754600160b01b900460ff161561104e5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610a81565b6007805461ffff60a81b191661010160a81b17905543600c55565b3361107c6005546001600160a01b031690565b6001600160a01b0316146110a25760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b03821630141561111a5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610a81565b816001600160a01b031663a9059cbb61113b6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190612f38565b6060600480546109ae90612cdc565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561124c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a81565b61125b3385610cf78685612dd5565b5060019392505050565b6000610a3e338484611a54565b336112856005546001600160a01b031690565b6001600160a01b0316146112ab5760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b0381166112d15760405162461bcd60e51b8152600401610a8190612d93565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b336113066005546001600160a01b031690565b6001600160a01b03161461132c5760405162461bcd60e51b8152600401610a8190612d17565b6040805160a081018252868152602081018690529081018490526060810183905260800181905260188590556019848155601a849055601b839055601c829055600a828486610ef9898b612dec565b3361138e6005546001600160a01b031690565b6001600160a01b0316146113b45760405162461bcd60e51b8152600401610a8190612d17565b60198111156113fa5760405162461bcd60e51b81526020600482015260126024820152714d757374206265203235206f72206c65737360701b6044820152606401610a81565b6001600160a01b039091166000908152601d6020526040902055565b336114296005546001600160a01b031690565b6001600160a01b03161461144f5760405162461bcd60e51b8152600401610a8190612d17565b6127108310156114b15760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610a81565b6127108210156115145760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610a81565b6127108110156115795760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610a81565b6115856004600a612ee8565b61158f9084612ef7565b60095561159e6004600a612ee8565b6115a89083612ef7565b600a5560046115b890600a612ee8565b6115c29082612ef7565b600b55505050565b336115dd6005546001600160a01b031690565b6001600160a01b0316146116035760405162461bcd60e51b8152600401610a8190612d17565b61160e816001612ef7565b6021556020805460ff191683151517905561012c811115610c525760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b6064820152608401610a81565b336116936005546001600160a01b031690565b6001600160a01b0316146116b95760405162461bcd60e51b8152600401610a8190612d17565b600754600160b01b900460ff16156117215760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610a81565b6005811061177f5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610a81565b600d55565b336117976005546001600160a01b031690565b6001600160a01b0316146117bd5760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b0381166117e35760405162461bcd60e51b8152600401610a8190612d93565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b336118186005546001600160a01b031690565b6001600160a01b03161461183e5760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b0381166118a35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a81565b6118ac8161224e565b50565b336118c26005546001600160a01b031690565b6001600160a01b0316146118e85760405162461bcd60e51b8152600401610a8190612d17565b6001600160a01b03811661190e5760405162461bcd60e51b8152600401610a8190612d93565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166119925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a81565b6001600160a01b0382166119f35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a81565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111611ab65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a81565b6001600160a01b0383166000908152601e602052604090205460ff16158015611af857506001600160a01b0382166000908152601e602052604090205460ff16155b15611b4c57600754600160b01b900460ff16611b4c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a81565b6007546001600160a01b038481169116148015611b8257506001600160a01b0382166000908152601e602052604090205460ff16155b8015611b985750600754600160a01b900460ff16155b15611c6a57600954811115611bef5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a81565b600b5481611c12846001600160a01b031660009081526020819052604090205490565b611c1c9190612dec565b1115611c6a5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a81565b6007546001600160a01b03848116911614801590611ca157506001600160a01b0382166000908152601e602052604090205460ff16155b8015611cc657506001600160a01b0383166000908152601e602052604090205460ff16155b8015611cdc5750600754600160a01b900460ff16155b15611e5557600a54811115611d335760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a81565b6007546001600160a01b03838116911614611dc357600b5481611d6b846001600160a01b031660009081526020819052604090205490565b611d759190612dec565b1115611dc35760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a81565b60205460ff1615611e55576001600160a01b0383166000908152601f6020526040812054611df19042612dd5565b9050602154811015611e385760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a81565b506001600160a01b0383166000908152601f602052604090204290555b6000806000611e8c6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601e602052604081205460ff16158015611ece57506001600160a01b0387166000908152601e602052604090205460ff16155b8015611ee85750600d54600c54611ee59190612dec565b43105b600754909150600160a01b900460ff1680611f1b57506001600160a01b0388166000908152601e602052604090205460ff165b80611f3e57506001600160a01b0387166000908152601e602052604090205460ff165b15611f4c57600092506121ac565b6007546001600160a01b038881169116148015611f67575080155b15612123576001600160a01b0388166000908152601d6020526040902054156120a757601c54601b54601a54601954601854600094939291611fa891612dec565b611fb29190612dec565b611fbc9190612dec565b611fc69190612dec565b6001600160a01b038a166000908152601d602052604081205491925090611fee90600a612ef7565b90506040518060a00160405280838360186000015461200d9190612ef7565b6120179190612f16565b8152602001838360186001015461202e9190612ef7565b6120389190612f16565b8152602001838360186002015461204f9190612ef7565b6120599190612f16565b815260200183836018600301546120709190612ef7565b61207a9190612f16565b815260200183836018600401546120919190612ef7565b61209b9190612f16565b815250935050506120db565b6040805160a08101825260185481526019546020820152601a5491810191909152601b546060820152601c54608082015291505b608082015160608301516040840151845160208601516120fb9190612dec565b6121059190612dec565b61210f9190612dec565b6121199190612dec565b94508493506121ac565b8061219d576017546016546015546013546014546121419190612dec565b61214b9190612dec565b6121559190612dec565b61215f9190612dec565b6040805160a08101825260135481526014546020820152601554918101919091526016546060820152601754608082015290955085945091506121ac565b80156121ac57600e5494508493505b6103e86121b98588612ef7565b6121c39190612f16565b600754909350600160a81b900460ff1680156121ed57506007546001600160a01b03898116911614155b156121fc576121fc85836122a0565b612210888861220b868a612dd5565b612495565b82156122445784156122445760006103e861222b8789612ef7565b6122359190612f16565b9050612242893083612495565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c52576007805460ff60a01b1916600160a01b179055816122ce57612484565b30600090815260208190526040902054600854811061248257600160085411156122f757506008545b6000612304846002612ef7565b90506000818460200151846123199190612ef7565b6123239190612f16565b905060006123318285612dd5565b90504761233d8261266d565b60006123498247612dd5565b9050600087602001518661235d9190612dd5565b6123679083612f16565b9050600088602001518261237b9190612ef7565b9050801561238d5761238d86826127d6565b885160009061239d846002612ef7565b6123a79190612ef7565b905080156123c557600f546123c5906001600160a01b031682612890565b60408a01516000906123d8856002612ef7565b6123e29190612ef7565b9050801561240057601254612400906001600160a01b031682612890565b60608b0151600090612413866002612ef7565b61241d9190612ef7565b9050801561243b5760105461243b906001600160a01b031682612890565b60808c015160009061244e876002612ef7565b6124589190612ef7565b9050801561247657601154612476906001600160a01b031682612890565b50505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166124f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a81565b6001600160a01b03821661255b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a81565b6001600160a01b038316600090815260208190526040902054818110156125d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a81565b6125dd8282612dd5565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290612613908490612dec565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161265f91815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126a2576126a2612d4c565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156126f657600080fd5b505afa15801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190612f55565b8160018151811061274157612741612d4c565b6001600160a01b0392831660209182029290920101526006546127679130911684611930565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906127a0908590600090869030904290600401612f72565b600060405180830381600087803b1580156127ba57600080fd5b505af11580156127ce573d6000803e3d6000fd5b505050505050565b6006546127ee9030906001600160a01b031684611930565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561285757600080fd5b505af115801561286b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f6f9190612fe3565b804710156128e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a81565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461292d576040519150601f19603f3d011682016040523d82523d6000602084013e612932565b606091505b5050905080610af15760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a81565b600060208083528351808285015260005b818110156129d6578581018301518582016040015282016129ba565b818111156129e8576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146118ac57600080fd5b8035612a1e816129fe565b919050565b60008060408385031215612a3657600080fd5b8235612a41816129fe565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146118ac57600080fd5b8035612a1e81612a65565b60008060408385031215612a9157600080fd5b823567ffffffffffffffff80821115612aa957600080fd5b818501915085601f830112612abd57600080fd5b8135602082821115612ad157612ad1612a4f565b8160051b604051601f19603f83011681018181108682111715612af657612af6612a4f565b604052928352818301935084810182019289841115612b1457600080fd5b948201945b83861015612b3957612b2a86612a13565b85529482019493820193612b19565b9650612b489050878201612a73565b9450505050509250929050565b600060208284031215612b6757600080fd5b8135612b7281612a65565b9392505050565b600060208284031215612b8b57600080fd5b8135612b72816129fe565b600080600060608486031215612bab57600080fd5b8335612bb6816129fe565b92506020840135612bc6816129fe565b929592945050506040919091013590565b60008060408385031215612bea57600080fd5b8235612bf5816129fe565b91506020830135612c0581612a65565b809150509250929050565b600060208284031215612c2257600080fd5b5035919050565b600080600080600060a08688031215612c4157600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612c7757600080fd5b8235612c82816129fe565b91506020830135612c05816129fe565b600080600060608486031215612ca757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612cd157600080fd5b8235612a4181612a65565b600181811c90821680612cf057607f821691505b60208210811415612d1157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612d8c57612d8c612d62565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b600082821015612de757612de7612d62565b500390565b60008219821115612dff57612dff612d62565b500190565b600181815b80851115612e3f578160001904821115612e2557612e25612d62565b80851615612e3257918102915b93841c9390800290612e09565b509250929050565b600082612e5657506001610a42565b81612e6357506000610a42565b8160018114612e795760028114612e8357612e9f565b6001915050610a42565b60ff841115612e9457612e94612d62565b50506001821b610a42565b5060208310610133831016604e8410600b8410161715612ec2575081810a610a42565b612ecc8383612e04565b8060001904821115612ee057612ee0612d62565b029392505050565b6000612b7260ff841683612e47565b6000816000190483118215151615612f1157612f11612d62565b500290565b600082612f3357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612f4a57600080fd5b8151612b7281612a65565b600060208284031215612f6757600080fd5b8151612b72816129fe565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612fc25784516001600160a01b031683529383019391830191600101612f9d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ff857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208462d5e344bdaa3579f55bb6c18e6352417621b5945755347826537951d4aebc64736f6c63430008080033

Deployed Bytecode Sourcemap

7404:14599:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2913:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:184;;;;;;;;;;-1:-1:-1;9720:184:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;9720:184:0;1211:187:1;20493:228:0;;;;;;;;;;-1:-1:-1;20493:228:0;;;;;:::i;:::-;;:::i;:::-;;17589:108;;;;;;;;;;-1:-1:-1;17589:108:0;;;;;:::i;:::-;;:::i;7666:54::-;;;;;;;;;;;;;;;;;;;3379:25:1;;;3367:2;3352:18;7666:54:0;3233:177:1;:108:0;;;;;;;;;;-1:-1:-1;3321:12:0;;3233:108;;19744:184;;;;;;;;;;-1:-1:-1;19744:184:0;;;;;:::i;:::-;;:::i;21515:165::-;;;;;;;;;;;;;:::i;9912:479::-;;;;;;;;;;-1:-1:-1;9912:479:0;;;;;:::i;:::-;;:::i;7878:28::-;;;;;;;;;;;;;;;;3133:92;;;;;;;;;;-1:-1:-1;3133:92:0;;3216:1;4270:36:1;;4258:2;4243:18;3133:92:0;4128:184:1;20364:121:0;;;;;;;;;;-1:-1:-1;20364:121:0;;;;;:::i;:::-;;:::i;10399:287::-;;;;;;;;;;-1:-1:-1;10399:287:0;;;;;:::i;:::-;;:::i;8650:42::-;;;;;;;;;;-1:-1:-1;8650:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;17705:287;;;;;;;;;;-1:-1:-1;17705:287:0;;;;;:::i;:::-;;:::i;8220:75::-;;;;;;;;;;-1:-1:-1;8220:75:0;;;;-1:-1:-1;;;;;8220:75:0;;;;;;-1:-1:-1;;;;;5053:32:1;;;5035:51;;5023:2;5008:18;8220:75:0;4889:203:1;18000:413:0;;;;;;;;;;-1:-1:-1;18000:413:0;;;;;:::i;:::-;;:::i;7625:34::-;;;;;;;;;;-1:-1:-1;7625:34:0;;;;-1:-1:-1;;;7625:34:0;;;;;;7776:43;;;;;;;;;;;;;;;;7826:45;;;;;;;;;;;;;;;;7727:42;;;;;;;;;;;;;;;;3349:143;;;;;;;;;;-1:-1:-1;3349:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;3466:18:0;3439:7;3466:18;;;;;;;;;;;;3349:143;1026:94;;;;;;;;;;;;;:::i;7985:75::-;;;;;;;;;;-1:-1:-1;7985:75:0;;;;-1:-1:-1;;;;;7985:75:0;;;8143:70;;;;;;;;;;-1:-1:-1;8143:70:0;;;;-1:-1:-1;;;;;8143:70:0;;;8302:88;;;;;;;;;;;;8348:42;8302:88;;18847:222;;;;;;;;;;;;;:::i;21688:275::-;;;;;;;;;;-1:-1:-1;21688:275:0;;;;;:::i;:::-;;:::i;805:87::-;;;;;;;;;;-1:-1:-1;878:6:0;;-1:-1:-1;;;;;878:6:0;805:87;;8067:69;;;;;;;;;;-1:-1:-1;8067:69:0;;;;-1:-1:-1;;;;;8067:69:0;;;3021:104;;;;;;;;;;;;;:::i;8556:38::-;;;;;;;;;;-1:-1:-1;8556:38:0;;;;;;;;;;;;;;;;;;;;;;5815:25:1;;;5871:2;5856:18;;5849:34;;;;5899:18;;;5892:34;;;;5957:2;5942:18;;5935:34;6000:3;5985:19;;5978:35;5802:3;5787:19;8556:38:0;5556:463:1;10694:436:0;;;;;;;;;;-1:-1:-1;10694:436:0;;;;;:::i;:::-;;:::i;7516:19::-;;;;;;;;;;-1:-1:-1;7516:19:0;;;;-1:-1:-1;;;;;7516:19:0;;;11138:190;;;;;;;;;;-1:-1:-1;11138:190:0;;;;;:::i;:::-;;:::i;19336:196::-;;;;;;;;;;-1:-1:-1;19336:196:0;;;;;:::i;:::-;;:::i;18421:418::-;;;;;;;;;;-1:-1:-1;18421:418:0;;;;;:::i;:::-;;:::i;8841:39::-;;;;;;;;;;;;;;;;3706:176;;;;;;;;;;-1:-1:-1;3706:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;3847:18:0;;;3820:7;3847:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3706:176;20729:237;;;;;;;;;;-1:-1:-1;20729:237:0;;;;;:::i;:::-;;:::i;8699:42::-;;;;;;;;;;-1:-1:-1;8699:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8601;;;;;;;;;;-1:-1:-1;8601:42:0;;;;;;;;;;;;;;;;;;20974:533;;;;;;;;;;-1:-1:-1;20974:533:0;;;;;:::i;:::-;;:::i;20130:226::-;;;;;;;;;;-1:-1:-1;20130:226:0;;;;;:::i;:::-;;:::i;19077:251::-;;;;;;;;;;-1:-1:-1;19077:251:0;;;;;:::i;:::-;;:::i;8800:34::-;;;;;;;;;;-1:-1:-1;8800:34:0;;;;;;;;19540:196;;;;;;;;;;-1:-1:-1;19540:196:0;;;;;:::i;:::-;;:::i;1128:229::-;;;;;;;;;;-1:-1:-1;1128:229:0;;;;;:::i;:::-;;:::i;7488:21::-;;;;;;;;;;-1:-1:-1;7488:21:0;;;;-1:-1:-1;;;;;7488:21:0;;;7580:38;;;;;;;;;;-1:-1:-1;7580:38:0;;;;-1:-1:-1;;;7580:38:0;;;;;;19936:186;;;;;;;;;;-1:-1:-1;19936:186:0;;;;;:::i;:::-;;:::i;2913:100::-;2967:13;3000:5;2993:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2913:100;:::o;9720:184::-;9820:4;9837:37;9846:10;9858:7;9867:6;9837:8;:37::i;:::-;-1:-1:-1;9892:4:0;9720:184;;;;;:::o;20493:228::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;;;;;;;;;20615:9:::1;20610:104;20634:8;:15;20630:1;:19;20610:104;;;20697:5;20671:10;:23;20682:8;20691:1;20682:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20671:23:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20671:23:0;:31;;-1:-1:-1;;20671:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20651:3;::::1;::::0;::::1;:::i;:::-;;;;20610:104;;;;20493:228:::0;;:::o;17589:108::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;17663:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17663:26:0::1;-1:-1:-1::0;;;;17663:26:0;;::::1;::::0;;;::::1;::::0;;17589:108::o;19744:184::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19826:23:0;::::1;19818:70;;;;-1:-1:-1::0;;;19818:70:0::1;;;;;;;:::i;:::-;19899:9;:21:::0;;-1:-1:-1;;;;;;19899:21:0::1;-1:-1:-1::0;;;;;19899:21:0;;;::::1;::::0;;;::::1;::::0;;19744:184::o;21515:165::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;21595:21:::1;21635:7;878:6:::0;;-1:-1:-1;;;;;878:6:0;;805:87;21635:7:::1;-1:-1:-1::0;;;;;21627:25:0::1;:45;21653:18;21627:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21555:125;21515:165::o:0;9912:479::-;10044:4;10061:36;10071:6;10079:9;10090:6;10061:9;:36::i;:::-;-1:-1:-1;;;;;10135:19:0;;10108:24;10135:19;;;:11;:19;;;;;;;;10155:10;10135:31;;;;;;;;10199:26;;;;10177:116;;;;-1:-1:-1;;;10177:116:0;;9030:2:1;10177:116:0;;;9012:21:1;9069:2;9049:18;;;9042:30;9108:34;9088:18;;;9081:62;-1:-1:-1;;;9159:18:1;;;9152:38;9207:19;;10177:116:0;8828:404:1;10177:116:0;10304:55;10313:6;10321:10;10333:25;10352:6;10333:16;:25;:::i;:::-;10304:8;:55::i;:::-;-1:-1:-1;10379:4:0;;9912:479;-1:-1:-1;;;;9912:479:0:o;20364:121::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20449:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:28;;-1:-1:-1;;20449:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20364:121::o;10399:287::-;10553:10;10513:4;10600:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10600:32:0;;;;;;;;;;10513:4;;10530:126;;10578:7;;10600:45;;10635:10;;10600:45;:::i;17705:287::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;17825:3:::1;17811:10;:17;;17789:129;;;::::0;-1:-1:-1;;;17789:129:0;;9702:2:1;17789:129:0::1;::::0;::::1;9684:21:1::0;9741:2;9721:18;;;9714:30;9780:34;9760:18;;;9753:62;9851:32;9831:18;;;9824:60;9901:19;;17789:129:0::1;9500:426:1::0;17789:129:0::1;17968:16;3216:1:::0;17968:2:::1;:16;:::i;:::-;17955:29;::::0;:10;:29:::1;:::i;:::-;17929:23;:55:::0;-1:-1:-1;17705:287:0:o;18000:413::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;18198:53:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;18191:4:::1;:60:::0;;;;;;;;;;;;;;;;;;;18346:2:::1;18340;18245:5:::0;18239:4;18227:10;18285:23:::1;18215:10:::0;18203;18285:23:::1;:::i;:::-;:36;;;;:::i;:::-;:43;;;;:::i;:::-;:51;;;;:::i;:::-;18284:58;;;;:::i;:::-;:64;;18262:143;;;::::0;-1:-1:-1;;;18262:143:0;;11911:2:1;18262:143:0::1;::::0;::::1;11893:21:1::0;11950:2;11930:18;;;11923:30;11989:31;11969:18;;;11962:59;12038:18;;18262:143:0::1;11709:353:1::0;18262:143:0::1;18000:413:::0;;;;;:::o;1026:94::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;1091:21:::1;1109:1;1091:9;:21::i;:::-;1026:94::o:0;18847:222::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;18911:14:::1;::::0;-1:-1:-1;;;18911:14:0;::::1;;;18910:15;18902:52;;;::::0;-1:-1:-1;;;18902:52:0;;12269:2:1;18902:52:0::1;::::0;::::1;12251:21:1::0;12308:2;12288:18;;;12281:30;12347:26;12327:18;;;12320:54;12391:18;;18902:52:0::1;12067:348:1::0;18902:52:0::1;18965:14;:21:::0;;-1:-1:-1;;;;18997:25:0;-1:-1:-1;;;18997:25:0;;;19049:12:::1;19033:13;:28:::0;18847:222::o;21688:275::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21795:25:0;::::1;21815:4;21795:25;;21773:129;;;::::0;-1:-1:-1;;;21773:129:0;;12622:2:1;21773:129:0::1;::::0;::::1;12604:21:1::0;12661:2;12641:18;;;12634:30;12700:34;12680:18;;;12673:62;-1:-1:-1;;;12751:18:1;;;12744:52;12813:19;;21773:129:0::1;12420:418:1::0;21773:129:0::1;21920:8;-1:-1:-1::0;;;;;21913:25:0::1;;21939:7;878:6:::0;;-1:-1:-1;;;;;878:6:0;;805:87;21939:7:::1;21913:42;::::0;-1:-1:-1;;;;;;21913:42:0::1;::::0;;;;;;-1:-1:-1;;;;;13035:32:1;;;21913:42:0::1;::::0;::::1;13017:51:1::0;13084:18;;;13077:34;;;12990:18;;21913:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3021:104::-:0;3077:13;3110:7;3103:14;;;;;:::i;10694:436::-;10869:10;10813:4;10857:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10857:32:0;;;;;;;;;;10922:35;;;;10900:122;;;;-1:-1:-1;;;10900:122:0;;13574:2:1;10900:122:0;;;13556:21:1;13613:2;13593:18;;;13586:30;13652:34;13632:18;;;13625:62;-1:-1:-1;;;13703:18:1;;;13696:35;13748:19;;10900:122:0;13372:401:1;10900:122:0;11033:65;11042:10;11054:7;11063:34;11082:15;11063:16;:34;:::i;11033:65::-;-1:-1:-1;11118:4:0;;10694:436;-1:-1:-1;;;10694:436:0:o;11138:190::-;11241:4;11258:40;11268:10;11280:9;11291:6;11258:9;:40::i;19336:196::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19424:23:0;::::1;19416:70;;;;-1:-1:-1::0;;;19416:70:0::1;;;;;;;:::i;:::-;19497:15;:27:::0;;-1:-1:-1;;;;;;19497:27:0::1;-1:-1:-1::0;;;;;19497:27:0;;;::::1;::::0;;;::::1;::::0;;19336:196::o;18421:418::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;18624:53:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;18613:8:::1;:64:::0;;;;;;;;;;;;;;;;;;;18766:2:::1;18671:5:::0;18665:4;18653:10;18711:23:::1;18641:10:::0;18629;18711:23:::1;:::i;20729:237::-:0;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;20873:2:::1;20863:6;:12;;20841:80;;;::::0;-1:-1:-1;;;20841:80:0;;13980:2:1;20841:80:0::1;::::0;::::1;13962:21:1::0;14019:2;13999:18;;;13992:30;-1:-1:-1;;;14038:18:1;;;14031:48;14096:18;;20841:80:0::1;13778:342:1::0;20841:80:0::1;-1:-1:-1::0;;;;;20932:17:0;;::::1;;::::0;;;:7:::1;:17;::::0;;;;:26;20729:237::o;20974:533::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;21134:3:::1;21124:6;:13;;21116:65;;;::::0;-1:-1:-1;;;21116:65:0;;14327:2:1;21116:65:0::1;::::0;::::1;14309:21:1::0;14366:2;14346:18;;;14339:30;14405:34;14385:18;;;14378:62;-1:-1:-1;;;14456:18:1;;;14449:37;14503:19;;21116:65:0::1;14125:403:1::0;21116:65:0::1;21211:3;21200:7;:14;;21192:67;;;::::0;-1:-1:-1;;;21192:67:0;;14735:2:1;21192:67:0::1;::::0;::::1;14717:21:1::0;14774:2;14754:18;;;14747:30;14813:34;14793:18;;;14786:62;-1:-1:-1;;;14864:18:1;;;14857:38;14912:19;;21192:67:0::1;14533:404:1::0;21192:67:0::1;21291:3;21278:9;:16;;21270:71;;;::::0;-1:-1:-1;;;21270:71:0;;15144:2:1;21270:71:0::1;::::0;::::1;15126:21:1::0;15183:2;15163:18;;;15156:30;15222:34;15202:18;;;15195:62;-1:-1:-1;;;15273:18:1;;;15266:40;15323:19;;21270:71:0::1;14942:406:1::0;21270:71:0::1;21375:16;3216:1:::0;21375:2:::1;:16;:::i;:::-;21366:25;::::0;:6;:25:::1;:::i;:::-;21352:11;:39:::0;21427:16:::1;3216:1:::0;21427:2:::1;:16;:::i;:::-;21417:26;::::0;:7;:26:::1;:::i;:::-;21402:12;:41:::0;3216:1;21483:16:::1;::::0;:2:::1;:16;:::i;:::-;21471:28;::::0;:9;:28:::1;:::i;:::-;21454:14;:45:::0;-1:-1:-1;;;20974:533:0:o;20130:226::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;20225:16:::1;:4:::0;20232:9:::1;20225:16;:::i;:::-;20210:12;:31:::0;20252:15:::1;:23:::0;;-1:-1:-1;;20252:23:0::1;::::0;::::1;;;::::0;;20302:3:::1;20294:11:::0;::::1;;20286:62;;;::::0;-1:-1:-1;;;20286:62:0;;15555:2:1;20286:62:0::1;::::0;::::1;15537:21:1::0;15594:2;15574:18;;;15567:30;15633:34;15613:18;;;15606:62;-1:-1:-1;;;15684:18:1;;;15677:36;15730:19;;20286:62:0::1;15353:402:1::0;19077:251:0;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;19159:14:::1;::::0;-1:-1:-1;;;19159:14:0;::::1;;;19158:15;19150:65;;;::::0;-1:-1:-1;;;19150:65:0;;15962:2:1;19150:65:0::1;::::0;::::1;15944:21:1::0;16001:2;15981:18;;;15974:30;16040:34;16020:18;;;16013:62;-1:-1:-1;;;16091:18:1;;;16084:35;16136:19;;19150:65:0::1;15760:401:1::0;19150:65:0::1;19246:1;19234:9;:13;19226:63;;;::::0;-1:-1:-1;;;19226:63:0;;16368:2:1;19226:63:0::1;::::0;::::1;16350:21:1::0;16407:2;16387:18;;;16380:30;16446:34;16426:18;;;16419:62;-1:-1:-1;;;16497:18:1;;;16490:35;16542:19;;19226:63:0::1;16166:401:1::0;19226:63:0::1;19300:8;:20:::0;19077:251::o;19540:196::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19628:23:0;::::1;19620:70;;;;-1:-1:-1::0;;;19620:70:0::1;;;;;;;:::i;:::-;19701:15;:27:::0;;-1:-1:-1;;;;;;19701:27:0::1;-1:-1:-1::0;;;;;19701:27:0;;;::::1;::::0;;;::::1;::::0;;19540:196::o;1128:229::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1231:22:0;::::1;1209:110;;;::::0;-1:-1:-1;;;1209:110:0;;16774:2:1;1209:110:0::1;::::0;::::1;16756:21:1::0;16813:2;16793:18;;;16786:30;16852:34;16832:18;;;16825:62;-1:-1:-1;;;16903:18:1;;;16896:36;16949:19;;1209:110:0::1;16572:402:1::0;1209:110:0::1;1330:19;1340:8;1330:9;:19::i;:::-;1128:229:::0;:::o;19936:186::-;951:10;940:7;878:6;;-1:-1:-1;;;;;878:6:0;;805:87;940:7;-1:-1:-1;;;;;940:21:0;;932:66;;;;-1:-1:-1;;;932:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20019:23:0;::::1;20011:70;;;;-1:-1:-1::0;;;20011:70:0::1;;;;;;;:::i;:::-;20092:10;:22:::0;;-1:-1:-1;;;;;;20092:22:0::1;-1:-1:-1::0;;;;;20092:22:0;;;::::1;::::0;;;::::1;::::0;;19936:186::o;6187:380::-;-1:-1:-1;;;;;6323:19:0;;6315:68;;;;-1:-1:-1;;;6315:68:0;;17181:2:1;6315:68:0;;;17163:21:1;17220:2;17200:18;;;17193:30;17259:34;17239:18;;;17232:62;-1:-1:-1;;;17310:18:1;;;17303:34;17354:19;;6315:68:0;16979:400:1;6315:68:0;-1:-1:-1;;;;;6402:21:0;;6394:68;;;;-1:-1:-1;;;6394:68:0;;17586:2:1;6394:68:0;;;17568:21:1;17625:2;17605:18;;;17598:30;17664:34;17644:18;;;17637:62;-1:-1:-1;;;17715:18:1;;;17708:32;17757:19;;6394:68:0;17384:398:1;6394:68:0;-1:-1:-1;;;;;6475:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6527:32;;3379:25:1;;;6527:32:0;;3352:18:1;6527:32:0;;;;;;;6187:380;;;:::o;11336:3551::-;11486:1;11477:6;:10;11469:64;;;;-1:-1:-1;;;11469:64:0;;17989:2:1;11469:64:0;;;17971:21:1;18028:2;18008:18;;;18001:30;18067:34;18047:18;;;18040:62;-1:-1:-1;;;18118:18:1;;;18111:39;18167:19;;11469:64:0;17787:405:1;11469:64:0;-1:-1:-1;;;;;11549:18:0;;;;;;:10;:18;;;;;;;;11548:19;:45;;;;-1:-1:-1;;;;;;11572:21:0;;;;;;:10;:21;;;;;;;;11571:22;11548:45;11544:124;;;11618:14;;-1:-1:-1;;;11618:14:0;;;;11610:46;;;;-1:-1:-1;;;11610:46:0;;18399:2:1;11610:46:0;;;18381:21:1;18438:2;18418:18;;;18411:30;-1:-1:-1;;;18457:18:1;;;18450:49;18516:18;;11610:46:0;18197:343:1;11610:46:0;11692:4;;-1:-1:-1;;;;;11682:14:0;;;11692:4;;11682:14;:40;;;;-1:-1:-1;;;;;;11701:21:0;;;;;;:10;:21;;;;;;;;11700:22;11682:40;:55;;;;-1:-1:-1;11727:10:0;;-1:-1:-1;;;11727:10:0;;;;11726:11;11682:55;11678:307;;;11772:11;;11762:6;:21;;11754:63;;;;-1:-1:-1;;;11754:63:0;;18747:2:1;11754:63:0;;;18729:21:1;18786:2;18766:18;;;18759:30;18825:31;18805:18;;;18798:59;18874:18;;11754:63:0;18545:353:1;11754:63:0;11891:14;;11881:6;11858:20;11868:9;-1:-1:-1;;;;;3466:18:0;3439:7;3466:18;;;;;;;;;;;;3349:143;11858:20;:29;;;;:::i;:::-;:47;;11832:141;;;;-1:-1:-1;;;11832:141:0;;19105:2:1;11832:141:0;;;19087:21:1;;;19124:18;;;19117:30;19183:34;19163:18;;;19156:62;19235:18;;11832:141:0;18903:356:1;11832:141:0;12023:4;;-1:-1:-1;;;;;12013:14:0;;;12023:4;;12013:14;;;;:53;;-1:-1:-1;;;;;;12045:21:0;;;;;;:10;:21;;;;;;;;12044:22;12013:53;:89;;;;-1:-1:-1;;;;;;12084:18:0;;;;;;:10;:18;;;;;;;;12083:19;12013:89;:117;;;;-1:-1:-1;12120:10:0;;-1:-1:-1;;;12120:10:0;;;;12119:11;12013:117;11995:718;;;12175:12;;12165:6;:22;;12157:65;;;;-1:-1:-1;;;12157:65:0;;19466:2:1;12157:65:0;;;19448:21:1;19505:2;19485:18;;;19478:30;19544:32;19524:18;;;19517:60;19594:18;;12157:65:0;19264:354:1;12157:65:0;12254:4;;-1:-1:-1;;;;;12241:17:0;;;12254:4;;12241:17;12237:211;;12342:14;;12332:6;12309:20;12319:9;-1:-1:-1;;;;;3466:18:0;3439:7;3466:18;;;;;;;;;;;;3349:143;12309:20;:29;;;;:::i;:::-;:47;;12279:153;;;;-1:-1:-1;;;12279:153:0;;19105:2:1;12279:153:0;;;19087:21:1;;;19124:18;;;19117:30;19183:34;19163:18;;;19156:62;19235:18;;12279:153:0;18903:356:1;12279:153:0;12466:15;;;;12462:240;;;-1:-1:-1;;;;;12541:17:0;;12502:18;12541:17;;;:9;:17;;;;;;12523:35;;:15;:35;:::i;:::-;12502:56;;12599:12;;12585:10;:26;;12577:55;;;;-1:-1:-1;;;12577:55:0;;19825:2:1;12577:55:0;;;19807:21:1;19864:2;19844:18;;;19837:30;-1:-1:-1;;;19883:18:1;;;19876:46;19939:18;;12577:55:0;19623:340:1;12577:55:0;-1:-1:-1;;;;;;12651:17:0;;;;;;:9;:17;;;;;12671:15;12651:35;;12462:240;12723:15;12749:14;12774:11;12796:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12796:23:0;-1:-1:-1;;;;;12851:18:0;;12830:17;12851:18;;;:10;:18;;;;;;;;12850:19;:58;;;;-1:-1:-1;;;;;;12887:21:0;;;;;;:10;:21;;;;;;;;12886:22;12850:58;:114;;;;;12956:8;;12940:13;;:24;;;;:::i;:::-;12925:12;:39;12850:114;12979:10;;12830:134;;-1:-1:-1;;;;12979:10:0;;;;;:32;;-1:-1:-1;;;;;;12993:18:0;;;;;;:10;:18;;;;;;;;12979:32;:57;;;-1:-1:-1;;;;;;13015:21:0;;;;;;:10;:21;;;;;;;;12979:57;12975:1496;;;13044:1;13038:7;;12975:1496;;;13078:4;;-1:-1:-1;;;;;13065:17:0;;;13078:4;;13065:17;:34;;;;;13087:12;13086:13;13065:34;13061:1410;;;-1:-1:-1;;;;;13120:15:0;;;;;;:7;:15;;;;;;:20;13116:710;;13339:13;;13303:12;;13261:18;;13219;;13339:8;13177:18;13161:13;;13339;13303:12;13261:18;13177:60;;;:::i;:::-;:102;;;;:::i;:::-;:138;;;;:::i;:::-;:175;;;;:::i;:::-;-1:-1:-1;;;;;13390:15:0;;13373:14;13390:15;;;:7;:15;;;;;;13161:191;;-1:-1:-1;13373:14:0;13390:20;;13408:2;13390:20;:::i;:::-;13373:37;;13445:302;;;;;;;;13502:5;13493:6;13472:8;:18;;;:27;;;;:::i;:::-;:35;;;;:::i;:::-;13445:302;;;;13560:5;13551:6;13530:8;:18;;;:27;;;;:::i;:::-;:35;;;;:::i;:::-;13445:302;;;;13618:5;13609:6;13588:8;:18;;;:27;;;;:::i;:::-;:35;;;;:::i;:::-;13445:302;;;;13670:5;13661:6;13646:8;:12;;;:21;;;;:::i;:::-;:29;;;;:::i;:::-;13445:302;;;;13723:5;13714:6;13698:8;:13;;;:22;;;;:::i;:::-;:30;;;;:::i;:::-;13445:302;;;13431:316;;13142:621;;13116:710;;;13788:22;;;;;;;;13802:8;13788:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13116:710:0;14027:16;;;;13992:15;;;;13951:21;;;;13910;;13869;;;;:62;;13910:21;13869:62;:::i;:::-;:103;;;;:::i;:::-;:138;;;;:::i;:::-;:174;;;;:::i;:::-;13842:201;;14067:7;14058:16;;13061:1410;;;14097:12;14092:379;;14283:9;;14255:8;;14221:14;;14283:4;14187:14;14153;;:48;;14187:14;14153:48;:::i;:::-;:82;;;;:::i;:::-;:110;;;;:::i;:::-;:139;;;;:::i;:::-;14338:18;;;;;;;;14352:4;14338:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14126:166;;-1:-1:-1;14126:166:0;;-1:-1:-1;14338:18:0;-1:-1:-1;14092:379:0;;;14378:12;14374:97;;;14417:9;;;-1:-1:-1;14417:9:0;;-1:-1:-1;14374:97:0;14507:4;14488:15;14497:6;14488;:15;:::i;:::-;14487:24;;;;:::i;:::-;14526:18;;14481:30;;-1:-1:-1;;;;14526:18:0;;;;:36;;;;-1:-1:-1;14558:4:0;;-1:-1:-1;;;;;14548:14:0;;;14558:4;;14548:14;;14526:36;14522:84;;;14577:29;14585:7;14594:11;14577:7;:29::i;:::-;14617:48;14633:6;14641:9;14652:12;14661:3;14652:6;:12;:::i;:::-;14617:15;:48::i;:::-;14680:7;;14676:204;;14708:11;;14704:165;;14740:17;14781:4;14761:16;14770:7;14761:6;:16;:::i;:::-;14760:25;;;;:::i;:::-;14740:45;;14804:49;14820:6;14836:4;14843:9;14804:15;:49::i;:::-;14721:148;14704:165;11458:3429;;;;;11336:3551;;;:::o;1365:173::-;1440:6;;;-1:-1:-1;;;;;1457:17:0;;;-1:-1:-1;;;;;;1457:17:0;;;;;;;1490:40;;1440:6;;;1457:17;1440:6;;1490:40;;1421:16;;1490:40;1410:128;1365:173;:::o;14895:1881::-;8926:10;;-1:-1:-1;;;8926:10:0;;;;8921:110;;8953:10;:17;;-1:-1:-1;;;;8953:17:0;-1:-1:-1;;;8953:17:0;;;15011:12;15007:51:::1;;15040:7;;15007:51;15112:4;15068:23;3466:18:::0;;;;;;;;;;;15152:23:::1;::::0;15133:42;::::1;15129:1640;;15222:1;15196:23;;:27;15192:109;;;-1:-1:-1::0;15262:23:0::1;::::0;15192:109:::1;15315:19;15337:11;:7:::0;15347:1:::1;15337:11;:::i;:::-;15315:33;;15363:32;15456:11;15434:8;:18;;;15399:15;:53;;;;:::i;:::-;15398:69;;;;:::i;:::-;15363:104:::0;-1:-1:-1;15482:14:0::1;15499:42;15363:104:::0;15499:15;:42:::1;:::i;:::-;15482:59:::0;-1:-1:-1;15581:21:0::1;15617:24;15482:59:::0;15617:16:::1;:24::i;:::-;15656:20;15679:38;15703:14:::0;15679:21:::1;:38;:::i;:::-;15656:61;;15732:19;15801:8;:18;;;15787:11;:32;;;;:::i;:::-;15754:66;::::0;:12;:66:::1;:::i;:::-;15732:88;;15835:29;15881:8;:18;;;15867:11;:32;;;;:::i;:::-;15835:64:::0;-1:-1:-1;15918:25:0;;15914:127:::1;;15964:61;15977:24;16003:21;15964:12;:61::i;:::-;16096:18:::0;;16055:20:::1;::::0;16078:15:::1;:11:::0;16092:1:::1;16078:15;:::i;:::-;:36;;;;:::i;:::-;16055:59:::0;-1:-1:-1;16133:16:0;;16129:105:::1;;16178:15;::::0;16170:48:::1;::::0;-1:-1:-1;;;;;16178:15:0::1;16205:12:::0;16170:34:::1;:48::i;:::-;16289:18;::::0;::::1;::::0;16248:20:::1;::::0;16271:15:::1;:11:::0;16285:1:::1;16271:15;:::i;:::-;:36;;;;:::i;:::-;16248:59:::0;-1:-1:-1;16326:16:0;;16322:105:::1;;16371:15;::::0;16363:48:::1;::::0;-1:-1:-1;;;;;16371:15:0::1;16398:12:::0;16363:34:::1;:48::i;:::-;16476:12;::::0;::::1;::::0;16441:14:::1;::::0;16458:15:::1;:11:::0;16472:1:::1;16458:15;:::i;:::-;:30;;;;:::i;:::-;16441:47:::0;-1:-1:-1;16507:10:0;;16503:87:::1;;16546:9;::::0;16538:36:::1;::::0;-1:-1:-1;;;;;16546:9:0::1;16567:6:::0;16538:28:::1;:36::i;:::-;16640:13;::::0;::::1;::::0;16604:15:::1;::::0;16622::::1;:11:::0;16636:1:::1;16622:15;:::i;:::-;:31;;;;:::i;:::-;16604:49:::0;-1:-1:-1;16672:11:0;;16668:90:::1;;16712:10;::::0;16704:38:::1;::::0;-1:-1:-1;;;;;16712:10:0::1;16734:7:::0;16704:29:::1;:38::i;:::-;15177:1592;;;;;;;;;;;15129:1640;14996:1780;8985:1;9001:10:::0;:18;;-1:-1:-1;;;;9001:18:0;;;14895:1881;;:::o;5324:615::-;-1:-1:-1;;;;;5464:20:0;;5456:70;;;;-1:-1:-1;;;5456:70:0;;20170:2:1;5456:70:0;;;20152:21:1;20209:2;20189:18;;;20182:30;20248:34;20228:18;;;20221:62;-1:-1:-1;;;20299:18:1;;;20292:35;20344:19;;5456:70:0;19968:401:1;5456:70:0;-1:-1:-1;;;;;5545:23:0;;5537:71;;;;-1:-1:-1;;;5537:71:0;;20576:2:1;5537:71:0;;;20558:21:1;20615:2;20595:18;;;20588:30;20654:34;20634:18;;;20627:62;-1:-1:-1;;;20705:18:1;;;20698:33;20748:19;;5537:71:0;20374:399:1;5537:71:0;-1:-1:-1;;;;;5645:17:0;;5621:21;5645:17;;;;;;;;;;;5695:23;;;;5673:111;;;;-1:-1:-1;;;5673:111:0;;20980:2:1;5673:111:0;;;20962:21:1;21019:2;20999:18;;;20992:30;21058:34;21038:18;;;21031:62;-1:-1:-1;;;21109:18:1;;;21102:36;21155:19;;5673:111:0;20778:402:1;5673:111:0;5815:22;5831:6;5815:13;:22;:::i;:::-;-1:-1:-1;;;;;5795:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5848:20;;;;;;;;:30;;5872:6;;5795:9;5848:30;;5872:6;;5848:30;:::i;:::-;;;;;;;;5913:9;-1:-1:-1;;;;;5896:35:0;5905:6;-1:-1:-1;;;;;5896:35:0;;5924:6;5896:35;;;;3379:25:1;;3367:2;3352:18;;3233:177;5896:35:0;;;;;;;;5445:494;5324:615;;;:::o;16784:444::-;16874:16;;;16888:1;16874:16;;;;;;;;16850:21;;16874:16;;;;;;;;;;-1:-1:-1;16874:16:0;16850:40;;16919:4;16901;16906:1;16901:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16901:23:0;;;:7;;;;;;;;;;:23;;;;16945:6;;:13;;;-1:-1:-1;;;16945:13:0;;;;:6;;;;;:11;;:13;;;;;16901:7;;16945:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16935:4;16940:1;16935:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16935:23:0;;;:7;;;;;;;;;:23;17001:6;;16969:53;;16986:4;;17001:6;17010:11;16969:8;:53::i;:::-;17033:6;;:187;;-1:-1:-1;;;17033:187:0;;-1:-1:-1;;;;;17033:6:0;;;;:57;;:187;;17105:11;;17033:6;;17147:4;;17174;;17194:15;;17033:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16839:389;16784:444;:::o;17236:345::-;17349:6;;17317:53;;17334:4;;-1:-1:-1;;;;;17349:6:0;17358:11;17317:8;:53::i;:::-;17381:6;;:192;;-1:-1:-1;;;17381:192:0;;17444:4;17381:192;;;22767:34:1;22817:18;;;22810:34;;;17381:6:0;22860:18:1;;;22853:34;;;22903:18;;;22896:34;8348:42:0;22946:19:1;;;22939:44;17547:15:0;22999:19:1;;;22992:35;-1:-1:-1;;;;;17381:6:0;;;;:22;;17411:9;;22701:19:1;;17381:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;166:391::-;295:6;270:21;:31;;248:110;;;;-1:-1:-1;;;248:110:0;;23551:2:1;248:110:0;;;23533:21:1;23590:2;23570:18;;;23563:30;23629:31;23609:18;;;23602:59;23678:18;;248:110:0;23349:353:1;248:110:0;372:12;390:9;-1:-1:-1;;;;;390:14:0;412:6;390:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:52;;;456:7;434:115;;;;-1:-1:-1;;;434:115:0;;24119:2:1;434:115:0;;;24101:21:1;24158:2;24138:18;;;24131:30;24197:34;24177:18;;;24170:62;24268:28;24248:18;;;24241:56;24314:19;;434:115:0;23917:422:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:127::-;1464:10;1459:3;1455:20;1452:1;1445:31;1495:4;1492:1;1485:15;1519:4;1516:1;1509:15;1535:118;1621:5;1614:13;1607:21;1600:5;1597:32;1587:60;;1643:1;1640;1633:12;1658:128;1723:20;;1752:28;1723:20;1752:28;:::i;1791:1191::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1998:9;1985:23;2027:18;2068:2;2060:6;2057:14;2054:34;;;2084:1;2081;2074:12;2054:34;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:55;;2189:1;2186;2179:12;2138:55;2225:2;2212:16;2247:4;2270:2;2266;2263:10;2260:36;;;2276:18;;:::i;:::-;2322:2;2319:1;2315:10;2354:2;2348:9;2417:2;2413:7;2408:2;2404;2400:11;2396:25;2388:6;2384:38;2472:6;2460:10;2457:22;2452:2;2440:10;2437:18;2434:46;2431:72;;;2483:18;;:::i;:::-;2519:2;2512:22;2569:18;;;2603:15;;;;-1:-1:-1;2645:11:1;;;2641:20;;;2673:19;;;2670:39;;;2705:1;2702;2695:12;2670:39;2729:11;;;;2749:148;2765:6;2760:3;2757:15;2749:148;;;2831:23;2850:3;2831:23;:::i;:::-;2819:36;;2782:12;;;;2875;;;;2749:148;;;2916:6;-1:-1:-1;2941:35:1;;-1:-1:-1;2957:18:1;;;2941:35;:::i;:::-;2931:45;;;;;;1791:1191;;;;;:::o;2987:241::-;3043:6;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;3151:9;3138:23;3170:28;3192:5;3170:28;:::i;:::-;3217:5;2987:241;-1:-1:-1;;;2987:241:1:o;3415:247::-;3474:6;3527:2;3515:9;3506:7;3502:23;3498:32;3495:52;;;3543:1;3540;3533:12;3495:52;3582:9;3569:23;3601:31;3626:5;3601:31;:::i;3667:456::-;3744:6;3752;3760;3813:2;3801:9;3792:7;3788:23;3784:32;3781:52;;;3829:1;3826;3819:12;3781:52;3868:9;3855:23;3887:31;3912:5;3887:31;:::i;:::-;3937:5;-1:-1:-1;3994:2:1;3979:18;;3966:32;4007:33;3966:32;4007:33;:::i;:::-;3667:456;;4059:7;;-1:-1:-1;;;4113:2:1;4098:18;;;;4085:32;;3667:456::o;4317:382::-;4382:6;4390;4443:2;4431:9;4422:7;4418:23;4414:32;4411:52;;;4459:1;4456;4449:12;4411:52;4498:9;4485:23;4517:31;4542:5;4517:31;:::i;:::-;4567:5;-1:-1:-1;4624:2:1;4609:18;;4596:32;4637:30;4596:32;4637:30;:::i;:::-;4686:7;4676:17;;;4317:382;;;;;:::o;4704:180::-;4763:6;4816:2;4804:9;4795:7;4791:23;4787:32;4784:52;;;4832:1;4829;4822:12;4784:52;-1:-1:-1;4855:23:1;;4704:180;-1:-1:-1;4704:180:1:o;5097:454::-;5192:6;5200;5208;5216;5224;5277:3;5265:9;5256:7;5252:23;5248:33;5245:53;;;5294:1;5291;5284:12;5245:53;-1:-1:-1;;5317:23:1;;;5387:2;5372:18;;5359:32;;-1:-1:-1;5438:2:1;5423:18;;5410:32;;5489:2;5474:18;;5461:32;;-1:-1:-1;5540:3:1;5525:19;5512:33;;-1:-1:-1;5097:454:1;-1:-1:-1;5097:454:1:o;6024:388::-;6092:6;6100;6153:2;6141:9;6132:7;6128:23;6124:32;6121:52;;;6169:1;6166;6159:12;6121:52;6208:9;6195:23;6227:31;6252:5;6227:31;:::i;:::-;6277:5;-1:-1:-1;6334:2:1;6319:18;;6306:32;6347:33;6306:32;6347:33;:::i;6417:316::-;6494:6;6502;6510;6563:2;6551:9;6542:7;6538:23;6534:32;6531:52;;;6579:1;6576;6569:12;6531:52;-1:-1:-1;;6602:23:1;;;6672:2;6657:18;;6644:32;;-1:-1:-1;6723:2:1;6708:18;;;6695:32;;6417:316;-1:-1:-1;6417:316:1:o;6738:309::-;6803:6;6811;6864:2;6852:9;6843:7;6839:23;6835:32;6832:52;;;6880:1;6877;6870:12;6832:52;6919:9;6906:23;6938:28;6960:5;6938:28;:::i;7275:380::-;7354:1;7350:12;;;;7397;;;7418:61;;7472:4;7464:6;7460:17;7450:27;;7418:61;7525:2;7517:6;7514:14;7494:18;7491:38;7488:161;;;7571:10;7566:3;7562:20;7559:1;7552:31;7606:4;7603:1;7596:15;7634:4;7631:1;7624:15;7488:161;;7275:380;;;:::o;7660:356::-;7862:2;7844:21;;;7881:18;;;7874:30;7940:34;7935:2;7920:18;;7913:62;8007:2;7992:18;;7660:356::o;8021:127::-;8082:10;8077:3;8073:20;8070:1;8063:31;8113:4;8110:1;8103:15;8137:4;8134:1;8127:15;8153:127;8214:10;8209:3;8205:20;8202:1;8195:31;8245:4;8242:1;8235:15;8269:4;8266:1;8259:15;8285:135;8324:3;-1:-1:-1;;8345:17:1;;8342:43;;;8365:18;;:::i;:::-;-1:-1:-1;8412:1:1;8401:13;;8285:135::o;8425:398::-;8627:2;8609:21;;;8666:2;8646:18;;;8639:30;8705:34;8700:2;8685:18;;8678:62;-1:-1:-1;;;8771:2:1;8756:18;;8749:32;8813:3;8798:19;;8425:398::o;9237:125::-;9277:4;9305:1;9302;9299:8;9296:34;;;9310:18;;:::i;:::-;-1:-1:-1;9347:9:1;;9237:125::o;9367:128::-;9407:3;9438:1;9434:6;9431:1;9428:13;9425:39;;;9444:18;;:::i;:::-;-1:-1:-1;9480:9:1;;9367:128::o;9931:422::-;10020:1;10063:5;10020:1;10077:270;10098:7;10088:8;10085:21;10077:270;;;10157:4;10153:1;10149:6;10145:17;10139:4;10136:27;10133:53;;;10166:18;;:::i;:::-;10216:7;10206:8;10202:22;10199:55;;;10236:16;;;;10199:55;10315:22;;;;10275:15;;;;10077:270;;;10081:3;9931:422;;;;;:::o;10358:806::-;10407:5;10437:8;10427:80;;-1:-1:-1;10478:1:1;10492:5;;10427:80;10526:4;10516:76;;-1:-1:-1;10563:1:1;10577:5;;10516:76;10608:4;10626:1;10621:59;;;;10694:1;10689:130;;;;10601:218;;10621:59;10651:1;10642:10;;10665:5;;;10689:130;10726:3;10716:8;10713:17;10710:43;;;10733:18;;:::i;:::-;-1:-1:-1;;10789:1:1;10775:16;;10804:5;;10601:218;;10903:2;10893:8;10890:16;10884:3;10878:4;10875:13;10871:36;10865:2;10855:8;10852:16;10847:2;10841:4;10838:12;10834:35;10831:77;10828:159;;;-1:-1:-1;10940:19:1;;;10972:5;;10828:159;11019:34;11044:8;11038:4;11019:34;:::i;:::-;11089:6;11085:1;11081:6;11077:19;11068:7;11065:32;11062:58;;;11100:18;;:::i;:::-;11138:20;;10358:806;-1:-1:-1;;;10358:806:1:o;11169:140::-;11227:5;11256:47;11297:4;11287:8;11283:19;11277:4;11256:47;:::i;11314:168::-;11354:7;11420:1;11416;11412:6;11408:14;11405:1;11402:21;11397:1;11390:9;11383:17;11379:45;11376:71;;;11427:18;;:::i;:::-;-1:-1:-1;11467:9:1;;11314:168::o;11487:217::-;11527:1;11553;11543:132;;11597:10;11592:3;11588:20;11585:1;11578:31;11632:4;11629:1;11622:15;11660:4;11657:1;11650:15;11543:132;-1:-1:-1;11689:9:1;;11487:217::o;13122:245::-;13189:6;13242:2;13230:9;13221:7;13217:23;13213:32;13210:52;;;13258:1;13255;13248:12;13210:52;13290:9;13284:16;13309:28;13331:5;13309:28;:::i;21185:251::-;21255:6;21308:2;21296:9;21287:7;21283:23;21279:32;21276:52;;;21324:1;21321;21314:12;21276:52;21356:9;21350:16;21375:31;21400:5;21375:31;:::i;21441:980::-;21703:4;21751:3;21740:9;21736:19;21782:6;21771:9;21764:25;21808:2;21846:6;21841:2;21830:9;21826:18;21819:34;21889:3;21884:2;21873:9;21869:18;21862:31;21913:6;21948;21942:13;21979:6;21971;21964:22;22017:3;22006:9;22002:19;21995:26;;22056:2;22048:6;22044:15;22030:29;;22077:1;22087:195;22101:6;22098:1;22095:13;22087:195;;;22166:13;;-1:-1:-1;;;;;22162:39:1;22150:52;;22257:15;;;;22222:12;;;;22198:1;22116:9;22087:195;;;-1:-1:-1;;;;;;;22338:32:1;;;;22333:2;22318:18;;22311:60;-1:-1:-1;;;22402:3:1;22387:19;22380:35;22299:3;21441:980;-1:-1:-1;;;21441:980:1:o;23038:306::-;23126:6;23134;23142;23195:2;23183:9;23174:7;23170:23;23166:32;23163:52;;;23211:1;23208;23201:12;23163:52;23240:9;23234:16;23224:26;;23290:2;23279:9;23275:18;23269:25;23259:35;;23334:2;23323:9;23319:18;23313:25;23303:35;;23038:306;;;;;:::o

Swarm Source

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