ETH Price: $2,289.02 (-3.86%)
Gas: 3.84 Gwei

Token

Poodle Inu (PODO)
 

Overview

Max Total Supply

1,000,000,000 PODO

Holders

177

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,042.250933373365960452 PODO

Value
$0.00
0x1e62a12d4981e428d3f4f28df261fdcb2ce743da
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
PoodleInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-16
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        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 PoodleInu is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool public providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 public tokenLiquidityThreshold = 2_500_000 * 10**18;
    uint256 public maxBuyLimit = 10_000_000 * 10**18;
    uint256 public maxSellLimit = 5_000_000 * 10**18;
    uint256 public maxWalletLimit = 10_000_000 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline;
    uint256 private launchtax;

    address public marketingWallet = 0xd91A7Be2961fEFAc054B343e15824C0491b51796;
    address public devWallet = 0x61A1a09CCE069ec6831837f216E70F4c4d46cb6f;
    address public buybackWallet = 0xc07103dAAC8E318F9Af706B71Bd0A5547ed95B6c;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 buyback;
        uint256 dev;
    }

    Taxes public taxes = Taxes(5, 0, 4, 1);
    Taxes public sellTaxes = Taxes(6, 0, 8, 1);

    mapping(address => bool) public exemptFee;
    mapping(address => bool) public isBlacklisted;
    mapping(address => bool) public allowedTransfer;

    //Anti Dump
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 60 seconds;

    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor(address routerAdd) ERC20("Poodle Inu", "PODO") {
        _tokengeneration(msg.sender, 1e9 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(routerAdd);
        // Create a uniswap pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[buybackWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true;

        allowedTransfer[address(this)] = true;
        allowedTransfer[owner()] = true;
        allowedTransfer[pair] = true;
        allowedTransfer[marketingWallet] = true;
        allowedTransfer[buybackWallet] = true;
        allowedTransfer[devWallet] = true;
        allowedTransfer[deadWallet] = true;
        allowedTransfer[0xD152f549545093347A162Dce210e7293f1452150] = true;
        allowedTransfer[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true;

    }

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

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

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

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), 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");
        require(
            !isBlacklisted[sender] && !isBlacklisted[recipient],
            "You can't transfer tokens"
        );

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex
        ) {
            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;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number <= genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.buyback +                
                sellTaxes.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.buyback +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity to uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

            uint256 buybackAmt = unitBalance * 2 * swapTaxes.buyback;
            if (buybackAmt > 0) {
                payable(buybackWallet).sendValue(buybackAmt);
            }

            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

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

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

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

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function updateTaxes(Taxes memory newTaxes) external onlyOwner {
        taxes = newTaxes;
    }

    function updateSellTaxes(Taxes memory newSellTaxes) external onlyOwner {
        sellTaxes = newSellTaxes;
    }

    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner {
        router = IRouter(newRouter);
        pair = newPair;
    }

    function updateTradingEnabled(
        bool state,
        uint256 _deadline,
        uint256 _launchtax
    ) external onlyOwner {
        deadline = _deadline;
        launchtax = _launchtax;
        tradingEnabled = state;
        providingLiquidity = state;
        if (state == true) genesis_block = block.number;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateBuybackWallet(address newWallet) external onlyOwner {
        buybackWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        devWallet = newWallet;
    }

    function updateCooldown(bool state, uint256 time) external onlyOwner {
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
    }

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

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

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

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

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

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

    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell) external onlyOwner {
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
    }

    function updateMaxWalletlimit(uint256 amount) external onlyOwner {
        maxWalletLimit = amount * 10**decimals();
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(devWallet).transfer(weiAmount);
    }

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

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAdd","type":"address"}],"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":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"bulkAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"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":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateBuybackWallet","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":"updateDevWallet","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":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","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"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"internalType":"struct PoodleInu.Taxes","name":"newSellTaxes","type":"tuple"}],"name":"updateSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"internalType":"struct PoodleInu.Taxes","name":"newTaxes","type":"tuple"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint256","name":"_launchtax","type":"uint256"}],"name":"updateTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556a021165458500521280000060089081556a084595161401484a00000060098190556a0422ca8b0a00a425000000600a55600b55600f80546001600160a01b031990811673d91a7be2961fefac054b343e15824c0491b51796179091556010805482167361a1a09cce069ec6831837f216e70f4c4d46cb6f1790556011805490911673c07103daac8e318f9af706b71bd0a5547ed95b6c17905560056080819052600060a0819052600460c0819052600160e08190526012939093556013829055601455601582905561018060405260066101008190526101208290526101408490526101608390526016556017556018919091556019819055601e805460ff19169091179055603c601f553480156200012757600080fd5b5060405162003502380380620035028339810160408190526200014a91620007cf565b604080518082018252600a815269506f6f646c6520496e7560b01b602080830191825283518085019094526004845263504f444f60e01b908401528151919291620001989160039162000729565b508051620001ae90600490602084019062000729565b505050620001cb620001c5620005dd60201b60201c565b620005e1565b620001f433620001de6012600a62000865565b620001ee90633b9aca0062000926565b62000633565b336000908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b815290518493926001600160a01b0385169263c45a01559260048083019392829003018186803b1580156200024f57600080fd5b505afa15801562000264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028a9190620007cf565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d357600080fd5b505afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e9190620007cf565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200035757600080fd5b505af11580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003929190620007cf565b600680546001600160a01b038086166001600160a01b031992831617909255600780548385169216919091179055306000818152601a60209081526040808320805460ff199081166001908117909255600f54871685528285208054821683179055601154871685528285208054821683179055601054909616845281842080548716821790557f428bdc965569ef4717764ecfd84e88946a9a226b52b813e6ab6a7f46aad86e8880548716821790557f2fcec17b10d207b56bde579aeb215b58d6c4f64a986f1030b316c9e25b6b832b80548716821790557f54a07289f9bcce50727433c3935d341a715f3569b8d80545229402591066e5648054871682179055938352601c9182905282208054909416831790935592935091620004c06005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560075482168152601c909352818320805485166001908117909155600f54821684528284208054861682179055601154821684528284208054861682179055601054909116835290822080548416821790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc80548416821790557f6c1aff534cb60d09ff5c1e28020ddf8fa4318882dab0aa0fb74e99b43cee92b3805484168217905573dba68f07d1b7ca219f78ae8582c213d975c25caf9091527f53e29f4943ea19ad4eb51a2fbaba86ac601fb0df301a1aaed418383a145f58d18054909216179055506200099b915050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200069c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b8060026000828254620006b0919062000801565b90915550506001600160a01b03821660009081526020819052604081208054839290620006df90849062000801565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620007379062000948565b90600052602060002090601f0160209004810192826200075b5760008555620007a6565b82601f106200077657805160ff1916838001178555620007a6565b82800160010185558215620007a6579182015b82811115620007a657825182559160200191906001019062000789565b50620007b4929150620007b8565b5090565b5b80821115620007b45760008155600101620007b9565b600060208284031215620007e257600080fd5b81516001600160a01b0381168114620007fa57600080fd5b9392505050565b6000821982111562000817576200081762000985565b500190565b600181815b808511156200085d57816000190482111562000841576200084162000985565b808516156200084f57918102915b93841c939080029062000821565b509250929050565b6000620007fa60ff841683600082620008815750600162000920565b81620008905750600062000920565b8160018114620008a95760028114620008b457620008d4565b600191505062000920565b60ff841115620008c857620008c862000985565b50506001821b62000920565b5060208310610133831016604e8410600b8410161715620008f9575081810a62000920565b6200090583836200081c565b80600019048211156200091c576200091c62000985565b0290505b92915050565b600081600019048311821515161562000943576200094362000985565b500290565b600181811c908216806200095d57607f821691505b602082108114156200097f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612b5780620009ab6000396000f3fe6080604052600436106103395760003560e01c806375f0a874116101ab578063b5c57145116100f7578063e517f2b911610095578063f66895a31161006f578063f66895a3146109d5578063f887ea40146109f8578063fbe6324e14610a18578063fe575a8714610a3957600080fd5b8063e517f2b91461097b578063ee36e3591461099b578063f2fde38b146109b557600080fd5b8063d8672e51116100d1578063d8672e51146108d5578063dd62ed3e146108f5578063deab8aea1461093b578063e1f8fc161461095b57600080fd5b8063b5c571451461086f578063c5d32bb21461088f578063d2ce0db2146108bf57600080fd5b80638ea5220f11610164578063a457c2d71161013e578063a457c2d7146107ef578063a8aa1b311461080f578063a9059cbb1461082f578063aacebbe31461084f57600080fd5b80638ea5220f1461079a57806395d89b41146107ba5780639e252f00146107cf57600080fd5b806375f0a874146106ce5780637e554d471461070657806381428be11461072657806385141a77146107465780638cd4426d1461075c5780638da5cb5b1461077c57600080fd5b8063395093511161028557806362695eae116102235780636aa5b37f116101fd5780636aa5b37f1461062a57806370a0823114610640578063715018a614610676578063728f8eea1461068b57600080fd5b806362695eae146105ce578063652e2f04146105fe57806366a88d961461061457600080fd5b806342b6fa111161025f57806342b6fa111461054d5780634ada218b1461056d57806359759f611461058e5780635b24ea5e146105ae57600080fd5b806339509351146104ed5780633d30d20b1461050d57806340b28c2f1461052d57600080fd5b80631675d802116102f257806323b872dd116102cc57806323b872dd1461047b578063274a533c1461049b578063313ce567146104b1578063355496ca146104cd57600080fd5b80631675d8021461042257806318160ddd146104465780631816467f1461045b57600080fd5b806304dacd501461034557806306fdde0314610367578063095ea7b3146103925780630e375a5c146103c25780631340538f146103e257806313f97a8e1461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b506103656103603660046124a0565b610a69565b005b34801561037357600080fd5b5061037c610abe565b60405161038991906127dc565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004612589565b610b50565b6040519015158152602001610389565b3480156103ce57600080fd5b506103656103dd3660046125b5565b610b67565b3480156103ee57600080fd5b506103656103fd366004612680565b610bfd565b34801561040e57600080fd5b5061036561041d3660046125b5565b610c45565b34801561042e57600080fd5b5061043860085481565b604051908152602001610389565b34801561045257600080fd5b50600254610438565b34801561046757600080fd5b506103656104763660046124a0565b610cd6565b34801561048757600080fd5b506103b261049636600461251a565b610d22565b3480156104a757600080fd5b50610438600c5481565b3480156104bd57600080fd5b5060405160128152602001610389565b3480156104d957600080fd5b506103656104e836600461255b565b610dd3565b3480156104f957600080fd5b506103b2610508366004612589565b610e28565b34801561051957600080fd5b506103656105283660046126d8565b610e5f565b34801561053957600080fd5b506103656105483660046124e1565b610ed1565b34801561055957600080fd5b50610365610568366004612773565b610f29565b34801561057957600080fd5b506007546103b290600160b01b900460ff1681565b34801561059a57600080fd5b506103656105a936600461278c565b610f6f565b3480156105ba57600080fd5b506103656105c936600461255b565b610fcf565b3480156105da57600080fd5b506103b26105e93660046124a0565b601c6020526000908152604090205460ff1681565b34801561060a57600080fd5b50610438600a5481565b34801561062057600080fd5b50610438600b5481565b34801561063657600080fd5b5061043860095481565b34801561064c57600080fd5b5061043861065b3660046124a0565b6001600160a01b031660009081526020819052604090205490565b34801561068257600080fd5b50610365611024565b34801561069757600080fd5b506012546013546014546015546106ae9392919084565b604080519485526020850193909352918301526060820152608001610389565b3480156106da57600080fd5b50600f546106ee906001600160a01b031681565b6040516001600160a01b039091168152602001610389565b34801561071257600080fd5b5061036561072136600461270d565b61105a565b34801561073257600080fd5b506103656107413660046125b5565b6110a2565b34801561075257600080fd5b506106ee61dead81565b34801561076857600080fd5b50610365610777366004612589565b611133565b34801561078857600080fd5b506005546001600160a01b03166106ee565b3480156107a657600080fd5b506010546106ee906001600160a01b031681565b3480156107c657600080fd5b5061037c6111e3565b3480156107db57600080fd5b506103656107ea366004612773565b6111f2565b3480156107fb57600080fd5b506103b261080a366004612589565b61125a565b34801561081b57600080fd5b506007546106ee906001600160a01b031681565b34801561083b57600080fd5b506103b261084a366004612589565b6112f5565b34801561085b57600080fd5b5061036561086a3660046124a0565b611302565b34801561087b57600080fd5b5061036561088a36600461255b565b61134e565b34801561089b57600080fd5b506103b26108aa3660046124a0565b601a6020526000908152604090205460ff1681565b3480156108cb57600080fd5b50610438601f5481565b3480156108e157600080fd5b506103656108f0366004612773565b6113a3565b34801561090157600080fd5b506104386109103660046124e1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561094757600080fd5b506011546106ee906001600160a01b031681565b34801561096757600080fd5b5061036561097636600461270d565b6113e9565b34801561098757600080fd5b506103656109963660046126ba565b611431565b3480156109a757600080fd5b50601e546103b29060ff1681565b3480156109c157600080fd5b506103656109d03660046124a0565b61147d565b3480156109e157600080fd5b506016546017546018546019546106ae9392919084565b348015610a0457600080fd5b506006546106ee906001600160a01b031681565b348015610a2457600080fd5b506007546103b290600160a81b900460ff1681565b348015610a4557600080fd5b506103b2610a543660046124a0565b601b6020526000908152604090205460ff1681565b6005546001600160a01b03163314610a9c5760405162461bcd60e51b8152600401610a9390612831565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b606060038054610acd90612a66565b80601f0160208091040260200160405190810160405280929190818152602001828054610af990612a66565b8015610b465780601f10610b1b57610100808354040283529160200191610b46565b820191906000526020600020905b815481529060010190602001808311610b2957829003601f168201915b5050505050905090565b6000610b5d338484611518565b5060015b92915050565b6005546001600160a01b03163314610b915760405162461bcd60e51b8152600401610a9390612831565b60005b8251811015610bf85781601a6000858481518110610bb457610bb4612ad2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bf081612aa1565b915050610b94565b505050565b6005546001600160a01b03163314610c275760405162461bcd60e51b8152600401610a9390612831565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b8152600401610a9390612831565b60005b8251811015610bf85781601b6000858481518110610c9257610c92612ad2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610cce81612aa1565b915050610c72565b6005546001600160a01b03163314610d005760405162461bcd60e51b8152600401610a9390612831565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d2f84848461163c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610db45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a93565b610dc88533610dc38685612a4f565b611518565b506001949350505050565b6005546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b5d918590610dc3908690612908565b6005546001600160a01b03163314610e895760405162461bcd60e51b8152600401610a9390612831565b600d829055600e8190556007805461ffff60a81b1916600160b01b85151590810260ff60a81b191691909117600160a81b82021790915560011415610bf85743600c55505050565b6005546001600160a01b03163314610efb5760405162461bcd60e51b8152600401610a9390612831565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f535760405162461bcd60e51b8152600401610a9390612831565b610f5f6012600a612985565b610f699082612a30565b60085550565b6005546001600160a01b03163314610f995760405162461bcd60e51b8152600401610a9390612831565b610fa56012600a612985565b610faf9083612a30565b600955610fbe6012600a612985565b610fc89082612a30565b600a555050565b6005546001600160a01b03163314610ff95760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461104e5760405162461bcd60e51b8152600401610a9390612831565b6110586000611d50565b565b6005546001600160a01b031633146110845760405162461bcd60e51b8152600401610a9390612831565b80516016556020810151601755604081015160185560600151601955565b6005546001600160a01b031633146110cc5760405162461bcd60e51b8152600401610a9390612831565b60005b8251811015610bf85781601c60008584815181106110ef576110ef612ad2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061112b81612aa1565b9150506110cf565b6005546001600160a01b0316331461115d5760405162461bcd60e51b8152600401610a9390612831565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061269d565b606060048054610acd90612a66565b6005546001600160a01b0316331461121c5760405162461bcd60e51b8152600401610a9390612831565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611256573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a93565b6112eb3385610dc38685612a4f565b5060019392505050565b6000610b5d33848461163c565b6005546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610a9390612831565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113785760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610a9390612831565b6113d96012600a612985565b6113e39082612a30565b600b5550565b6005546001600160a01b031633146114135760405162461bcd60e51b8152600401610a9390612831565b80516012556020810151601355604081015160145560600151601555565b6005546001600160a01b0316331461145b5760405162461bcd60e51b8152600401610a9390612831565b611466816001612a30565b601f5550601e805460ff1916911515919091179055565b6005546001600160a01b031633146114a75760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03811661150c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a93565b61151581611d50565b50565b6001600160a01b03831661157a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a93565b6001600160a01b0382166115db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a93565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161169e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a93565b6001600160a01b0383166000908152601b602052604090205460ff161580156116e057506001600160a01b0382166000908152601b602052604090205460ff16155b61172c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610a93565b6001600160a01b0383166000908152601a602052604090205460ff1615801561176e57506001600160a01b0382166000908152601a602052604090205460ff16155b156117c257600754600160b01b900460ff166117c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a93565b6007546001600160a01b0384811691161480156117f857506001600160a01b0382166000908152601a602052604090205460ff16155b801561180e5750600754600160a01b900460ff16155b156118e0576009548111156118655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a93565b600b5481611888846001600160a01b031660009081526020819052604090205490565b6118929190612908565b11156118e05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b6007546001600160a01b0384811691161480159061191757506001600160a01b0382166000908152601a602052604090205460ff16155b801561193c57506001600160a01b0383166000908152601a602052604090205460ff16155b80156119525750600754600160a01b900460ff16155b15611acb57600a548111156119a95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a93565b6007546001600160a01b03838116911614611a3957600b54816119e1846001600160a01b031660009081526020819052604090205490565b6119eb9190612908565b1115611a395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b601e5460ff1615611acb576001600160a01b0383166000908152601d6020526040812054611a679042612a4f565b9050601f54811015611aae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a93565b506001600160a01b0383166000908152601d602052604090204290555b6000806000611afb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b585750600d54600c54611b549190612908565b4311155b600754909150600160a01b900460ff1680611b8b57506001600160a01b0388166000908152601a602052604090205460ff165b80611bae57506001600160a01b0387166000908152601a602052604090205460ff165b15611bbc5760009250611cb0565b6007546001600160a01b038881169116148015611bd7575080155b15611c3c57601954601854601654601754611bf29190612908565b611bfc9190612908565b611c069190612908565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611cb0565b80611ca157601554601454601254601354611c579190612908565b611c619190612908565b611c6b9190612908565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611cb0565b8015611cb057600e5494508493505b6064611cbc8588612a30565b611cc69190612920565b600754909350600160a81b900460ff168015611cf057506007546001600160a01b03898116911614155b15611cff57611cff8583611da2565b611d138888611d0e868a612a4f565b611f52565b8215611d46578415611d465760006064611d2d8789612a30565b611d379190612920565b9050611d44893083611f52565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611256576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506008548110611f405760016008541115611df157506008545b6000611dfe846002612a30565b9050600081846020015184611e139190612a30565b611e1d9190612920565b90506000611e2b8285612a4f565b905047611e378261212a565b6000611e438247612a4f565b90506000876020015186611e579190612a4f565b611e619083612920565b90506000886020015182611e759190612a30565b90508015611e8757611e878682612293565b8851600090611e97846002612a30565b611ea19190612a30565b90508015611ebf57600f54611ebf906001600160a01b031682612377565b60408a0151600090611ed2856002612a30565b611edc9190612a30565b90508015611efa57601154611efa906001600160a01b031682612377565b60608b0151600090611f0d866002612a30565b611f179190612a30565b90508015611f3557601054611f35906001600160a01b031682612377565b505050505050505050505b506007805460ff60a01b191690555050565b6001600160a01b038316611fb65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a93565b6001600160a01b0382166120185760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a93565b6001600160a01b038316600090815260208190526040902054818110156120905760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a93565b61209a8282612a4f565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120d0908490612908565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211c91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061215f5761215f612ad2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121b357600080fd5b505afa1580156121c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121eb91906124c4565b816001815181106121fe576121fe612ad2565b6001600160a01b0392831660209182029290920101526006546122249130911684611518565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061225d908590600090869030904290600401612866565b600060405180830381600087803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b505050505050565b6006546122ab9030906001600160a01b031684611518565b6006546001600160a01b031663f305d7198230856000806122d46005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561233757600080fd5b505af115801561234b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061237091906127ae565b5050505050565b804710156123c75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a93565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612414576040519150601f19603f3d011682016040523d82523d6000602084013e612419565b606091505b5050905080610bf85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a93565b803561249b81612b13565b919050565b6000602082840312156124b257600080fd5b81356124bd81612afe565b9392505050565b6000602082840312156124d657600080fd5b81516124bd81612afe565b600080604083850312156124f457600080fd5b82356124ff81612afe565b9150602083013561250f81612afe565b809150509250929050565b60008060006060848603121561252f57600080fd5b833561253a81612afe565b9250602084013561254a81612afe565b929592945050506040919091013590565b6000806040838503121561256e57600080fd5b823561257981612afe565b9150602083013561250f81612b13565b6000806040838503121561259c57600080fd5b82356125a781612afe565b946020939093013593505050565b600080604083850312156125c857600080fd5b823567ffffffffffffffff808211156125e057600080fd5b818501915085601f8301126125f457600080fd5b813560208282111561260857612608612ae8565b8160051b92506126198184016128d7565b8281528181019085830185870184018b101561263457600080fd5b600096505b84871015612663578035955061264e86612afe565b85835260019690960195918301918301612639565b5096506126739050878201612490565b9450505050509250929050565b60006020828403121561269257600080fd5b81356124bd81612b13565b6000602082840312156126af57600080fd5b81516124bd81612b13565b600080604083850312156126cd57600080fd5b82356125a781612b13565b6000806000606084860312156126ed57600080fd5b83356126f881612b13565b95602085013595506040909401359392505050565b60006080828403121561271f57600080fd5b6040516080810181811067ffffffffffffffff8211171561274257612742612ae8565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60006020828403121561278557600080fd5b5035919050565b6000806040838503121561279f57600080fd5b50508035926020909101359150565b6000806000606084860312156127c357600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612809578581018301518582016040015282016127ed565b8181111561281b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b65784516001600160a01b031683529383019391830191600101612891565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561290057612900612ae8565b604052919050565b6000821982111561291b5761291b612abc565b500190565b60008261293d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561297d57816000190482111561296357612963612abc565b8085161561297057918102915b93841c9390800290612947565b509250929050565b60006124bd60ff84168360008261299e57506001610b61565b816129ab57506000610b61565b81600181146129c157600281146129cb576129e7565b6001915050610b61565b60ff8411156129dc576129dc612abc565b50506001821b610b61565b5060208310610133831016604e8410600b8410161715612a0a575081810a610b61565b612a148383612942565b8060001904821115612a2857612a28612abc565b029392505050565b6000816000190483118215151615612a4a57612a4a612abc565b500290565b600082821015612a6157612a61612abc565b500390565b600181811c90821680612a7a57607f821691505b60208210811415612a9b57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab557612ab5612abc565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461151557600080fd5b801515811461151557600080fdfea2646970667358221220b36154d2d3db0636e7756e0ea5059d97f56d2fc40ff8db5288de188ac9aa7a7064736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106103395760003560e01c806375f0a874116101ab578063b5c57145116100f7578063e517f2b911610095578063f66895a31161006f578063f66895a3146109d5578063f887ea40146109f8578063fbe6324e14610a18578063fe575a8714610a3957600080fd5b8063e517f2b91461097b578063ee36e3591461099b578063f2fde38b146109b557600080fd5b8063d8672e51116100d1578063d8672e51146108d5578063dd62ed3e146108f5578063deab8aea1461093b578063e1f8fc161461095b57600080fd5b8063b5c571451461086f578063c5d32bb21461088f578063d2ce0db2146108bf57600080fd5b80638ea5220f11610164578063a457c2d71161013e578063a457c2d7146107ef578063a8aa1b311461080f578063a9059cbb1461082f578063aacebbe31461084f57600080fd5b80638ea5220f1461079a57806395d89b41146107ba5780639e252f00146107cf57600080fd5b806375f0a874146106ce5780637e554d471461070657806381428be11461072657806385141a77146107465780638cd4426d1461075c5780638da5cb5b1461077c57600080fd5b8063395093511161028557806362695eae116102235780636aa5b37f116101fd5780636aa5b37f1461062a57806370a0823114610640578063715018a614610676578063728f8eea1461068b57600080fd5b806362695eae146105ce578063652e2f04146105fe57806366a88d961461061457600080fd5b806342b6fa111161025f57806342b6fa111461054d5780634ada218b1461056d57806359759f611461058e5780635b24ea5e146105ae57600080fd5b806339509351146104ed5780633d30d20b1461050d57806340b28c2f1461052d57600080fd5b80631675d802116102f257806323b872dd116102cc57806323b872dd1461047b578063274a533c1461049b578063313ce567146104b1578063355496ca146104cd57600080fd5b80631675d8021461042257806318160ddd146104465780631816467f1461045b57600080fd5b806304dacd501461034557806306fdde0314610367578063095ea7b3146103925780630e375a5c146103c25780631340538f146103e257806313f97a8e1461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b506103656103603660046124a0565b610a69565b005b34801561037357600080fd5b5061037c610abe565b60405161038991906127dc565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004612589565b610b50565b6040519015158152602001610389565b3480156103ce57600080fd5b506103656103dd3660046125b5565b610b67565b3480156103ee57600080fd5b506103656103fd366004612680565b610bfd565b34801561040e57600080fd5b5061036561041d3660046125b5565b610c45565b34801561042e57600080fd5b5061043860085481565b604051908152602001610389565b34801561045257600080fd5b50600254610438565b34801561046757600080fd5b506103656104763660046124a0565b610cd6565b34801561048757600080fd5b506103b261049636600461251a565b610d22565b3480156104a757600080fd5b50610438600c5481565b3480156104bd57600080fd5b5060405160128152602001610389565b3480156104d957600080fd5b506103656104e836600461255b565b610dd3565b3480156104f957600080fd5b506103b2610508366004612589565b610e28565b34801561051957600080fd5b506103656105283660046126d8565b610e5f565b34801561053957600080fd5b506103656105483660046124e1565b610ed1565b34801561055957600080fd5b50610365610568366004612773565b610f29565b34801561057957600080fd5b506007546103b290600160b01b900460ff1681565b34801561059a57600080fd5b506103656105a936600461278c565b610f6f565b3480156105ba57600080fd5b506103656105c936600461255b565b610fcf565b3480156105da57600080fd5b506103b26105e93660046124a0565b601c6020526000908152604090205460ff1681565b34801561060a57600080fd5b50610438600a5481565b34801561062057600080fd5b50610438600b5481565b34801561063657600080fd5b5061043860095481565b34801561064c57600080fd5b5061043861065b3660046124a0565b6001600160a01b031660009081526020819052604090205490565b34801561068257600080fd5b50610365611024565b34801561069757600080fd5b506012546013546014546015546106ae9392919084565b604080519485526020850193909352918301526060820152608001610389565b3480156106da57600080fd5b50600f546106ee906001600160a01b031681565b6040516001600160a01b039091168152602001610389565b34801561071257600080fd5b5061036561072136600461270d565b61105a565b34801561073257600080fd5b506103656107413660046125b5565b6110a2565b34801561075257600080fd5b506106ee61dead81565b34801561076857600080fd5b50610365610777366004612589565b611133565b34801561078857600080fd5b506005546001600160a01b03166106ee565b3480156107a657600080fd5b506010546106ee906001600160a01b031681565b3480156107c657600080fd5b5061037c6111e3565b3480156107db57600080fd5b506103656107ea366004612773565b6111f2565b3480156107fb57600080fd5b506103b261080a366004612589565b61125a565b34801561081b57600080fd5b506007546106ee906001600160a01b031681565b34801561083b57600080fd5b506103b261084a366004612589565b6112f5565b34801561085b57600080fd5b5061036561086a3660046124a0565b611302565b34801561087b57600080fd5b5061036561088a36600461255b565b61134e565b34801561089b57600080fd5b506103b26108aa3660046124a0565b601a6020526000908152604090205460ff1681565b3480156108cb57600080fd5b50610438601f5481565b3480156108e157600080fd5b506103656108f0366004612773565b6113a3565b34801561090157600080fd5b506104386109103660046124e1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561094757600080fd5b506011546106ee906001600160a01b031681565b34801561096757600080fd5b5061036561097636600461270d565b6113e9565b34801561098757600080fd5b506103656109963660046126ba565b611431565b3480156109a757600080fd5b50601e546103b29060ff1681565b3480156109c157600080fd5b506103656109d03660046124a0565b61147d565b3480156109e157600080fd5b506016546017546018546019546106ae9392919084565b348015610a0457600080fd5b506006546106ee906001600160a01b031681565b348015610a2457600080fd5b506007546103b290600160a81b900460ff1681565b348015610a4557600080fd5b506103b2610a543660046124a0565b601b6020526000908152604090205460ff1681565b6005546001600160a01b03163314610a9c5760405162461bcd60e51b8152600401610a9390612831565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b606060038054610acd90612a66565b80601f0160208091040260200160405190810160405280929190818152602001828054610af990612a66565b8015610b465780601f10610b1b57610100808354040283529160200191610b46565b820191906000526020600020905b815481529060010190602001808311610b2957829003601f168201915b5050505050905090565b6000610b5d338484611518565b5060015b92915050565b6005546001600160a01b03163314610b915760405162461bcd60e51b8152600401610a9390612831565b60005b8251811015610bf85781601a6000858481518110610bb457610bb4612ad2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bf081612aa1565b915050610b94565b505050565b6005546001600160a01b03163314610c275760405162461bcd60e51b8152600401610a9390612831565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b8152600401610a9390612831565b60005b8251811015610bf85781601b6000858481518110610c9257610c92612ad2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610cce81612aa1565b915050610c72565b6005546001600160a01b03163314610d005760405162461bcd60e51b8152600401610a9390612831565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d2f84848461163c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610db45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a93565b610dc88533610dc38685612a4f565b611518565b506001949350505050565b6005546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b5d918590610dc3908690612908565b6005546001600160a01b03163314610e895760405162461bcd60e51b8152600401610a9390612831565b600d829055600e8190556007805461ffff60a81b1916600160b01b85151590810260ff60a81b191691909117600160a81b82021790915560011415610bf85743600c55505050565b6005546001600160a01b03163314610efb5760405162461bcd60e51b8152600401610a9390612831565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f535760405162461bcd60e51b8152600401610a9390612831565b610f5f6012600a612985565b610f699082612a30565b60085550565b6005546001600160a01b03163314610f995760405162461bcd60e51b8152600401610a9390612831565b610fa56012600a612985565b610faf9083612a30565b600955610fbe6012600a612985565b610fc89082612a30565b600a555050565b6005546001600160a01b03163314610ff95760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461104e5760405162461bcd60e51b8152600401610a9390612831565b6110586000611d50565b565b6005546001600160a01b031633146110845760405162461bcd60e51b8152600401610a9390612831565b80516016556020810151601755604081015160185560600151601955565b6005546001600160a01b031633146110cc5760405162461bcd60e51b8152600401610a9390612831565b60005b8251811015610bf85781601c60008584815181106110ef576110ef612ad2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061112b81612aa1565b9150506110cf565b6005546001600160a01b0316331461115d5760405162461bcd60e51b8152600401610a9390612831565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061269d565b606060048054610acd90612a66565b6005546001600160a01b0316331461121c5760405162461bcd60e51b8152600401610a9390612831565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611256573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a93565b6112eb3385610dc38685612a4f565b5060019392505050565b6000610b5d33848461163c565b6005546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610a9390612831565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113785760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610a9390612831565b6113d96012600a612985565b6113e39082612a30565b600b5550565b6005546001600160a01b031633146114135760405162461bcd60e51b8152600401610a9390612831565b80516012556020810151601355604081015160145560600151601555565b6005546001600160a01b0316331461145b5760405162461bcd60e51b8152600401610a9390612831565b611466816001612a30565b601f5550601e805460ff1916911515919091179055565b6005546001600160a01b031633146114a75760405162461bcd60e51b8152600401610a9390612831565b6001600160a01b03811661150c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a93565b61151581611d50565b50565b6001600160a01b03831661157a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a93565b6001600160a01b0382166115db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a93565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161169e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a93565b6001600160a01b0383166000908152601b602052604090205460ff161580156116e057506001600160a01b0382166000908152601b602052604090205460ff16155b61172c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610a93565b6001600160a01b0383166000908152601a602052604090205460ff1615801561176e57506001600160a01b0382166000908152601a602052604090205460ff16155b156117c257600754600160b01b900460ff166117c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a93565b6007546001600160a01b0384811691161480156117f857506001600160a01b0382166000908152601a602052604090205460ff16155b801561180e5750600754600160a01b900460ff16155b156118e0576009548111156118655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a93565b600b5481611888846001600160a01b031660009081526020819052604090205490565b6118929190612908565b11156118e05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b6007546001600160a01b0384811691161480159061191757506001600160a01b0382166000908152601a602052604090205460ff16155b801561193c57506001600160a01b0383166000908152601a602052604090205460ff16155b80156119525750600754600160a01b900460ff16155b15611acb57600a548111156119a95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a93565b6007546001600160a01b03838116911614611a3957600b54816119e1846001600160a01b031660009081526020819052604090205490565b6119eb9190612908565b1115611a395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b601e5460ff1615611acb576001600160a01b0383166000908152601d6020526040812054611a679042612a4f565b9050601f54811015611aae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a93565b506001600160a01b0383166000908152601d602052604090204290555b6000806000611afb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b585750600d54600c54611b549190612908565b4311155b600754909150600160a01b900460ff1680611b8b57506001600160a01b0388166000908152601a602052604090205460ff165b80611bae57506001600160a01b0387166000908152601a602052604090205460ff165b15611bbc5760009250611cb0565b6007546001600160a01b038881169116148015611bd7575080155b15611c3c57601954601854601654601754611bf29190612908565b611bfc9190612908565b611c069190612908565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611cb0565b80611ca157601554601454601254601354611c579190612908565b611c619190612908565b611c6b9190612908565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611cb0565b8015611cb057600e5494508493505b6064611cbc8588612a30565b611cc69190612920565b600754909350600160a81b900460ff168015611cf057506007546001600160a01b03898116911614155b15611cff57611cff8583611da2565b611d138888611d0e868a612a4f565b611f52565b8215611d46578415611d465760006064611d2d8789612a30565b611d379190612920565b9050611d44893083611f52565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611256576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506008548110611f405760016008541115611df157506008545b6000611dfe846002612a30565b9050600081846020015184611e139190612a30565b611e1d9190612920565b90506000611e2b8285612a4f565b905047611e378261212a565b6000611e438247612a4f565b90506000876020015186611e579190612a4f565b611e619083612920565b90506000886020015182611e759190612a30565b90508015611e8757611e878682612293565b8851600090611e97846002612a30565b611ea19190612a30565b90508015611ebf57600f54611ebf906001600160a01b031682612377565b60408a0151600090611ed2856002612a30565b611edc9190612a30565b90508015611efa57601154611efa906001600160a01b031682612377565b60608b0151600090611f0d866002612a30565b611f179190612a30565b90508015611f3557601054611f35906001600160a01b031682612377565b505050505050505050505b506007805460ff60a01b191690555050565b6001600160a01b038316611fb65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a93565b6001600160a01b0382166120185760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a93565b6001600160a01b038316600090815260208190526040902054818110156120905760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a93565b61209a8282612a4f565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120d0908490612908565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211c91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061215f5761215f612ad2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121b357600080fd5b505afa1580156121c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121eb91906124c4565b816001815181106121fe576121fe612ad2565b6001600160a01b0392831660209182029290920101526006546122249130911684611518565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061225d908590600090869030904290600401612866565b600060405180830381600087803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b505050505050565b6006546122ab9030906001600160a01b031684611518565b6006546001600160a01b031663f305d7198230856000806122d46005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561233757600080fd5b505af115801561234b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061237091906127ae565b5050505050565b804710156123c75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a93565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612414576040519150601f19603f3d011682016040523d82523d6000602084013e612419565b606091505b5050905080610bf85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a93565b803561249b81612b13565b919050565b6000602082840312156124b257600080fd5b81356124bd81612afe565b9392505050565b6000602082840312156124d657600080fd5b81516124bd81612afe565b600080604083850312156124f457600080fd5b82356124ff81612afe565b9150602083013561250f81612afe565b809150509250929050565b60008060006060848603121561252f57600080fd5b833561253a81612afe565b9250602084013561254a81612afe565b929592945050506040919091013590565b6000806040838503121561256e57600080fd5b823561257981612afe565b9150602083013561250f81612b13565b6000806040838503121561259c57600080fd5b82356125a781612afe565b946020939093013593505050565b600080604083850312156125c857600080fd5b823567ffffffffffffffff808211156125e057600080fd5b818501915085601f8301126125f457600080fd5b813560208282111561260857612608612ae8565b8160051b92506126198184016128d7565b8281528181019085830185870184018b101561263457600080fd5b600096505b84871015612663578035955061264e86612afe565b85835260019690960195918301918301612639565b5096506126739050878201612490565b9450505050509250929050565b60006020828403121561269257600080fd5b81356124bd81612b13565b6000602082840312156126af57600080fd5b81516124bd81612b13565b600080604083850312156126cd57600080fd5b82356125a781612b13565b6000806000606084860312156126ed57600080fd5b83356126f881612b13565b95602085013595506040909401359392505050565b60006080828403121561271f57600080fd5b6040516080810181811067ffffffffffffffff8211171561274257612742612ae8565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60006020828403121561278557600080fd5b5035919050565b6000806040838503121561279f57600080fd5b50508035926020909101359150565b6000806000606084860312156127c357600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612809578581018301518582016040015282016127ed565b8181111561281b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b65784516001600160a01b031683529383019391830191600101612891565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561290057612900612ae8565b604052919050565b6000821982111561291b5761291b612abc565b500190565b60008261293d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561297d57816000190482111561296357612963612abc565b8085161561297057918102915b93841c9390800290612947565b509250929050565b60006124bd60ff84168360008261299e57506001610b61565b816129ab57506000610b61565b81600181146129c157600281146129cb576129e7565b6001915050610b61565b60ff8411156129dc576129dc612abc565b50506001821b610b61565b5060208310610133831016604e8410600b8410161715612a0a575081810a610b61565b612a148383612942565b8060001904821115612a2857612a28612abc565b029392505050565b6000816000190483118215151615612a4a57612a4a612abc565b500290565b600082821015612a6157612a61612abc565b500390565b600181811c90821680612a7a57607f821691505b60208210811415612a9b57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab557612ab5612abc565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461151557600080fd5b801515811461151557600080fdfea2646970667358221220b36154d2d3db0636e7756e0ea5059d97f56d2fc40ff8db5288de188ac9aa7a7064736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAdd (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

