ETH Price: $3,915.26 (-0.62%)

Token

ERC-20: Shikoku Inu (SHIKOKU)
 

Overview

Max Total Supply

1,000,000,000 SHIKOKU

Holders

152

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.300811169421140509 SHIKOKU

Value
$0.00
0x5ec6cfb63bd78ea9a65ed7ce07d7936fddcdf6b2
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:
SHIKOKU

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-11-05
*/

//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 IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {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, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {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 SHIKOKU is ERC20, 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 = 1000000 * 10**18;

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

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


    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(15, 0);
    Taxes public sellTaxes = Taxes(25, 0);

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

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


    constructor() ERC20("Shikoku Inu", "SHIKOKU") {
        _tokengeneration(msg.sender, 1000000000 * 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, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Bye Bye Bots");

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

    function SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity);
        
    }

    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 {
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

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

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

    // fallbacks
    receive() external payable {}

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

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":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkSetBlacklist","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueERC20","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555069d3c21bcecceda10000006008556003600a556063600b556a084595161401484a000000600c556a084595161401484a000000600d556a084595161401484a000000600e5573babcbc87d0aa98d86785edc9bfab370bb8fe639c600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600f8152602001600081525060106000820151816000015560208201518160010155505060405180604001604052806019815260200160008152506012600082015181600001556020820151816001015550503480156200015a57600080fd5b506040518060400160405280600b81526020017f5368696b6f6b7520496e750000000000000000000000000000000000000000008152506040518060400160405280600781526020017f5348494b4f4b55000000000000000000000000000000000000000000000000008152508160039081620001d8919062000a7e565b508060049081620001ea919062000a7e565b5050506200020d62000201620005dd60201b60201c565b620005e560201b60201c565b6200024d3362000222620006ab60201b60201c565b600a62000230919062000cf5565b633b9aca0062000241919062000d46565b620006b460201b60201c565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000332919062000dfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c0919062000dfb565b6040518363ffffffff1660e01b8152600401620003df92919062000e3e565b6020604051808303816000875af1158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000425919062000dfb565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000f7d565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000726576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071d9062000ef2565b60405180910390fd5b80600260008282546200073a919062000f14565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000791919062000f14565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007f8919062000f60565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088657607f821691505b6020821081036200089c576200089b6200083e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008c7565b620009128683620008c7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200095f6200095962000953846200092a565b62000934565b6200092a565b9050919050565b6000819050919050565b6200097b836200093e565b620009936200098a8262000966565b848454620008d4565b825550505050565b600090565b620009aa6200099b565b620009b781848462000970565b505050565b5b81811015620009df57620009d3600082620009a0565b600181019050620009bd565b5050565b601f82111562000a2e57620009f881620008a2565b62000a0384620008b7565b8101602085101562000a13578190505b62000a2b62000a2285620008b7565b830182620009bc565b50505b505050565b600082821c905092915050565b600062000a536000198460080262000a33565b1980831691505092915050565b600062000a6e838362000a40565b9150826002028217905092915050565b62000a898262000804565b67ffffffffffffffff81111562000aa55762000aa46200080f565b5b62000ab182546200086d565b62000abe828285620009e3565b600060209050601f83116001811462000af6576000841562000ae1578287015190505b62000aed858262000a60565b86555062000b5d565b601f19841662000b0686620008a2565b60005b8281101562000b305784890151825560018201915060208501945060208101905062000b09565b8683101562000b50578489015162000b4c601f89168262000a40565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bf35780860481111562000bcb5762000bca62000b65565b5b600185161562000bdb5780820291505b808102905062000beb8562000b94565b945062000bab565b94509492505050565b60008262000c0e576001905062000ce1565b8162000c1e576000905062000ce1565b816001811462000c37576002811462000c425762000c78565b600191505062000ce1565b60ff84111562000c575762000c5662000b65565b5b8360020a91508482111562000c715762000c7062000b65565b5b5062000ce1565b5060208310610133831016604e8410600b841016171562000cb25782820a90508381111562000cac5762000cab62000b65565b5b62000ce1565b62000cc1848484600162000ba1565b9250905081840481111562000cdb5762000cda62000b65565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d02826200092a565b915062000d0f8362000ce8565b925062000d3e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bfc565b905092915050565b600062000d53826200092a565b915062000d60836200092a565b925082820262000d70816200092a565b9150828204841483151762000d8a5762000d8962000b65565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dc38262000d96565b9050919050565b62000dd58162000db6565b811462000de157600080fd5b50565b60008151905062000df58162000dca565b92915050565b60006020828403121562000e145762000e1362000d91565b5b600062000e248482850162000de4565b91505092915050565b62000e388162000db6565b82525050565b600060408201905062000e55600083018562000e2d565b62000e64602083018462000e2d565b9392505050565b600082825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600062000eda60258362000e6b565b915062000ee78262000e7c565b604082019050919050565b6000602082019050818103600083015262000f0d8162000ecb565b9050919050565b600062000f21826200092a565b915062000f2e836200092a565b925082820190508082111562000f495762000f4862000b65565b5b92915050565b62000f5a816200092a565b82525050565b600060208201905062000f77600083018462000f4f565b92915050565b614cf98062000f8d6000396000f3fe6080604052600436106102755760003560e01c8063778bf9be1161014f578063dd62ed3e116100c1578063f64534a71161007a578063f64534a71461095d578063f66895a314610986578063f887ea40146109b2578063fbe6324e146109dd578063fe575a8714610a08578063fe8f12b414610a455761027c565b8063dd62ed3e14610853578063e1b450ad14610890578063edaa1168146108b9578063f0558935146108e2578063f2fde38b1461090b578063f52be97c146109345761027c565b806395d89b411161011357806395d89b411461071d578063a457c2d714610748578063a8aa1b3114610785578063a9059cbb146107b0578063aacebbe3146107ed578063c5d32bb2146108165761027c565b8063778bf9be1461064a57806385141a77146106735780638a33e8811461069e5780638cd4426d146106c95780638da5cb5b146106f25761027c565b8063313ce567116101e857806366a88d96116101ac57806366a88d96146105495780636aa5b37f1461057457806370a082311461059f578063715018a6146105dc578063728f8eea146105f357806375f0a8741461061f5761027c565b8063313ce56714610464578063355496ca1461048f57806339509351146104b857806342b6fa11146104f5578063652e2f041461051e5761027c565b8063153b0d1e1161023a578063153b0d1e146103525780631675d8021461037b57806318160ddd146103a657806323b872dd146103d1578063274a533c1461040e5780632b112e49146104395761027c565b806299d3861461028157806306fdde0314610298578063095ea7b3146102c35780630e375a5c146103005780631340538f146103295761027c565b3661027c57005b600080fd5b34801561028d57600080fd5b50610296610a70565b005b3480156102a457600080fd5b506102ad610b7b565b6040516102ba919061340d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906134d7565b610c0d565b6040516102f79190613532565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906136c1565b610c2b565b005b34801561033557600080fd5b50610350600480360381019061034b919061371d565b610d3c565b005b34801561035e57600080fd5b506103796004803603810190610374919061374a565b610dd5565b005b34801561038757600080fd5b50610390610eac565b60405161039d9190613799565b60405180910390f35b3480156103b257600080fd5b506103bb610eb2565b6040516103c89190613799565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906137b4565b610ebc565b6040516104059190613532565b60405180910390f35b34801561041a57600080fd5b50610423610fbd565b6040516104309190613799565b60405180910390f35b34801561044557600080fd5b5061044e610fc3565b60405161045b9190613799565b60405180910390f35b34801561047057600080fd5b50610479610ffb565b6040516104869190613823565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b1919061374a565b611004565b005b3480156104c457600080fd5b506104df60048036038101906104da91906134d7565b6110db565b6040516104ec9190613532565b60405180910390f35b34801561050157600080fd5b5061051c6004803603810190610517919061383e565b611187565b005b34801561052a57600080fd5b50610533611271565b6040516105409190613799565b60405180910390f35b34801561055557600080fd5b5061055e611277565b60405161056b9190613799565b60405180910390f35b34801561058057600080fd5b5061058961127d565b6040516105969190613799565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c1919061386b565b611283565b6040516105d39190613799565b60405180910390f35b3480156105e857600080fd5b506105f16112cb565b005b3480156105ff57600080fd5b50610608611353565b604051610616929190613898565b60405180910390f35b34801561062b57600080fd5b50610634611365565b60405161064191906138d0565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c91906136c1565b61138b565b005b34801561067f57600080fd5b5061068861149c565b60405161069591906138d0565b60405180910390f35b3480156106aa57600080fd5b506106b36114a2565b6040516106c091906138d0565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb91906134d7565b6114a7565b005b3480156106fe57600080fd5b5061070761161b565b60405161071491906138d0565b60405180910390f35b34801561072957600080fd5b50610732611645565b60405161073f919061340d565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a91906134d7565b6116d7565b60405161077c9190613532565b60405180910390f35b34801561079157600080fd5b5061079a6117cb565b6040516107a791906138d0565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d291906134d7565b6117f1565b6040516107e49190613532565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f919061386b565b611808565b005b34801561082257600080fd5b5061083d6004803603810190610838919061386b565b611937565b60405161084a9190613532565b60405180910390f35b34801561085f57600080fd5b5061087a600480360381019061087591906138eb565b611957565b6040516108879190613799565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b2919061392b565b6119de565b005b3480156108c557600080fd5b506108e060048036038101906108db919061383e565b611ace565b005b3480156108ee57600080fd5b506109096004803603810190610904919061383e565b611be6565b005b34801561091757600080fd5b50610932600480360381019061092d919061386b565b611cb3565b005b34801561094057600080fd5b5061095b6004803603810190610956919061397e565b611daa565b005b34801561096957600080fd5b50610984600480360381019061097f919061397e565b611e58565b005b34801561099257600080fd5b5061099b611f06565b6040516109a9929190613898565b60405180910390f35b3480156109be57600080fd5b506109c7611f18565b6040516109d49190613a1d565b60405180910390f35b3480156109e957600080fd5b506109f2611f3e565b6040516109ff9190613532565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a919061386b565b611f51565b604051610a3c9190613532565b60405180910390f35b348015610a5157600080fd5b50610a5a611f71565b604051610a679190613532565b60405180910390f35b610a78611f84565b73ffffffffffffffffffffffffffffffffffffffff16610a9661161b565b73ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae390613a84565b60405180910390fd5b600760169054906101000a900460ff1615610b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3390613af0565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b606060038054610b8a90613b3f565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb690613b3f565b8015610c035780601f10610bd857610100808354040283529160200191610c03565b820191906000526020600020905b815481529060010190602001808311610be657829003601f168201915b5050505050905090565b6000610c21610c1a611f84565b8484611f8c565b6001905092915050565b610c33611f84565b73ffffffffffffffffffffffffffffffffffffffff16610c5161161b565b73ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90613a84565b60405180910390fd5b60005b8251811015610d37578160146000858481518110610ccb57610cca613b70565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d2f90613bce565b915050610caa565b505050565b610d44611f84565b73ffffffffffffffffffffffffffffffffffffffff16610d6261161b565b73ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90613a84565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b610ddd611f84565b73ffffffffffffffffffffffffffffffffffffffff16610dfb61161b565b73ffffffffffffffffffffffffffffffffffffffff1614610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890613a84565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b6000600254905090565b6000610ec9848484612155565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f14611f84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8b90613c88565b60405180910390fd5b610fb185610fa0611f84565b8584610fac9190613ca8565b611f8c565b60019150509392505050565b60095481565b6000610fcf6000611283565b610fda61dead611283565b610fe2610eb2565b610fec9190613ca8565b610ff69190613ca8565b905090565b60006012905090565b61100c611f84565b73ffffffffffffffffffffffffffffffffffffffff1661102a61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790613a84565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061117d6110e8611f84565b8484600160006110f6611f84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111789190613cdc565b611f8c565b6001905092915050565b61118f611f84565b73ffffffffffffffffffffffffffffffffffffffff166111ad61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613a84565b60405180910390fd5b620186a0811115611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090613d82565b60405180910390fd5b611251610ffb565b600a61125d9190613ed5565b816112689190613f20565b60088190555050565b600e5481565b600c5481565b600d5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112d3611f84565b73ffffffffffffffffffffffffffffffffffffffff166112f161161b565b73ffffffffffffffffffffffffffffffffffffffff1614611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90613a84565b60405180910390fd5b6113516000612a6b565b565b60108060000154908060010154905082565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611393611f84565b73ffffffffffffffffffffffffffffffffffffffff166113b161161b565b73ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613a84565b60405180910390fd5b60005b825181101561149757816015600085848151811061142b5761142a613b70565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061148f90613bce565b91505061140a565b505050565b61dead81565b600081565b6114af611f84565b73ffffffffffffffffffffffffffffffffffffffff166114cd61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613a84565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890613fd4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115b561161b565b836040518363ffffffff1660e01b81526004016115d3929190613ff4565b6020604051808303816000875af11580156115f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116169190614032565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461165490613b3f565b80601f016020809104026020016040519081016040528092919081815260200182805461168090613b3f565b80156116cd5780601f106116a2576101008083540402835291602001916116cd565b820191906000526020600020905b8154815290600101906020018083116116b057829003601f168201915b5050505050905090565b600080600160006116e6611f84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a906140d1565b60405180910390fd5b6117c06117ae611f84565b8585846117bb9190613ca8565b611f8c565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117fe338484612155565b6001905092915050565b611810611f84565b73ffffffffffffffffffffffffffffffffffffffff1661182e61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90614163565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119e6611f84565b73ffffffffffffffffffffffffffffffffffffffff16611a0461161b565b73ffffffffffffffffffffffffffffffffffffffff1614611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190613a84565b60405180910390fd5b611a62610ffb565b600a611a6e9190613ed5565b83611a799190613f20565b600d81905550611a87610ffb565b600a611a939190613ed5565b82611a9e9190613f20565b600e81905550611aac610ffb565b600a611ab89190613ed5565b81611ac39190613f20565b600c81905550505050565b611ad6611f84565b73ffffffffffffffffffffffffffffffffffffffff16611af461161b565b73ffffffffffffffffffffffffffffffffffffffff1614611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613a84565b60405180910390fd5b600760169054906101000a900460ff16611b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b90906141f5565b60405180910390fd5b60058110611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd390614287565b60405180910390fd5b80600a8190555050565b611bee611f84565b73ffffffffffffffffffffffffffffffffffffffff16611c0c61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990613a84565b60405180910390fd5b611c6a61161b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611caf573d6000803e3d6000fd5b5050565b611cbb611f84565b73ffffffffffffffffffffffffffffffffffffffff16611cd961161b565b73ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2690613a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9590614319565b60405180910390fd5b611da781612a6b565b50565b611db2611f84565b73ffffffffffffffffffffffffffffffffffffffff16611dd061161b565b73ffffffffffffffffffffffffffffffffffffffff1614611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1d90613a84565b60405180910390fd5b604051806040016040528083815260200182815250601260008201518160000155602082015181600101559050505050565b611e60611f84565b73ffffffffffffffffffffffffffffffffffffffff16611e7e61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb90613a84565b60405180910390fd5b604051806040016040528083815260200182815250601060008201518160000155602082015181600101559050505050565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b60156020528060005260406000206000915054906101000a900460ff1681565b600760169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff2906143ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361206a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120619061443d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121489190613799565b60405180910390a3505050565b60008111612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f906144cf565b60405180910390fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561223c5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61227b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122729061453b565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561231f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237457600760169054906101000a900460ff16612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236a906145a7565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561241b5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124345750600760149054906101000a900460ff16155b156124d757600d5481111561247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247590614613565b60405180910390fd5b600c548161248b84611283565b6124959190613cdc565b11156124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd9061467f565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561257f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125d55750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125ee5750600760149054906101000a900460ff16155b156126e757600e54811115612638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262f906146eb565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126e657600c548161269a84611283565b6126a49190613cdc565b11156126e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dc9061467f565b60405180910390fd5b5b5b60008060006126f4613363565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561279a5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127b45750600a546009546127b19190613cdc565b43105b9050600760149054906101000a900460ff168061281a5750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061286e5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561287c576000925061297b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156128d7575080155b1561291f576012600001546012600101546128f29190613cdc565b9450849350601260405180604001604052908160008201548152602001600182015481525050915061297a565b806129675760106000015460106001015461293a9190613cdc565b94508493506010604051806040016040529081600082015481526020016001820154815250509150612979565b801561297857600b549450600b5493505b5b5b5b606484876129899190613f20565b612993919061473a565b9250600760159054906101000a900460ff1680156129ff5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612a0f57612a0e8583612b31565b5b612a2588888589612a209190613ca8565b612cd5565b6000831115612a61576000851115612a6057600060648688612a479190613f20565b612a51919061473a565b9050612a5e893083612cd5565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612cd1576001600760146101000a81548160ff0219169083151502179055506000820315612cb5576000612b7430611283565b90506008548110612cb35760016008541115612b905760085490505b6000600284612b9f9190613f20565b9050600081846020015184612bb49190613f20565b612bbe919061473a565b905060008184612bce9190613ca8565b90506000479050612bde82612f47565b60008147612bec9190613ca8565b90506000876020015186612c009190613ca8565b82612c0b919061473a565b90506000886020015182612c1f9190613f20565b90506000811115612c3557612c34868261318a565b5b60008960000151600284612c499190613f20565b612c539190613f20565b90506000811115612caa57612ca981600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661326f90919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b906147dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612daa9061486f565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3090614901565b60405180910390fd5b8181612e459190613ca8565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ed59190613cdc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f399190613799565b60405180910390a350505050565b6000600267ffffffffffffffff811115612f6457612f63613552565b5b604051908082528060200260200182016040528015612f925781602001602082028036833780820191505090505b5090503081600081518110612faa57612fa9613b70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130759190614936565b8160018151811061308957613088613b70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506130f030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f8c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613154959493929190614a5c565b600060405180830381600087803b15801561316e57600080fd5b505af1158015613182573d6000803e3d6000fd5b505050505050565b6131b730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f8c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061320361161b565b426040518863ffffffff1660e01b815260040161322596959493929190614ab6565b60606040518083038185885af1158015613243573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132689190614b2c565b5050505050565b804710156132b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a990614bcb565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516132d890614c1c565b60006040518083038185875af1925050503d8060008114613315576040519150601f19603f3d011682016040523d82523d6000602084013e61331a565b606091505b505090508061335e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335590614ca3565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b838110156133b757808201518184015260208101905061339c565b60008484015250505050565b6000601f19601f8301169050919050565b60006133df8261337d565b6133e98185613388565b93506133f9818560208601613399565b613402816133c3565b840191505092915050565b6000602082019050818103600083015261342781846133d4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061346e82613443565b9050919050565b61347e81613463565b811461348957600080fd5b50565b60008135905061349b81613475565b92915050565b6000819050919050565b6134b4816134a1565b81146134bf57600080fd5b50565b6000813590506134d1816134ab565b92915050565b600080604083850312156134ee576134ed613439565b5b60006134fc8582860161348c565b925050602061350d858286016134c2565b9150509250929050565b60008115159050919050565b61352c81613517565b82525050565b60006020820190506135476000830184613523565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61358a826133c3565b810181811067ffffffffffffffff821117156135a9576135a8613552565b5b80604052505050565b60006135bc61342f565b90506135c88282613581565b919050565b600067ffffffffffffffff8211156135e8576135e7613552565b5b602082029050602081019050919050565b600080fd5b600061361161360c846135cd565b6135b2565b90508083825260208201905060208402830185811115613634576136336135f9565b5b835b8181101561365d5780613649888261348c565b845260208401935050602081019050613636565b5050509392505050565b600082601f83011261367c5761367b61354d565b5b813561368c8482602086016135fe565b91505092915050565b61369e81613517565b81146136a957600080fd5b50565b6000813590506136bb81613695565b92915050565b600080604083850312156136d8576136d7613439565b5b600083013567ffffffffffffffff8111156136f6576136f561343e565b5b61370285828601613667565b9250506020613713858286016136ac565b9150509250929050565b60006020828403121561373357613732613439565b5b6000613741848285016136ac565b91505092915050565b6000806040838503121561376157613760613439565b5b600061376f8582860161348c565b9250506020613780858286016136ac565b9150509250929050565b613793816134a1565b82525050565b60006020820190506137ae600083018461378a565b92915050565b6000806000606084860312156137cd576137cc613439565b5b60006137db8682870161348c565b93505060206137ec8682870161348c565b92505060406137fd868287016134c2565b9150509250925092565b600060ff82169050919050565b61381d81613807565b82525050565b60006020820190506138386000830184613814565b92915050565b60006020828403121561385457613853613439565b5b6000613862848285016134c2565b91505092915050565b60006020828403121561388157613880613439565b5b600061388f8482850161348c565b91505092915050565b60006040820190506138ad600083018561378a565b6138ba602083018461378a565b9392505050565b6138ca81613463565b82525050565b60006020820190506138e560008301846138c1565b92915050565b6000806040838503121561390257613901613439565b5b60006139108582860161348c565b92505060206139218582860161348c565b9150509250929050565b60008060006060848603121561394457613943613439565b5b6000613952868287016134c2565b9350506020613963868287016134c2565b9250506040613974868287016134c2565b9150509250925092565b6000806040838503121561399557613994613439565b5b60006139a3858286016134c2565b92505060206139b4858286016134c2565b9150509250929050565b6000819050919050565b60006139e36139de6139d984613443565b6139be565b613443565b9050919050565b60006139f5826139c8565b9050919050565b6000613a07826139ea565b9050919050565b613a17816139fc565b82525050565b6000602082019050613a326000830184613a0e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a6e602083613388565b9150613a7982613a38565b602082019050919050565b60006020820190508181036000830152613a9d81613a61565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613ada601883613388565b9150613ae582613aa4565b602082019050919050565b60006020820190508181036000830152613b0981613acd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b5757607f821691505b602082108103613b6a57613b69613b10565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bd9826134a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c0b57613c0a613b9f565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613c72602883613388565b9150613c7d82613c16565b604082019050919050565b60006020820190508181036000830152613ca181613c65565b9050919050565b6000613cb3826134a1565b9150613cbe836134a1565b9250828203905081811115613cd657613cd5613b9f565b5b92915050565b6000613ce7826134a1565b9150613cf2836134a1565b9250828201905080821115613d0a57613d09613b9f565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613d6c603e83613388565b9150613d7782613d10565b604082019050919050565b60006020820190508181036000830152613d9b81613d5f565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613df957808604811115613dd557613dd4613b9f565b5b6001851615613de45780820291505b8081029050613df285613da2565b9450613db9565b94509492505050565b600082613e125760019050613ece565b81613e205760009050613ece565b8160018114613e365760028114613e4057613e6f565b6001915050613ece565b60ff841115613e5257613e51613b9f565b5b8360020a915084821115613e6957613e68613b9f565b5b50613ece565b5060208310610133831016604e8410600b8410161715613ea45782820a905083811115613e9f57613e9e613b9f565b5b613ece565b613eb18484846001613daf565b92509050818404811115613ec857613ec7613b9f565b5b81810290505b9392505050565b6000613ee0826134a1565b9150613eeb83613807565b9250613f187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613e02565b905092915050565b6000613f2b826134a1565b9150613f36836134a1565b9250828202613f44816134a1565b91508282048414831517613f5b57613f5a613b9f565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613fbe603683613388565b9150613fc982613f62565b604082019050919050565b60006020820190508181036000830152613fed81613fb1565b9050919050565b600060408201905061400960008301856138c1565b614016602083018461378a565b9392505050565b60008151905061402c81613695565b92915050565b60006020828403121561404857614047613439565b5b60006140568482850161401d565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140bb602583613388565b91506140c68261405f565b604082019050919050565b600060208201905081810360008301526140ea816140ae565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061414d602283613388565b9150614158826140f1565b604082019050919050565b6000602082019050818103600083015261417c81614140565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b60006141df602583613388565b91506141ea82614183565b604082019050919050565b6000602082019050818103600083015261420e816141d2565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b6000614271602583613388565b915061427c82614215565b604082019050919050565b600060208201905081810360008301526142a081614264565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614303602683613388565b915061430e826142a7565b604082019050919050565b60006020820190508181036000830152614332816142f6565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614395602483613388565b91506143a082614339565b604082019050919050565b600060208201905081810360008301526143c481614388565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614427602283613388565b9150614432826143cb565b604082019050919050565b600060208201905081810360008301526144568161441a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144b9602983613388565b91506144c48261445d565b604082019050919050565b600060208201905081810360008301526144e8816144ac565b9050919050565b7f4279652042796520426f74730000000000000000000000000000000000000000600082015250565b6000614525600c83613388565b9150614530826144ef565b602082019050919050565b6000602082019050818103600083015261455481614518565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614591601383613388565b915061459c8261455b565b602082019050919050565b600060208201905081810360008301526145c081614584565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b60006145fd601d83613388565b9150614608826145c7565b602082019050919050565b6000602082019050818103600083015261462c816145f0565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000614669602083613388565b915061467482614633565b602082019050919050565b600060208201905081810360008301526146988161465c565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b60006146d5601e83613388565b91506146e08261469f565b602082019050919050565b60006020820190508181036000830152614704816146c8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614745826134a1565b9150614750836134a1565b9250826147605761475f61470b565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147c7602583613388565b91506147d28261476b565b604082019050919050565b600060208201905081810360008301526147f6816147ba565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614859602383613388565b9150614864826147fd565b604082019050919050565b600060208201905081810360008301526148888161484c565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148eb602683613388565b91506148f68261488f565b604082019050919050565b6000602082019050818103600083015261491a816148de565b9050919050565b60008151905061493081613475565b92915050565b60006020828403121561494c5761494b613439565b5b600061495a84828501614921565b91505092915050565b6000819050919050565b600061498861498361497e84614963565b6139be565b6134a1565b9050919050565b6149988161496d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6149d381613463565b82525050565b60006149e583836149ca565b60208301905092915050565b6000602082019050919050565b6000614a098261499e565b614a1381856149a9565b9350614a1e836149ba565b8060005b83811015614a4f578151614a3688826149d9565b9750614a41836149f1565b925050600181019050614a22565b5085935050505092915050565b600060a082019050614a71600083018861378a565b614a7e602083018761498f565b8181036040830152614a9081866149fe565b9050614a9f60608301856138c1565b614aac608083018461378a565b9695505050505050565b600060c082019050614acb60008301896138c1565b614ad8602083018861378a565b614ae5604083018761498f565b614af2606083018661498f565b614aff60808301856138c1565b614b0c60a083018461378a565b979650505050505050565b600081519050614b26816134ab565b92915050565b600080600060608486031215614b4557614b44613439565b5b6000614b5386828701614b17565b9350506020614b6486828701614b17565b9250506040614b7586828701614b17565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614bb5601d83613388565b9150614bc082614b7f565b602082019050919050565b60006020820190508181036000830152614be481614ba8565b9050919050565b600081905092915050565b50565b6000614c06600083614beb565b9150614c1182614bf6565b600082019050919050565b6000614c2782614bf9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614c8d603a83613388565b9150614c9882614c31565b604082019050919050565b60006020820190508181036000830152614cbc81614c80565b905091905056fea2646970667358221220296fecf6ac332a95e513c46a949ca4daf4ce5f4fce180ef99cbc8d295d382d5964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102755760003560e01c8063778bf9be1161014f578063dd62ed3e116100c1578063f64534a71161007a578063f64534a71461095d578063f66895a314610986578063f887ea40146109b2578063fbe6324e146109dd578063fe575a8714610a08578063fe8f12b414610a455761027c565b8063dd62ed3e14610853578063e1b450ad14610890578063edaa1168146108b9578063f0558935146108e2578063f2fde38b1461090b578063f52be97c146109345761027c565b806395d89b411161011357806395d89b411461071d578063a457c2d714610748578063a8aa1b3114610785578063a9059cbb146107b0578063aacebbe3146107ed578063c5d32bb2146108165761027c565b8063778bf9be1461064a57806385141a77146106735780638a33e8811461069e5780638cd4426d146106c95780638da5cb5b146106f25761027c565b8063313ce567116101e857806366a88d96116101ac57806366a88d96146105495780636aa5b37f1461057457806370a082311461059f578063715018a6146105dc578063728f8eea146105f357806375f0a8741461061f5761027c565b8063313ce56714610464578063355496ca1461048f57806339509351146104b857806342b6fa11146104f5578063652e2f041461051e5761027c565b8063153b0d1e1161023a578063153b0d1e146103525780631675d8021461037b57806318160ddd146103a657806323b872dd146103d1578063274a533c1461040e5780632b112e49146104395761027c565b806299d3861461028157806306fdde0314610298578063095ea7b3146102c35780630e375a5c146103005780631340538f146103295761027c565b3661027c57005b600080fd5b34801561028d57600080fd5b50610296610a70565b005b3480156102a457600080fd5b506102ad610b7b565b6040516102ba919061340d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906134d7565b610c0d565b6040516102f79190613532565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906136c1565b610c2b565b005b34801561033557600080fd5b50610350600480360381019061034b919061371d565b610d3c565b005b34801561035e57600080fd5b506103796004803603810190610374919061374a565b610dd5565b005b34801561038757600080fd5b50610390610eac565b60405161039d9190613799565b60405180910390f35b3480156103b257600080fd5b506103bb610eb2565b6040516103c89190613799565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906137b4565b610ebc565b6040516104059190613532565b60405180910390f35b34801561041a57600080fd5b50610423610fbd565b6040516104309190613799565b60405180910390f35b34801561044557600080fd5b5061044e610fc3565b60405161045b9190613799565b60405180910390f35b34801561047057600080fd5b50610479610ffb565b6040516104869190613823565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b1919061374a565b611004565b005b3480156104c457600080fd5b506104df60048036038101906104da91906134d7565b6110db565b6040516104ec9190613532565b60405180910390f35b34801561050157600080fd5b5061051c6004803603810190610517919061383e565b611187565b005b34801561052a57600080fd5b50610533611271565b6040516105409190613799565b60405180910390f35b34801561055557600080fd5b5061055e611277565b60405161056b9190613799565b60405180910390f35b34801561058057600080fd5b5061058961127d565b6040516105969190613799565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c1919061386b565b611283565b6040516105d39190613799565b60405180910390f35b3480156105e857600080fd5b506105f16112cb565b005b3480156105ff57600080fd5b50610608611353565b604051610616929190613898565b60405180910390f35b34801561062b57600080fd5b50610634611365565b60405161064191906138d0565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c91906136c1565b61138b565b005b34801561067f57600080fd5b5061068861149c565b60405161069591906138d0565b60405180910390f35b3480156106aa57600080fd5b506106b36114a2565b6040516106c091906138d0565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb91906134d7565b6114a7565b005b3480156106fe57600080fd5b5061070761161b565b60405161071491906138d0565b60405180910390f35b34801561072957600080fd5b50610732611645565b60405161073f919061340d565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a91906134d7565b6116d7565b60405161077c9190613532565b60405180910390f35b34801561079157600080fd5b5061079a6117cb565b6040516107a791906138d0565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d291906134d7565b6117f1565b6040516107e49190613532565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f919061386b565b611808565b005b34801561082257600080fd5b5061083d6004803603810190610838919061386b565b611937565b60405161084a9190613532565b60405180910390f35b34801561085f57600080fd5b5061087a600480360381019061087591906138eb565b611957565b6040516108879190613799565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b2919061392b565b6119de565b005b3480156108c557600080fd5b506108e060048036038101906108db919061383e565b611ace565b005b3480156108ee57600080fd5b506109096004803603810190610904919061383e565b611be6565b005b34801561091757600080fd5b50610932600480360381019061092d919061386b565b611cb3565b005b34801561094057600080fd5b5061095b6004803603810190610956919061397e565b611daa565b005b34801561096957600080fd5b50610984600480360381019061097f919061397e565b611e58565b005b34801561099257600080fd5b5061099b611f06565b6040516109a9929190613898565b60405180910390f35b3480156109be57600080fd5b506109c7611f18565b6040516109d49190613a1d565b60405180910390f35b3480156109e957600080fd5b506109f2611f3e565b6040516109ff9190613532565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a919061386b565b611f51565b604051610a3c9190613532565b60405180910390f35b348015610a5157600080fd5b50610a5a611f71565b604051610a679190613532565b60405180910390f35b610a78611f84565b73ffffffffffffffffffffffffffffffffffffffff16610a9661161b565b73ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae390613a84565b60405180910390fd5b600760169054906101000a900460ff1615610b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3390613af0565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b606060038054610b8a90613b3f565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb690613b3f565b8015610c035780601f10610bd857610100808354040283529160200191610c03565b820191906000526020600020905b815481529060010190602001808311610be657829003601f168201915b5050505050905090565b6000610c21610c1a611f84565b8484611f8c565b6001905092915050565b610c33611f84565b73ffffffffffffffffffffffffffffffffffffffff16610c5161161b565b73ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90613a84565b60405180910390fd5b60005b8251811015610d37578160146000858481518110610ccb57610cca613b70565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d2f90613bce565b915050610caa565b505050565b610d44611f84565b73ffffffffffffffffffffffffffffffffffffffff16610d6261161b565b73ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90613a84565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b610ddd611f84565b73ffffffffffffffffffffffffffffffffffffffff16610dfb61161b565b73ffffffffffffffffffffffffffffffffffffffff1614610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890613a84565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b6000600254905090565b6000610ec9848484612155565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f14611f84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8b90613c88565b60405180910390fd5b610fb185610fa0611f84565b8584610fac9190613ca8565b611f8c565b60019150509392505050565b60095481565b6000610fcf6000611283565b610fda61dead611283565b610fe2610eb2565b610fec9190613ca8565b610ff69190613ca8565b905090565b60006012905090565b61100c611f84565b73ffffffffffffffffffffffffffffffffffffffff1661102a61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790613a84565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061117d6110e8611f84565b8484600160006110f6611f84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111789190613cdc565b611f8c565b6001905092915050565b61118f611f84565b73ffffffffffffffffffffffffffffffffffffffff166111ad61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613a84565b60405180910390fd5b620186a0811115611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090613d82565b60405180910390fd5b611251610ffb565b600a61125d9190613ed5565b816112689190613f20565b60088190555050565b600e5481565b600c5481565b600d5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112d3611f84565b73ffffffffffffffffffffffffffffffffffffffff166112f161161b565b73ffffffffffffffffffffffffffffffffffffffff1614611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90613a84565b60405180910390fd5b6113516000612a6b565b565b60108060000154908060010154905082565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611393611f84565b73ffffffffffffffffffffffffffffffffffffffff166113b161161b565b73ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613a84565b60405180910390fd5b60005b825181101561149757816015600085848151811061142b5761142a613b70565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061148f90613bce565b91505061140a565b505050565b61dead81565b600081565b6114af611f84565b73ffffffffffffffffffffffffffffffffffffffff166114cd61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613a84565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890613fd4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115b561161b565b836040518363ffffffff1660e01b81526004016115d3929190613ff4565b6020604051808303816000875af11580156115f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116169190614032565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461165490613b3f565b80601f016020809104026020016040519081016040528092919081815260200182805461168090613b3f565b80156116cd5780601f106116a2576101008083540402835291602001916116cd565b820191906000526020600020905b8154815290600101906020018083116116b057829003601f168201915b5050505050905090565b600080600160006116e6611f84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a906140d1565b60405180910390fd5b6117c06117ae611f84565b8585846117bb9190613ca8565b611f8c565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117fe338484612155565b6001905092915050565b611810611f84565b73ffffffffffffffffffffffffffffffffffffffff1661182e61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90614163565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119e6611f84565b73ffffffffffffffffffffffffffffffffffffffff16611a0461161b565b73ffffffffffffffffffffffffffffffffffffffff1614611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190613a84565b60405180910390fd5b611a62610ffb565b600a611a6e9190613ed5565b83611a799190613f20565b600d81905550611a87610ffb565b600a611a939190613ed5565b82611a9e9190613f20565b600e81905550611aac610ffb565b600a611ab89190613ed5565b81611ac39190613f20565b600c81905550505050565b611ad6611f84565b73ffffffffffffffffffffffffffffffffffffffff16611af461161b565b73ffffffffffffffffffffffffffffffffffffffff1614611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613a84565b60405180910390fd5b600760169054906101000a900460ff16611b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b90906141f5565b60405180910390fd5b60058110611bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd390614287565b60405180910390fd5b80600a8190555050565b611bee611f84565b73ffffffffffffffffffffffffffffffffffffffff16611c0c61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990613a84565b60405180910390fd5b611c6a61161b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611caf573d6000803e3d6000fd5b5050565b611cbb611f84565b73ffffffffffffffffffffffffffffffffffffffff16611cd961161b565b73ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2690613a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9590614319565b60405180910390fd5b611da781612a6b565b50565b611db2611f84565b73ffffffffffffffffffffffffffffffffffffffff16611dd061161b565b73ffffffffffffffffffffffffffffffffffffffff1614611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1d90613a84565b60405180910390fd5b604051806040016040528083815260200182815250601260008201518160000155602082015181600101559050505050565b611e60611f84565b73ffffffffffffffffffffffffffffffffffffffff16611e7e61161b565b73ffffffffffffffffffffffffffffffffffffffff1614611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb90613a84565b60405180910390fd5b604051806040016040528083815260200182815250601060008201518160000155602082015181600101559050505050565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b60156020528060005260406000206000915054906101000a900460ff1681565b600760169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff2906143ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361206a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120619061443d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121489190613799565b60405180910390a3505050565b60008111612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f906144cf565b60405180910390fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561223c5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61227b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122729061453b565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561231f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237457600760169054906101000a900460ff16612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236a906145a7565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561241b5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124345750600760149054906101000a900460ff16155b156124d757600d5481111561247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247590614613565b60405180910390fd5b600c548161248b84611283565b6124959190613cdc565b11156124d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cd9061467f565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561257f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125d55750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125ee5750600760149054906101000a900460ff16155b156126e757600e54811115612638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262f906146eb565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126e657600c548161269a84611283565b6126a49190613cdc565b11156126e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126dc9061467f565b60405180910390fd5b5b5b60008060006126f4613363565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561279a5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127b45750600a546009546127b19190613cdc565b43105b9050600760149054906101000a900460ff168061281a5750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061286e5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561287c576000925061297b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156128d7575080155b1561291f576012600001546012600101546128f29190613cdc565b9450849350601260405180604001604052908160008201548152602001600182015481525050915061297a565b806129675760106000015460106001015461293a9190613cdc565b94508493506010604051806040016040529081600082015481526020016001820154815250509150612979565b801561297857600b549450600b5493505b5b5b5b606484876129899190613f20565b612993919061473a565b9250600760159054906101000a900460ff1680156129ff5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612a0f57612a0e8583612b31565b5b612a2588888589612a209190613ca8565b612cd5565b6000831115612a61576000851115612a6057600060648688612a479190613f20565b612a51919061473a565b9050612a5e893083612cd5565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612cd1576001600760146101000a81548160ff0219169083151502179055506000820315612cb5576000612b7430611283565b90506008548110612cb35760016008541115612b905760085490505b6000600284612b9f9190613f20565b9050600081846020015184612bb49190613f20565b612bbe919061473a565b905060008184612bce9190613ca8565b90506000479050612bde82612f47565b60008147612bec9190613ca8565b90506000876020015186612c009190613ca8565b82612c0b919061473a565b90506000886020015182612c1f9190613f20565b90506000811115612c3557612c34868261318a565b5b60008960000151600284612c499190613f20565b612c539190613f20565b90506000811115612caa57612ca981600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661326f90919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b906147dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612daa9061486f565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3090614901565b60405180910390fd5b8181612e459190613ca8565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ed59190613cdc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f399190613799565b60405180910390a350505050565b6000600267ffffffffffffffff811115612f6457612f63613552565b5b604051908082528060200260200182016040528015612f925781602001602082028036833780820191505090505b5090503081600081518110612faa57612fa9613b70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130759190614936565b8160018151811061308957613088613b70565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506130f030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f8c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613154959493929190614a5c565b600060405180830381600087803b15801561316e57600080fd5b505af1158015613182573d6000803e3d6000fd5b505050505050565b6131b730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f8c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061320361161b565b426040518863ffffffff1660e01b815260040161322596959493929190614ab6565b60606040518083038185885af1158015613243573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132689190614b2c565b5050505050565b804710156132b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a990614bcb565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516132d890614c1c565b60006040518083038185875af1925050503d8060008114613315576040519150601f19603f3d011682016040523d82523d6000602084013e61331a565b606091505b505090508061335e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335590614ca3565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b838110156133b757808201518184015260208101905061339c565b60008484015250505050565b6000601f19601f8301169050919050565b60006133df8261337d565b6133e98185613388565b93506133f9818560208601613399565b613402816133c3565b840191505092915050565b6000602082019050818103600083015261342781846133d4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061346e82613443565b9050919050565b61347e81613463565b811461348957600080fd5b50565b60008135905061349b81613475565b92915050565b6000819050919050565b6134b4816134a1565b81146134bf57600080fd5b50565b6000813590506134d1816134ab565b92915050565b600080604083850312156134ee576134ed613439565b5b60006134fc8582860161348c565b925050602061350d858286016134c2565b9150509250929050565b60008115159050919050565b61352c81613517565b82525050565b60006020820190506135476000830184613523565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61358a826133c3565b810181811067ffffffffffffffff821117156135a9576135a8613552565b5b80604052505050565b60006135bc61342f565b90506135c88282613581565b919050565b600067ffffffffffffffff8211156135e8576135e7613552565b5b602082029050602081019050919050565b600080fd5b600061361161360c846135cd565b6135b2565b90508083825260208201905060208402830185811115613634576136336135f9565b5b835b8181101561365d5780613649888261348c565b845260208401935050602081019050613636565b5050509392505050565b600082601f83011261367c5761367b61354d565b5b813561368c8482602086016135fe565b91505092915050565b61369e81613517565b81146136a957600080fd5b50565b6000813590506136bb81613695565b92915050565b600080604083850312156136d8576136d7613439565b5b600083013567ffffffffffffffff8111156136f6576136f561343e565b5b61370285828601613667565b9250506020613713858286016136ac565b9150509250929050565b60006020828403121561373357613732613439565b5b6000613741848285016136ac565b91505092915050565b6000806040838503121561376157613760613439565b5b600061376f8582860161348c565b9250506020613780858286016136ac565b9150509250929050565b613793816134a1565b82525050565b60006020820190506137ae600083018461378a565b92915050565b6000806000606084860312156137cd576137cc613439565b5b60006137db8682870161348c565b93505060206137ec8682870161348c565b92505060406137fd868287016134c2565b9150509250925092565b600060ff82169050919050565b61381d81613807565b82525050565b60006020820190506138386000830184613814565b92915050565b60006020828403121561385457613853613439565b5b6000613862848285016134c2565b91505092915050565b60006020828403121561388157613880613439565b5b600061388f8482850161348c565b91505092915050565b60006040820190506138ad600083018561378a565b6138ba602083018461378a565b9392505050565b6138ca81613463565b82525050565b60006020820190506138e560008301846138c1565b92915050565b6000806040838503121561390257613901613439565b5b60006139108582860161348c565b92505060206139218582860161348c565b9150509250929050565b60008060006060848603121561394457613943613439565b5b6000613952868287016134c2565b9350506020613963868287016134c2565b9250506040613974868287016134c2565b9150509250925092565b6000806040838503121561399557613994613439565b5b60006139a3858286016134c2565b92505060206139b4858286016134c2565b9150509250929050565b6000819050919050565b60006139e36139de6139d984613443565b6139be565b613443565b9050919050565b60006139f5826139c8565b9050919050565b6000613a07826139ea565b9050919050565b613a17816139fc565b82525050565b6000602082019050613a326000830184613a0e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a6e602083613388565b9150613a7982613a38565b602082019050919050565b60006020820190508181036000830152613a9d81613a61565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613ada601883613388565b9150613ae582613aa4565b602082019050919050565b60006020820190508181036000830152613b0981613acd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b5757607f821691505b602082108103613b6a57613b69613b10565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bd9826134a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c0b57613c0a613b9f565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613c72602883613388565b9150613c7d82613c16565b604082019050919050565b60006020820190508181036000830152613ca181613c65565b9050919050565b6000613cb3826134a1565b9150613cbe836134a1565b9250828203905081811115613cd657613cd5613b9f565b5b92915050565b6000613ce7826134a1565b9150613cf2836134a1565b9250828201905080821115613d0a57613d09613b9f565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b6000613d6c603e83613388565b9150613d7782613d10565b604082019050919050565b60006020820190508181036000830152613d9b81613d5f565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613df957808604811115613dd557613dd4613b9f565b5b6001851615613de45780820291505b8081029050613df285613da2565b9450613db9565b94509492505050565b600082613e125760019050613ece565b81613e205760009050613ece565b8160018114613e365760028114613e4057613e6f565b6001915050613ece565b60ff841115613e5257613e51613b9f565b5b8360020a915084821115613e6957613e68613b9f565b5b50613ece565b5060208310610133831016604e8410600b8410161715613ea45782820a905083811115613e9f57613e9e613b9f565b5b613ece565b613eb18484846001613daf565b92509050818404811115613ec857613ec7613b9f565b5b81810290505b9392505050565b6000613ee0826134a1565b9150613eeb83613807565b9250613f187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613e02565b905092915050565b6000613f2b826134a1565b9150613f36836134a1565b9250828202613f44816134a1565b91508282048414831517613f5b57613f5a613b9f565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613fbe603683613388565b9150613fc982613f62565b604082019050919050565b60006020820190508181036000830152613fed81613fb1565b9050919050565b600060408201905061400960008301856138c1565b614016602083018461378a565b9392505050565b60008151905061402c81613695565b92915050565b60006020828403121561404857614047613439565b5b60006140568482850161401d565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140bb602583613388565b91506140c68261405f565b604082019050919050565b600060208201905081810360008301526140ea816140ae565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061414d602283613388565b9150614158826140f1565b604082019050919050565b6000602082019050818103600083015261417c81614140565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b60006141df602583613388565b91506141ea82614183565b604082019050919050565b6000602082019050818103600083015261420e816141d2565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b6000614271602583613388565b915061427c82614215565b604082019050919050565b600060208201905081810360008301526142a081614264565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614303602683613388565b915061430e826142a7565b604082019050919050565b60006020820190508181036000830152614332816142f6565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614395602483613388565b91506143a082614339565b604082019050919050565b600060208201905081810360008301526143c481614388565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614427602283613388565b9150614432826143cb565b604082019050919050565b600060208201905081810360008301526144568161441a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144b9602983613388565b91506144c48261445d565b604082019050919050565b600060208201905081810360008301526144e8816144ac565b9050919050565b7f4279652042796520426f74730000000000000000000000000000000000000000600082015250565b6000614525600c83613388565b9150614530826144ef565b602082019050919050565b6000602082019050818103600083015261455481614518565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614591601383613388565b915061459c8261455b565b602082019050919050565b600060208201905081810360008301526145c081614584565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b60006145fd601d83613388565b9150614608826145c7565b602082019050919050565b6000602082019050818103600083015261462c816145f0565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000614669602083613388565b915061467482614633565b602082019050919050565b600060208201905081810360008301526146988161465c565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b60006146d5601e83613388565b91506146e08261469f565b602082019050919050565b60006020820190508181036000830152614704816146c8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614745826134a1565b9150614750836134a1565b9250826147605761475f61470b565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147c7602583613388565b91506147d28261476b565b604082019050919050565b600060208201905081810360008301526147f6816147ba565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614859602383613388565b9150614864826147fd565b604082019050919050565b600060208201905081810360008301526148888161484c565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148eb602683613388565b91506148f68261488f565b604082019050919050565b6000602082019050818103600083015261491a816148de565b9050919050565b60008151905061493081613475565b92915050565b60006020828403121561494c5761494b613439565b5b600061495a84828501614921565b91505092915050565b6000819050919050565b600061498861498361497e84614963565b6139be565b6134a1565b9050919050565b6149988161496d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6149d381613463565b82525050565b60006149e583836149ca565b60208301905092915050565b6000602082019050919050565b6000614a098261499e565b614a1381856149a9565b9350614a1e836149ba565b8060005b83811015614a4f578151614a3688826149d9565b9750614a41836149f1565b925050600181019050614a22565b5085935050505092915050565b600060a082019050614a71600083018861378a565b614a7e602083018761498f565b8181036040830152614a9081866149fe565b9050614a9f60608301856138c1565b614aac608083018461378a565b9695505050505050565b600060c082019050614acb60008301896138c1565b614ad8602083018861378a565b614ae5604083018761498f565b614af2606083018661498f565b614aff60808301856138c1565b614b0c60a083018461378a565b979650505050505050565b600081519050614b26816134ab565b92915050565b600080600060608486031215614b4557614b44613439565b5b6000614b5386828701614b17565b9350506020614b6486828701614b17565b9250506040614b7586828701614b17565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614bb5601d83613388565b9150614bc082614b7f565b602082019050919050565b60006020820190508181036000830152614be481614ba8565b9050919050565b600081905092915050565b50565b6000614c06600083614beb565b9150614c1182614bf6565b600082019050919050565b6000614c2782614bf9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614c8d603a83613388565b9150614c9882614c31565b604082019050919050565b60006020820190508181036000830152614cbc81614c80565b905091905056fea2646970667358221220296fecf6ac332a95e513c46a949ca4daf4ce5f4fce180ef99cbc8d295d382d5964736f6c63430008110033

Deployed Bytecode Sourcemap

11920:11596:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21318:212;;;;;;;;;;;;;:::i;:::-;;2379:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13793:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22122:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20504:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23395:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12182:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3499:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13964:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12248:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22332:151;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3341:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21994:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14420:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20664:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12464:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12355:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12411:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3670:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10583:94;;;;;;;;;;;;;:::i;:::-;;12863:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12520:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23180:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12602:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12688;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22879:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10360:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14676:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12032:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15094:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21791:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12949:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4289:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22491:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21538:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22757:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10685:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20955:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21139:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12903:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12004:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12098:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12997:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12143:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21318:212;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21380:10:::1;;;;;;;;;;;21379:11;21371:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;21443:4;21430:10;;:17;;;;;;;;;;;;;;;;;;21479:4;21458:18;;:25;;;;;;;;;;;;;;;;;;21510:12;21494:13;:28;;;;21318:212::o:0;2379:100::-;2433:13;2466:5;2459:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:100;:::o;13793:161::-;13868:4;13885:39;13894:12;:10;:12::i;:::-;13908:7;13917:6;13885:8;:39::i;:::-;13942:4;13935:11;;13793:161;;;;:::o;22122:202::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22219:9:::1;22214:103;22238:8;:15;22234:1;:19;22214:103;;;22300:5;22275:9;:22;22285:8;22294:1;22285:11;;;;;;;;:::i;:::-;;;;;;;;22275:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;22255:3;;;;;:::i;:::-;;;;22214:103;;;;22122:202:::0;;:::o;20504:152::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20643:5:::1;20622:18;;:26;;;;;;;;;;;;;;;;;;20504:152:::0;:::o;23395:118::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23500:5:::1;23475:13;:22;23489:7;23475:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;23395:118:::0;;:::o;12182:57::-;;;;:::o;3499:108::-;3560:7;3587:12;;3580:19;;3499:108;:::o;13964:448::-;14096:4;14113:36;14123:6;14131:9;14142:6;14113:9;:36::i;:::-;14162:24;14189:11;:19;14201:6;14189:19;;;;;;;;;;;;;;;:33;14209:12;:10;:12::i;:::-;14189:33;;;;;;;;;;;;;;;;14162:60;;14261:6;14241:16;:26;;14233:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14323:57;14332:6;14340:12;:10;:12::i;:::-;14373:6;14354:16;:25;;;;:::i;:::-;14323:8;:57::i;:::-;14400:4;14393:11;;;13964:448;;;;;:::o;12248:28::-;;;;:::o;22332:151::-;22385:7;22453:21;12725:42;22453:9;:21::i;:::-;22429;12639:42;22429:9;:21::i;:::-;22413:13;:11;:13::i;:::-;:37;;;;:::i;:::-;:61;;;;:::i;:::-;22405:70;;22332:151;:::o;3341:93::-;3399:5;3424:2;3417:9;;3341:93;:::o;21994:120::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22101:5:::1;22079:9;:19;22089:8;22079:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21994:120:::0;;:::o;14420:248::-;14536:4;14558:80;14567:12;:10;:12::i;:::-;14581:7;14627:10;14590:11;:25;14602:12;:10;:12::i;:::-;14590:25;;;;;;;;;;;;;;;:34;14616:7;14590:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14558:8;:80::i;:::-;14656:4;14649:11;;14420:248;;;;:::o;20664:283::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20802:6:::1;20788:10;:20;;20780:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20929:10;:8;:10::i;:::-;20925:2;:14;;;;:::i;:::-;20912:10;:27;;;;:::i;:::-;20886:23;:53;;;;20664:283:::0;:::o;12464:47::-;;;;:::o;12355:49::-;;;;:::o;12411:46::-;;;;:::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;12863:33::-;;;;;;;;;;;;;;:::o;12520:75::-;;;;;;;;;;;;;:::o;23180:206::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23278:9:::1;23274:105;23297:8;:15;23293:1;:19;23274:105;;;23362:5;23333:13;:26;23347:8;23356:1;23347:11;;;;;;;;:::i;:::-;;;;;;;;23333:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;23314:3;;;;;:::i;:::-;;;;23274:105;;;;23180:206:::0;;:::o;12602:79::-;12639:42;12602:79;:::o;12688:::-;12725:42;12688:79;:::o;22879:238::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22992:4:::1;22972:25;;:8;:25;;::::0;22964:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23074:8;23067:25;;;23093:7;:5;:7::i;:::-;23102:6;23067:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22879:238:::0;;:::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;14676:410::-;14797:4;14819:24;14846:11;:25;14858:12;:10;:12::i;:::-;14846:25;;;;;;;;;;;;;;;:34;14872:7;14846:34;;;;;;;;;;;;;;;;14819:61;;14919:15;14899:16;:35;;14891:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14987:67;14996:12;:10;:12::i;:::-;15010:7;15038:15;15019:16;:34;;;;:::i;:::-;14987:8;:67::i;:::-;15074:4;15067:11;;;14676:410;;;;:::o;12032:19::-;;;;;;;;;;;;;:::o;15094:165::-;15172:4;15189:40;15199:10;15211:9;15222:6;15189:9;:40::i;:::-;15247:4;15240:11;;15094:165;;;;:::o;21791:195::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21900:1:::1;21879:23;;:9;:23;;::::0;21871:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21969:9;21951:15;;:27;;;;;;;;;;;;;;;;;;21791:195:::0;:::o;12949:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4289:201::-;4423:7;4455:11;:18;4467:5;4455:18;;;;;;;;;;;;;;;:27;4474:7;4455:27;;;;;;;;;;;;;;;;4448:34;;4289:201;;;;:::o;22491:258::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22626:10:::1;:8;:10::i;:::-;22622:2;:14;;;;:::i;:::-;22613:6;:23;;;;:::i;:::-;22599:11;:37;;;;22676:10;:8;:10::i;:::-;22672:2;:14;;;;:::i;:::-;22662:7;:24;;;;:::i;:::-;22647:12;:39;;;;22730:10;:8;:10::i;:::-;22726:2;:14;;;;:::i;:::-;22714:9;:26;;;;:::i;:::-;22697:14;:43;;;;22491:258:::0;;;:::o;21538:245::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21619:10:::1;;;;;;;;;;;21611:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21702:1;21690:9;:13;21682:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21766:9;21755:8;:20;;;;21538:245:::0;:::o;22757:114::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22835:7:::1;:5;:7::i;:::-;22827:25;;:36;22853:9;22827:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22757:114:::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;20955:176::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21084:29:::1;;;;;;;;21090:10;21084:29;;;;21102:10;21084:29;;::::0;21072:9:::1;:41;;;;;;;;;;;;;;;;;;;20955:176:::0;;:::o;21139:171::-;10506:12;:10;:12::i;:::-;10495:23;;:7;:5;:7::i;:::-;:23;;;10487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21263:29:::1;;;;;;;;21269:10;21263:29;;;;21281:10;21263:29;;::::0;21255:5:::1;:37;;;;;;;;;;;;;;;;;;;21139:171:::0;;:::o;12903:37::-;;;;;;;;;;;;;;:::o;12004:21::-;;;;;;;;;;;;;:::o;12098:38::-;;;;;;;;;;;;;:::o;12997:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;12143: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;15267:2735::-;15417:1;15408:6;:10;15400:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15484:13;:21;15498:6;15484:21;;;;;;;;;;;;;;;;;;;;;;;;;15483:22;:51;;;;;15510:13;:24;15524:9;15510:24;;;;;;;;;;;;;;;;;;;;;;;;;15509:25;15483:51;15475:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;15569:9;:17;15579:6;15569:17;;;;;;;;;;;;;;;;;;;;;;;;;15568:18;:43;;;;;15591:9;:20;15601:9;15591:20;;;;;;;;;;;;;;;;;;;;;;;;;15590:21;15568:43;15564:118;;;15636:10;;;;;;;;;;;15628:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15564:118;15708:4;;;;;;;;;;;15698:14;;:6;:14;;;:39;;;;;15717:9;:20;15727:9;15717:20;;;;;;;;;;;;;;;;;;;;;;;;;15716:21;15698:39;:54;;;;;15742:10;;;;;;;;;;;15741:11;15698:54;15694:306;;;15787:11;;15777:6;:21;;15769:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15906:14;;15896:6;15873:20;15883:9;15873;:20::i;:::-;:29;;;;:::i;:::-;:47;;15847:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;15694:306;16040:4;;;;;;;;;;;16030:14;;:6;:14;;;;:39;;;;;16049:9;:20;16059:9;16049:20;;;;;;;;;;;;;;;;;;;;;;;;;16048:21;16030:39;:61;;;;;16074:9;:17;16084:6;16074:17;;;;;;;;;;;;;;;;;;;;;;;;;16073:18;16030:61;:76;;;;;16096:10;;;;;;;;;;;16095:11;16030:76;16012:423;;;16151:12;;16141:6;:22;;16133:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16230:4;;;;;;;;;;;16217:17;;:9;:17;;;16213:211;;16318:14;;16308:6;16285:20;16295:9;16285;:20::i;:::-;:29;;;;:::i;:::-;:47;;16255:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;16213:211;16012:423;16447:15;16473:14;16498:11;16520:25;;:::i;:::-;16558:17;16579:9;:17;16589:6;16579:17;;;;;;;;;;;;;;;;;;;;;;;;;16578:18;:56;;;;;16614:9;:20;16624:9;16614:20;;;;;;;;;;;;;;;;;;;;;;;;;16613:21;16578:56;:112;;;;;16682:8;;16666:13;;:24;;;;:::i;:::-;16651:12;:39;16578:112;16558:132;;16778:10;;;;;;;;;;;:31;;;;16792:9;:17;16802:6;16792:17;;;;;;;;;;;;;;;;;;;;;;;;;16778:31;:55;;;;16813:9;:20;16823:9;16813:20;;;;;;;;;;;;;;;;;;;;;;;;;16778:55;16774:648;;;16854:1;16848:7;;16774:648;;;16919:4;;;;;;;;;;;16906:17;;:9;:17;;;:34;;;;;16928:12;16927:13;16906:34;16902:520;;;17023:9;:19;;;16984:9;:19;;;:58;;;;:::i;:::-;16957:85;;17066:7;17057:16;;17103:9;17088:24;;;;;;;;;;;;;;;;;;;;;;;;;;;16902:520;;;17135:12;17130:292;;17226:5;:15;;;17191:5;:15;;;:50;;;;:::i;:::-;17164:77;;17265:7;17256:16;;17302:5;17287:20;;;;;;;;;;;;;;;;;;;;;;;;;;;17130:292;;;17329:12;17325:97;;;17368:9;;17358:19;;17401:9;;17392:18;;17325:97;17130:292;16902:520;16774:648;17460:3;17450:6;17441;:15;;;;:::i;:::-;17440:23;;;;:::i;:::-;17434:29;;17577:18;;;;;;;;;;;:36;;;;;17609:4;;;;;;;;;;;17599:14;;:6;:14;;;;17577:36;17573:72;;;17615:30;17623:7;17632:12;17615:7;:30::i;:::-;17573:72;17687:48;17703:6;17711:9;17731:3;17722:6;:12;;;;:::i;:::-;17687:15;:48::i;:::-;17756:1;17750:3;:7;17746:249;;;17832:1;17822:7;:11;17818:164;;;17854:17;17895:3;17884:7;17875:6;:16;;;;:::i;:::-;17874:24;;;;:::i;:::-;17854:44;;17917:49;17933:6;17949:4;17956:9;17917:15;:49::i;:::-;17835:147;17818:164;17746:249;15389:2613;;;;;15267:2735;;;:::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;18010:1437::-;13090:10;;;;;;;;;;;13085:110;;13130:4;13117:10;;:17;;;;;;;;;;;;;;;;;;18115:1:::1;18104:7;:12:::0;18101:49;18132:7:::1;18101:49;18162:23;18188:24;18206:4;18188:9;:24::i;:::-;18162:50;;18246:23;;18227:15;:42;18223:1217;;18316:1;18290:23;;:27;18286:109;;;18356:23;;18338:41;;18286:109;18466:19;18498:1;18488:7;:11;;;;:::i;:::-;18466:33;;18514:32;18608:11;18568:9;:19;;;18550:15;:37;;;;:::i;:::-;18549:70;;;;:::i;:::-;18514:105;;18634:14;18669:24;18651:15;:42;;;;:::i;:::-;18634:59;;18710:22;18735:21;18710:46;;18773:24;18790:6;18773:16;:24::i;:::-;18814:20;18861:14;18837:21;:38;;;;:::i;:::-;18814:61;;18890:19;18942:9;:19;;;18928:11;:33;;;;:::i;:::-;18912:12;:50;;;;:::i;:::-;18890:72;;18977:29;19023:9;:19;;;19009:11;:33;;;;:::i;:::-;18977:65;;19087:1;19063:21;:25;19059:172;;;19154:61;19167:24;19193:21;19154:12;:61::i;:::-;19059:172;19247:20;19288:9;:19;;;19284:1;19270:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19247:60;;19341:1;19326:12;:16;19322:105;;;19363:48;19398:12;19371:15;;;;;;;;;;;19363:34;;;;:48;;;;:::i;:::-;19322:105;18271:1169;;;;;;;;18223:1217;18088:1359;13149:1;13178:5:::0;13165:10;;:18;;;;;;;;;;;;;;;;;;13085:110;18010: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;19455:536::-;19583:21;19621:1;19607:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19583:40;;19652:4;19634;19639:1;19634:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19678:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19668:4;19673:1;19668:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19704:53;19721:4;19736:6;;;;;;;;;;;19745:11;19704:8;:53::i;:::-;19796:6;;;;;;;;;;;:57;;;19868:11;19894:1;19910:4;19937;19957:15;19796:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19510:481;19455:536;:::o;19999:497::-;20147:53;20164:4;20179:6;;;;;;;;;;;20188:11;20147:8;:53::i;:::-;20243:6;;;;;;;;;;;:22;;;20274:9;20308:4;20328:11;20354:1;20397;20440:7;:5;:7::i;:::-;20462:15;20243:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19999: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:468::-;7082:6;7090;7139:2;7127:9;7118:7;7114:23;7110:32;7107:119;;;7145:79;;:::i;:::-;7107:119;7265:1;7290:53;7335:7;7326:6;7315:9;7311:22;7290:53;:::i;:::-;7280:63;;7236:117;7392:2;7418:50;7460:7;7451:6;7440:9;7436:22;7418:50;:::i;:::-;7408:60;;7363:115;7017:468;;;;;:::o;7491:118::-;7578:24;7596:5;7578:24;:::i;:::-;7573:3;7566:37;7491:118;;:::o;7615:222::-;7708:4;7746:2;7735:9;7731:18;7723:26;;7759:71;7827:1;7816:9;7812:17;7803:6;7759:71;:::i;:::-;7615:222;;;;:::o;7843:619::-;7920:6;7928;7936;7985:2;7973:9;7964:7;7960:23;7956:32;7953:119;;;7991:79;;:::i;:::-;7953:119;8111:1;8136:53;8181:7;8172:6;8161:9;8157:22;8136:53;:::i;:::-;8126:63;;8082:117;8238:2;8264:53;8309:7;8300:6;8289:9;8285:22;8264:53;:::i;:::-;8254:63;;8209:118;8366:2;8392:53;8437:7;8428:6;8417:9;8413:22;8392:53;:::i;:::-;8382:63;;8337:118;7843:619;;;;;:::o;8468:86::-;8503:7;8543:4;8536:5;8532:16;8521:27;;8468:86;;;:::o;8560:112::-;8643:22;8659:5;8643:22;:::i;:::-;8638:3;8631:35;8560:112;;:::o;8678:214::-;8767:4;8805:2;8794:9;8790:18;8782:26;;8818:67;8882:1;8871:9;8867:17;8858:6;8818:67;:::i;:::-;8678:214;;;;:::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:241::-;21209:34;21205:1;21197:6;21193:14;21186:58;21278:24;21273:2;21265:6;21261:15;21254:49;21069:241;:::o;21316:366::-;21458:3;21479:67;21543:2;21538:3;21479:67;:::i;:::-;21472:74;;21555:93;21644:3;21555:93;:::i;:::-;21673:2;21668:3;21664:12;21657:19;;21316:366;;;:::o;21688:419::-;21854:4;21892:2;21881:9;21877:18;21869:26;;21941:9;21935:4;21931:20;21927:1;21916:9;21912:17;21905:47;21969:131;22095:4;21969:131;:::i;:::-;21961:139;;21688:419;;;:::o;22113:332::-;22234:4;22272:2;22261:9;22257:18;22249:26;;22285:71;22353:1;22342:9;22338:17;22329:6;22285:71;:::i;:::-;22366:72;22434:2;22423:9;22419:18;22410:6;22366:72;:::i;:::-;22113:332;;;;;:::o;22451:137::-;22505:5;22536:6;22530:13;22521:22;;22552:30;22576:5;22552:30;:::i;:::-;22451:137;;;;:::o;22594:345::-;22661:6;22710:2;22698:9;22689:7;22685:23;22681:32;22678:119;;;22716:79;;:::i;:::-;22678:119;22836:1;22861:61;22914:7;22905:6;22894:9;22890:22;22861:61;:::i;:::-;22851:71;;22807:125;22594:345;;;;:::o;22945:224::-;23085:34;23081:1;23073:6;23069:14;23062:58;23154:7;23149:2;23141:6;23137:15;23130:32;22945:224;:::o;23175:366::-;23317:3;23338:67;23402:2;23397:3;23338:67;:::i;:::-;23331:74;;23414:93;23503:3;23414:93;:::i;:::-;23532:2;23527:3;23523:12;23516:19;;23175:366;;;:::o;23547:419::-;23713:4;23751:2;23740:9;23736:18;23728:26;;23800:9;23794:4;23790:20;23786:1;23775:9;23771:17;23764:47;23828:131;23954:4;23828:131;:::i;:::-;23820:139;;23547:419;;;:::o;23972:221::-;24112:34;24108:1;24100:6;24096:14;24089:58;24181:4;24176:2;24168:6;24164:15;24157:29;23972:221;:::o;24199:366::-;24341:3;24362:67;24426:2;24421:3;24362:67;:::i;:::-;24355:74;;24438:93;24527:3;24438:93;:::i;:::-;24556:2;24551:3;24547:12;24540:19;;24199:366;;;:::o;24571:419::-;24737:4;24775:2;24764:9;24760:18;24752:26;;24824:9;24818:4;24814:20;24810:1;24799:9;24795:17;24788:47;24852:131;24978:4;24852:131;:::i;:::-;24844:139;;24571:419;;;:::o;24996:224::-;25136:34;25132:1;25124:6;25120:14;25113:58;25205:7;25200:2;25192:6;25188:15;25181:32;24996:224;:::o;25226:366::-;25368:3;25389:67;25453:2;25448:3;25389:67;:::i;:::-;25382:74;;25465:93;25554:3;25465:93;:::i;:::-;25583:2;25578:3;25574:12;25567:19;;25226:366;;;:::o;25598:419::-;25764:4;25802:2;25791:9;25787:18;25779:26;;25851:9;25845:4;25841:20;25837:1;25826:9;25822:17;25815:47;25879:131;26005:4;25879:131;:::i;:::-;25871:139;;25598:419;;;:::o;26023:224::-;26163:34;26159:1;26151:6;26147:14;26140:58;26232:7;26227:2;26219:6;26215:15;26208:32;26023:224;:::o;26253:366::-;26395:3;26416:67;26480:2;26475:3;26416:67;:::i;:::-;26409:74;;26492:93;26581:3;26492:93;:::i;:::-;26610:2;26605:3;26601:12;26594:19;;26253:366;;;:::o;26625:419::-;26791:4;26829:2;26818:9;26814:18;26806:26;;26878:9;26872:4;26868:20;26864:1;26853:9;26849:17;26842:47;26906:131;27032:4;26906:131;:::i;:::-;26898:139;;26625:419;;;:::o;27050:225::-;27190:34;27186:1;27178:6;27174:14;27167:58;27259:8;27254:2;27246:6;27242:15;27235:33;27050:225;:::o;27281:366::-;27423:3;27444:67;27508:2;27503:3;27444:67;:::i;:::-;27437:74;;27520:93;27609:3;27520:93;:::i;:::-;27638:2;27633:3;27629:12;27622:19;;27281:366;;;:::o;27653:419::-;27819:4;27857:2;27846:9;27842:18;27834:26;;27906:9;27900:4;27896:20;27892:1;27881:9;27877:17;27870:47;27934:131;28060:4;27934:131;:::i;:::-;27926:139;;27653:419;;;:::o;28078:223::-;28218:34;28214:1;28206:6;28202:14;28195:58;28287:6;28282:2;28274:6;28270:15;28263:31;28078:223;:::o;28307:366::-;28449:3;28470:67;28534:2;28529:3;28470:67;:::i;:::-;28463:74;;28546:93;28635:3;28546:93;:::i;:::-;28664:2;28659:3;28655:12;28648:19;;28307:366;;;:::o;28679:419::-;28845:4;28883:2;28872:9;28868:18;28860:26;;28932:9;28926:4;28922:20;28918:1;28907:9;28903:17;28896:47;28960:131;29086:4;28960:131;:::i;:::-;28952:139;;28679:419;;;:::o;29104:221::-;29244:34;29240:1;29232:6;29228:14;29221:58;29313:4;29308:2;29300:6;29296:15;29289:29;29104:221;:::o;29331:366::-;29473:3;29494:67;29558:2;29553:3;29494:67;:::i;:::-;29487:74;;29570:93;29659:3;29570:93;:::i;:::-;29688:2;29683:3;29679:12;29672:19;;29331:366;;;:::o;29703:419::-;29869:4;29907:2;29896:9;29892:18;29884:26;;29956:9;29950:4;29946:20;29942:1;29931:9;29927:17;29920:47;29984:131;30110:4;29984:131;:::i;:::-;29976:139;;29703:419;;;:::o;30128:228::-;30268:34;30264:1;30256:6;30252:14;30245:58;30337:11;30332:2;30324:6;30320:15;30313:36;30128:228;:::o;30362:366::-;30504:3;30525:67;30589:2;30584:3;30525:67;:::i;:::-;30518:74;;30601:93;30690:3;30601:93;:::i;:::-;30719:2;30714:3;30710:12;30703:19;;30362:366;;;:::o;30734:419::-;30900:4;30938:2;30927:9;30923:18;30915:26;;30987:9;30981:4;30977:20;30973:1;30962:9;30958:17;30951:47;31015:131;31141:4;31015:131;:::i;:::-;31007:139;;30734:419;;;:::o;31159:162::-;31299:14;31295:1;31287:6;31283:14;31276:38;31159:162;:::o;31327:366::-;31469:3;31490:67;31554:2;31549:3;31490:67;:::i;:::-;31483:74;;31566:93;31655:3;31566:93;:::i;:::-;31684:2;31679:3;31675:12;31668:19;;31327:366;;;:::o;31699:419::-;31865:4;31903:2;31892:9;31888:18;31880:26;;31952:9;31946:4;31942:20;31938:1;31927:9;31923:17;31916:47;31980:131;32106:4;31980:131;:::i;:::-;31972:139;;31699:419;;;:::o;32124:169::-;32264:21;32260:1;32252:6;32248:14;32241:45;32124:169;:::o;32299:366::-;32441:3;32462:67;32526:2;32521:3;32462:67;:::i;:::-;32455:74;;32538:93;32627:3;32538:93;:::i;:::-;32656:2;32651:3;32647:12;32640:19;;32299:366;;;:::o;32671:419::-;32837:4;32875:2;32864:9;32860:18;32852:26;;32924:9;32918:4;32914:20;32910:1;32899:9;32895:17;32888:47;32952:131;33078:4;32952:131;:::i;:::-;32944:139;;32671:419;;;:::o;33096:179::-;33236:31;33232:1;33224:6;33220:14;33213:55;33096:179;:::o;33281:366::-;33423:3;33444:67;33508:2;33503:3;33444:67;:::i;:::-;33437:74;;33520:93;33609:3;33520:93;:::i;:::-;33638:2;33633:3;33629:12;33622:19;;33281:366;;;:::o;33653:419::-;33819:4;33857:2;33846:9;33842:18;33834:26;;33906:9;33900:4;33896:20;33892:1;33881:9;33877:17;33870:47;33934:131;34060:4;33934:131;:::i;:::-;33926:139;;33653:419;;;:::o;34078:182::-;34218:34;34214:1;34206:6;34202:14;34195:58;34078:182;:::o;34266:366::-;34408:3;34429:67;34493:2;34488:3;34429:67;:::i;:::-;34422:74;;34505:93;34594:3;34505:93;:::i;:::-;34623:2;34618:3;34614:12;34607:19;;34266:366;;;:::o;34638:419::-;34804:4;34842:2;34831:9;34827:18;34819:26;;34891:9;34885:4;34881:20;34877:1;34866:9;34862:17;34855:47;34919:131;35045:4;34919:131;:::i;:::-;34911:139;;34638:419;;;:::o;35063:180::-;35203:32;35199:1;35191:6;35187:14;35180:56;35063:180;:::o;35249:366::-;35391:3;35412:67;35476:2;35471:3;35412:67;:::i;:::-;35405:74;;35488:93;35577:3;35488:93;:::i;:::-;35606:2;35601:3;35597:12;35590:19;;35249:366;;;:::o;35621:419::-;35787:4;35825:2;35814:9;35810:18;35802:26;;35874:9;35868:4;35864:20;35860:1;35849:9;35845:17;35838:47;35902:131;36028:4;35902:131;:::i;:::-;35894:139;;35621:419;;;:::o;36046:180::-;36094:77;36091:1;36084:88;36191:4;36188:1;36181:15;36215:4;36212:1;36205:15;36232:185;36272:1;36289:20;36307:1;36289:20;:::i;:::-;36284:25;;36323:20;36341:1;36323:20;:::i;:::-;36318:25;;36362:1;36352:35;;36367:18;;:::i;:::-;36352:35;36409:1;36406;36402:9;36397:14;;36232:185;;;;:::o;36423:224::-;36563:34;36559:1;36551:6;36547:14;36540:58;36632:7;36627:2;36619:6;36615:15;36608:32;36423:224;:::o;36653:366::-;36795:3;36816:67;36880:2;36875:3;36816:67;:::i;:::-;36809:74;;36892:93;36981:3;36892:93;:::i;:::-;37010:2;37005:3;37001:12;36994:19;;36653:366;;;:::o;37025:419::-;37191:4;37229:2;37218:9;37214:18;37206:26;;37278:9;37272:4;37268:20;37264:1;37253:9;37249:17;37242:47;37306:131;37432:4;37306:131;:::i;:::-;37298:139;;37025:419;;;:::o;37450:222::-;37590:34;37586:1;37578:6;37574:14;37567:58;37659:5;37654:2;37646:6;37642:15;37635:30;37450:222;:::o;37678:366::-;37820:3;37841:67;37905:2;37900:3;37841:67;:::i;:::-;37834:74;;37917:93;38006:3;37917:93;:::i;:::-;38035:2;38030:3;38026:12;38019:19;;37678:366;;;:::o;38050:419::-;38216:4;38254:2;38243:9;38239:18;38231:26;;38303:9;38297:4;38293:20;38289:1;38278:9;38274:17;38267:47;38331:131;38457:4;38331:131;:::i;:::-;38323:139;;38050:419;;;:::o;38475:225::-;38615:34;38611:1;38603:6;38599:14;38592:58;38684:8;38679:2;38671:6;38667:15;38660:33;38475:225;:::o;38706:366::-;38848:3;38869:67;38933:2;38928:3;38869:67;:::i;:::-;38862:74;;38945:93;39034:3;38945:93;:::i;:::-;39063:2;39058:3;39054:12;39047:19;;38706:366;;;:::o;39078:419::-;39244:4;39282:2;39271:9;39267:18;39259:26;;39331:9;39325:4;39321:20;39317:1;39306:9;39302:17;39295:47;39359:131;39485:4;39359:131;:::i;:::-;39351:139;;39078:419;;;:::o;39503:143::-;39560:5;39591:6;39585:13;39576:22;;39607:33;39634:5;39607:33;:::i;:::-;39503:143;;;;:::o;39652:351::-;39722:6;39771:2;39759:9;39750:7;39746:23;39742:32;39739:119;;;39777:79;;:::i;:::-;39739:119;39897:1;39922:64;39978:7;39969:6;39958:9;39954:22;39922:64;:::i;:::-;39912:74;;39868:128;39652:351;;;;:::o;40009:85::-;40054:7;40083:5;40072:16;;40009:85;;;:::o;40100:158::-;40158:9;40191:61;40209:42;40218:32;40244:5;40218:32;:::i;:::-;40209:42;:::i;:::-;40191:61;:::i;:::-;40178:74;;40100:158;;;:::o;40264:147::-;40359:45;40398:5;40359:45;:::i;:::-;40354:3;40347:58;40264:147;;:::o;40417:114::-;40484:6;40518:5;40512:12;40502:22;;40417:114;;;:::o;40537:184::-;40636:11;40670:6;40665:3;40658:19;40710:4;40705:3;40701:14;40686:29;;40537:184;;;;:::o;40727:132::-;40794:4;40817:3;40809:11;;40847:4;40842:3;40838:14;40830:22;;40727:132;;;:::o;40865:108::-;40942:24;40960:5;40942:24;:::i;:::-;40937:3;40930:37;40865:108;;:::o;40979:179::-;41048:10;41069:46;41111:3;41103:6;41069:46;:::i;:::-;41147:4;41142:3;41138:14;41124:28;;40979:179;;;;:::o;41164:113::-;41234:4;41266;41261:3;41257:14;41249:22;;41164:113;;;:::o;41313:732::-;41432:3;41461:54;41509:5;41461:54;:::i;:::-;41531:86;41610:6;41605:3;41531:86;:::i;:::-;41524:93;;41641:56;41691:5;41641:56;:::i;:::-;41720:7;41751:1;41736:284;41761:6;41758:1;41755:13;41736:284;;;41837:6;41831:13;41864:63;41923:3;41908:13;41864:63;:::i;:::-;41857:70;;41950:60;42003:6;41950:60;:::i;:::-;41940:70;;41796:224;41783:1;41780;41776:9;41771:14;;41736:284;;;41740:14;42036:3;42029:10;;41437:608;;;41313:732;;;;:::o;42051:831::-;42314:4;42352:3;42341:9;42337:19;42329:27;;42366:71;42434:1;42423:9;42419:17;42410:6;42366:71;:::i;:::-;42447:80;42523:2;42512:9;42508:18;42499:6;42447:80;:::i;:::-;42574:9;42568:4;42564:20;42559:2;42548:9;42544:18;42537:48;42602:108;42705:4;42696:6;42602:108;:::i;:::-;42594:116;;42720:72;42788:2;42777:9;42773:18;42764:6;42720:72;:::i;:::-;42802:73;42870:3;42859:9;42855:19;42846:6;42802:73;:::i;:::-;42051:831;;;;;;;;:::o;42888:807::-;43137:4;43175:3;43164:9;43160:19;43152:27;;43189:71;43257:1;43246:9;43242:17;43233:6;43189:71;:::i;:::-;43270:72;43338:2;43327:9;43323:18;43314:6;43270:72;:::i;:::-;43352:80;43428:2;43417:9;43413:18;43404:6;43352:80;:::i;:::-;43442;43518:2;43507:9;43503:18;43494:6;43442:80;:::i;:::-;43532:73;43600:3;43589:9;43585:19;43576:6;43532:73;:::i;:::-;43615;43683:3;43672:9;43668:19;43659:6;43615:73;:::i;:::-;42888:807;;;;;;;;;:::o;43701:143::-;43758:5;43789:6;43783:13;43774:22;;43805:33;43832:5;43805:33;:::i;:::-;43701:143;;;;:::o;43850:663::-;43938:6;43946;43954;44003:2;43991:9;43982:7;43978:23;43974:32;43971:119;;;44009:79;;:::i;:::-;43971:119;44129:1;44154:64;44210:7;44201:6;44190:9;44186:22;44154:64;:::i;:::-;44144:74;;44100:128;44267:2;44293:64;44349:7;44340:6;44329:9;44325:22;44293:64;:::i;:::-;44283:74;;44238:129;44406:2;44432:64;44488:7;44479:6;44468:9;44464:22;44432:64;:::i;:::-;44422:74;;44377:129;43850:663;;;;;:::o;44519:179::-;44659:31;44655:1;44647:6;44643:14;44636:55;44519:179;:::o;44704:366::-;44846:3;44867:67;44931:2;44926:3;44867:67;:::i;:::-;44860:74;;44943:93;45032:3;44943:93;:::i;:::-;45061:2;45056:3;45052:12;45045:19;;44704:366;;;:::o;45076:419::-;45242:4;45280:2;45269:9;45265:18;45257:26;;45329:9;45323:4;45319:20;45315:1;45304:9;45300:17;45293:47;45357:131;45483:4;45357:131;:::i;:::-;45349:139;;45076:419;;;:::o;45501:147::-;45602:11;45639:3;45624:18;;45501:147;;;;:::o;45654:114::-;;:::o;45774:398::-;45933:3;45954:83;46035:1;46030:3;45954:83;:::i;:::-;45947:90;;46046:93;46135:3;46046:93;:::i;:::-;46164:1;46159:3;46155:11;46148:18;;45774:398;;;:::o;46178:379::-;46362:3;46384:147;46527:3;46384:147;:::i;:::-;46377:154;;46548:3;46541:10;;46178:379;;;:::o;46563:245::-;46703:34;46699:1;46691:6;46687:14;46680:58;46772:28;46767:2;46759:6;46755:15;46748:53;46563:245;:::o;46814:366::-;46956:3;46977:67;47041:2;47036:3;46977:67;:::i;:::-;46970:74;;47053:93;47142:3;47053:93;:::i;:::-;47171:2;47166:3;47162:12;47155:19;;46814:366;;;:::o;47186:419::-;47352:4;47390:2;47379:9;47375:18;47367:26;;47439:9;47433:4;47429:20;47425:1;47414:9;47410:17;47403:47;47467:131;47593:4;47467:131;:::i;:::-;47459:139;;47186:419;;;:::o

Swarm Source

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