ETH Price: $3,282.08 (+1.15%)
 

Overview

Max Total Supply

100,000 GOSSIP

Holders

77

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
55.402209561292208325 GOSSIP

Value
$0.00
0x6a1CFf9780C285a70a7899E74bc225168d08D086
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:
GOSSIP

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-15
*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.8;

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 IBEP20 {
    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 IBEP20Metadata is IBEP20 {
    /**
     * @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 BEP20 is Context, IBEP20, IBEP20Metadata {
    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 {BEP20} 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
     * {IBEP20-balanceOf} and {IBEP20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    /**
     * @dev See {IBEP20-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 {IBEP20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IBEP20-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 {IBEP20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {BEP20}.
     *
     * 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, "BEP20: 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 {IBEP20-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 {IBEP20-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, "BEP20: 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), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "BEP20: 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");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, 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), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

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

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 GOSSIP is BEP20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _interlock = false;
    bool public providingLiquidity = false;
    bool public lambo_soon = false;

    uint256 public tokenLiquidityThreshold = 10000 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline = 3;
    uint256 private launchtax = 99;
    uint256 public maxWalletLimit = 1000 * 10**18;
    uint256 public maxBuyLimit = 1000 * 10**18;
    uint256 public maxSellLimit = 1000 * 10**18;

    address public marketingWallet = 0xB001Ae29629e0Bd716cA8bEb69Fd2bb72E44C519;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public constant zeroWallet = 0x0000000000000000000000000000000000000000;


    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(4, 0);
    Taxes public sellTaxes = Taxes(4, 0);

    mapping(address => bool) public exemptFee;

    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }


    constructor() BEP20("GOSSIP", "GOSSIP") {
        _tokengeneration(msg.sender, 100000 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pancake 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[deadWallet] = 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, "BEP20: 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, "BEP20: 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");

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

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

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

        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 (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing;
            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) Liquify(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 Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {

        if(feeswap == 0){
            return;
        }

        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 pancake
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

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

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pancake 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
        require(new_amount <= 100000, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity);
        require((_marketing + _liquidity) <= 9, "Must keep fees at 9% or less");
    }

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

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

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

    function 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 getCirculatingSupply() public view returns (uint256) {
        return (totalSupply() - balanceOf(deadWallet) - balanceOf(zeroWallet));
    }

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

    function rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

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

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","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":"enableTrade","outputs":[],"stateMutability":"nonpayable","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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lambo_soon","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":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBSC20","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"}],"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"}],"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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555069021e19e0c9bab24000006008556003600a556063600b55683635c9adc5dea00000600c55683635c9adc5dea00000600d55683635c9adc5dea00000600e5573b001ae29629e0bd716ca8beb69fd2bb72e44c519600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806040016040528060048152602001600081525060106000820151816000015560208201518160010155505060405180604001604052806004815260200160008152506012600082015181600001556020820151816001015550503480156200015457600080fd5b506040518060400160405280600681526020017f474f5353495000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f474f5353495000000000000000000000000000000000000000000000000000008152508160039081620001d2919062000a77565b508060049081620001e4919062000a77565b50505062000207620001fb620005d660201b60201c565b620005de60201b60201c565b62000246336200021c620006a460201b60201c565b600a6200022a919062000cee565b620186a06200023a919062000d3f565b620006ad60201b60201c565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b919062000df4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000df4565b6040518363ffffffff1660e01b8152600401620003d892919062000e37565b6020604051808303816000875af1158015620003f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041e919062000df4565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000f76565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007169062000eeb565b60405180910390fd5b806002600082825462000733919062000f0d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200078a919062000f0d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007f1919062000f59565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087f57607f821691505b60208210810362000895576200089462000837565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008c0565b6200090b8683620008c0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000958620009526200094c8462000923565b6200092d565b62000923565b9050919050565b6000819050919050565b620009748362000937565b6200098c62000983826200095f565b848454620008cd565b825550505050565b600090565b620009a362000994565b620009b081848462000969565b505050565b5b81811015620009d857620009cc60008262000999565b600181019050620009b6565b5050565b601f82111562000a2757620009f1816200089b565b620009fc84620008b0565b8101602085101562000a0c578190505b62000a2462000a1b85620008b0565b830182620009b5565b50505b505050565b600082821c905092915050565b600062000a4c6000198460080262000a2c565b1980831691505092915050565b600062000a67838362000a39565b9150826002028217905092915050565b62000a8282620007fd565b67ffffffffffffffff81111562000a9e5762000a9d62000808565b5b62000aaa825462000866565b62000ab7828285620009dc565b600060209050601f83116001811462000aef576000841562000ada578287015190505b62000ae6858262000a59565b86555062000b56565b601f19841662000aff866200089b565b60005b8281101562000b295784890151825560018201915060208501945060208101905062000b02565b8683101562000b49578489015162000b45601f89168262000a39565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bec5780860481111562000bc45762000bc362000b5e565b5b600185161562000bd45780820291505b808102905062000be48562000b8d565b945062000ba4565b94509492505050565b60008262000c07576001905062000cda565b8162000c17576000905062000cda565b816001811462000c30576002811462000c3b5762000c71565b600191505062000cda565b60ff84111562000c505762000c4f62000b5e565b5b8360020a91508482111562000c6a5762000c6962000b5e565b5b5062000cda565b5060208310610133831016604e8410600b841016171562000cab5782820a90508381111562000ca55762000ca462000b5e565b5b62000cda565b62000cba848484600162000b9a565b9250905081840481111562000cd45762000cd362000b5e565b5b81810290505b9392505050565b600060ff82169050919050565b600062000cfb8262000923565b915062000d088362000ce1565b925062000d377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf5565b905092915050565b600062000d4c8262000923565b915062000d598362000923565b925082820262000d698162000923565b9150828204841483151762000d835762000d8262000b5e565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dbc8262000d8f565b9050919050565b62000dce8162000daf565b811462000dda57600080fd5b50565b60008151905062000dee8162000dc3565b92915050565b60006020828403121562000e0d5762000e0c62000d8a565b5b600062000e1d8482850162000ddd565b91505092915050565b62000e318162000daf565b82525050565b600060408201905062000e4e600083018562000e26565b62000e5d602083018462000e26565b9392505050565b600082825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600062000ed360258362000e64565b915062000ee08262000e75565b604082019050919050565b6000602082019050818103600083015262000f068162000ec4565b9050919050565b600062000f1a8262000923565b915062000f278362000923565b925082820190508082111562000f425762000f4162000b5e565b5b92915050565b62000f538162000923565b82525050565b600060208201905062000f70600083018462000f48565b92915050565b614b538062000f866000396000f3fe6080604052600436106102495760003560e01c8063728f8eea11610139578063c5d32bb2116100b6578063f2fde38b1161007a578063f2fde38b1461088d578063f52be97c146108b6578063f66895a3146108df578063f887ea401461090b578063fbe6324e14610936578063fe8f12b41461096157610250565b8063c5d32bb214610798578063c9300ed5146107d5578063dd62ed3e146107fe578063e1b450ad1461083b578063edaa11681461086457610250565b806395d89b41116100fd57806395d89b411461069f578063a457c2d7146106ca578063a8aa1b3114610707578063a9059cbb14610732578063aacebbe31461076f57610250565b8063728f8eea146105c757806375f0a874146105f357806385141a771461061e5780638a33e881146106495780638da5cb5b1461067457610250565b8063313ce567116101c7578063652e2f041161018b578063652e2f04146104f257806366a88d961461051d5780636aa5b37f1461054857806370a0823114610573578063715018a6146105b057610250565b8063313ce5671461040f578063355496ca1461043a578063395093511461046357806342b6fa11146104a0578063441b1d30146104c957610250565b80631675d8021161020e5780631675d8021461032657806318160ddd1461035157806323b872dd1461037c578063274a533c146103b95780632b112e49146103e457610250565b806299d3861461025557806306fdde031461026c578063095ea7b3146102975780630e375a5c146102d45780631340538f146102fd57610250565b3661025057005b600080fd5b34801561026157600080fd5b5061026a61098c565b005b34801561027857600080fd5b50610281610a97565b60405161028e91906130b1565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b9919061317b565b610b29565b6040516102cb91906131d6565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190613365565b610b47565b005b34801561030957600080fd5b50610324600480360381019061031f91906133c1565b610c58565b005b34801561033257600080fd5b5061033b610cf1565b60405161034891906133fd565b60405180910390f35b34801561035d57600080fd5b50610366610cf7565b60405161037391906133fd565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190613418565b610d01565b6040516103b091906131d6565b60405180910390f35b3480156103c557600080fd5b506103ce610e02565b6040516103db91906133fd565b60405180910390f35b3480156103f057600080fd5b506103f9610e08565b60405161040691906133fd565b60405180910390f35b34801561041b57600080fd5b50610424610e40565b6040516104319190613487565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c91906134a2565b610e49565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061317b565b610f20565b60405161049791906131d6565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c291906134e2565b610fcc565b005b3480156104d557600080fd5b506104f060048036038101906104eb91906134e2565b6110b6565b005b3480156104fe57600080fd5b50610507611183565b60405161051491906133fd565b60405180910390f35b34801561052957600080fd5b50610532611189565b60405161053f91906133fd565b60405180910390f35b34801561055457600080fd5b5061055d61118f565b60405161056a91906133fd565b60405180910390f35b34801561057f57600080fd5b5061059a6004803603810190610595919061350f565b611195565b6040516105a791906133fd565b60405180910390f35b3480156105bc57600080fd5b506105c56111dd565b005b3480156105d357600080fd5b506105dc611265565b6040516105ea92919061353c565b60405180910390f35b3480156105ff57600080fd5b50610608611277565b6040516106159190613574565b60405180910390f35b34801561062a57600080fd5b5061063361129d565b6040516106409190613574565b60405180910390f35b34801561065557600080fd5b5061065e6112a3565b60405161066b9190613574565b60405180910390f35b34801561068057600080fd5b506106896112a8565b6040516106969190613574565b60405180910390f35b3480156106ab57600080fd5b506106b46112d2565b6040516106c191906130b1565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec919061317b565b611364565b6040516106fe91906131d6565b60405180910390f35b34801561071357600080fd5b5061071c611458565b6040516107299190613574565b60405180910390f35b34801561073e57600080fd5b506107596004803603810190610754919061317b565b61147e565b60405161076691906131d6565b60405180910390f35b34801561077b57600080fd5b506107966004803603810190610791919061350f565b611495565b005b3480156107a457600080fd5b506107bf60048036038101906107ba919061350f565b6115c4565b6040516107cc91906131d6565b60405180910390f35b3480156107e157600080fd5b506107fc60048036038101906107f7919061317b565b6115e4565b005b34801561080a57600080fd5b506108256004803603810190610820919061358f565b611758565b60405161083291906133fd565b60405180910390f35b34801561084757600080fd5b50610862600480360381019061085d91906135cf565b6117df565b005b34801561087057600080fd5b5061088b600480360381019061088691906134e2565b6119a1565b005b34801561089957600080fd5b506108b460048036038101906108af919061350f565b611ab9565b005b3480156108c257600080fd5b506108dd60048036038101906108d89190613622565b611bb0565b005b3480156108eb57600080fd5b506108f4611cad565b60405161090292919061353c565b60405180910390f35b34801561091757600080fd5b50610920611cbf565b60405161092d91906136c1565b60405180910390f35b34801561094257600080fd5b5061094b611ce5565b60405161095891906131d6565b60405180910390f35b34801561096d57600080fd5b50610976611cf8565b60405161098391906131d6565b60405180910390f35b610994611d0b565b73ffffffffffffffffffffffffffffffffffffffff166109b26112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90613728565b60405180910390fd5b600760169054906101000a900460ff1615610a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4f90613794565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b606060038054610aa6906137e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad2906137e3565b8015610b1f5780601f10610af457610100808354040283529160200191610b1f565b820191906000526020600020905b815481529060010190602001808311610b0257829003601f168201915b5050505050905090565b6000610b3d610b36611d0b565b8484611d13565b6001905092915050565b610b4f611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610b6d6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bba90613728565b60405180910390fd5b60005b8251811015610c53578160146000858481518110610be757610be6613814565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4b90613872565b915050610bc6565b505050565b610c60611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610c7e6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613728565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b6000610d0e848484611edc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d59611d0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd09061392c565b60405180910390fd5b610df685610de5611d0b565b8584610df1919061394c565b611d13565b60019150509392505050565b60095481565b6000610e146000611195565b610e1f61dead611195565b610e27610cf7565b610e31919061394c565b610e3b919061394c565b905090565b60006012905090565b610e51611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610e6f6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebc90613728565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fc2610f2d611d0b565b848460016000610f3b611d0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fbd9190613980565b611d13565b6001905092915050565b610fd4611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610ff26112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90613728565b60405180910390fd5b620186a081111561108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590613a26565b60405180910390fd5b611096610e40565b600a6110a29190613b79565b816110ad9190613bc4565b60088190555050565b6110be611d0b565b73ffffffffffffffffffffffffffffffffffffffff166110dc6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990613728565b60405180910390fd5b61113a6112a8565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561117f573d6000803e3d6000fd5b5050565b600e5481565b600c5481565b600d5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111e5611d0b565b73ffffffffffffffffffffffffffffffffffffffff166112036112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090613728565b60405180910390fd5b611263600061270f565b565b60108060000154908060010154905082565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600081565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112e1906137e3565b80601f016020809104026020016040519081016040528092919081815260200182805461130d906137e3565b801561135a5780601f1061132f5761010080835404028352916020019161135a565b820191906000526020600020905b81548152906001019060200180831161133d57829003601f168201915b5050505050905090565b60008060016000611373611d0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142790613c78565b60405180910390fd5b61144d61143b611d0b565b858584611448919061394c565b611d13565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061148b338484611edc565b6001905092915050565b61149d611d0b565b73ffffffffffffffffffffffffffffffffffffffff166114bb6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890613728565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790613d0a565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b6115ec611d0b565b73ffffffffffffffffffffffffffffffffffffffff1661160a6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165790613728565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c590613d9c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6116f26112a8565b836040518363ffffffff1660e01b8152600401611710929190613dbc565b6020604051808303816000875af115801561172f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117539190613dfa565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117e7611d0b565b73ffffffffffffffffffffffffffffffffffffffff166118056112a8565b73ffffffffffffffffffffffffffffffffffffffff161461185b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185290613728565b60405180910390fd5b620bdb288310156118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189890613e99565b60405180910390fd5b620bdb288210156118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90613f2b565b60405180910390fd5b62768f9081101561192d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192490613fbd565b60405180910390fd5b611935610e40565b600a6119419190613b79565b8361194c9190613bc4565b600d8190555061195a610e40565b600a6119669190613b79565b826119719190613bc4565b600e8190555061197f610e40565b600a61198b9190613b79565b816119969190613bc4565b600c81905550505050565b6119a9611d0b565b73ffffffffffffffffffffffffffffffffffffffff166119c76112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1490613728565b60405180910390fd5b600760169054906101000a900460ff16611a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a639061404f565b60405180910390fd5b60058110611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa6906140e1565b60405180910390fd5b80600a8190555050565b611ac1611d0b565b73ffffffffffffffffffffffffffffffffffffffff16611adf6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90613728565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b90614173565b60405180910390fd5b611bad8161270f565b50565b611bb8611d0b565b73ffffffffffffffffffffffffffffffffffffffff16611bd66112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2390613728565b60405180910390fd5b6040518060400160405280838152602001828152506012600082015181600001556020820151816001015590505060098183611c689190613980565b1115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906141df565b60405180910390fd5b5050565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600760169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7990614271565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de890614303565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecf91906133fd565b60405180910390a3505050565b60008111611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1690614395565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fc35750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561201857600760169054906101000a900460ff16612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e90614401565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120bf5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120d85750600760149054906101000a900460ff16155b1561217b57600d54811115612122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121199061446d565b60405180910390fd5b600c548161212f84611195565b6121399190613980565b111561217a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612171906144d9565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122235750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122795750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122925750600760149054906101000a900460ff16155b1561238b57600e548111156122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d390614545565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461238a57600c548161233e84611195565b6123489190613980565b1115612389576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612380906144d9565b60405180910390fd5b5b5b6000806000612398613007565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561243e5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124585750600a546009546124559190613980565b43105b9050600760149054906101000a900460ff16806124be5750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125125750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612520576000925061261f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561257b575080155b156125c3576012600001546012600101546125969190613980565b9450849350601260405180604001604052908160008201548152602001600182015481525050915061261e565b8061260b576010600001546010600101546125de9190613980565b9450849350601060405180604001604052908160008201548152602001600182015481525050915061261d565b801561261c57600b549450600b5493505b5b5b5b6064848761262d9190613bc4565b6126379190614594565b9250600760159054906101000a900460ff1680156126a35750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156126b3576126b285836127d5565b5b6126c9888885896126c4919061394c565b612979565b6000831115612705576000851115612704576000606486886126eb9190613bc4565b6126f59190614594565b9050612702893083612979565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612975576001600760146101000a81548160ff021916908315150217905550600082031561295957600061281830611195565b9050600854811061295757600160085411156128345760085490505b60006002846128439190613bc4565b90506000818460200151846128589190613bc4565b6128629190614594565b905060008184612872919061394c565b9050600047905061288282612beb565b60008147612890919061394c565b905060008760200151866128a4919061394c565b826128af9190614594565b905060008860200151826128c39190613bc4565b905060008111156128d9576128d88682612e2e565b5b600089600001516002846128ed9190613bc4565b6128f79190613bc4565b9050600081111561294e5761294d81600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1390919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129df90614637565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4e906146c9565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad49061475b565b60405180910390fd5b8181612ae9919061394c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b799190613980565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdd91906133fd565b60405180910390a350505050565b6000600267ffffffffffffffff811115612c0857612c076131f6565b5b604051908082528060200260200182016040528015612c365781602001602082028036833780820191505090505b5090503081600081518110612c4e57612c4d613814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d199190614790565b81600181518110612d2d57612d2c613814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d13565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612df89594939291906148b6565b600060405180830381600087803b158015612e1257600080fd5b505af1158015612e26573d6000803e3d6000fd5b505050505050565b612e5b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d13565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612ea76112a8565b426040518863ffffffff1660e01b8152600401612ec996959493929190614910565b60606040518083038185885af1158015612ee7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0c9190614986565b5050505050565b80471015612f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4d90614a25565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7c90614a76565b60006040518083038185875af1925050503d8060008114612fb9576040519150601f19603f3d011682016040523d82523d6000602084013e612fbe565b606091505b5050905080613002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff990614afd565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561305b578082015181840152602081019050613040565b60008484015250505050565b6000601f19601f8301169050919050565b600061308382613021565b61308d818561302c565b935061309d81856020860161303d565b6130a681613067565b840191505092915050565b600060208201905081810360008301526130cb8184613078565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613112826130e7565b9050919050565b61312281613107565b811461312d57600080fd5b50565b60008135905061313f81613119565b92915050565b6000819050919050565b61315881613145565b811461316357600080fd5b50565b6000813590506131758161314f565b92915050565b60008060408385031215613192576131916130dd565b5b60006131a085828601613130565b92505060206131b185828601613166565b9150509250929050565b60008115159050919050565b6131d0816131bb565b82525050565b60006020820190506131eb60008301846131c7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61322e82613067565b810181811067ffffffffffffffff8211171561324d5761324c6131f6565b5b80604052505050565b60006132606130d3565b905061326c8282613225565b919050565b600067ffffffffffffffff82111561328c5761328b6131f6565b5b602082029050602081019050919050565b600080fd5b60006132b56132b084613271565b613256565b905080838252602082019050602084028301858111156132d8576132d761329d565b5b835b8181101561330157806132ed8882613130565b8452602084019350506020810190506132da565b5050509392505050565b600082601f8301126133205761331f6131f1565b5b81356133308482602086016132a2565b91505092915050565b613342816131bb565b811461334d57600080fd5b50565b60008135905061335f81613339565b92915050565b6000806040838503121561337c5761337b6130dd565b5b600083013567ffffffffffffffff81111561339a576133996130e2565b5b6133a68582860161330b565b92505060206133b785828601613350565b9150509250929050565b6000602082840312156133d7576133d66130dd565b5b60006133e584828501613350565b91505092915050565b6133f781613145565b82525050565b600060208201905061341260008301846133ee565b92915050565b600080600060608486031215613431576134306130dd565b5b600061343f86828701613130565b935050602061345086828701613130565b925050604061346186828701613166565b9150509250925092565b600060ff82169050919050565b6134818161346b565b82525050565b600060208201905061349c6000830184613478565b92915050565b600080604083850312156134b9576134b86130dd565b5b60006134c785828601613130565b92505060206134d885828601613350565b9150509250929050565b6000602082840312156134f8576134f76130dd565b5b600061350684828501613166565b91505092915050565b600060208284031215613525576135246130dd565b5b600061353384828501613130565b91505092915050565b600060408201905061355160008301856133ee565b61355e60208301846133ee565b9392505050565b61356e81613107565b82525050565b60006020820190506135896000830184613565565b92915050565b600080604083850312156135a6576135a56130dd565b5b60006135b485828601613130565b92505060206135c585828601613130565b9150509250929050565b6000806000606084860312156135e8576135e76130dd565b5b60006135f686828701613166565b935050602061360786828701613166565b925050604061361886828701613166565b9150509250925092565b60008060408385031215613639576136386130dd565b5b600061364785828601613166565b925050602061365885828601613166565b9150509250929050565b6000819050919050565b600061368761368261367d846130e7565b613662565b6130e7565b9050919050565b60006136998261366c565b9050919050565b60006136ab8261368e565b9050919050565b6136bb816136a0565b82525050565b60006020820190506136d660008301846136b2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061371260208361302c565b915061371d826136dc565b602082019050919050565b6000602082019050818103600083015261374181613705565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061377e60188361302c565b915061378982613748565b602082019050919050565b600060208201905081810360008301526137ad81613771565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137fb57607f821691505b60208210810361380e5761380d6137b4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061387d82613145565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138af576138ae613843565b5b600182019050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061391660288361302c565b9150613921826138ba565b604082019050919050565b6000602082019050818103600083015261394581613909565b9050919050565b600061395782613145565b915061396283613145565b925082820390508181111561397a57613979613843565b5b92915050565b600061398b82613145565b915061399683613145565b92508282019050808211156139ae576139ad613843565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613a10603e8361302c565b9150613a1b826139b4565b604082019050919050565b60006020820190508181036000830152613a3f81613a03565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613a9d57808604811115613a7957613a78613843565b5b6001851615613a885780820291505b8081029050613a9685613a46565b9450613a5d565b94509492505050565b600082613ab65760019050613b72565b81613ac45760009050613b72565b8160018114613ada5760028114613ae457613b13565b6001915050613b72565b60ff841115613af657613af5613843565b5b8360020a915084821115613b0d57613b0c613843565b5b50613b72565b5060208310610133831016604e8410600b8410161715613b485782820a905083811115613b4357613b42613843565b5b613b72565b613b558484846001613a53565b92509050818404811115613b6c57613b6b613843565b5b81810290505b9392505050565b6000613b8482613145565b9150613b8f8361346b565b9250613bbc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613aa6565b905092915050565b6000613bcf82613145565b9150613bda83613145565b9250828202613be881613145565b91508282048414831517613bff57613bfe613843565b5b5092915050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c6260258361302c565b9150613c6d82613c06565b604082019050919050565b60006020820190508181036000830152613c9181613c55565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf460228361302c565b9150613cff82613c98565b604082019050919050565b60006020820190508181036000830152613d2381613ce7565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613d8660368361302c565b9150613d9182613d2a565b604082019050919050565b60006020820190508181036000830152613db581613d79565b9050919050565b6000604082019050613dd16000830185613565565b613dde60208301846133ee565b9392505050565b600081519050613df481613339565b92915050565b600060208284031215613e1057613e0f6130dd565b5b6000613e1e84828501613de5565b91505092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b6000613e8360298361302c565b9150613e8e82613e27565b604082019050919050565b60006020820190508181036000830152613eb281613e76565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b6000613f15602a8361302c565b9150613f2082613eb9565b604082019050919050565b60006020820190508181036000830152613f4481613f08565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20312500000000000000000000000000000000000000000000602082015250565b6000613fa7602a8361302c565b9150613fb282613f4b565b604082019050919050565b60006020820190508181036000830152613fd681613f9a565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b600061403960258361302c565b915061404482613fdd565b604082019050919050565b600060208201905081810360008301526140688161402c565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b60006140cb60258361302c565b91506140d68261406f565b604082019050919050565b600060208201905081810360008301526140fa816140be565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061415d60268361302c565b915061416882614101565b604082019050919050565b6000602082019050818103600083015261418c81614150565b9050919050565b7f4d757374206b6565702066656573206174203925206f72206c65737300000000600082015250565b60006141c9601c8361302c565b91506141d482614193565b602082019050919050565b600060208201905081810360008301526141f8816141bc565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061425b60248361302c565b9150614266826141ff565b604082019050919050565b6000602082019050818103600083015261428a8161424e565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ed60228361302c565b91506142f882614291565b604082019050919050565b6000602082019050818103600083015261431c816142e0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061437f60298361302c565b915061438a82614323565b604082019050919050565b600060208201905081810360008301526143ae81614372565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006143eb60138361302c565b91506143f6826143b5565b602082019050919050565b6000602082019050818103600083015261441a816143de565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000614457601d8361302c565b915061446282614421565b602082019050919050565b600060208201905081810360008301526144868161444a565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b60006144c360208361302c565b91506144ce8261448d565b602082019050919050565b600060208201905081810360008301526144f2816144b6565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b600061452f601e8361302c565b915061453a826144f9565b602082019050919050565b6000602082019050818103600083015261455e81614522565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061459f82613145565b91506145aa83613145565b9250826145ba576145b9614565565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061462160258361302c565b915061462c826145c5565b604082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b360238361302c565b91506146be82614657565b604082019050919050565b600060208201905081810360008301526146e2816146a6565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061474560268361302c565b9150614750826146e9565b604082019050919050565b6000602082019050818103600083015261477481614738565b9050919050565b60008151905061478a81613119565b92915050565b6000602082840312156147a6576147a56130dd565b5b60006147b48482850161477b565b91505092915050565b6000819050919050565b60006147e26147dd6147d8846147bd565b613662565b613145565b9050919050565b6147f2816147c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61482d81613107565b82525050565b600061483f8383614824565b60208301905092915050565b6000602082019050919050565b6000614863826147f8565b61486d8185614803565b935061487883614814565b8060005b838110156148a95781516148908882614833565b975061489b8361484b565b92505060018101905061487c565b5085935050505092915050565b600060a0820190506148cb60008301886133ee565b6148d860208301876147e9565b81810360408301526148ea8186614858565b90506148f96060830185613565565b61490660808301846133ee565b9695505050505050565b600060c0820190506149256000830189613565565b61493260208301886133ee565b61493f60408301876147e9565b61494c60608301866147e9565b6149596080830185613565565b61496660a08301846133ee565b979650505050505050565b6000815190506149808161314f565b92915050565b60008060006060848603121561499f5761499e6130dd565b5b60006149ad86828701614971565b93505060206149be86828701614971565b92505060406149cf86828701614971565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614a0f601d8361302c565b9150614a1a826149d9565b602082019050919050565b60006020820190508181036000830152614a3e81614a02565b9050919050565b600081905092915050565b50565b6000614a60600083614a45565b9150614a6b82614a50565b600082019050919050565b6000614a8182614a53565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614ae7603a8361302c565b9150614af282614a8b565b604082019050919050565b60006020820190508181036000830152614b1681614ada565b905091905056fea26469706673582212205619b3362320c2c25f2236267a61c504cd27a054d45153c50f13e2769fde5f3764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102495760003560e01c8063728f8eea11610139578063c5d32bb2116100b6578063f2fde38b1161007a578063f2fde38b1461088d578063f52be97c146108b6578063f66895a3146108df578063f887ea401461090b578063fbe6324e14610936578063fe8f12b41461096157610250565b8063c5d32bb214610798578063c9300ed5146107d5578063dd62ed3e146107fe578063e1b450ad1461083b578063edaa11681461086457610250565b806395d89b41116100fd57806395d89b411461069f578063a457c2d7146106ca578063a8aa1b3114610707578063a9059cbb14610732578063aacebbe31461076f57610250565b8063728f8eea146105c757806375f0a874146105f357806385141a771461061e5780638a33e881146106495780638da5cb5b1461067457610250565b8063313ce567116101c7578063652e2f041161018b578063652e2f04146104f257806366a88d961461051d5780636aa5b37f1461054857806370a0823114610573578063715018a6146105b057610250565b8063313ce5671461040f578063355496ca1461043a578063395093511461046357806342b6fa11146104a0578063441b1d30146104c957610250565b80631675d8021161020e5780631675d8021461032657806318160ddd1461035157806323b872dd1461037c578063274a533c146103b95780632b112e49146103e457610250565b806299d3861461025557806306fdde031461026c578063095ea7b3146102975780630e375a5c146102d45780631340538f146102fd57610250565b3661025057005b600080fd5b34801561026157600080fd5b5061026a61098c565b005b34801561027857600080fd5b50610281610a97565b60405161028e91906130b1565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b9919061317b565b610b29565b6040516102cb91906131d6565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190613365565b610b47565b005b34801561030957600080fd5b50610324600480360381019061031f91906133c1565b610c58565b005b34801561033257600080fd5b5061033b610cf1565b60405161034891906133fd565b60405180910390f35b34801561035d57600080fd5b50610366610cf7565b60405161037391906133fd565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190613418565b610d01565b6040516103b091906131d6565b60405180910390f35b3480156103c557600080fd5b506103ce610e02565b6040516103db91906133fd565b60405180910390f35b3480156103f057600080fd5b506103f9610e08565b60405161040691906133fd565b60405180910390f35b34801561041b57600080fd5b50610424610e40565b6040516104319190613487565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c91906134a2565b610e49565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061317b565b610f20565b60405161049791906131d6565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c291906134e2565b610fcc565b005b3480156104d557600080fd5b506104f060048036038101906104eb91906134e2565b6110b6565b005b3480156104fe57600080fd5b50610507611183565b60405161051491906133fd565b60405180910390f35b34801561052957600080fd5b50610532611189565b60405161053f91906133fd565b60405180910390f35b34801561055457600080fd5b5061055d61118f565b60405161056a91906133fd565b60405180910390f35b34801561057f57600080fd5b5061059a6004803603810190610595919061350f565b611195565b6040516105a791906133fd565b60405180910390f35b3480156105bc57600080fd5b506105c56111dd565b005b3480156105d357600080fd5b506105dc611265565b6040516105ea92919061353c565b60405180910390f35b3480156105ff57600080fd5b50610608611277565b6040516106159190613574565b60405180910390f35b34801561062a57600080fd5b5061063361129d565b6040516106409190613574565b60405180910390f35b34801561065557600080fd5b5061065e6112a3565b60405161066b9190613574565b60405180910390f35b34801561068057600080fd5b506106896112a8565b6040516106969190613574565b60405180910390f35b3480156106ab57600080fd5b506106b46112d2565b6040516106c191906130b1565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec919061317b565b611364565b6040516106fe91906131d6565b60405180910390f35b34801561071357600080fd5b5061071c611458565b6040516107299190613574565b60405180910390f35b34801561073e57600080fd5b506107596004803603810190610754919061317b565b61147e565b60405161076691906131d6565b60405180910390f35b34801561077b57600080fd5b506107966004803603810190610791919061350f565b611495565b005b3480156107a457600080fd5b506107bf60048036038101906107ba919061350f565b6115c4565b6040516107cc91906131d6565b60405180910390f35b3480156107e157600080fd5b506107fc60048036038101906107f7919061317b565b6115e4565b005b34801561080a57600080fd5b506108256004803603810190610820919061358f565b611758565b60405161083291906133fd565b60405180910390f35b34801561084757600080fd5b50610862600480360381019061085d91906135cf565b6117df565b005b34801561087057600080fd5b5061088b600480360381019061088691906134e2565b6119a1565b005b34801561089957600080fd5b506108b460048036038101906108af919061350f565b611ab9565b005b3480156108c257600080fd5b506108dd60048036038101906108d89190613622565b611bb0565b005b3480156108eb57600080fd5b506108f4611cad565b60405161090292919061353c565b60405180910390f35b34801561091757600080fd5b50610920611cbf565b60405161092d91906136c1565b60405180910390f35b34801561094257600080fd5b5061094b611ce5565b60405161095891906131d6565b60405180910390f35b34801561096d57600080fd5b50610976611cf8565b60405161098391906131d6565b60405180910390f35b610994611d0b565b73ffffffffffffffffffffffffffffffffffffffff166109b26112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90613728565b60405180910390fd5b600760169054906101000a900460ff1615610a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4f90613794565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b606060038054610aa6906137e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad2906137e3565b8015610b1f5780601f10610af457610100808354040283529160200191610b1f565b820191906000526020600020905b815481529060010190602001808311610b0257829003601f168201915b5050505050905090565b6000610b3d610b36611d0b565b8484611d13565b6001905092915050565b610b4f611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610b6d6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bba90613728565b60405180910390fd5b60005b8251811015610c53578160146000858481518110610be757610be6613814565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4b90613872565b915050610bc6565b505050565b610c60611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610c7e6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613728565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b6000610d0e848484611edc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d59611d0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd09061392c565b60405180910390fd5b610df685610de5611d0b565b8584610df1919061394c565b611d13565b60019150509392505050565b60095481565b6000610e146000611195565b610e1f61dead611195565b610e27610cf7565b610e31919061394c565b610e3b919061394c565b905090565b60006012905090565b610e51611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610e6f6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614610ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebc90613728565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fc2610f2d611d0b565b848460016000610f3b611d0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fbd9190613980565b611d13565b6001905092915050565b610fd4611d0b565b73ffffffffffffffffffffffffffffffffffffffff16610ff26112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103f90613728565b60405180910390fd5b620186a081111561108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590613a26565b60405180910390fd5b611096610e40565b600a6110a29190613b79565b816110ad9190613bc4565b60088190555050565b6110be611d0b565b73ffffffffffffffffffffffffffffffffffffffff166110dc6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990613728565b60405180910390fd5b61113a6112a8565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561117f573d6000803e3d6000fd5b5050565b600e5481565b600c5481565b600d5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111e5611d0b565b73ffffffffffffffffffffffffffffffffffffffff166112036112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090613728565b60405180910390fd5b611263600061270f565b565b60108060000154908060010154905082565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600081565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112e1906137e3565b80601f016020809104026020016040519081016040528092919081815260200182805461130d906137e3565b801561135a5780601f1061132f5761010080835404028352916020019161135a565b820191906000526020600020905b81548152906001019060200180831161133d57829003601f168201915b5050505050905090565b60008060016000611373611d0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142790613c78565b60405180910390fd5b61144d61143b611d0b565b858584611448919061394c565b611d13565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061148b338484611edc565b6001905092915050565b61149d611d0b565b73ffffffffffffffffffffffffffffffffffffffff166114bb6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890613728565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790613d0a565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b6115ec611d0b565b73ffffffffffffffffffffffffffffffffffffffff1661160a6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165790613728565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c590613d9c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6116f26112a8565b836040518363ffffffff1660e01b8152600401611710929190613dbc565b6020604051808303816000875af115801561172f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117539190613dfa565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117e7611d0b565b73ffffffffffffffffffffffffffffffffffffffff166118056112a8565b73ffffffffffffffffffffffffffffffffffffffff161461185b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185290613728565b60405180910390fd5b620bdb288310156118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189890613e99565b60405180910390fd5b620bdb288210156118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90613f2b565b60405180910390fd5b62768f9081101561192d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192490613fbd565b60405180910390fd5b611935610e40565b600a6119419190613b79565b8361194c9190613bc4565b600d8190555061195a610e40565b600a6119669190613b79565b826119719190613bc4565b600e8190555061197f610e40565b600a61198b9190613b79565b816119969190613bc4565b600c81905550505050565b6119a9611d0b565b73ffffffffffffffffffffffffffffffffffffffff166119c76112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1490613728565b60405180910390fd5b600760169054906101000a900460ff16611a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a639061404f565b60405180910390fd5b60058110611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa6906140e1565b60405180910390fd5b80600a8190555050565b611ac1611d0b565b73ffffffffffffffffffffffffffffffffffffffff16611adf6112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90613728565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b90614173565b60405180910390fd5b611bad8161270f565b50565b611bb8611d0b565b73ffffffffffffffffffffffffffffffffffffffff16611bd66112a8565b73ffffffffffffffffffffffffffffffffffffffff1614611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2390613728565b60405180910390fd5b6040518060400160405280838152602001828152506012600082015181600001556020820151816001015590505060098183611c689190613980565b1115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906141df565b60405180910390fd5b5050565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600760169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7990614271565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de890614303565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ecf91906133fd565b60405180910390a3505050565b60008111611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1690614395565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fc35750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561201857600760169054906101000a900460ff16612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e90614401565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120bf5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120d85750600760149054906101000a900460ff16155b1561217b57600d54811115612122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121199061446d565b60405180910390fd5b600c548161212f84611195565b6121399190613980565b111561217a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612171906144d9565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122235750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122795750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122925750600760149054906101000a900460ff16155b1561238b57600e548111156122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d390614545565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461238a57600c548161233e84611195565b6123489190613980565b1115612389576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612380906144d9565b60405180910390fd5b5b5b6000806000612398613007565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561243e5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124585750600a546009546124559190613980565b43105b9050600760149054906101000a900460ff16806124be5750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125125750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612520576000925061261f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561257b575080155b156125c3576012600001546012600101546125969190613980565b9450849350601260405180604001604052908160008201548152602001600182015481525050915061261e565b8061260b576010600001546010600101546125de9190613980565b9450849350601060405180604001604052908160008201548152602001600182015481525050915061261d565b801561261c57600b549450600b5493505b5b5b5b6064848761262d9190613bc4565b6126379190614594565b9250600760159054906101000a900460ff1680156126a35750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156126b3576126b285836127d5565b5b6126c9888885896126c4919061394c565b612979565b6000831115612705576000851115612704576000606486886126eb9190613bc4565b6126f59190614594565b9050612702893083612979565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612975576001600760146101000a81548160ff021916908315150217905550600082031561295957600061281830611195565b9050600854811061295757600160085411156128345760085490505b60006002846128439190613bc4565b90506000818460200151846128589190613bc4565b6128629190614594565b905060008184612872919061394c565b9050600047905061288282612beb565b60008147612890919061394c565b905060008760200151866128a4919061394c565b826128af9190614594565b905060008860200151826128c39190613bc4565b905060008111156128d9576128d88682612e2e565b5b600089600001516002846128ed9190613bc4565b6128f79190613bc4565b9050600081111561294e5761294d81600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1390919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129df90614637565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4e906146c9565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad49061475b565b60405180910390fd5b8181612ae9919061394c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b799190613980565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdd91906133fd565b60405180910390a350505050565b6000600267ffffffffffffffff811115612c0857612c076131f6565b5b604051908082528060200260200182016040528015612c365781602001602082028036833780820191505090505b5090503081600081518110612c4e57612c4d613814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d199190614790565b81600181518110612d2d57612d2c613814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d13565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612df89594939291906148b6565b600060405180830381600087803b158015612e1257600080fd5b505af1158015612e26573d6000803e3d6000fd5b505050505050565b612e5b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d13565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612ea76112a8565b426040518863ffffffff1660e01b8152600401612ec996959493929190614910565b60606040518083038185885af1158015612ee7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0c9190614986565b5050505050565b80471015612f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4d90614a25565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7c90614a76565b60006040518083038185875af1925050503d8060008114612fb9576040519150601f19603f3d011682016040523d82523d6000602084013e612fbe565b606091505b5050905080613002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff990614afd565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561305b578082015181840152602081019050613040565b60008484015250505050565b6000601f19601f8301169050919050565b600061308382613021565b61308d818561302c565b935061309d81856020860161303d565b6130a681613067565b840191505092915050565b600060208201905081810360008301526130cb8184613078565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613112826130e7565b9050919050565b61312281613107565b811461312d57600080fd5b50565b60008135905061313f81613119565b92915050565b6000819050919050565b61315881613145565b811461316357600080fd5b50565b6000813590506131758161314f565b92915050565b60008060408385031215613192576131916130dd565b5b60006131a085828601613130565b92505060206131b185828601613166565b9150509250929050565b60008115159050919050565b6131d0816131bb565b82525050565b60006020820190506131eb60008301846131c7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61322e82613067565b810181811067ffffffffffffffff8211171561324d5761324c6131f6565b5b80604052505050565b60006132606130d3565b905061326c8282613225565b919050565b600067ffffffffffffffff82111561328c5761328b6131f6565b5b602082029050602081019050919050565b600080fd5b60006132b56132b084613271565b613256565b905080838252602082019050602084028301858111156132d8576132d761329d565b5b835b8181101561330157806132ed8882613130565b8452602084019350506020810190506132da565b5050509392505050565b600082601f8301126133205761331f6131f1565b5b81356133308482602086016132a2565b91505092915050565b613342816131bb565b811461334d57600080fd5b50565b60008135905061335f81613339565b92915050565b6000806040838503121561337c5761337b6130dd565b5b600083013567ffffffffffffffff81111561339a576133996130e2565b5b6133a68582860161330b565b92505060206133b785828601613350565b9150509250929050565b6000602082840312156133d7576133d66130dd565b5b60006133e584828501613350565b91505092915050565b6133f781613145565b82525050565b600060208201905061341260008301846133ee565b92915050565b600080600060608486031215613431576134306130dd565b5b600061343f86828701613130565b935050602061345086828701613130565b925050604061346186828701613166565b9150509250925092565b600060ff82169050919050565b6134818161346b565b82525050565b600060208201905061349c6000830184613478565b92915050565b600080604083850312156134b9576134b86130dd565b5b60006134c785828601613130565b92505060206134d885828601613350565b9150509250929050565b6000602082840312156134f8576134f76130dd565b5b600061350684828501613166565b91505092915050565b600060208284031215613525576135246130dd565b5b600061353384828501613130565b91505092915050565b600060408201905061355160008301856133ee565b61355e60208301846133ee565b9392505050565b61356e81613107565b82525050565b60006020820190506135896000830184613565565b92915050565b600080604083850312156135a6576135a56130dd565b5b60006135b485828601613130565b92505060206135c585828601613130565b9150509250929050565b6000806000606084860312156135e8576135e76130dd565b5b60006135f686828701613166565b935050602061360786828701613166565b925050604061361886828701613166565b9150509250925092565b60008060408385031215613639576136386130dd565b5b600061364785828601613166565b925050602061365885828601613166565b9150509250929050565b6000819050919050565b600061368761368261367d846130e7565b613662565b6130e7565b9050919050565b60006136998261366c565b9050919050565b60006136ab8261368e565b9050919050565b6136bb816136a0565b82525050565b60006020820190506136d660008301846136b2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061371260208361302c565b915061371d826136dc565b602082019050919050565b6000602082019050818103600083015261374181613705565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061377e60188361302c565b915061378982613748565b602082019050919050565b600060208201905081810360008301526137ad81613771565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137fb57607f821691505b60208210810361380e5761380d6137b4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061387d82613145565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138af576138ae613843565b5b600182019050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061391660288361302c565b9150613921826138ba565b604082019050919050565b6000602082019050818103600083015261394581613909565b9050919050565b600061395782613145565b915061396283613145565b925082820390508181111561397a57613979613843565b5b92915050565b600061398b82613145565b915061399683613145565b92508282019050808211156139ae576139ad613843565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613a10603e8361302c565b9150613a1b826139b4565b604082019050919050565b60006020820190508181036000830152613a3f81613a03565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613a9d57808604811115613a7957613a78613843565b5b6001851615613a885780820291505b8081029050613a9685613a46565b9450613a5d565b94509492505050565b600082613ab65760019050613b72565b81613ac45760009050613b72565b8160018114613ada5760028114613ae457613b13565b6001915050613b72565b60ff841115613af657613af5613843565b5b8360020a915084821115613b0d57613b0c613843565b5b50613b72565b5060208310610133831016604e8410600b8410161715613b485782820a905083811115613b4357613b42613843565b5b613b72565b613b558484846001613a53565b92509050818404811115613b6c57613b6b613843565b5b81810290505b9392505050565b6000613b8482613145565b9150613b8f8361346b565b9250613bbc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613aa6565b905092915050565b6000613bcf82613145565b9150613bda83613145565b9250828202613be881613145565b91508282048414831517613bff57613bfe613843565b5b5092915050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c6260258361302c565b9150613c6d82613c06565b604082019050919050565b60006020820190508181036000830152613c9181613c55565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf460228361302c565b9150613cff82613c98565b604082019050919050565b60006020820190508181036000830152613d2381613ce7565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613d8660368361302c565b9150613d9182613d2a565b604082019050919050565b60006020820190508181036000830152613db581613d79565b9050919050565b6000604082019050613dd16000830185613565565b613dde60208301846133ee565b9392505050565b600081519050613df481613339565b92915050565b600060208284031215613e1057613e0f6130dd565b5b6000613e1e84828501613de5565b91505092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b6000613e8360298361302c565b9150613e8e82613e27565b604082019050919050565b60006020820190508181036000830152613eb281613e76565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b6000613f15602a8361302c565b9150613f2082613eb9565b604082019050919050565b60006020820190508181036000830152613f4481613f08565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20312500000000000000000000000000000000000000000000602082015250565b6000613fa7602a8361302c565b9150613fb282613f4b565b604082019050919050565b60006020820190508181036000830152613fd681613f9a565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b600061403960258361302c565b915061404482613fdd565b604082019050919050565b600060208201905081810360008301526140688161402c565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b60006140cb60258361302c565b91506140d68261406f565b604082019050919050565b600060208201905081810360008301526140fa816140be565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061415d60268361302c565b915061416882614101565b604082019050919050565b6000602082019050818103600083015261418c81614150565b9050919050565b7f4d757374206b6565702066656573206174203925206f72206c65737300000000600082015250565b60006141c9601c8361302c565b91506141d482614193565b602082019050919050565b600060208201905081810360008301526141f8816141bc565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061425b60248361302c565b9150614266826141ff565b604082019050919050565b6000602082019050818103600083015261428a8161424e565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ed60228361302c565b91506142f882614291565b604082019050919050565b6000602082019050818103600083015261431c816142e0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061437f60298361302c565b915061438a82614323565b604082019050919050565b600060208201905081810360008301526143ae81614372565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006143eb60138361302c565b91506143f6826143b5565b602082019050919050565b6000602082019050818103600083015261441a816143de565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000614457601d8361302c565b915061446282614421565b602082019050919050565b600060208201905081810360008301526144868161444a565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b60006144c360208361302c565b91506144ce8261448d565b602082019050919050565b600060208201905081810360008301526144f2816144b6565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b600061452f601e8361302c565b915061453a826144f9565b602082019050919050565b6000602082019050818103600083015261455e81614522565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061459f82613145565b91506145aa83613145565b9250826145ba576145b9614565565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061462160258361302c565b915061462c826145c5565b604082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b360238361302c565b91506146be82614657565b604082019050919050565b600060208201905081810360008301526146e2816146a6565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061474560268361302c565b9150614750826146e9565b604082019050919050565b6000602082019050818103600083015261477481614738565b9050919050565b60008151905061478a81613119565b92915050565b6000602082840312156147a6576147a56130dd565b5b60006147b48482850161477b565b91505092915050565b6000819050919050565b60006147e26147dd6147d8846147bd565b613662565b613145565b9050919050565b6147f2816147c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61482d81613107565b82525050565b600061483f8383614824565b60208301905092915050565b6000602082019050919050565b6000614863826147f8565b61486d8185614803565b935061487883614814565b8060005b838110156148a95781516148908882614833565b975061489b8361484b565b92505060018101905061487c565b5085935050505092915050565b600060a0820190506148cb60008301886133ee565b6148d860208301876147e9565b81810360408301526148ea8186614858565b90506148f96060830185613565565b61490660808301846133ee565b9695505050505050565b600060c0820190506149256000830189613565565b61493260208301886133ee565b61493f60408301876147e9565b61494c60608301866147e9565b6149596080830185613565565b61496660a08301846133ee565b979650505050505050565b6000815190506149808161314f565b92915050565b60008060006060848603121561499f5761499e6130dd565b5b60006149ad86828701614971565b93505060206149be86828701614971565b92505060406149cf86828701614971565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614a0f601d8361302c565b9150614a1a826149d9565b602082019050919050565b60006020820190508181036000830152614a3e81614a02565b9050919050565b600081905092915050565b50565b6000614a60600083614a45565b9150614a6b82614a50565b600082019050919050565b6000614a8182614a53565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614ae7603a8361302c565b9150614af282614a8b565b604082019050919050565b60006020820190508181036000830152614b1681614ada565b905091905056fea26469706673582212205619b3362320c2c25f2236267a61c504cd27a054d45153c50f13e2769fde5f3764736f6c63430008110033

Deployed Bytecode Sourcemap

11920:11230:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21045:212;;;;;;;;;;;;;:::i;:::-;;2379:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13714:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21849:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20338:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12181:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3499:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13885:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12245:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22059:151;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3341:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21721:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14341:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20498:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22734:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12453:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12352:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12404:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3670:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10583:94;;;;;;;;;;;;;:::i;:::-;;12848:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12505:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12587:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12673;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10360:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14597:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12031:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15015:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21518:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12932:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22854:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4289:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22218:508;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21265:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10685:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20789:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12887:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12003:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12097:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12142:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21045:212;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21107:10:::1;;;;;;;;;;;21106:11;21098:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;21170:4;21157:10;;:17;;;;;;;;;;;;;;;;;;21206:4;21185:18;;:25;;;;;;;;;;;;;;;;;;21237:12;21221:13;:28;;;;21045:212::o:0;2379:100::-;2433:13;2466:5;2459:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:100;:::o;13714:161::-;13789:4;13806:39;13815:12;:10;:12::i;:::-;13829:7;13838:6;13806:8;:39::i;:::-;13863:4;13856:11;;13714:161;;;;:::o;21849:202::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21946:9:::1;21941:103;21965:8;:15;21961:1;:19;21941:103;;;22027:5;22002:9;:22;22012:8;22021:1;22012:11;;;;;;;;:::i;:::-;;;;;;;;22002:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;21982:3;;;;;:::i;:::-;;;;21941:103;;;;21849:202:::0;;:::o;20338:152::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20477:5:::1;20456:18;;:26;;;;;;;;;;;;;;;;;;20338:152:::0;:::o;12181:55::-;;;;:::o;3499:108::-;3560:7;3587:12;;3580:19;;3499:108;:::o;13885:448::-;14017:4;14034:36;14044:6;14052:9;14063:6;14034:9;:36::i;:::-;14083:24;14110:11;:19;14122:6;14110:19;;;;;;;;;;;;;;;:33;14130:12;:10;:12::i;:::-;14110:33;;;;;;;;;;;;;;;;14083:60;;14182:6;14162:16;:26;;14154:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14244:57;14253:6;14261:12;:10;:12::i;:::-;14294:6;14275:16;:25;;;;:::i;:::-;14244:8;:57::i;:::-;14321:4;14314:11;;;13885:448;;;;;:::o;12245:28::-;;;;:::o;22059:151::-;22112:7;22180:21;12710:42;22180:9;:21::i;:::-;22156;12624:42;22156:9;:21::i;:::-;22140:13;:11;:13::i;:::-;:37;;;;:::i;:::-;:61;;;;:::i;:::-;22132:70;;22059:151;:::o;3341:93::-;3399:5;3424:2;3417:9;;3341:93;:::o;21721:120::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21828:5:::1;21806:9;:19;21816:8;21806:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21721:120:::0;;:::o;14341:248::-;14457:4;14479:80;14488:12;:10;:12::i;:::-;14502:7;14548:10;14511:11;:25;14523:12;:10;:12::i;:::-;14511:25;;;;;;;;;;;;;;;:34;14537:7;14511:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14479:8;:80::i;:::-;14577:4;14570:11;;14341:248;;;;:::o;20498:283::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20636:6:::1;20622:10;:20;;20614:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20763:10;:8;:10::i;:::-;20759:2;:14;;;;:::i;:::-;20746:10;:27;;;;:::i;:::-;20720:23;:53;;;;20498:283:::0;:::o;22734:112::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22810:7:::1;:5;:7::i;:::-;22802:25;;:36;22828:9;22802:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22734:112:::0;:::o;12453:43::-;;;;:::o;12352:45::-;;;;:::o;12404:42::-;;;;:::o;3670:127::-;3744:7;3771:9;:18;3781:7;3771:18;;;;;;;;;;;;;;;;3764:25;;3670:127;;;:::o;10583:94::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10648:21:::1;10666:1;10648:9;:21::i;:::-;10583:94::o:0;12848:32::-;;;;;;;;;;;;;;:::o;12505:75::-;;;;;;;;;;;;;:::o;12587:79::-;12624:42;12587:79;:::o;12673:::-;12710:42;12673:79;:::o;10360:87::-;10406:7;10433:6;;;;;;;;;;;10426:13;;10360:87;:::o;2598:104::-;2654:13;2687:7;2680:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2598:104;:::o;14597:410::-;14718:4;14740:24;14767:11;:25;14779:12;:10;:12::i;:::-;14767:25;;;;;;;;;;;;;;;:34;14793:7;14767:34;;;;;;;;;;;;;;;;14740:61;;14840:15;14820:16;:35;;14812:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14908:67;14917:12;:10;:12::i;:::-;14931:7;14959:15;14940:16;:34;;;;:::i;:::-;14908:8;:67::i;:::-;14995:4;14988:11;;;14597:410;;;;:::o;12031:19::-;;;;;;;;;;;;;:::o;15015:165::-;15093:4;15110:40;15120:10;15132:9;15143:6;15110:9;:40::i;:::-;15168:4;15161:11;;15015:165;;;;:::o;21518:195::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21627:1:::1;21606:23;;:9;:23;;::::0;21598:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21696:9;21678:15;;:27;;;;;;;;;;;;;;;;;;21518:195:::0;:::o;12932:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;22854:238::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22967:4:::1;22947:25;;:8;:25;;::::0;22939:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23049:8;23042:25;;;23068:7;:5;:7::i;:::-;23077:6;23042:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22854:238:::0;;:::o;4289:201::-;4423:7;4455:11;:18;4467:5;4455:18;;;;;;;;;;;;;;;:27;4474:7;4455:27;;;;;;;;;;;;;;;;4448:34;;4289:201;;;;:::o;22218:508::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22344:6:::1;22334;:16;;22326:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22426:6;22415:7;:17;;22407:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;22511:7;22498:9;:20;;22490:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22603:10;:8;:10::i;:::-;22599:2;:14;;;;:::i;:::-;22590:6;:23;;;;:::i;:::-;22576:11;:37;;;;22653:10;:8;:10::i;:::-;22649:2;:14;;;;:::i;:::-;22639:7;:24;;;;:::i;:::-;22624:12;:39;;;;22707:10;:8;:10::i;:::-;22703:2;:14;;;;:::i;:::-;22691:9;:26;;;;:::i;:::-;22674:14;:43;;;;22218:508:::0;;;:::o;21265:245::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21346:10:::1;;;;;;;;;;;21338:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21429:1;21417:9;:13;21409:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21493:9;21482:8;:20;;;;21265:245:::0;:::o;10685:192::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10794:1:::1;10774:22;;:8;:22;;::::0;10766:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:19;10860:8;10850:9;:19::i;:::-;10685:192:::0;:::o;20789:248::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20918:29:::1;;;;;;;;20924:10;20918:29;;;;20936:10;20918:29;;::::0;20906:9:::1;:41;;;;;;;;;;;;;;;;;;;20995:1;20980:10;20967;:23;;;;:::i;:::-;20966:30;;20958:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20789:248:::0;;:::o;12887:36::-;;;;;;;;;;;;;;:::o;12003:21::-;;;;;;;;;;;;;:::o;12097:38::-;;;;;;;;;;;;;:::o;12142:30::-;;;;;;;;;;;;;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;9393:380::-;9546:1;9529:19;;:5;:19;;;9521:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9627:1;9608:21;;:7;:21;;;9600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9711:6;9681:11;:18;9693:5;9681:18;;;;;;;;;;;;;;;:27;9700:7;9681:27;;;;;;;;;;;;;;;:36;;;;9749:7;9733:32;;9742:5;9733:32;;;9758:6;9733:32;;;;;;:::i;:::-;;;;;;;;9393:380;;;:::o;15188:2648::-;15338:1;15329:6;:10;15321:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15403:9;:17;15413:6;15403:17;;;;;;;;;;;;;;;;;;;;;;;;;15402:18;:43;;;;;15425:9;:20;15435:9;15425:20;;;;;;;;;;;;;;;;;;;;;;;;;15424:21;15402:43;15398:118;;;15470:10;;;;;;;;;;;15462:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15398:118;15542:4;;;;;;;;;;;15532:14;;:6;:14;;;:39;;;;;15551:9;:20;15561:9;15551:20;;;;;;;;;;;;;;;;;;;;;;;;;15550:21;15532:39;:54;;;;;15576:10;;;;;;;;;;;15575:11;15532:54;15528:306;;;15621:11;;15611:6;:21;;15603:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15740:14;;15730:6;15707:20;15717:9;15707;:20::i;:::-;:29;;;;:::i;:::-;:47;;15681:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;15528:306;15874:4;;;;;;;;;;;15864:14;;:6;:14;;;;:39;;;;;15883:9;:20;15893:9;15883:20;;;;;;;;;;;;;;;;;;;;;;;;;15882:21;15864:39;:61;;;;;15908:9;:17;15918:6;15908:17;;;;;;;;;;;;;;;;;;;;;;;;;15907:18;15864:61;:76;;;;;15930:10;;;;;;;;;;;15929:11;15864:76;15846:423;;;15985:12;;15975:6;:22;;15967:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16064:4;;;;;;;;;;;16051:17;;:9;:17;;;16047:211;;16152:14;;16142:6;16119:20;16129:9;16119;:20::i;:::-;:29;;;;:::i;:::-;:47;;16089:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;16047:211;15846:423;16281:15;16307:14;16332:11;16354:25;;:::i;:::-;16392:17;16413:9;:17;16423:6;16413:17;;;;;;;;;;;;;;;;;;;;;;;;;16412:18;:56;;;;;16448:9;:20;16458:9;16448:20;;;;;;;;;;;;;;;;;;;;;;;;;16447:21;16412:56;:112;;;;;16516:8;;16500:13;;:24;;;;:::i;:::-;16485:12;:39;16412:112;16392:132;;16612:10;;;;;;;;;;;:31;;;;16626:9;:17;16636:6;16626:17;;;;;;;;;;;;;;;;;;;;;;;;;16612:31;:55;;;;16647:9;:20;16657:9;16647:20;;;;;;;;;;;;;;;;;;;;;;;;;16612:55;16608:648;;;16688:1;16682:7;;16608:648;;;16753:4;;;;;;;;;;;16740:17;;:9;:17;;;:34;;;;;16762:12;16761:13;16740:34;16736:520;;;16857:9;:19;;;16818:9;:19;;;:58;;;;:::i;:::-;16791:85;;16900:7;16891:16;;16937:9;16922:24;;;;;;;;;;;;;;;;;;;;;;;;;;;16736:520;;;16969:12;16964:292;;17060:5;:15;;;17025:5;:15;;;:50;;;;:::i;:::-;16998:77;;17099:7;17090:16;;17136:5;17121:20;;;;;;;;;;;;;;;;;;;;;;;;;;;16964:292;;;17163:12;17159:97;;;17202:9;;17192:19;;17235:9;;17226:18;;17159:97;16964:292;16736:520;16608:648;17294:3;17284:6;17275;:15;;;;:::i;:::-;17274:23;;;;:::i;:::-;17268:29;;17411:18;;;;;;;;;;;:36;;;;;17443:4;;;;;;;;;;;17433:14;;:6;:14;;;;17411:36;17407:72;;;17449:30;17457:7;17466:12;17449:7;:30::i;:::-;17407:72;17521:48;17537:6;17545:9;17565:3;17556:6;:12;;;;:::i;:::-;17521:15;:48::i;:::-;17590:1;17584:3;:7;17580:249;;;17666:1;17656:7;:11;17652:164;;;17688:17;17729:3;17718:7;17709:6;:16;;;;:::i;:::-;17708:24;;;;:::i;:::-;17688:44;;17751:49;17767:6;17783:4;17790:9;17751:15;:49::i;:::-;17669:147;17652:164;17580:249;15310:2526;;;;;15188:2648;;;:::o;10885:173::-;10941:16;10960:6;;;;;;;;;;;10941:25;;10986:8;10977:6;;:17;;;;;;;;;;;;;;;;;;11041:8;11010:40;;11031:8;11010:40;;;;;;;;;;;;10930:128;10885:173;:::o;17844:1437::-;13021:10;;;;;;;;;;;13016:110;;13061:4;13048:10;;:17;;;;;;;;;;;;;;;;;;17949:1:::1;17938:7;:12:::0;17935:49;17966:7:::1;17935:49;17996:23;18022:24;18040:4;18022:9;:24::i;:::-;17996:50;;18080:23;;18061:15;:42;18057:1217;;18150:1;18124:23;;:27;18120:109;;;18190:23;;18172:41;;18120:109;18300:19;18332:1;18322:7;:11;;;;:::i;:::-;18300:33;;18348:32;18442:11;18402:9;:19;;;18384:15;:37;;;;:::i;:::-;18383:70;;;;:::i;:::-;18348:105;;18468:14;18503:24;18485:15;:42;;;;:::i;:::-;18468:59;;18544:22;18569:21;18544:46;;18607:24;18624:6;18607:16;:24::i;:::-;18648:20;18695:14;18671:21;:38;;;;:::i;:::-;18648:61;;18724:19;18776:9;:19;;;18762:11;:33;;;;:::i;:::-;18746:12;:50;;;;:::i;:::-;18724:72;;18811:29;18857:9;:19;;;18843:11;:33;;;;:::i;:::-;18811:65;;18921:1;18897:21;:25;18893:172;;;18988:61;19001:24;19027:21;18988:12;:61::i;:::-;18893:172;19081:20;19122:9;:19;;;19118:1;19104:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19081:60;;19175:1;19160:12;:16;19156:105;;;19197:48;19232:12;19205:15;;;;;;;;;;;19197:34;;;;:48;;;;:::i;:::-;19156:105;18105:1169;;;;;;;;18057:1217;17922:1359;13080:1;13109:5:::0;13096:10;;:18;;;;;;;;;;;;;;;;;;13016:110;17844:1437;;:::o;7802:578::-;7960:1;7942:20;;:6;:20;;;7934:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8044:1;8023:23;;:9;:23;;;8015:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8099:21;8123:9;:17;8133:6;8123:17;;;;;;;;;;;;;;;;8099:41;;8176:6;8159:13;:23;;8151:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8272:6;8256:13;:22;;;;:::i;:::-;8236:9;:17;8246:6;8236:17;;;;;;;;;;;;;;;:42;;;;8313:6;8289:9;:20;8299:9;8289:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8354:9;8337:35;;8346:6;8337:35;;;8365:6;8337:35;;;;;;:::i;:::-;;;;;;;;7923:457;7802:578;;;:::o;19289:536::-;19417:21;19455:1;19441:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19417:40;;19486:4;19468;19473:1;19468:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19512:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19502:4;19507:1;19502:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19538:53;19555:4;19570:6;;;;;;;;;;;19579:11;19538:8;:53::i;:::-;19630:6;;;;;;;;;;;:57;;;19702:11;19728:1;19744:4;19771;19791:15;19630:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19344:481;19289:536;:::o;19833:497::-;19981:53;19998:4;20013:6;;;;;;;;;;;20022:11;19981:8;:53::i;:::-;20077:6;;;;;;;;;;;:22;;;20108:9;20142:4;20162:11;20188:1;20231;20274:7;:5;:7::i;:::-;20296:15;20077:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19833:497;;:::o;9803:319::-;9918:6;9893:21;:31;;9885:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9972:12;9990:9;:14;;10013:6;9990:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9971:54;;;10044:7;10036:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9874:248;9803:319;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:678::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6305:1;6294:9;6290:17;6277:31;6335:18;6327:6;6324:30;6321:117;;;6357:79;;:::i;:::-;6321:117;6462:78;6532:7;6523:6;6512:9;6508:22;6462:78;:::i;:::-;6452:88;;6248:302;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6004:678;;;;;:::o;6688:323::-;6744:6;6793:2;6781:9;6772:7;6768:23;6764:32;6761:119;;;6799:79;;:::i;:::-;6761:119;6919:1;6944:50;6986:7;6977:6;6966:9;6962:22;6944:50;:::i;:::-;6934:60;;6890:114;6688:323;;;;:::o;7017:118::-;7104:24;7122:5;7104:24;:::i;:::-;7099:3;7092:37;7017:118;;:::o;7141:222::-;7234:4;7272:2;7261:9;7257:18;7249:26;;7285:71;7353:1;7342:9;7338:17;7329:6;7285:71;:::i;:::-;7141:222;;;;:::o;7369:619::-;7446:6;7454;7462;7511:2;7499:9;7490:7;7486:23;7482:32;7479:119;;;7517:79;;:::i;:::-;7479:119;7637:1;7662:53;7707:7;7698:6;7687:9;7683:22;7662:53;:::i;:::-;7652:63;;7608:117;7764:2;7790:53;7835:7;7826:6;7815:9;7811:22;7790:53;:::i;:::-;7780:63;;7735:118;7892:2;7918:53;7963:7;7954:6;7943:9;7939:22;7918:53;:::i;:::-;7908:63;;7863:118;7369:619;;;;;:::o;7994:86::-;8029:7;8069:4;8062:5;8058:16;8047:27;;7994:86;;;:::o;8086:112::-;8169:22;8185:5;8169:22;:::i;:::-;8164:3;8157:35;8086:112;;:::o;8204:214::-;8293:4;8331:2;8320:9;8316:18;8308:26;;8344:67;8408:1;8397:9;8393:17;8384:6;8344:67;:::i;:::-;8204:214;;;;:::o;8424:468::-;8489:6;8497;8546:2;8534:9;8525:7;8521:23;8517:32;8514:119;;;8552:79;;:::i;:::-;8514:119;8672:1;8697:53;8742:7;8733:6;8722:9;8718:22;8697:53;:::i;:::-;8687:63;;8643:117;8799:2;8825:50;8867:7;8858:6;8847:9;8843:22;8825:50;:::i;:::-;8815:60;;8770:115;8424:468;;;;;:::o;8898:329::-;8957:6;9006:2;8994:9;8985:7;8981:23;8977:32;8974:119;;;9012:79;;:::i;:::-;8974:119;9132:1;9157:53;9202:7;9193:6;9182:9;9178:22;9157:53;:::i;:::-;9147:63;;9103:117;8898:329;;;;:::o;9233:::-;9292:6;9341:2;9329:9;9320:7;9316:23;9312:32;9309:119;;;9347:79;;:::i;:::-;9309:119;9467:1;9492:53;9537:7;9528:6;9517:9;9513:22;9492:53;:::i;:::-;9482:63;;9438:117;9233:329;;;;:::o;9568:332::-;9689:4;9727:2;9716:9;9712:18;9704:26;;9740:71;9808:1;9797:9;9793:17;9784:6;9740:71;:::i;:::-;9821:72;9889:2;9878:9;9874:18;9865:6;9821:72;:::i;:::-;9568:332;;;;;:::o;9906:118::-;9993:24;10011:5;9993:24;:::i;:::-;9988:3;9981:37;9906:118;;:::o;10030:222::-;10123:4;10161:2;10150:9;10146:18;10138:26;;10174:71;10242:1;10231:9;10227:17;10218:6;10174:71;:::i;:::-;10030:222;;;;:::o;10258:474::-;10326:6;10334;10383:2;10371:9;10362:7;10358:23;10354:32;10351:119;;;10389:79;;:::i;:::-;10351:119;10509:1;10534:53;10579:7;10570:6;10559:9;10555:22;10534:53;:::i;:::-;10524:63;;10480:117;10636:2;10662:53;10707:7;10698:6;10687:9;10683:22;10662:53;:::i;:::-;10652:63;;10607:118;10258:474;;;;;:::o;10738:619::-;10815:6;10823;10831;10880:2;10868:9;10859:7;10855:23;10851:32;10848:119;;;10886:79;;:::i;:::-;10848:119;11006:1;11031:53;11076:7;11067:6;11056:9;11052:22;11031:53;:::i;:::-;11021:63;;10977:117;11133:2;11159:53;11204:7;11195:6;11184:9;11180:22;11159:53;:::i;:::-;11149:63;;11104:118;11261:2;11287:53;11332:7;11323:6;11312:9;11308:22;11287:53;:::i;:::-;11277:63;;11232:118;10738:619;;;;;:::o;11363:474::-;11431:6;11439;11488:2;11476:9;11467:7;11463:23;11459:32;11456:119;;;11494:79;;:::i;:::-;11456:119;11614:1;11639:53;11684:7;11675:6;11664:9;11660:22;11639:53;:::i;:::-;11629:63;;11585:117;11741:2;11767:53;11812:7;11803:6;11792:9;11788:22;11767:53;:::i;:::-;11757:63;;11712:118;11363:474;;;;;:::o;11843:60::-;11871:3;11892:5;11885:12;;11843:60;;;:::o;11909:142::-;11959:9;11992:53;12010:34;12019:24;12037:5;12019:24;:::i;:::-;12010:34;:::i;:::-;11992:53;:::i;:::-;11979:66;;11909:142;;;:::o;12057:126::-;12107:9;12140:37;12171:5;12140:37;:::i;:::-;12127:50;;12057:126;;;:::o;12189:141::-;12254:9;12287:37;12318:5;12287:37;:::i;:::-;12274:50;;12189:141;;;:::o;12336:161::-;12438:52;12484:5;12438:52;:::i;:::-;12433:3;12426:65;12336:161;;:::o;12503:252::-;12611:4;12649:2;12638:9;12634:18;12626:26;;12662:86;12745:1;12734:9;12730:17;12721:6;12662:86;:::i;:::-;12503:252;;;;:::o;12761:182::-;12901:34;12897:1;12889:6;12885:14;12878:58;12761:182;:::o;12949:366::-;13091:3;13112:67;13176:2;13171:3;13112:67;:::i;:::-;13105:74;;13188:93;13277:3;13188:93;:::i;:::-;13306:2;13301:3;13297:12;13290:19;;12949:366;;;:::o;13321:419::-;13487:4;13525:2;13514:9;13510:18;13502:26;;13574:9;13568:4;13564:20;13560:1;13549:9;13545:17;13538:47;13602:131;13728:4;13602:131;:::i;:::-;13594:139;;13321:419;;;:::o;13746:174::-;13886:26;13882:1;13874:6;13870:14;13863:50;13746:174;:::o;13926:366::-;14068:3;14089:67;14153:2;14148:3;14089:67;:::i;:::-;14082:74;;14165:93;14254:3;14165:93;:::i;:::-;14283:2;14278:3;14274:12;14267:19;;13926:366;;;:::o;14298:419::-;14464:4;14502:2;14491:9;14487:18;14479:26;;14551:9;14545:4;14541:20;14537:1;14526:9;14522:17;14515:47;14579:131;14705:4;14579:131;:::i;:::-;14571:139;;14298:419;;;:::o;14723:180::-;14771:77;14768:1;14761:88;14868:4;14865:1;14858:15;14892:4;14889:1;14882:15;14909:320;14953:6;14990:1;14984:4;14980:12;14970:22;;15037:1;15031:4;15027:12;15058:18;15048:81;;15114:4;15106:6;15102:17;15092:27;;15048:81;15176:2;15168:6;15165:14;15145:18;15142:38;15139:84;;15195:18;;:::i;:::-;15139:84;14960:269;14909:320;;;:::o;15235:180::-;15283:77;15280:1;15273:88;15380:4;15377:1;15370:15;15404:4;15401:1;15394:15;15421:180;15469:77;15466:1;15459:88;15566:4;15563:1;15556:15;15590:4;15587:1;15580:15;15607:233;15646:3;15669:24;15687:5;15669:24;:::i;:::-;15660:33;;15715:66;15708:5;15705:77;15702:103;;15785:18;;:::i;:::-;15702:103;15832:1;15825:5;15821:13;15814:20;;15607:233;;;:::o;15846:227::-;15986:34;15982:1;15974:6;15970:14;15963:58;16055:10;16050:2;16042:6;16038:15;16031:35;15846:227;:::o;16079:366::-;16221:3;16242:67;16306:2;16301:3;16242:67;:::i;:::-;16235:74;;16318:93;16407:3;16318:93;:::i;:::-;16436:2;16431:3;16427:12;16420:19;;16079:366;;;:::o;16451:419::-;16617:4;16655:2;16644:9;16640:18;16632:26;;16704:9;16698:4;16694:20;16690:1;16679:9;16675:17;16668:47;16732:131;16858:4;16732:131;:::i;:::-;16724:139;;16451:419;;;:::o;16876:194::-;16916:4;16936:20;16954:1;16936:20;:::i;:::-;16931:25;;16970:20;16988:1;16970:20;:::i;:::-;16965:25;;17014:1;17011;17007:9;16999:17;;17038:1;17032:4;17029:11;17026:37;;;17043:18;;:::i;:::-;17026:37;16876:194;;;;:::o;17076:191::-;17116:3;17135:20;17153:1;17135:20;:::i;:::-;17130:25;;17169:20;17187:1;17169:20;:::i;:::-;17164:25;;17212:1;17209;17205:9;17198:16;;17233:3;17230:1;17227:10;17224:36;;;17240:18;;:::i;:::-;17224:36;17076:191;;;;:::o;17273:249::-;17413:34;17409:1;17401:6;17397:14;17390:58;17482:32;17477:2;17469:6;17465:15;17458:57;17273:249;:::o;17528:366::-;17670:3;17691:67;17755:2;17750:3;17691:67;:::i;:::-;17684:74;;17767:93;17856:3;17767:93;:::i;:::-;17885:2;17880:3;17876:12;17869:19;;17528:366;;;:::o;17900:419::-;18066:4;18104:2;18093:9;18089:18;18081:26;;18153:9;18147:4;18143:20;18139:1;18128:9;18124:17;18117:47;18181:131;18307:4;18181:131;:::i;:::-;18173:139;;17900:419;;;:::o;18325:102::-;18367:8;18414:5;18411:1;18407:13;18386:34;;18325:102;;;:::o;18433:848::-;18494:5;18501:4;18525:6;18516:15;;18549:5;18540:14;;18563:712;18584:1;18574:8;18571:15;18563:712;;;18679:4;18674:3;18670:14;18664:4;18661:24;18658:50;;;18688:18;;:::i;:::-;18658:50;18738:1;18728:8;18724:16;18721:451;;;19153:4;19146:5;19142:16;19133:25;;18721:451;19203:4;19197;19193:15;19185:23;;19233:32;19256:8;19233:32;:::i;:::-;19221:44;;18563:712;;;18433:848;;;;;;;:::o;19287:1073::-;19341:5;19532:8;19522:40;;19553:1;19544:10;;19555:5;;19522:40;19581:4;19571:36;;19598:1;19589:10;;19600:5;;19571:36;19667:4;19715:1;19710:27;;;;19751:1;19746:191;;;;19660:277;;19710:27;19728:1;19719:10;;19730:5;;;19746:191;19791:3;19781:8;19778:17;19775:43;;;19798:18;;:::i;:::-;19775:43;19847:8;19844:1;19840:16;19831:25;;19882:3;19875:5;19872:14;19869:40;;;19889:18;;:::i;:::-;19869:40;19922:5;;;19660:277;;20046:2;20036:8;20033:16;20027:3;20021:4;20018:13;20014:36;19996:2;19986:8;19983:16;19978:2;19972:4;19969:12;19965:35;19949:111;19946:246;;;20102:8;20096:4;20092:19;20083:28;;20137:3;20130:5;20127:14;20124:40;;;20144:18;;:::i;:::-;20124:40;20177:5;;19946:246;20217:42;20255:3;20245:8;20239:4;20236:1;20217:42;:::i;:::-;20202:57;;;;20291:4;20286:3;20282:14;20275:5;20272:25;20269:51;;;20300:18;;:::i;:::-;20269:51;20349:4;20342:5;20338:16;20329:25;;19287:1073;;;;;;:::o;20366:281::-;20424:5;20448:23;20466:4;20448:23;:::i;:::-;20440:31;;20492:25;20508:8;20492:25;:::i;:::-;20480:37;;20536:104;20573:66;20563:8;20557:4;20536:104;:::i;:::-;20527:113;;20366:281;;;;:::o;20653:410::-;20693:7;20716:20;20734:1;20716:20;:::i;:::-;20711:25;;20750:20;20768:1;20750:20;:::i;:::-;20745:25;;20805:1;20802;20798:9;20827:30;20845:11;20827:30;:::i;:::-;20816:41;;21006:1;20997:7;20993:15;20990:1;20987:22;20967:1;20960:9;20940:83;20917:139;;21036:18;;:::i;:::-;20917:139;20701:362;20653:410;;;;:::o;21069:224::-;21209:34;21205:1;21197:6;21193:14;21186:58;21278:7;21273:2;21265:6;21261:15;21254:32;21069:224;:::o;21299:366::-;21441:3;21462:67;21526:2;21521:3;21462:67;:::i;:::-;21455:74;;21538:93;21627:3;21538:93;:::i;:::-;21656:2;21651:3;21647:12;21640:19;;21299:366;;;:::o;21671:419::-;21837:4;21875:2;21864:9;21860:18;21852:26;;21924:9;21918:4;21914:20;21910:1;21899:9;21895:17;21888:47;21952:131;22078:4;21952:131;:::i;:::-;21944:139;;21671:419;;;:::o;22096:221::-;22236:34;22232:1;22224:6;22220:14;22213:58;22305:4;22300:2;22292:6;22288:15;22281:29;22096:221;:::o;22323:366::-;22465:3;22486:67;22550:2;22545:3;22486:67;:::i;:::-;22479:74;;22562:93;22651:3;22562:93;:::i;:::-;22680:2;22675:3;22671:12;22664:19;;22323:366;;;:::o;22695:419::-;22861:4;22899:2;22888:9;22884:18;22876:26;;22948:9;22942:4;22938:20;22934:1;22923:9;22919:17;22912:47;22976:131;23102:4;22976:131;:::i;:::-;22968:139;;22695:419;;;:::o;23120:241::-;23260:34;23256:1;23248:6;23244:14;23237:58;23329:24;23324:2;23316:6;23312:15;23305:49;23120:241;:::o;23367:366::-;23509:3;23530:67;23594:2;23589:3;23530:67;:::i;:::-;23523:74;;23606:93;23695:3;23606:93;:::i;:::-;23724:2;23719:3;23715:12;23708:19;;23367:366;;;:::o;23739:419::-;23905:4;23943:2;23932:9;23928:18;23920:26;;23992:9;23986:4;23982:20;23978:1;23967:9;23963:17;23956:47;24020:131;24146:4;24020:131;:::i;:::-;24012:139;;23739:419;;;:::o;24164:332::-;24285:4;24323:2;24312:9;24308:18;24300:26;;24336:71;24404:1;24393:9;24389:17;24380:6;24336:71;:::i;:::-;24417:72;24485:2;24474:9;24470:18;24461:6;24417:72;:::i;:::-;24164:332;;;;;:::o;24502:137::-;24556:5;24587:6;24581:13;24572:22;;24603:30;24627:5;24603:30;:::i;:::-;24502:137;;;;:::o;24645:345::-;24712:6;24761:2;24749:9;24740:7;24736:23;24732:32;24729:119;;;24767:79;;:::i;:::-;24729:119;24887:1;24912:61;24965:7;24956:6;24945:9;24941:22;24912:61;:::i;:::-;24902:71;;24858:125;24645:345;;;;:::o;24996:228::-;25136:34;25132:1;25124:6;25120:14;25113:58;25205:11;25200:2;25192:6;25188:15;25181:36;24996:228;:::o;25230:366::-;25372:3;25393:67;25457:2;25452:3;25393:67;:::i;:::-;25386:74;;25469:93;25558:3;25469:93;:::i;:::-;25587:2;25582:3;25578:12;25571:19;;25230:366;;;:::o;25602:419::-;25768:4;25806:2;25795:9;25791:18;25783:26;;25855:9;25849:4;25845:20;25841:1;25830:9;25826:17;25819:47;25883:131;26009:4;25883:131;:::i;:::-;25875:139;;25602:419;;;:::o;26027:229::-;26167:34;26163:1;26155:6;26151:14;26144:58;26236:12;26231:2;26223:6;26219:15;26212:37;26027:229;:::o;26262:366::-;26404:3;26425:67;26489:2;26484:3;26425:67;:::i;:::-;26418:74;;26501:93;26590:3;26501:93;:::i;:::-;26619:2;26614:3;26610:12;26603:19;;26262:366;;;:::o;26634:419::-;26800:4;26838:2;26827:9;26823:18;26815:26;;26887:9;26881:4;26877:20;26873:1;26862:9;26858:17;26851:47;26915:131;27041:4;26915:131;:::i;:::-;26907:139;;26634:419;;;:::o;27059:229::-;27199:34;27195:1;27187:6;27183:14;27176:58;27268:12;27263:2;27255:6;27251:15;27244:37;27059:229;:::o;27294:366::-;27436:3;27457:67;27521:2;27516:3;27457:67;:::i;:::-;27450:74;;27533:93;27622:3;27533:93;:::i;:::-;27651:2;27646:3;27642:12;27635:19;;27294:366;;;:::o;27666:419::-;27832:4;27870:2;27859:9;27855:18;27847:26;;27919:9;27913:4;27909:20;27905:1;27894:9;27890:17;27883:47;27947:131;28073:4;27947:131;:::i;:::-;27939:139;;27666:419;;;:::o;28091:224::-;28231:34;28227:1;28219:6;28215:14;28208:58;28300:7;28295:2;28287:6;28283:15;28276:32;28091:224;:::o;28321:366::-;28463:3;28484:67;28548:2;28543:3;28484:67;:::i;:::-;28477:74;;28560:93;28649:3;28560:93;:::i;:::-;28678:2;28673:3;28669:12;28662:19;;28321:366;;;:::o;28693:419::-;28859:4;28897:2;28886:9;28882:18;28874:26;;28946:9;28940:4;28936:20;28932:1;28921:9;28917:17;28910:47;28974:131;29100:4;28974:131;:::i;:::-;28966:139;;28693:419;;;:::o;29118:224::-;29258:34;29254:1;29246:6;29242:14;29235:58;29327:7;29322:2;29314:6;29310:15;29303:32;29118:224;:::o;29348:366::-;29490:3;29511:67;29575:2;29570:3;29511:67;:::i;:::-;29504:74;;29587:93;29676:3;29587:93;:::i;:::-;29705:2;29700:3;29696:12;29689:19;;29348:366;;;:::o;29720:419::-;29886:4;29924:2;29913:9;29909:18;29901:26;;29973:9;29967:4;29963:20;29959:1;29948:9;29944:17;29937:47;30001:131;30127:4;30001:131;:::i;:::-;29993:139;;29720:419;;;:::o;30145:225::-;30285:34;30281:1;30273:6;30269:14;30262:58;30354:8;30349:2;30341:6;30337:15;30330:33;30145:225;:::o;30376:366::-;30518:3;30539:67;30603:2;30598:3;30539:67;:::i;:::-;30532:74;;30615:93;30704:3;30615:93;:::i;:::-;30733:2;30728:3;30724:12;30717:19;;30376:366;;;:::o;30748:419::-;30914:4;30952:2;30941:9;30937:18;30929:26;;31001:9;30995:4;30991:20;30987:1;30976:9;30972:17;30965:47;31029:131;31155:4;31029:131;:::i;:::-;31021:139;;30748:419;;;:::o;31173:178::-;31313:30;31309:1;31301:6;31297:14;31290:54;31173:178;:::o;31357:366::-;31499:3;31520:67;31584:2;31579:3;31520:67;:::i;:::-;31513:74;;31596:93;31685:3;31596:93;:::i;:::-;31714:2;31709:3;31705:12;31698:19;;31357:366;;;:::o;31729:419::-;31895:4;31933:2;31922:9;31918:18;31910:26;;31982:9;31976:4;31972:20;31968:1;31957:9;31953:17;31946:47;32010:131;32136:4;32010:131;:::i;:::-;32002:139;;31729:419;;;:::o;32154:223::-;32294:34;32290:1;32282:6;32278:14;32271:58;32363:6;32358:2;32350:6;32346:15;32339:31;32154:223;:::o;32383:366::-;32525:3;32546:67;32610:2;32605:3;32546:67;:::i;:::-;32539:74;;32622:93;32711:3;32622:93;:::i;:::-;32740:2;32735:3;32731:12;32724:19;;32383:366;;;:::o;32755:419::-;32921:4;32959:2;32948:9;32944:18;32936:26;;33008:9;33002:4;32998:20;32994:1;32983:9;32979:17;32972:47;33036:131;33162:4;33036:131;:::i;:::-;33028:139;;32755:419;;;:::o;33180:221::-;33320:34;33316:1;33308:6;33304:14;33297:58;33389:4;33384:2;33376:6;33372:15;33365:29;33180:221;:::o;33407:366::-;33549:3;33570:67;33634:2;33629:3;33570:67;:::i;:::-;33563:74;;33646:93;33735:3;33646:93;:::i;:::-;33764:2;33759:3;33755:12;33748:19;;33407:366;;;:::o;33779:419::-;33945:4;33983:2;33972:9;33968:18;33960:26;;34032:9;34026:4;34022:20;34018:1;34007:9;34003:17;33996:47;34060:131;34186:4;34060:131;:::i;:::-;34052:139;;33779:419;;;:::o;34204:228::-;34344:34;34340:1;34332:6;34328:14;34321:58;34413:11;34408:2;34400:6;34396:15;34389:36;34204:228;:::o;34438:366::-;34580:3;34601:67;34665:2;34660:3;34601:67;:::i;:::-;34594:74;;34677:93;34766:3;34677:93;:::i;:::-;34795:2;34790:3;34786:12;34779:19;;34438:366;;;:::o;34810:419::-;34976:4;35014:2;35003:9;34999:18;34991:26;;35063:9;35057:4;35053:20;35049:1;35038:9;35034:17;35027:47;35091:131;35217:4;35091:131;:::i;:::-;35083:139;;34810:419;;;:::o;35235:169::-;35375:21;35371:1;35363:6;35359:14;35352:45;35235:169;:::o;35410:366::-;35552:3;35573:67;35637:2;35632:3;35573:67;:::i;:::-;35566:74;;35649:93;35738:3;35649:93;:::i;:::-;35767:2;35762:3;35758:12;35751:19;;35410:366;;;:::o;35782:419::-;35948:4;35986:2;35975:9;35971:18;35963:26;;36035:9;36029:4;36025:20;36021:1;36010:9;36006:17;35999:47;36063:131;36189:4;36063:131;:::i;:::-;36055:139;;35782:419;;;:::o;36207:179::-;36347:31;36343:1;36335:6;36331:14;36324:55;36207:179;:::o;36392:366::-;36534:3;36555:67;36619:2;36614:3;36555:67;:::i;:::-;36548:74;;36631:93;36720:3;36631:93;:::i;:::-;36749:2;36744:3;36740:12;36733:19;;36392:366;;;:::o;36764:419::-;36930:4;36968:2;36957:9;36953:18;36945:26;;37017:9;37011:4;37007:20;37003:1;36992:9;36988:17;36981:47;37045:131;37171:4;37045:131;:::i;:::-;37037:139;;36764:419;;;:::o;37189:182::-;37329:34;37325:1;37317:6;37313:14;37306:58;37189:182;:::o;37377:366::-;37519:3;37540:67;37604:2;37599:3;37540:67;:::i;:::-;37533:74;;37616:93;37705:3;37616:93;:::i;:::-;37734:2;37729:3;37725:12;37718:19;;37377:366;;;:::o;37749:419::-;37915:4;37953:2;37942:9;37938:18;37930:26;;38002:9;37996:4;37992:20;37988:1;37977:9;37973:17;37966:47;38030:131;38156:4;38030:131;:::i;:::-;38022:139;;37749:419;;;:::o;38174:180::-;38314:32;38310:1;38302:6;38298:14;38291:56;38174:180;:::o;38360:366::-;38502:3;38523:67;38587:2;38582:3;38523:67;:::i;:::-;38516:74;;38599:93;38688:3;38599:93;:::i;:::-;38717:2;38712:3;38708:12;38701:19;;38360:366;;;:::o;38732:419::-;38898:4;38936:2;38925:9;38921:18;38913:26;;38985:9;38979:4;38975:20;38971:1;38960:9;38956:17;38949:47;39013:131;39139:4;39013:131;:::i;:::-;39005:139;;38732:419;;;:::o;39157:180::-;39205:77;39202:1;39195:88;39302:4;39299:1;39292:15;39326:4;39323:1;39316:15;39343:185;39383:1;39400:20;39418:1;39400:20;:::i;:::-;39395:25;;39434:20;39452:1;39434:20;:::i;:::-;39429:25;;39473:1;39463:35;;39478:18;;:::i;:::-;39463:35;39520:1;39517;39513:9;39508:14;;39343:185;;;;:::o;39534:224::-;39674:34;39670:1;39662:6;39658:14;39651:58;39743:7;39738:2;39730:6;39726:15;39719:32;39534:224;:::o;39764:366::-;39906:3;39927:67;39991:2;39986:3;39927:67;:::i;:::-;39920:74;;40003:93;40092:3;40003:93;:::i;:::-;40121:2;40116:3;40112:12;40105:19;;39764:366;;;:::o;40136:419::-;40302:4;40340:2;40329:9;40325:18;40317:26;;40389:9;40383:4;40379:20;40375:1;40364:9;40360:17;40353:47;40417:131;40543:4;40417:131;:::i;:::-;40409:139;;40136:419;;;:::o;40561:222::-;40701:34;40697:1;40689:6;40685:14;40678:58;40770:5;40765:2;40757:6;40753:15;40746:30;40561:222;:::o;40789:366::-;40931:3;40952:67;41016:2;41011:3;40952:67;:::i;:::-;40945:74;;41028:93;41117:3;41028:93;:::i;:::-;41146:2;41141:3;41137:12;41130:19;;40789:366;;;:::o;41161:419::-;41327:4;41365:2;41354:9;41350:18;41342:26;;41414:9;41408:4;41404:20;41400:1;41389:9;41385:17;41378:47;41442:131;41568:4;41442:131;:::i;:::-;41434:139;;41161:419;;;:::o;41586:225::-;41726:34;41722:1;41714:6;41710:14;41703:58;41795:8;41790:2;41782:6;41778:15;41771:33;41586:225;:::o;41817:366::-;41959:3;41980:67;42044:2;42039:3;41980:67;:::i;:::-;41973:74;;42056:93;42145:3;42056:93;:::i;:::-;42174:2;42169:3;42165:12;42158:19;;41817:366;;;:::o;42189:419::-;42355:4;42393:2;42382:9;42378:18;42370:26;;42442:9;42436:4;42432:20;42428:1;42417:9;42413:17;42406:47;42470:131;42596:4;42470:131;:::i;:::-;42462:139;;42189:419;;;:::o;42614:143::-;42671:5;42702:6;42696:13;42687:22;;42718:33;42745:5;42718:33;:::i;:::-;42614:143;;;;:::o;42763:351::-;42833:6;42882:2;42870:9;42861:7;42857:23;42853:32;42850:119;;;42888:79;;:::i;:::-;42850:119;43008:1;43033:64;43089:7;43080:6;43069:9;43065:22;43033:64;:::i;:::-;43023:74;;42979:128;42763:351;;;;:::o;43120:85::-;43165:7;43194:5;43183:16;;43120:85;;;:::o;43211:158::-;43269:9;43302:61;43320:42;43329:32;43355:5;43329:32;:::i;:::-;43320:42;:::i;:::-;43302:61;:::i;:::-;43289:74;;43211:158;;;:::o;43375:147::-;43470:45;43509:5;43470:45;:::i;:::-;43465:3;43458:58;43375:147;;:::o;43528:114::-;43595:6;43629:5;43623:12;43613:22;;43528:114;;;:::o;43648:184::-;43747:11;43781:6;43776:3;43769:19;43821:4;43816:3;43812:14;43797:29;;43648:184;;;;:::o;43838:132::-;43905:4;43928:3;43920:11;;43958:4;43953:3;43949:14;43941:22;;43838:132;;;:::o;43976:108::-;44053:24;44071:5;44053:24;:::i;:::-;44048:3;44041:37;43976:108;;:::o;44090:179::-;44159:10;44180:46;44222:3;44214:6;44180:46;:::i;:::-;44258:4;44253:3;44249:14;44235:28;;44090:179;;;;:::o;44275:113::-;44345:4;44377;44372:3;44368:14;44360:22;;44275:113;;;:::o;44424:732::-;44543:3;44572:54;44620:5;44572:54;:::i;:::-;44642:86;44721:6;44716:3;44642:86;:::i;:::-;44635:93;;44752:56;44802:5;44752:56;:::i;:::-;44831:7;44862:1;44847:284;44872:6;44869:1;44866:13;44847:284;;;44948:6;44942:13;44975:63;45034:3;45019:13;44975:63;:::i;:::-;44968:70;;45061:60;45114:6;45061:60;:::i;:::-;45051:70;;44907:224;44894:1;44891;44887:9;44882:14;;44847:284;;;44851:14;45147:3;45140:10;;44548:608;;;44424:732;;;;:::o;45162:831::-;45425:4;45463:3;45452:9;45448:19;45440:27;;45477:71;45545:1;45534:9;45530:17;45521:6;45477:71;:::i;:::-;45558:80;45634:2;45623:9;45619:18;45610:6;45558:80;:::i;:::-;45685:9;45679:4;45675:20;45670:2;45659:9;45655:18;45648:48;45713:108;45816:4;45807:6;45713:108;:::i;:::-;45705:116;;45831:72;45899:2;45888:9;45884:18;45875:6;45831:72;:::i;:::-;45913:73;45981:3;45970:9;45966:19;45957:6;45913:73;:::i;:::-;45162:831;;;;;;;;:::o;45999:807::-;46248:4;46286:3;46275:9;46271:19;46263:27;;46300:71;46368:1;46357:9;46353:17;46344:6;46300:71;:::i;:::-;46381:72;46449:2;46438:9;46434:18;46425:6;46381:72;:::i;:::-;46463:80;46539:2;46528:9;46524:18;46515:6;46463:80;:::i;:::-;46553;46629:2;46618:9;46614:18;46605:6;46553:80;:::i;:::-;46643:73;46711:3;46700:9;46696:19;46687:6;46643:73;:::i;:::-;46726;46794:3;46783:9;46779:19;46770:6;46726:73;:::i;:::-;45999:807;;;;;;;;;:::o;46812:143::-;46869:5;46900:6;46894:13;46885:22;;46916:33;46943:5;46916:33;:::i;:::-;46812:143;;;;:::o;46961:663::-;47049:6;47057;47065;47114:2;47102:9;47093:7;47089:23;47085:32;47082:119;;;47120:79;;:::i;:::-;47082:119;47240:1;47265:64;47321:7;47312:6;47301:9;47297:22;47265:64;:::i;:::-;47255:74;;47211:128;47378:2;47404:64;47460:7;47451:6;47440:9;47436:22;47404:64;:::i;:::-;47394:74;;47349:129;47517:2;47543:64;47599:7;47590:6;47579:9;47575:22;47543:64;:::i;:::-;47533:74;;47488:129;46961:663;;;;;:::o;47630:179::-;47770:31;47766:1;47758:6;47754:14;47747:55;47630:179;:::o;47815:366::-;47957:3;47978:67;48042:2;48037:3;47978:67;:::i;:::-;47971:74;;48054:93;48143:3;48054:93;:::i;:::-;48172:2;48167:3;48163:12;48156:19;;47815:366;;;:::o;48187:419::-;48353:4;48391:2;48380:9;48376:18;48368:26;;48440:9;48434:4;48430:20;48426:1;48415:9;48411:17;48404:47;48468:131;48594:4;48468:131;:::i;:::-;48460:139;;48187:419;;;:::o;48612:147::-;48713:11;48750:3;48735:18;;48612:147;;;;:::o;48765:114::-;;:::o;48885:398::-;49044:3;49065:83;49146:1;49141:3;49065:83;:::i;:::-;49058:90;;49157:93;49246:3;49157:93;:::i;:::-;49275:1;49270:3;49266:11;49259:18;;48885:398;;;:::o;49289:379::-;49473:3;49495:147;49638:3;49495:147;:::i;:::-;49488:154;;49659:3;49652:10;;49289:379;;;:::o;49674:245::-;49814:34;49810:1;49802:6;49798:14;49791:58;49883:28;49878:2;49870:6;49866:15;49859:53;49674:245;:::o;49925:366::-;50067:3;50088:67;50152:2;50147:3;50088:67;:::i;:::-;50081:74;;50164:93;50253:3;50164:93;:::i;:::-;50282:2;50277:3;50273:12;50266:19;;49925:366;;;:::o;50297:419::-;50463:4;50501:2;50490:9;50486:18;50478:26;;50550:9;50544:4;50540:20;50536:1;50525:9;50521:17;50514:47;50578:131;50704:4;50578:131;:::i;:::-;50570:139;;50297:419;;;:::o

Swarm Source

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