13601:13652:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25171:111;;;;;;;;;;-1:-1:-1;25171:111:0;;;;;:::i;:::-;;:::i;:::-;;2377:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16495:161;;;;;;;;;;-1:-1:-1;16495:161:0;;;;;:::i;:::-;;:::i;:::-;;;7378:14:1;;7371:22;7353:41;;7341:2;7326:18;16495:161:0;7213:187:1;26402:202:0;;;;;;;;;;-1:-1:-1;26402:202:0;;;;;:::i;:::-;;:::i;23970:152::-;;;;;;;;;;-1:-1:-1;23970:152:0;;;;;:::i;:::-;;:::i;25696:210::-;;;;;;;;;;-1:-1:-1;25696:210:0;;;;;:::i;:::-;;:::i;13874:59::-;;;;;;;;;;;;;;;;;;;15304:25:1;;;15292:2;15277:18;13874:59:0;15158:177:1;3497:108:0;;;;;;;;;;-1:-1:-1;3585:12:0;;3497:108;;25290:103;;;;;;;;;;-1:-1:-1;25290:103:0;;;;;:::i;:::-;;:::i;16664:448::-;;;;;;;;;;-1:-1:-1;16664:448:0;;;;;:::i;:::-;;:::i;14110:28::-;;;;;;;;;;;;;;;;3339:93;;;;;;;;;;-1:-1:-1;3339:93:0;;3422:2;16863:36:1;;16851:2;16836:18;3339:93:0;16721:184:1;26274:120:0;;;;;;;;;;-1:-1:-1;26274:120:0;;;;;:::i;:::-;;:::i;17120:248::-;;;;;;;;;;-1:-1:-1;17120:248:0;;;;;:::i;:::-;;:::i;24706:334::-;;;;;;;;;;-1:-1:-1;24706:334:0;;;;;:::i;:::-;;:::i;24543:155::-;;;;;;;;;;-1:-1:-1;24543:155:0;;;;;:::i;:::-;;:::i;24130:177::-;;;;;;;;;;-1:-1:-1;24130:177:0;;;;;:::i;:::-;;:::i;13831:34::-;;;;;;;;;;-1:-1:-1;13831:34:0;;;;-1:-1:-1;;;13831:34:0;;;;;;26612:184;;;;;;;;;;-1:-1:-1;26612:184:0;;;;;:::i;:::-;;:::i;25562:126::-;;;;;;;;;;-1:-1:-1;25562:126:0;;;;;:::i;:::-;;:::i;14862:47::-;;;;;;;;;;-1:-1:-1;14862:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13995:48;;;;;;;;;;;;;;;;14050:51;;;;;;;;;;;;;;;;13940:48;;;;;;;;;;;;;;;;3668:127;;;;;;;;;;-1:-1:-1;3668:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;12264:94;;;;;;;;;;;;;:::i;14666:38::-;;;;;;;;;;-1:-1:-1;14666:38:0;;;;;;;;;;;;;;;;;;;16556:25:1;;;16612:2;16597:18;;16590:34;;;;16640:18;;;16633:34;16698:2;16683:18;;16676:34;16543:3;16528:19;14666:38:0;16325:391:1;14210:75:0;;;;;;;;;;-1:-1:-1;14210:75:0;;;;-1:-1:-1;;;;;14210:75:0;;;;;;-1:-1:-1;;;;;6278:32:1;;;6260:51;;6248:2;6233:18;14210:75:0;6114:203:1;24421:114:0;;;;;;;;;;-1:-1:-1;24421:114:0;;;;;:::i;:::-;;:::i;26052:214::-;;;;;;;;;;-1:-1:-1;26052:214:0;;;;;:::i;:::-;;:::i;14445:79::-;;;;;;;;;;;;14482:42;14445:79;;27058:137;;;;;;;;;;-1:-1:-1;27058:137:0;;;;;:::i;:::-;;:::i;12041:87::-;;;;;;;;;;-1:-1:-1;12114:6:0;;-1:-1:-1;;;;;12114:6:0;12041:87;;14292:69;;;;;;;;;;-1:-1:-1;14292:69:0;;;;-1:-1:-1;;;;;14292:69:0;;;2596:104;;;;;;;;;;;;;:::i;26936:114::-;;;;;;;;;;-1:-1:-1;26936:114:0;;;;;:::i;:::-;;:::i;17376:410::-;;;;;;;;;;-1:-1:-1;17376:410:0;;;;;:::i;:::-;;:::i;13715:19::-;;;;;;;;;;-1:-1:-1;13715:19:0;;;;-1:-1:-1;;;;;13715:19:0;;;17794:165;;;;;;;;;;-1:-1:-1;17794:165:0;;;;;:::i;:::-;;:::i;25048:115::-;;;;;;;;;;-1:-1:-1;25048:115:0;;;;;:::i;:::-;;:::i;25914:130::-;;;;;;;;;;-1:-1:-1;25914:130:0;;;;;:::i;:::-;;:::i;14762:41::-;;;;;;;;;;-1:-1:-1;14762:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15028:40;;;;;;;;;;;;;;;;26804:124;;;;;;;;;;-1:-1:-1;26804:124:0;;;;;:::i;:::-;;:::i;4287:201::-;;;;;;;;;;-1:-1:-1;4287:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4453:18:0;;;4421:7;4453:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4287:201;14368:73;;;;;;;;;;-1:-1:-1;14368:73:0;;;;-1:-1:-1;;;;;14368:73:0;;;24315:98;;;;;;;;;;-1:-1:-1;24315:98:0;;;;;:::i;:::-;;:::i;25401:153::-;;;;;;;;;;-1:-1:-1;25401:153:0;;;;;:::i;:::-;;:::i;14987:34::-;;;;;;;;;;-1:-1:-1;14987:34:0;;;;;;;;12366:192;;;;;;;;;;-1:-1:-1;12366:192:0;;;;;:::i;:::-;;:::i;14711:42::-;;;;;;;;;;-1:-1:-1;14711:42:0;;;;;;;;;;;;;;;13687:21;;;;;;;;;;-1:-1:-1;13687:21:0;;;;-1:-1:-1;;;;;13687:21:0;;;13786:38;;;;;;;;;;-1:-1:-1;13786:38:0;;;;-1:-1:-1;;;13786:38:0;;;;;;14810:45;;;;;;;;;;-1:-1:-1;14810:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;25171:111;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;;;;;;;;;25249:13:::1;:25:::0;;-1:-1:-1;;;;;;25249:25:0::1;-1:-1:-1::0;;;;;25249:25:0;;;::::1;::::0;;;::::1;::::0;;25171:111::o;2377:100::-;2431:13;2464:5;2457:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;:::o;16495:161::-;16570:4;16587:39;179:10;16610:7;16619:6;16587:8;:39::i;:::-;-1:-1:-1;16644:4:0;16495:161;;;;;:::o;26402:202::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26499:9:::1;26494:103;26518:8;:15;26514:1;:19;26494:103;;;26580:5;26555:9;:22;26565:8;26574:1;26565:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26555:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26555:22:0;:30;;-1:-1:-1;;26555:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26535:3;::::1;::::0;::::1;:::i;:::-;;;;26494:103;;;;26402:202:::0;;:::o;23970:152::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24088:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;24088:26:0::1;-1:-1:-1::0;;;;24088:26:0;;::::1;::::0;;;::::1;::::0;;23970:152::o;25696:210::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25797:9:::1;25792:107;25816:8;:15;25812:1;:19;25792:107;;;25882:5;25853:13;:26;25867:8;25876:1;25867:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25853:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25853:26:0;:34;;-1:-1:-1;;25853:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25833:3;::::1;::::0;::::1;:::i;:::-;;;;25792:107;;25290:103:::0;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25364:9:::1;:21:::0;;-1:-1:-1;;;;;;25364:21:0::1;-1:-1:-1::0;;;;;25364:21:0;;;::::1;::::0;;;::::1;::::0;;25290:103::o;16664:448::-;16796:4;16813:36;16823:6;16831:9;16842:6;16813:9;:36::i;:::-;-1:-1:-1;;;;;16889:19:0;;16862:24;16889:19;;;:11;:19;;;;;;;;179:10;16889:33;;;;;;;;16941:26;;;;16933:79;;;;-1:-1:-1;;;16933:79:0;;11557:2:1;16933:79:0;;;11539:21:1;11596:2;11576:18;;;11569:30;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:18:1;;;11679:38;11734:19;;16933:79:0;11355:404:1;16933:79:0;17023:57;17032:6;179:10;17054:25;17073:6;17054:16;:25;:::i;:::-;17023:8;:57::i;:::-;-1:-1:-1;17100:4:0;;16664:448;-1:-1:-1;;;;16664:448:0:o;26274:120::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26359:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;26359:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26274:120::o;17120:248::-;179:10;17236:4;17290:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17290:34:0;;;;;;;;;;17236:4;;17258:80;;17281:7;;17290:47;;17327:10;;17290:47;:::i;24706:334::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24851:8:::1;:20:::0;;;24882:9:::1;:22:::0;;;24915:14:::1;:22:::0;;-1:-1:-1;;;;24948:26:0;-1:-1:-1;;;24915:22:0;::::1;;::::0;;::::1;-1:-1:-1::0;;;;24948:26:0;;;;;-1:-1:-1;;;24948:26:0;::::1;;::::0;;;-1:-1:-1;24989:13:0::1;24985:47;;;25020:12;25004:13;:28:::0;24706:334;;;:::o;24543:155::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24638:6:::1;:27:::0;;-1:-1:-1;;;;;24638:27:0;;::::1;-1:-1:-1::0;;;;;;24638:27:0;;::::1;;::::0;;;24676:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;24543:155::o;24130:177::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24285:14:::1;3422:2:::0;24285::::1;:14;:::i;:::-;24272:27;::::0;:10;:27:::1;:::i;:::-;24246:23;:53:::0;-1:-1:-1;24130:177:0:o;26612:184::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26724:14:::1;3422:2:::0;26724::::1;:14;:::i;:::-;26715:23;::::0;:6;:23:::1;:::i;:::-;26701:11;:37:::0;26774:14:::1;3422:2:::0;26774::::1;:14;:::i;:::-;26764:24;::::0;:7;:24:::1;:::i;:::-;26749:12;:39:::0;-1:-1:-1;;26612:184:0:o;25562:126::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25650:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;25650:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25562:126::o;12264:94::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;12329:21:::1;12347:1;12329:9;:21::i;:::-;12264:94::o:0;24421:114::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24503:24;;:9:::1;:24:::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;24421:114::o;26052:214::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26155:9:::1;26150:109;26174:8;:15;26170:1;:19;26150:109;;;26242:5;26211:15;:28;26227:8;26236:1;26227:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26211:28:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26211:28:0;:36;;-1:-1:-1;;26211:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26191:3;::::1;::::0;::::1;:::i;:::-;;;;26150:109;;27058:137:::0;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27169:9:::1;::::0;27143:44:::1;::::0;-1:-1:-1;;;27143:44:0;;-1:-1:-1;;;;;27169:9:0;;::::1;27143:44;::::0;::::1;6496:51:1::0;6563:18;;;6556:34;;;27143:25:0;;::::1;::::0;::::1;::::0;6469:18:1;;27143:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2596:104::-:0;2652:13;2685:7;2678:14;;;;;:::i;26936:114::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27012:9:::1;::::0;27004:38:::1;::::0;-1:-1:-1;;;;;27012:9:0;;::::1;::::0;27004:38;::::1;;;::::0;27032:9;;27012::::1;27004:38:::0;27012:9;27004:38;27032:9;27012;27004:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;26936:114:::0;:::o;17376:410::-;179:10;17497:4;17546:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17546:34:0;;;;;;;;;;17599:35;;;;17591:85;;;;-1:-1:-1;;;17591:85:0;;14954:2:1;17591:85:0;;;14936:21:1;14993:2;14973:18;;;14966:30;15032:34;15012:18;;;15005:62;-1:-1:-1;;;15083:18:1;;;15076:35;15128:19;;17591:85:0;14752:401:1;17591:85:0;17687:67;179:10;17710:7;17719:34;17738:15;17719:16;:34;:::i;17687:67::-;-1:-1:-1;17774:4:0;;17376:410;-1:-1:-1;;;17376:410:0:o;17794:165::-;17872:4;17889:40;17899:10;17911:9;17922:6;17889:9;:40::i;25048:115::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25128:15:::1;:27:::0;;-1:-1:-1;;;;;;25128:27:0::1;-1:-1:-1::0;;;;;25128:27:0;;;::::1;::::0;;;::::1;::::0;;25048:115::o;25914:130::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26004:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;26004:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25914:130::o;26804:124::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26906:14:::1;3422:2:::0;26906::::1;:14;:::i;:::-;26897:23;::::0;:6;:23:::1;:::i;:::-;26880:14;:40:::0;-1:-1:-1;26804:124:0:o;24315:98::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24389:16;;:5:::1;:16:::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;24315:98::o;25401:153::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25496:16:::1;:4:::0;25503:9:::1;25496:16;:::i;:::-;25481:12;:31:::0;-1:-1:-1;25523:15:0::1;:23:::0;;-1:-1:-1;;25523:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25401:153::o;12366:192::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12455:22:0;::::1;12447:73;;;::::0;-1:-1:-1;;;12447:73:0;;9194:2:1;12447:73:0::1;::::0;::::1;9176:21:1::0;9233:2;9213:18;;;9206:30;9272:34;9252:18;;;9245:62;-1:-1:-1;;;9323:18:1;;;9316:36;9369:19;;12447:73:0::1;8992:402:1::0;12447:73:0::1;12531:19;12541:8;12531:9;:19::i;:::-;12366:192:::0;:::o;10340:380::-;-1:-1:-1;;;;;10476:19:0;;10468:68;;;;-1:-1:-1;;;10468:68:0;;14190:2:1;10468:68:0;;;14172:21:1;14229:2;14209:18;;;14202:30;14268:34;14248:18;;;14241:62;-1:-1:-1;;;14319:18:1;;;14312:34;14363:19;;10468:68:0;13988:400:1;10468:68:0;-1:-1:-1;;;;;10555:21:0;;10547:68;;;;-1:-1:-1;;;10547:68:0;;9601:2:1;10547:68:0;;;9583:21:1;9640:2;9620:18;;;9613:30;9679:34;9659:18;;;9652:62;-1:-1:-1;;;9730:18:1;;;9723:32;9772:19;;10547:68:0;9399:398:1;10547:68:0;-1:-1:-1;;;;;10628:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10680:32;;15304:25:1;;;10680:32:0;;15277:18:1;10680:32:0;;;;;;;10340:380;;;:::o;17967:3212::-;18117:1;18108:6;:10;18100:64;;;;-1:-1:-1;;;18100:64:0;;12327:2:1;18100:64:0;;;12309:21:1;12366:2;12346:18;;;12339:30;12405:34;12385:18;;;12378:62;-1:-1:-1;;;12456:18:1;;;12449:39;12505:19;;18100:64:0;12125:405:1;18100:64:0;-1:-1:-1;;;;;18198:21:0;;;;;;:13;:21;;;;;;;;18197:22;:51;;;;-1:-1:-1;;;;;;18224:24:0;;;;;;:13;:24;;;;;;;;18223:25;18197:51;18175:126;;;;-1:-1:-1;;;18175:126:0;;13430:2:1;18175:126:0;;;13412:21:1;13469:2;13449:18;;;13442:30;13508:27;13488:18;;;13481:55;13553:18;;18175:126:0;13228:349:1;18175:126:0;-1:-1:-1;;;;;18319:17:0;;;;;;:9;:17;;;;;;;;18318:18;:43;;;;-1:-1:-1;;;;;;18341:20:0;;;;;;:9;:20;;;;;;;;18340:21;18318:43;18314:122;;;18386:14;;-1:-1:-1;;;18386:14:0;;;;18378:46;;;;-1:-1:-1;;;18378:46:0;;12737:2:1;18378:46:0;;;12719:21:1;12776:2;12756:18;;;12749:30;-1:-1:-1;;;12795:18:1;;;12788:49;12854:18;;18378:46:0;12535:343:1;18378:46:0;18462:4;;-1:-1:-1;;;;;18452:14:0;;;18462:4;;18452:14;:39;;;;-1:-1:-1;;;;;;18471:20:0;;;;;;:9;:20;;;;;;;;18470:21;18452:39;:59;;;;-1:-1:-1;18496:15:0;;-1:-1:-1;;;18496:15:0;;;;18495:16;18452:59;18448:311;;;18546:11;;18536:6;:21;;18528:63;;;;-1:-1:-1;;;18528:63:0;;8836:2:1;18528:63:0;;;8818:21:1;8875:2;8855:18;;;8848:30;8914:31;8894:18;;;8887:59;8963:18;;18528:63:0;8634:353:1;18528:63:0;18665:14;;18655:6;18632:20;18642:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;18632:20;:29;;;;:::i;:::-;:47;;18606:141;;;;-1:-1:-1;;;18606:141:0;;10411:2:1;18606:141:0;;;10393:21:1;;;10430:18;;;10423:30;10489:34;10469:18;;;10462:62;10541:18;;18606:141:0;10209:356:1;18606:141:0;18799:4;;-1:-1:-1;;;;;18789:14:0;;;18799:4;;18789:14;;;;:39;;-1:-1:-1;;;;;;18808:20:0;;;;;;:9;:20;;;;;;;;18807:21;18789:39;:61;;;;-1:-1:-1;;;;;;18833:17:0;;;;;;:9;:17;;;;;;;;18832:18;18789:61;:81;;;;-1:-1:-1;18855:15:0;;-1:-1:-1;;;18855:15:0;;;;18854:16;18789:81;18771:682;;;18915:12;;18905:6;:22;;18897:65;;;;-1:-1:-1;;;18897:65:0;;14595:2:1;18897:65:0;;;14577:21:1;14634:2;14614:18;;;14607:30;14673:32;14653:18;;;14646:60;14723:18;;18897:65:0;14393:354:1;18897:65:0;18994:4;;-1:-1:-1;;;;;18981:17:0;;;18994:4;;18981:17;18977:211;;19082:14;;19072:6;19049:20;19059:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;19049:20;:29;;;;:::i;:::-;:47;;19019:153;;;;-1:-1:-1;;;19019:153:0;;10411:2:1;19019:153:0;;;10393:21:1;;;10430:18;;;10423:30;10489:34;10469:18;;;10462:62;10541:18;;19019:153:0;10209:356:1;19019:153:0;19206:15;;;;19202:240;;;-1:-1:-1;;;;;19281:17:0;;19242:18;19281:17;;;:9;:17;;;;;;19263:35;;:15;:35;:::i;:::-;19242:56;;19339:12;;19325:10;:26;;19317:55;;;;-1:-1:-1;;;19317:55:0;;13085:2:1;19317:55:0;;;13067:21:1;13124:2;13104:18;;;13097:30;-1:-1:-1;;;13143:18:1;;;13136:46;13199:18;;19317:55:0;12883:340:1;19317:55:0;-1:-1:-1;;;;;;19391:17:0;;;;;;:9;:17;;;;;19411:15;19391:35;;19202:240;19465:15;19491:14;19516:11;19538:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19538:25:0;-1:-1:-1;;;;;19597:17:0;;19576;19597;;;:9;:17;;;;;;;;19596:18;:56;;;;-1:-1:-1;;;;;;19632:20:0;;;;;;:9;:20;;;;;;;;19631:21;19596:56;:113;;;;;19701:8;;19685:13;;:24;;;;:::i;:::-;19669:12;:40;;19596:113;19797:15;;19576:133;;-1:-1:-1;;;;19797:15:0;;;;;:36;;-1:-1:-1;;;;;;19816:17:0;;;;;;:9;:17;;;;;;;;19797:36;:60;;;-1:-1:-1;;;;;;19837:20:0;;;;;;:9;:20;;;;;;;;19797:60;19793:802;;;19878:1;19872:7;;19793:802;;;19943:4;;-1:-1:-1;;;;;19930:17:0;;;19943:4;;19930:17;:34;;;;;19952:12;19951:13;19930:34;19926:669;;;20139:13;;20086:17;;20139:9;20047:19;20008;;:58;;20047:19;20008:58;:::i;:::-;:95;;;;:::i;:::-;:144;;;;:::i;:::-;20198:24;;;;;;;;20213:9;20198:24;;;;;;;;;;;;;;;;;;;;;;;;19981:171;;-1:-1:-1;19981:171:0;;-1:-1:-1;20198:24:0;-1:-1:-1;19926:669:0;;;20245:12;20240:355;;20404:9;;20371:13;;20404:5;20336:15;20301;;:50;;20336:15;20301:50;:::i;:::-;:83;;;;:::i;:::-;:112;;;;:::i;:::-;20460:20;;;;;;;;20475:5;20460:20;;;;;;;;;;;;;;;;;;;;;;;;20274:139;;-1:-1:-1;20274:139:0;;-1:-1:-1;20460:20:0;-1:-1:-1;20240:355:0;;;20502:12;20498:97;;;20541:9;;;-1:-1:-1;20541:9:0;;-1:-1:-1;20498:97:0;20633:3;20614:15;20623:6;20614;:15;:::i;:::-;20613:23;;;;:::i;:::-;20750:18;;20607:29;;-1:-1:-1;;;;20750:18:0;;;;:36;;;;-1:-1:-1;20782:4:0;;-1:-1:-1;;;;;20772:14:0;;;20782:4;;20772:14;;20750:36;20746:76;;;20788:34;20800:7;20809:12;20788:11;:34::i;:::-;20864:48;20880:6;20888:9;20899:12;20908:3;20899:6;:12;:::i;:::-;20864:15;:48::i;:::-;20927:7;;20923:249;;20999:11;;20995:164;;21031:17;21072:3;21052:16;21061:7;21052:6;:16;:::i;:::-;21051:24;;;;:::i;:::-;21031:44;;21094:49;21110:6;21126:4;21133:9;21094:15;:49::i;:::-;21012:147;20995:164;18089:3090;;;;;17967:3212;;;:::o;12566:173::-;12641:6;;;-1:-1:-1;;;;;12658:17:0;;;-1:-1:-1;;;;;;12658:17:0;;;;;;;12691:40;;12641:6;;;12658:17;12641:6;;12691:40;;12622:16;;12691:40;12611:128;12566:173;:::o;21187:1728::-;15114:15;;-1:-1:-1;;;15114:15:0;;;;15109:125;;15146:15;:22;;-1:-1:-1;;;;15146:22:0;-1:-1:-1;;;15146:22:0;;;21322:4:::1;-1:-1:-1::0;3769:18:0;;;;;;;;;;;21278:50:::1;;21362:23;;21343:15;:42;21339:1569;;21432:1;21406:23;;:27;21402:109;;;-1:-1:-1::0;21472:23:0::1;::::0;21402:109:::1;21582:19;21604:11;:7:::0;21614:1:::1;21604:11;:::i;:::-;21582:33;;21630:32;21724:11;21684:9;:19;;;21666:15;:37;;;;:::i;:::-;21665:70;;;;:::i;:::-;21630:105:::0;-1:-1:-1;21750:14:0::1;21767:42;21630:105:::0;21767:15;:42:::1;:::i;:::-;21750:59:::0;-1:-1:-1;21851:21:0::1;21889:24;21750:59:::0;21889:16:::1;:24::i;:::-;21930:20;21953:38;21977:14:::0;21953:21:::1;:38;:::i;:::-;21930:61;;22006:19;22058:9;:19;;;22044:11;:33;;;;:::i;:::-;22028:50;::::0;:12;:50:::1;:::i;:::-;22006:72;;22093:29;22139:9;:19;;;22125:11;:33;;;;:::i;:::-;22093:65:::0;-1:-1:-1;22179:25:0;;22175:172:::1;;22270:61;22283:24;22309:21;22270:12;:61::i;:::-;22404:19:::0;;22363:20:::1;::::0;22386:15:::1;:11:::0;22400:1:::1;22386:15;:::i;:::-;:37;;;;:::i;:::-;22363:60:::0;-1:-1:-1;22442:16:0;;22438:105:::1;;22487:15;::::0;22479:48:::1;::::0;-1:-1:-1;;;;;22487:15:0::1;22514:12:::0;22479:34:::1;:48::i;:::-;22598:17;::::0;::::1;::::0;22559:18:::1;::::0;22580:15:::1;:11:::0;22594:1:::1;22580:15;:::i;:::-;:35;;;;:::i;:::-;22559:56:::0;-1:-1:-1;22634:14:0;;22630:99:::1;;22677:13;::::0;22669:44:::1;::::0;-1:-1:-1;;;;;22677:13:0::1;22702:10:::0;22669:32:::1;:44::i;:::-;22780:13;::::0;::::1;::::0;22745:14:::1;::::0;22762:15:::1;:11:::0;22776:1:::1;22762:15;:::i;:::-;:31;;;;:::i;:::-;22745:48:::0;-1:-1:-1;22812:10:0;;22808:87:::1;;22851:9;::::0;22843:36:::1;::::0;-1:-1:-1;;;;;22851:9:0::1;22872:6:::0;22843:28:::1;:36::i;:::-;21387:1521;;;;;;;;;;21339:1569;-1:-1:-1::0;15199:15:0;:23;;-1:-1:-1;;;;15199:23:0;;;21187:1728;;:::o;7800:638::-;-1:-1:-1;;;;;7940:20:0;;7932:70;;;;-1:-1:-1;;;7932:70:0;;13784:2:1;7932:70:0;;;13766:21:1;13823:2;13803:18;;;13796:30;13862:34;13842:18;;;13835:62;-1:-1:-1;;;13913:18:1;;;13906:35;13958:19;;7932:70:0;13582:401:1;7932:70:0;-1:-1:-1;;;;;8021:23:0;;8013:71;;;;-1:-1:-1;;;8013:71:0;;8432:2:1;8013:71:0;;;8414:21:1;8471:2;8451:18;;;8444:30;8510:34;8490:18;;;8483:62;-1:-1:-1;;;8561:18:1;;;8554:33;8604:19;;8013:71:0;8230:399:1;8013:71:0;-1:-1:-1;;;;;8181:17:0;;8157:21;8181:17;;;;;;;;;;;8217:23;;;;8209:74;;;;-1:-1:-1;;;8209:74:0;;10004:2:1;8209:74:0;;;9986:21:1;10043:2;10023:18;;;10016:30;10082:34;10062:18;;;10055:62;-1:-1:-1;;;10133:18:1;;;10126:36;10179:19;;8209:74:0;9802:402:1;8209:74:0;8314:22;8330:6;8314:13;:22;:::i;:::-;-1:-1:-1;;;;;8294:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8347:20;;;;;;;;:30;;8371:6;;8294:9;8347:30;;8371:6;;8347:30;:::i;:::-;;;;;;;;8412:9;-1:-1:-1;;;;;8395:35:0;8404:6;-1:-1:-1;;;;;8395:35:0;;8423:6;8395:35;;;;15304:25:1;;15292:2;15277:18;;15158:177;8395:35:0;;;;;;;;7921:517;7800:638;;;:::o;22923:534::-;23073:16;;;23087:1;23073:16;;;;;;;;23049:21;;23073:16;;;;;;;;;;-1:-1:-1;23073:16:0;23049:40;;23118:4;23100;23105:1;23100:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23100:23:0;;;:7;;;;;;;;;;:23;;;;23144:6;;:13;;;-1:-1:-1;;;23144:13:0;;;;:6;;;;;:11;;:13;;;;;23100:7;;23144:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23134:4;23139:1;23134:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23134:23:0;;;:7;;;;;;;;;:23;23202:6;;23170:53;;23187:4;;23202:6;23211:11;23170:8;:53::i;:::-;23262:6;;:187;;-1:-1:-1;;;23262:187:0;;-1:-1:-1;;;;;23262:6:0;;;;:57;;:187;;23334:11;;23262:6;;23376:4;;23403;;23423:15;;23262:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22978:479;22923:534;:::o;23465:497::-;23645:6;;23613:53;;23630:4;;-1:-1:-1;;;;;23645:6:0;23654:11;23613:8;:53::i;:::-;23709:6;;-1:-1:-1;;;;;23709:6:0;:22;23740:9;23774:4;23794:11;23709:6;;23906:7;12114:6;;-1:-1:-1;;;;;12114:6:0;;12041:87;23906:7;23709:245;;;;;;-1:-1:-1;;;;;;23709:245:0;;;-1:-1:-1;;;;;6960:15:1;;;23709:245:0;;;6942:34:1;6992:18;;;6985:34;;;;7035:18;;;7028:34;;;;7078:18;;;7071:34;7142:15;;;7121:19;;;7114:44;23928:15:0;7174:19:1;;;7167:35;6876:19;;23709:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23465:497;;:::o;11484:319::-;11599:6;11574:21;:31;;11566:73;;;;-1:-1:-1;;;11566:73:0;;11199:2:1;11566:73:0;;;11181:21:1;11238:2;11218:18;;;11211:30;11277:31;11257:18;;;11250:59;11326:18;;11566:73:0;10997:353:1;11566:73:0;11653:12;11671:9;-1:-1:-1;;;;;11671:14:0;11694:6;11671:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11652:54;;;11725:7;11717:78;;;;-1:-1:-1;;;11717:78:0;;10772:2:1;11717:78:0;;;10754:21:1;10811:2;10791:18;;;10784:30;10850:34;10830:18;;;10823:62;10921:28;10901:18;;;10894:56;10967:19;;11717:78:0;10570:422:1;14:128;79:20;;108:28;79:20;108:28;:::i;:::-;14:128;;;:::o;147:247::-;206:6;259:2;247:9;238:7;234:23;230:32;227:52;;;275:1;272;265:12;227:52;314:9;301:23;333:31;358:5;333:31;:::i;:::-;383:5;147:247;-1:-1:-1;;;147:247:1:o;399:251::-;469:6;522:2;510:9;501:7;497:23;493:32;490:52;;;538:1;535;528:12;490:52;570:9;564:16;589:31;614:5;589:31;:::i;655:388::-;723:6;731;784:2;772:9;763:7;759:23;755:32;752:52;;;800:1;797;790:12;752:52;839:9;826:23;858:31;883:5;858:31;:::i;:::-;908:5;-1:-1:-1;965:2:1;950:18;;937:32;978:33;937:32;978:33;:::i;:::-;1030:7;1020:17;;;655:388;;;;;:::o;1048:456::-;1125:6;1133;1141;1194:2;1182:9;1173:7;1169:23;1165:32;1162:52;;;1210:1;1207;1200:12;1162:52;1249:9;1236:23;1268:31;1293:5;1268:31;:::i;:::-;1318:5;-1:-1:-1;1375:2:1;1360:18;;1347:32;1388:33;1347:32;1388:33;:::i;:::-;1048:456;;1440:7;;-1:-1:-1;;;1494:2:1;1479:18;;;;1466:32;;1048:456::o;1509:382::-;1574:6;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:52;;;1651:1;1648;1641:12;1603:52;1690:9;1677:23;1709:31;1734:5;1709:31;:::i;:::-;1759:5;-1:-1:-1;1816:2:1;1801:18;;1788:32;1829:30;1788:32;1829:30;:::i;1896:315::-;1964:6;1972;2025:2;2013:9;2004:7;2000:23;1996:32;1993:52;;;2041:1;2038;2031:12;1993:52;2080:9;2067:23;2099:31;2124:5;2099:31;:::i;:::-;2149:5;2201:2;2186:18;;;;2173:32;;-1:-1:-1;;;1896:315:1:o;2216:1102::-;2306:6;2314;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2423:9;2410:23;2452:18;2493:2;2485:6;2482:14;2479:34;;;2509:1;2506;2499:12;2479:34;2547:6;2536:9;2532:22;2522:32;;2592:7;2585:4;2581:2;2577:13;2573:27;2563:55;;2614:1;2611;2604:12;2563:55;2650:2;2637:16;2672:4;2695:2;2691;2688:10;2685:36;;;2701:18;;:::i;:::-;2747:2;2744:1;2740:10;2730:20;;2770:28;2794:2;2790;2786:11;2770:28;:::i;:::-;2832:15;;;2863:12;;;;2895:11;;;2925;;;2921:20;;2918:33;-1:-1:-1;2915:53:1;;;2964:1;2961;2954:12;2915:53;2986:1;2977:10;;2996:238;3010:2;3007:1;3004:9;2996:238;;;3081:3;3068:17;3055:30;;3098:31;3123:5;3098:31;:::i;:::-;3142:18;;;3028:1;3021:9;;;;;3180:12;;;;3212;;2996:238;;;-1:-1:-1;3253:5:1;-1:-1:-1;3277:35:1;;-1:-1:-1;3293:18:1;;;3277:35;:::i;:::-;3267:45;;;;;;2216:1102;;;;;:::o;3323:241::-;3379:6;3432:2;3420:9;3411:7;3407:23;3403:32;3400:52;;;3448:1;3445;3438:12;3400:52;3487:9;3474:23;3506:28;3528:5;3506:28;:::i;3569:245::-;3636:6;3689:2;3677:9;3668:7;3664:23;3660:32;3657:52;;;3705:1;3702;3695:12;3657:52;3737:9;3731:16;3756:28;3778:5;3756:28;:::i;3819:309::-;3884:6;3892;3945:2;3933:9;3924:7;3920:23;3916:32;3913:52;;;3961:1;3958;3951:12;3913:52;4000:9;3987:23;4019:28;4041:5;4019:28;:::i;4133:377::-;4207:6;4215;4223;4276:2;4264:9;4255:7;4251:23;4247:32;4244:52;;;4292:1;4289;4282:12;4244:52;4331:9;4318:23;4350:28;4372:5;4350:28;:::i;:::-;4397:5;4449:2;4434:18;;4421:32;;-1:-1:-1;4500:2:1;4485:18;;;4472:32;;4133:377;-1:-1:-1;;;4133:377:1:o;4515:635::-;4596:6;4649:3;4637:9;4628:7;4624:23;4620:33;4617:53;;;4666:1;4663;4656:12;4617:53;4699:2;4693:9;4741:3;4733:6;4729:16;4811:6;4799:10;4796:22;4775:18;4763:10;4760:34;4757:62;4754:88;;;4822:18;;:::i;:::-;4862:10;4858:2;4851:22;;4910:9;4897:23;4889:6;4882:39;4982:2;4971:9;4967:18;4954:32;4949:2;4941:6;4937:15;4930:57;5048:2;5037:9;5033:18;5020:32;5015:2;5007:6;5003:15;4996:57;5114:2;5103:9;5099:18;5086:32;5081:2;5073:6;5069:15;5062:57;5138:6;5128:16;;;4515:635;;;;:::o;5155:180::-;5214:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:52;;;5283:1;5280;5273:12;5235:52;-1:-1:-1;5306:23:1;;5155:180;-1:-1:-1;5155:180:1:o;5340:248::-;5408:6;5416;5469:2;5457:9;5448:7;5444:23;5440:32;5437:52;;;5485:1;5482;5475:12;5437:52;-1:-1:-1;;5508:23:1;;;5578:2;5563:18;;;5550:32;;-1:-1:-1;5340:248:1:o;5593:306::-;5681:6;5689;5697;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;5795:9;5789:16;5779:26;;5845:2;5834:9;5830:18;5824:25;5814:35;;5889:2;5878:9;5874:18;5868:25;5858:35;;5593:306;;;;;:::o;7628:597::-;7740:4;7769:2;7798;7787:9;7780:21;7830:6;7824:13;7873:6;7868:2;7857:9;7853:18;7846:34;7898:1;7908:140;7922:6;7919:1;7916:13;7908:140;;;8017:14;;;8013:23;;8007:30;7983:17;;;8002:2;7979:26;7972:66;7937:10;;7908:140;;;8066:6;8063:1;8060:13;8057:91;;;8136:1;8131:2;8122:6;8111:9;8107:22;8103:31;8096:42;8057:91;-1:-1:-1;8209:2:1;8188:15;-1:-1:-1;;8184:29:1;8169:45;;;;8216:2;8165:54;;7628:597;-1:-1:-1;;;7628:597:1:o;11764:356::-;11966:2;11948:21;;;11985:18;;;11978:30;12044:34;12039:2;12024:18;;12017:62;12111:2;12096:18;;11764:356::o;15340:980::-;15602:4;15650:3;15639:9;15635:19;15681:6;15670:9;15663:25;15707:2;15745:6;15740:2;15729:9;15725:18;15718:34;15788:3;15783:2;15772:9;15768:18;15761:31;15812:6;15847;15841:13;15878:6;15870;15863:22;15916:3;15905:9;15901:19;15894:26;;15955:2;15947:6;15943:15;15929:29;;15976:1;15986:195;16000:6;15997:1;15994:13;15986:195;;;16065:13;;-1:-1:-1;;;;;16061:39:1;16049:52;;16156:15;;;;16121:12;;;;16097:1;16015:9;15986:195;;;-1:-1:-1;;;;;;;16237:32:1;;;;16232:2;16217:18;;16210:60;-1:-1:-1;;;16301:3:1;16286:19;16279:35;16198:3;15340:980;-1:-1:-1;;;15340:980:1:o;16910:275::-;16981:2;16975:9;17046:2;17027:13;;-1:-1:-1;;17023:27:1;17011:40;;17081:18;17066:34;;17102:22;;;17063:62;17060:88;;;17128:18;;:::i;:::-;17164:2;17157:22;16910:275;;-1:-1:-1;16910:275:1:o;17190:128::-;17230:3;17261:1;17257:6;17254:1;17251:13;17248:39;;;17267:18;;:::i;:::-;-1:-1:-1;17303:9:1;;17190:128::o;17323:217::-;17363:1;17389;17379:132;;17433:10;17428:3;17424:20;17421:1;17414:31;17468:4;17465:1;17458:15;17496:4;17493:1;17486:15;17379:132;-1:-1:-1;17525:9:1;;17323:217::o;17545:422::-;17634:1;17677:5;17634:1;17691:270;17712:7;17702:8;17699:21;17691:270;;;17771:4;17767:1;17763:6;17759:17;17753:4;17750:27;17747:53;;;17780:18;;:::i;:::-;17830:7;17820:8;17816:22;17813:55;;;17850:16;;;;17813:55;17929:22;;;;17889:15;;;;17691:270;;;17695:3;17545:422;;;;;:::o;17972:140::-;18030:5;18059:47;18100:4;18090:8;18086:19;18080:4;18166:5;18196:8;18186:80;;-1:-1:-1;18237:1:1;18251:5;;18186:80;18285:4;18275:76;;-1:-1:-1;18322:1:1;18336:5;;18275:76;18367:4;18385:1;18380:59;;;;18453:1;18448:130;;;;18360:218;;18380:59;18410:1;18401:10;;18424:5;;;18448:130;18485:3;18475:8;18472:17;18469:43;;;18492:18;;:::i;:::-;-1:-1:-1;;18548:1:1;18534:16;;18563:5;;18360:218;;18662:2;18652:8;18649:16;18643:3;18637:4;18634:13;18630:36;18624:2;18614:8;18611:16;18606:2;18600:4;18597:12;18593:35;18590:77;18587:159;;;-1:-1:-1;18699:19:1;;;18731:5;;18587:159;18778:34;18803:8;18797:4;18778:34;:::i;:::-;18848:6;18844:1;18840:6;18836:19;18827:7;18824:32;18821:58;;;18859:18;;:::i;:::-;18897:20;;18117:806;-1:-1:-1;;;18117:806:1:o;18928:168::-;18968:7;19034:1;19030;19026:6;19022:14;19019:1;19016:21;19011:1;19004:9;18997:17;18993:45;18990:71;;;19041:18;;:::i;:::-;-1:-1:-1;19081:9:1;;18928:168::o;19101:125::-;19141:4;19169:1;19166;19163:8;19160:34;;;19174:18;;:::i;:::-;-1:-1:-1;19211:9:1;;19101:125::o;19231:380::-;19310:1;19306:12;;;;19353;;;19374:61;;19428:4;19420:6;19416:17;19406:27;;19374:61;19481:2;19473:6;19470:14;19450:18;19447:38;19444:161;;;19527:10;19522:3;19518:20;19515:1;19508:31;19562:4;19559:1;19552:15;19590:4;19587:1;19580:15;19444:161;;19231:380;;;:::o;19616:135::-;19655:3;-1:-1:-1;;19676:17:1;;19673:43;;;19696:18;;:::i;:::-;-1:-1:-1;19743:1:1;19732:13;;19616:135::o;19756:127::-;19817:10;19812:3;19808:20;19805:1;19798:31;19848:4;19845:1;19838:15;19872:4;19869:1;19862:15;19888:127;19949:10;19944:3;19940:20;19937:1;19930:31;19980:4;19977:1;19970:15;20004:4;20001:1;19994:15;20020:127;20081:10;20076:3;20072:20;20069:1;20062:31;20112:4;20109:1;20102:15;20136:4;20133:1;20126:15;20152:131;-1:-1:-1;;;;;20227:31:1;;20217:42;;20207:70;;20273:1;20270;20263:12;20288:118;20374:5;20367:13;20360:21;20353:5;20350:32;20340:60;;20396:1;20393;20386:12

Swarm Source

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