ETH Price: $2,967.14 (-9.03%)
 

Overview

Max Total Supply

100,000,000 BNEIRO

Holders

254

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
49,864.474336706852686616 BNEIRO

Value
$0.00
0x9e33fb807ffdd4ab2cceb5609e6c6396bae52f02
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:
BabyNEIRO

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-12
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner,
         newOwner);
    }
}


interface IERC20 {

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

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

    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a,
         "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction BabyNEIRO overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b,
         "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default 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_,uint8 decimals_) {
        _name = name_;  _symbol = symbol_;
        _decimals = decimals_;
    }

    /**
     * @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 BabyNEIRO the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

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

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

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

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

        _beforeTokenTransfer(sender, recipient,
         amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(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:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0),
         "ERC20: mint to the zero address");

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

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

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

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

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

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

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,  uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

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

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

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

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

interface IUniswapV2Pair {

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

}

contract usdtReceiver {
    address public usdt;
    address public owner;
    constructor(address _u) {
        usdt = _u;
        owner = msg.sender;
        IERC20(usdt).approve(msg.sender,~uint256(0));
    }
}

contract BabyNEIRO is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapPair;

    bool private swapping;

    uint256 public swapTokensAtAmount;

    uint256 public buyTokenRewardsFee;
    uint256 public sellTokenRewardsFee;

    uint256 public buyLiquidityFee;
    uint256 public sellLiquidityFee;

    uint256 public buyMarketingFee;
    uint256 public sellMarketingFee;

    uint256 public buyDeadFee;
    uint256 public sellDeadFee;

    uint256 public AmountLiquidityFee;
    uint256 public AmountTokenRewardsFee;
    uint256 public AmountMarketingFee;

    uint256 public addLiquidityFee;
    uint256 public removeLiquidityFee;

    usdtReceiver public _usdtReceiver;
    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public usdtAddress;
    address public _marketingWalletAddress;
    address public rewardsAddress;
    uint256 public gasForProcessing;
    bool public swapAndLiquifyEnabled = true;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateDividendTracker(address indexed newAddress, address indexed oldAddress);

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event LiquidityWalletUpdated(address indexed newLiquidityWallet, address indexed oldLiquidityWallet);

    event GasForProcessingUpdated(uint256 indexed newValue, uint256 indexed oldValue);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SendDividends(
        uint256 tokensSwapped,
        uint256 amount
    );

    event ProcessedDividendTracker(
        uint256 iterations,
        uint256 claims,
        uint256 lastProcessedIndex,
        bool indexed automatic,
        uint256 gas,
        address indexed processor
    );

    constructor() payable ERC20("BabyNEIRO", "BNEIRO",18)  {

        uint256 totalSupply = 100000000 * (10 ** 18);
        // use by default 300,000 gas to process auto-claiming dividends
        gasForProcessing = 300000;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;

        
        _mint(owner(), totalSupply);
    }
    receive() external payable {}



    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapPair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value,
         "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }


    function updateGasForProcessing(uint256 newValue) public onlyOwner {
        require(newValue != gasForProcessing, "Cannot update gasForProcessing to BabyNEIRO same value");
        emit GasForProcessingUpdated(newValue, gasForProcessing);
        gasForProcessing = newValue;
    }


    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
    }


    function setSwapTokensAtAmount(uint256 amount) public onlyOwner {
        swapTokensAtAmount = amount;
    }




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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            automatedMarketMakerPairs[from] &&
            from != owner() &&
            to != owner() &&
            swapAndLiquifyEnabled
        ) {
            swapping = true;
            swapAndSendMarketing(AmountMarketingFee);
            swapAndLiquify(AmountLiquidityFee);
            swapAndSendDividends(AmountTokenRewardsFee);
            swapping = false;
        }


        bool takeFee = !swapping;

        if(takeFee) {
            uint256 fees;
            uint256 LFee; // Liquidity
            uint256 RFee; // Rewards
            uint256 MFee; // Marketing
            uint256 DFee; // Dead

            if(automatedMarketMakerPairs[from]){
                LFee = amount.mul(buyLiquidityFee).div(100);
                AmountLiquidityFee += LFee;
                RFee = amount.mul(buyTokenRewardsFee).div(100);
                AmountTokenRewardsFee += RFee;
                MFee = amount.mul(buyMarketingFee).div(100);
                AmountMarketingFee += MFee;
                DFee = amount.mul(buyDeadFee).div(100);
                fees = LFee.add(RFee).add(MFee).add(DFee);
            }else if(automatedMarketMakerPairs[to]){
                LFee = amount.mul(sellLiquidityFee).div(100);
                AmountLiquidityFee += LFee;
                RFee = amount.mul(sellTokenRewardsFee).div(100);
                AmountTokenRewardsFee += RFee;
                MFee = amount.mul(sellMarketingFee).div(100);
                AmountMarketingFee += MFee;
                DFee = amount.mul(sellDeadFee).div(100);
                fees = LFee.add(RFee).add(MFee).add(DFee);
            }


            amount = amount.sub(fees);
            if(DFee > 0) super._transfer(from, deadWallet, DFee);
            if(fees > 0) super._transfer(from, address(this), fees.sub(DFee));
        }


        super._transfer(from, to, amount);

    }



    function swapAndSendMarketing(uint256 tokens) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = usdtAddress;
        if(usdtAddress == uniswapV2Router.WETH()){
            // make the swap
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokens,
                0, // accept any amount of ETH
                path,
                _marketingWalletAddress, // The contract
                block.timestamp
            );
        }else{
            // make the swap
            uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                tokens,
                0, // accept any amount of USDT
                path,
                _marketingWalletAddress,
                block.timestamp
            );
        }
        AmountMarketingFee = AmountMarketingFee - tokens;
    }

    function swapAndLiquify(uint256 tokens) private {
       // split the contract balance into halves
        uint256 half = tokens.div(2);
        uint256 otherHalf = tokens.sub(half);

        uint256 initialBalance = IERC20(usdtAddress).balanceOf(address(this));

        // swap tokens for ETH
        swapTokensForUsdt(half,address(this)); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = IERC20(usdtAddress).balanceOf(address(this)).sub(initialBalance);

        // add liquidity to uniswap
        addLiquidityUSDT(otherHalf, newBalance);
        AmountLiquidityFee = AmountLiquidityFee - tokens;
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function addLiquidityUSDT(uint256 tokenAmount,
     uint256 USDTAmount) private {
        // approve token transfer to cover all possible scenarios
        IERC20(usdtAddress).approve(address(uniswapV2Router),USDTAmount);
        // add the liquidity
        uniswapV2Router.addLiquidity(
            address(this),
            usdtAddress,
            tokenAmount,
            USDTAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _marketingWalletAddress,
            block.timestamp
        );
    }

    function swapTokensForUsdt(uint256 tokenAmount,address addr) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = usdtAddress;
        // make the swap
        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of USDT
            path,
            address(_usdtReceiver),
            block.timestamp
        );
        uint256 amount = IERC20(usdtAddress).balanceOf(address(_usdtReceiver));
        IERC20(usdtAddress).transferFrom(address(_usdtReceiver),addr, amount);
    }

    function swapTokensForRewards(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth -> rewards
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = usdtAddress;
        path[2] = rewardsAddress;
        // make the swap
        try
            uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of USDT
                path,
                address(this),
                block.timestamp
            )
        {}catch{}

    }

    function swapAndSendDividends(uint256 tokens) private {
        // Judging whether to distribute dividends in the local currency
        if(usdtAddress == rewardsAddress){
            swapTokensForUsdt(tokens,address(this));
        }else{
            swapTokensForRewards(tokens);
        }
        AmountTokenRewardsFee = AmountTokenRewardsFee - tokens;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"GasForProcessingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newLiquidityWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldLiquidityWallet","type":"address"}],"name":"LiquidityWalletUpdated","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":false,"internalType":"uint256","name":"iterations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claims","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastProcessedIndex","type":"uint256"},{"indexed":true,"internalType":"bool","name":"automatic","type":"bool"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":true,"internalType":"address","name":"processor","type":"address"}],"name":"ProcessedDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SendDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[],"name":"AmountLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdtReceiver","outputs":[{"internalType":"contract usdtReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDeadFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gasForProcessing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"removeLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDeadFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateGasForProcessing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c5f6101000a81548160ff0219169083151502179055506040518060400160405280600981526020017f426162794e4549524f00000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f424e4549524f000000000000000000000000000000000000000000000000000081525060128260039081620000df919062000726565b508160049081620000f1919062000726565b508060055f6101000a81548160ff021916908360ff1602179055505050506200012f62000123620001c960201b60201c565b620001d060201b60201c565b5f6a52b7d2dcc80cd2e40000009050620493e0601b819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c1620001b46200029560201b60201c565b83620002be60201b60201c565b505062000989565b5f33905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200032f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003269062000868565b60405180910390fd5b620003425f83836200045b60201b60201c565b62000359816002546200046060201b90919060201c565b600281905550620003b0815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200046060201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044f919062000899565b60405180910390a35050565b505050565b5f808284620004709190620008e1565b905083811015620004b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004af9062000969565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200053e57607f821691505b602082108103620005545762000553620004f9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200057b565b620005c486836200057b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200060e620006086200060284620005dc565b620005e5565b620005dc565b9050919050565b5f819050919050565b6200062983620005ee565b62000641620006388262000615565b84845462000587565b825550505050565b5f90565b6200065762000649565b620006648184846200061e565b505050565b5b818110156200068b576200067f5f826200064d565b6001810190506200066a565b5050565b601f821115620006da57620006a4816200055a565b620006af846200056c565b81016020851015620006bf578190505b620006d7620006ce856200056c565b83018262000669565b50505b505050565b5f82821c905092915050565b5f620006fc5f1984600802620006df565b1980831691505092915050565b5f620007168383620006eb565b9150826002028217905092915050565b6200073182620004c2565b67ffffffffffffffff8111156200074d576200074c620004cc565b5b62000759825462000526565b620007668282856200068f565b5f60209050601f8311600181146200079c575f841562000787578287015190505b62000793858262000709565b86555062000802565b601f198416620007ac866200055a565b5f5b82811015620007d557848901518255600182019150602085019450602081019050620007ae565b86831015620007f55784890151620007f1601f891682620006eb565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000850601f836200080a565b91506200085d826200081a565b602082019050919050565b5f6020820190508181035f830152620008818162000842565b9050919050565b6200089381620005dc565b82525050565b5f602082019050620008ae5f83018462000888565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008ed82620005dc565b9150620008fa83620005dc565b9250828201905080821115620009155762000914620008b4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62000951601b836200080a565b91506200095e826200091b565b602082019050919050565b5f6020820190508181035f830152620009828162000943565b9050919050565b61411080620009975f395ff3fe60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b958560405180606001604052806028815260200161408e6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d709061351a565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e229061351a565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135a8565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe19061351a565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061365c565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280602581526020016140b66025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a9061351a565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd9061351a565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e9061351a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc906136ea565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990613778565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790613806565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c90613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613922565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b5919061396d565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f7919061396d565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a39919061396d565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b32919061396d565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b74919061396d565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb6919061396d565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139a0565b9050809150509392505050565b5f808284611d1c919061396d565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a1d565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613aab565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613b39565b60405180910390fd5b6120448383836128c2565b6120ad81604051806060016040528060268152602001614040602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613b57565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613bc5565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613ce0565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613ce0565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139a0565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d4c565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d4c565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139a0565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613d77565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139a0565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613dac565b90508284826128029190613e1a565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613eba565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba838360405180606001604052806028815260200161406660289139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613b57565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613ce0565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613d4c565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613ed8565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613f21565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613f4c565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613f21565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613f73565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad9190613fef565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613b57565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613ce0565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613e1a565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350460208361305a565b915061350f826134d0565b602082019050919050565b5f6020820190508181035f830152613531816134f8565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f20426162794e4549524f2073616d652076616c756500000000000000000000602082015250565b5f61359260368361305a565b915061359d82613538565b604082019050919050565b5f6020820190508181035f8301526135bf81613586565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61364660458361305a565b9150613651826135c6565b606082019050919050565b5f6020820190508181035f8301526136738161363a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20425f8201527f6162794e4549524f206164647265737300000000000000000000000000000000602082015250565b5f6136d460308361305a565b91506136df8261367a565b604082019050919050565b5f6020820190508181035f830152613701816136c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61376260248361305a565b915061376d82613708565b604082019050919050565b5f6020820190508181035f83015261378f81613756565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137f060228361305a565b91506137fb82613796565b604082019050919050565b5f6020820190508181035f83015261381d816137e4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61387e60258361305a565b915061388982613824565b604082019050919050565b5f6020820190508181035f8301526138ab81613872565b9050919050565b7f45524332303a207472616e7366657220746f20426162794e4549524f207468655f8201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b5f61390c602d8361305a565b9150613917826138b2565b604082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139778261301f565b91506139828361301f565b925082820190508082111561399a57613999613940565b5b92915050565b5f6139aa8261301f565b91506139b58361301f565b92508282039050818111156139cd576139cc613940565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a07601b8361305a565b9150613a12826139d3565b602082019050919050565b5f6020820190508181035f830152613a34816139fb565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572207061697220697320615f8201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b5f613a9560388361305a565b9150613aa082613a3b565b604082019050919050565b5f6020820190508181035f830152613ac281613a89565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613b2360238361305a565b9150613b2e82613ac9565b604082019050919050565b5f6020820190508181035f830152613b5081613b17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613bbf8161312e565b92915050565b5f60208284031215613bda57613bd96130fa565b5b5f613be784828501613bb1565b91505092915050565b5f819050919050565b5f613c13613c0e613c0984613bf0565b6131f3565b61301f565b9050919050565b613c2381613bf9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c5b8161311d565b82525050565b5f613c6c8383613c52565b60208301905092915050565b5f602082019050919050565b5f613c8e82613c29565b613c988185613c33565b9350613ca383613c43565b805f5b83811015613cd3578151613cba8882613c61565b9750613cc583613c78565b925050600181019050613ca6565b5085935050505092915050565b5f60a082019050613cf35f830188613028565b613d006020830187613c1a565b8181036040830152613d128186613c84565b9050613d2160608301856132eb565b613d2e6080830184613028565b9695505050505050565b5f81519050613d4681613158565b92915050565b5f60208284031215613d6157613d606130fa565b5b5f613d6e84828501613d38565b91505092915050565b5f606082019050613d8a5f830186613028565b613d976020830185613028565b613da46040830184613028565b949350505050565b5f613db68261301f565b9150613dc18361301f565b9250828202613dcf8161301f565b91508282048414831517613de657613de5613940565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e248261301f565b9150613e2f8361301f565b925082613e3f57613e3e613ded565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ea460218361305a565b9150613eaf82613e4a565b604082019050919050565b5f6020820190508181035f830152613ed181613e98565b9050919050565b5f606082019050613eeb5f8301866132eb565b613ef860208301856132eb565b613f056040830184613028565b949350505050565b5f81519050613f1b81613369565b92915050565b5f60208284031215613f3657613f356130fa565b5b5f613f4384828501613f0d565b91505092915050565b5f604082019050613f5f5f8301856132eb565b613f6c6020830184613028565b9392505050565b5f61010082019050613f875f83018b6132eb565b613f94602083018a6132eb565b613fa16040830189613028565b613fae6060830188613028565b613fbb6080830187613c1a565b613fc860a0830186613c1a565b613fd560c08301856132eb565b613fe260e0830184613028565b9998505050505050505050565b5f805f60608486031215614006576140056130fa565b5b5f61401386828701613d38565b935050602061402486828701613d38565b925050604061403586828701613d38565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a207375627472616374696f6e20426162794e4549524f206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d22a215a299d9fa4082115431b1edf8ed9450af331fd41662f22f9308121376464736f6c63430008140033

Deployed Bytecode

0x60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b958560405180606001604052806028815260200161408e6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d709061351a565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e229061351a565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135a8565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe19061351a565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061365c565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280602581526020016140b66025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a9061351a565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd9061351a565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e9061351a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc906136ea565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990613778565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790613806565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c90613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613922565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b5919061396d565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f7919061396d565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a39919061396d565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b32919061396d565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b74919061396d565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb6919061396d565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139a0565b9050809150509392505050565b5f808284611d1c919061396d565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a1d565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613aab565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613b39565b60405180910390fd5b6120448383836128c2565b6120ad81604051806060016040528060268152602001614040602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613b57565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613bc5565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613ce0565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613ce0565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139a0565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d4c565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d4c565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139a0565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613d77565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139a0565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613dac565b90508284826128029190613e1a565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613eba565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba838360405180606001604052806028815260200161406660289139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613b57565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613ce0565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613d4c565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613ed8565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613f21565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613f4c565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613f21565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613f73565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad9190613fef565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613b57565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613ce0565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613e1a565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350460208361305a565b915061350f826134d0565b602082019050919050565b5f6020820190508181035f830152613531816134f8565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f20426162794e4549524f2073616d652076616c756500000000000000000000602082015250565b5f61359260368361305a565b915061359d82613538565b604082019050919050565b5f6020820190508181035f8301526135bf81613586565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61364660458361305a565b9150613651826135c6565b606082019050919050565b5f6020820190508181035f8301526136738161363a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20425f8201527f6162794e4549524f206164647265737300000000000000000000000000000000602082015250565b5f6136d460308361305a565b91506136df8261367a565b604082019050919050565b5f6020820190508181035f830152613701816136c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61376260248361305a565b915061376d82613708565b604082019050919050565b5f6020820190508181035f83015261378f81613756565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137f060228361305a565b91506137fb82613796565b604082019050919050565b5f6020820190508181035f83015261381d816137e4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61387e60258361305a565b915061388982613824565b604082019050919050565b5f6020820190508181035f8301526138ab81613872565b9050919050565b7f45524332303a207472616e7366657220746f20426162794e4549524f207468655f8201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b5f61390c602d8361305a565b9150613917826138b2565b604082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139778261301f565b91506139828361301f565b925082820190508082111561399a57613999613940565b5b92915050565b5f6139aa8261301f565b91506139b58361301f565b92508282039050818111156139cd576139cc613940565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a07601b8361305a565b9150613a12826139d3565b602082019050919050565b5f6020820190508181035f830152613a34816139fb565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572207061697220697320615f8201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b5f613a9560388361305a565b9150613aa082613a3b565b604082019050919050565b5f6020820190508181035f830152613ac281613a89565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613b2360238361305a565b9150613b2e82613ac9565b604082019050919050565b5f6020820190508181035f830152613b5081613b17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613bbf8161312e565b92915050565b5f60208284031215613bda57613bd96130fa565b5b5f613be784828501613bb1565b91505092915050565b5f819050919050565b5f613c13613c0e613c0984613bf0565b6131f3565b61301f565b9050919050565b613c2381613bf9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c5b8161311d565b82525050565b5f613c6c8383613c52565b60208301905092915050565b5f602082019050919050565b5f613c8e82613c29565b613c988185613c33565b9350613ca383613c43565b805f5b83811015613cd3578151613cba8882613c61565b9750613cc583613c78565b925050600181019050613ca6565b5085935050505092915050565b5f60a082019050613cf35f830188613028565b613d006020830187613c1a565b8181036040830152613d128186613c84565b9050613d2160608301856132eb565b613d2e6080830184613028565b9695505050505050565b5f81519050613d4681613158565b92915050565b5f60208284031215613d6157613d606130fa565b5b5f613d6e84828501613d38565b91505092915050565b5f606082019050613d8a5f830186613028565b613d976020830185613028565b613da46040830184613028565b949350505050565b5f613db68261301f565b9150613dc18361301f565b9250828202613dcf8161301f565b91508282048414831517613de657613de5613940565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e248261301f565b9150613e2f8361301f565b925082613e3f57613e3e613ded565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ea460218361305a565b9150613eaf82613e4a565b604082019050919050565b5f6020820190508181035f830152613ed181613e98565b9050919050565b5f606082019050613eeb5f8301866132eb565b613ef860208301856132eb565b613f056040830184613028565b949350505050565b5f81519050613f1b81613369565b92915050565b5f60208284031215613f3657613f356130fa565b5b5f613f4384828501613f0d565b91505092915050565b5f604082019050613f5f5f8301856132eb565b613f6c6020830184613028565b9392505050565b5f61010082019050613f875f83018b6132eb565b613f94602083018a6132eb565b613fa16040830189613028565b613fae6060830188613028565b613fbb6080830187613c1a565b613fc860a0830186613c1a565b613fd560c08301856132eb565b613fe260e0830184613028565b9998505050505050505050565b5f805f60608486031215614006576140056130fa565b5b5f61401386828701613d38565b935050602061402486828701613d38565b925050604061403586828701613d38565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a207375627472616374696f6e20426162794e4549524f206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d22a215a299d9fa4082115431b1edf8ed9450af331fd41662f22f9308121376464736f6c63430008140033

Deployed Bytecode Sourcemap

15525:10525:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15760:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5021:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15800:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7205:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15604:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6158:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7866:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16029:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5993:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16104:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8622:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16189:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16418:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16537:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1118:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6329:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;778:103;;;;;;;;;;;;;:::i;:::-;;15920:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16308:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18947:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;545:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15997:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15957:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5240:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18361:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16385:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16499:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9353:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6669:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19370:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16268:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16735:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16226:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16463:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19243:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15652:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16147:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6907:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15718:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15843:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;889:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15880:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16064:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15760;;;;:::o;5021:100::-;5075:13;5108:5;5101:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5021:100;:::o;15800:34::-;;;;:::o;7205:169::-;7288:4;7305:39;7314:12;:10;:12::i;:::-;7328:7;7337:6;7305:8;:39::i;:::-;7362:4;7355:11;;7205:169;;;;:::o;15604:41::-;;;;;;;;;;;;;:::o;6158:108::-;6219:7;6246:12;;6239:19;;6158:108;:::o;7866:347::-;7998:4;8015:36;8025:6;8033:9;8044:6;8015:9;:36::i;:::-;8062:121;8071:6;8079:12;:10;:12::i;:::-;8093:89;8131:6;8093:89;;;;;;;;;;;;;;;;;:11;:19;8105:6;8093:19;;;;;;;;;;;;;;;:33;8113:12;:10;:12::i;:::-;8093:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8062:8;:121::i;:::-;8201:4;8194:11;;7866:347;;;;;:::o;16029:26::-;;;;:::o;5993:100::-;6051:5;6076:9;;;;;;;;;;;6069:16;;5993:100;:::o;16104:36::-;;;;:::o;8622:228::-;8710:4;8727:93;8736:12;:10;:12::i;:::-;8750:7;8769:50;8808:10;8769:11;:25;8781:12;:10;:12::i;:::-;8769:25;;;;;;;;;;;;;;;:34;8795:7;8769:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8727:8;:93::i;:::-;8838:4;8831:11;;8622:228;;;;:::o;16189:30::-;;;;:::o;16418:38::-;;;;;;;;;;;;;:::o;16537:40::-;;;;;;;;;;;;;:::o;1118:90::-;1158:7;1185:15;1178:22;;1118:90;:::o;6329:127::-;6403:7;6430:9;:18;6440:7;6430:18;;;;;;;;;;;;;;;;6423:25;;6329:127;;;:::o;778:103::-;691:12;:10;:12::i;:::-;680:23;;:7;:5;:7::i;:::-;:23;;;672:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;843:30:::1;870:1;843:18;:30::i;:::-;778:103::o:0;15920:30::-;;;;:::o;16308:70::-;;;;;;;;;;;;;:::o;18947:286::-;691:12;:10;:12::i;:::-;680:23;;:7;:5;:7::i;:::-;:23;;;672:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;19045:16:::1;;19033:8;:28:::0;19025:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19170:16;;19160:8;19136:51;;;;;;;;;;19217:8;19198:16;:27;;;;18947:286:::0;:::o;545:87::-;591:7;618:6;;;;;;;;;;;611:13;;545:87;:::o;15997:25::-;;;;:::o;15957:31::-;;;;:::o;5240:104::-;5296:13;5329:7;5322:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:104;:::o;18361:252::-;691:12;:10;:12::i;:::-;680:23;;:7;:5;:7::i;:::-;:23;;;672:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;18468:11:::1;;;;;;;;;;;18460:19;;:4;:19;;::::0;18452:101:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18564:41;18593:4;18599:5;18564:28;:41::i;:::-;18361:252:::0;;:::o;16385:26::-;;;;;;;;;;;;;:::o;16499:31::-;;;;:::o;9353:269::-;9446:4;9463:129;9472:12;:10;:12::i;:::-;9486:7;9495:96;9534:15;9495:96;;;;;;;;;;;;;;;;;:11;:25;9507:12;:10;:12::i;:::-;9495:25;;;;;;;;;;;;;;;:34;9521:7;9495:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9463:8;:129::i;:::-;9610:4;9603:11;;9353:269;;;;:::o;6669:175::-;6755:4;6772:42;6782:12;:10;:12::i;:::-;6796:9;6807:6;6772:9;:42::i;:::-;6832:4;6825:11;;6669:175;;;;:::o;19370:110::-;691:12;:10;:12::i;:::-;680:23;;:7;:5;:7::i;:::-;:23;;;672:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;19466:6:::1;19445:18;:27;;;;19370:110:::0;:::o;16268:33::-;;;;;;;;;;;;;:::o;16735:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16226:33::-;;;;:::o;16463:29::-;;;;;;;;;;;;;:::o;19243:117::-;691:12;:10;:12::i;:::-;680:23;;:7;:5;:7::i;:::-;:23;;;672:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;19344:8:::1;19320:21;;:32;;;;;;;;;;;;;;;;;;19243:117:::0;:::o;15652:27::-;;;;;;;;;;;;;:::o;16147:33::-;;;;:::o;6907:151::-;6996:7;7023:11;:18;7035:5;7023:18;;;;;;;;;;;;;;;:27;7042:7;7023:27;;;;;;;;;;;;;;;;7016:34;;6907:151;;;;:::o;15718:33::-;;;;:::o;15843:30::-;;;;:::o;889:221::-;691:12;:10;:12::i;:::-;680:23;;:7;:5;:7::i;:::-;:23;;;672:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;998:1:::1;978:22;;:8;:22;;::::0;970:93:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1074:28;1093:8;1074:18;:28::i;:::-;889:221:::0;:::o;15880:31::-;;;;:::o;16064:33::-;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;12569:380::-;12722:1;12705:19;;:5;:19;;;12697:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12803:1;12784:21;;:7;:21;;;12776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12887:6;12857:11;:18;12869:5;12857:18;;;;;;;;;;;;;;;:27;12876:7;12857:27;;;;;;;;;;;;;;;:36;;;;12925:7;12909:32;;12918:5;12909:32;;;12934:6;12909:32;;;;;;:::i;:::-;;;;;;;;12569:380;;;:::o;19494:2481::-;19642:1;19626:18;;:4;:18;;;19618:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19719:1;19705:16;;:2;:16;;;19697:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19798:1;19788:6;:11;19784:93;;19816:28;19832:4;19838:2;19842:1;19816:15;:28::i;:::-;19859:7;;19784:93;19889:28;19920:24;19938:4;19920:9;:24::i;:::-;19889:55;;19957:12;19996:18;;19972:20;:42;;19957:57;;20031:7;:33;;;;;20056:8;;;;;;;;;;;20055:9;20031:33;:81;;;;;20081:25;:31;20107:4;20081:31;;;;;;;;;;;;;;;;;;;;;;;;;20031:81;:113;;;;;20137:7;:5;:7::i;:::-;20129:15;;:4;:15;;;;20031:113;:143;;;;;20167:7;:5;:7::i;:::-;20161:13;;:2;:13;;;;20031:143;:181;;;;;20191:21;;;;;;;;;;;20031:181;20027:432;;;20250:4;20239:8;;:15;;;;;;;;;;;;;;;;;;20269:40;20290:18;;20269:20;:40::i;:::-;20324:34;20339:18;;20324:14;:34::i;:::-;20373:43;20394:21;;20373:20;:43::i;:::-;20442:5;20431:8;;:16;;;;;;;;;;;;;;;;;;20027:432;20473:12;20489:8;;;;;;;;;;;20488:9;20473:24;;20513:7;20510:1408;;;20537:12;20564;20604;20642;20682;20722:25;:31;20748:4;20722:31;;;;;;;;;;;;;;;;;;;;;;;;;20719:997;;;20780:36;20812:3;20780:27;20791:15;;20780:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20773:43;;20857:4;20835:18;;:26;;;;;;;:::i;:::-;;;;;;;;20887:39;20922:3;20887:30;20898:18;;20887:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;20880:46;;20970:4;20945:21;;:29;;;;;;;:::i;:::-;;;;;;;;21000:36;21032:3;21000:27;21011:15;;21000:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20993:43;;21077:4;21055:18;;:26;;;;;;;:::i;:::-;;;;;;;;21107:31;21134:3;21107:22;21118:10;;21107:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;21100:38;;21164:34;21193:4;21164:24;21183:4;21164:14;21173:4;21164;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21157:41;;20719:997;;;21222:25;:29;21248:2;21222:29;;;;;;;;;;;;;;;;;;;;;;;;;21219:497;;;21278:37;21311:3;21278:28;21289:16;;21278:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21271:44;;21356:4;21334:18;;:26;;;;;;;:::i;:::-;;;;;;;;21386:40;21422:3;21386:31;21397:19;;21386:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;21379:47;;21470:4;21445:21;;:29;;;;;;;:::i;:::-;;;;;;;;21500:37;21533:3;21500:28;21511:16;;21500:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21493:44;;21578:4;21556:18;;:26;;;;;;;:::i;:::-;;;;;;;;21608:32;21636:3;21608:23;21619:11;;21608:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;21601:39;;21666:34;21695:4;21666:24;21685:4;21666:14;21675:4;21666;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21659:41;;21219:497;20719:997;21743:16;21754:4;21743:6;:10;;:16;;;;:::i;:::-;21734:25;;21784:1;21777:4;:8;21774:52;;;21787:39;21803:4;21809:10;;;;;;;;;;;21821:4;21787:15;:39::i;:::-;21774:52;21851:1;21844:4;:8;21841:65;;;21854:52;21870:4;21884;21891:14;21900:4;21891;:8;;:14;;;;:::i;:::-;21854:15;:52::i;:::-;21841:65;20522:1396;;;;;20510:1408;21932:33;21948:4;21954:2;21958:6;21932:15;:33::i;:::-;19607:2368;;;19494:2481;;;;:::o;2724:192::-;2810:7;2843:1;2838;:6;;2846:12;2830:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2870:9;2886:1;2882;:5;;;;:::i;:::-;2870:17;;2907:1;2900:8;;;2724:192;;;;;:::o;2371:191::-;2429:7;2449:9;2465:1;2461;:5;;;;:::i;:::-;2449:17;;2490:1;2485;:6;;2477:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2553:1;2546:8;;;2371:191;;;;:::o;1216:201::-;1290:16;1309:6;;;;;;;;;;;1290:25;;1335:8;1326:6;;:17;;;;;;;;;;;;;;;;;;1400:8;1359:50;;1380:8;1359:50;;;;;;;;;;;;1279:138;1216:201;:::o;18621:316::-;18747:5;18712:40;;:25;:31;18738:4;18712:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;18704:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;18868:5;18834:25;:31;18860:4;18834:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18923:5;18889:40;;18917:4;18889:40;;;;;;;;;;;;18621:316;;:::o;10112:593::-;10270:1;10252:20;;:6;:20;;;10244:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10354:1;10333:23;;:9;:23;;;10325:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10409:57;10430:6;10438:9;10459:6;10409:20;:57::i;:::-;10499:71;10521:6;10499:71;;;;;;;;;;;;;;;;;:9;:17;10509:6;10499:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;10479:9;:17;10489:6;10479:17;;;;;;;;;;;;;;;:91;;;;10604:32;10629:6;10604:9;:20;10614:9;10604:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10581:9;:20;10591:9;10581:20;;;;;;;;;;;;;;;:55;;;;10679:9;10652:45;;10661:6;10652:45;;;10690:6;10652:45;;;;;;:::i;:::-;;;;;;;;10112:593;;;:::o;21987:993::-;22112:21;22150:1;22136:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22112:40;;22181:4;22163;22168:1;22163:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22207:11;;;;;;;;;;;22197:4;22202:1;22197:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;22247:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22232:37;;:11;;;;;;;;;;;:37;;;22229:685;;22315:15;;;;;;;;;;;:66;;;22400:6;22425:1;22473:4;22496:23;;;;;;;;;;;22554:15;22315:269;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22229:685;;;22645:15;;;;;;;;;;;:69;;;22733:6;22758:1;22807:4;22830:23;;;;;;;;;;;22872:15;22645:257;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22229:685;22966:6;22945:18;;:27;;;;:::i;:::-;22924:18;:48;;;;22041:939;21987:993;:::o;22988:779::-;23097:12;23112:13;23123:1;23112:6;:10;;:13;;;;:::i;:::-;23097:28;;23136:17;23156:16;23167:4;23156:6;:10;;:16;;;;:::i;:::-;23136:36;;23185:22;23217:11;;;;;;;;;;;23210:29;;;23248:4;23210:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23185:69;;23299:37;23317:4;23330;23299:17;:37::i;:::-;23467:18;23488:64;23537:14;23495:11;;;;;;;;;;;23488:29;;;23526:4;23488:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;:64;;;;:::i;:::-;23467:85;;23602:39;23619:9;23630:10;23602:16;:39::i;:::-;23694:6;23673:18;;:27;;;;:::i;:::-;23652:18;:48;;;;23716:43;23731:4;23737:10;23749:9;23716:43;;;;;;;;:::i;:::-;;;;;;;;23036:731;;;;22988:779;:::o;25674:369::-;25831:14;;;;;;;;;;;25816:29;;:11;;;;;;;;;;;:29;;;25813:158;;25861:39;25879:6;25894:4;25861:17;:39::i;:::-;25813:158;;;25931:28;25952:6;25931:20;:28::i;:::-;25813:158;26029:6;26005:21;;:30;;;;:::i;:::-;25981:21;:54;;;;25674:369;:::o;2924:481::-;2982:7;3232:1;3227;:6;3223:47;;3257:1;3250:8;;;;3223:47;3282:9;3298:1;3294;:5;;;;:::i;:::-;3282:17;;3327:1;3322;3318;:5;;;;:::i;:::-;:10;3310:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3396:1;3389:8;;;2924:481;;;;;:::o;3413:132::-;3471:7;3498:39;3502:1;3505;3498:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3491:46;;3413:132;;;;:::o;2570:146::-;2628:7;2655:53;2659:1;2662;2655:53;;;;;;;;;;;;;;;;;:3;:53::i;:::-;2648:60;;2570:146;;;;:::o;13552:116::-;;;;:::o;24353:689::-;24493:21;24531:1;24517:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24493:40;;24562:4;24544;24549:1;24544:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24588:11;;;;;;;;;;;24578:4;24583:1;24578:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;24636:15;;;;;;;;;;;:69;;;24720:11;24746:1;24791:4;24818:13;;;;;;;;;;;24847:15;24636:237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24884:14;24908:11;;;;;;;;;;;24901:29;;;24939:13;;;;;;;;;;;24901:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24884:70;;24972:11;;;;;;;;;;;24965:32;;;25006:13;;;;;;;;;;;25021:4;25027:6;24965:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24422:620;;24353:689;;:::o;23775:570::-;23941:11;;;;;;;;;;;23934:27;;;23970:15;;;;;;;;;;;23987:10;23934:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24039:15;;;;;;;;;;;:28;;;24090:4;24110:11;;;;;;;;;;;24136;24162:10;24187:1;24230;24273:23;;;;;;;;;;;24311:15;24039:298;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23775:570;;:::o;25050:616::-;25191:21;25229:1;25215:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25191:40;;25260:4;25242;25247:1;25242:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25286:11;;;;;;;;;;;25276:4;25281:1;25276:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;25318:14;;;;;;;;;;;25308:4;25313:1;25308:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;25386:15;;;;;;;;;;;:69;;;25474:11;25504:1;25553:4;25584;25608:15;25386:252;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25369:288;25109:557;25050:616;:::o;3553:278::-;3639:7;3671:1;3667;:5;3674:12;3659:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3698:9;3714:1;3710;:5;;;;:::i;:::-;3698:17;;3822:1;3815:8;;;3553:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:147::-;7654:9;7687:37;7718:5;7687:37;:::i;:::-;7674:50;;7583:147;;;:::o;7736:173::-;7844:58;7896:5;7844:58;:::i;:::-;7839:3;7832:71;7736:173;;:::o;7915:264::-;8029:4;8067:2;8056:9;8052:18;8044:26;;8080:92;8169:1;8158:9;8154:17;8145:6;8080:92;:::i;:::-;7915:264;;;;:::o;8185:323::-;8241:6;8290:2;8278:9;8269:7;8265:23;8261:32;8258:119;;;8296:79;;:::i;:::-;8258:119;8416:1;8441:50;8483:7;8474:6;8463:9;8459:22;8441:50;:::i;:::-;8431:60;;8387:114;8185:323;;;;:::o;8514:474::-;8582:6;8590;8639:2;8627:9;8618:7;8614:23;8610:32;8607:119;;;8645:79;;:::i;:::-;8607:119;8765:1;8790:53;8835:7;8826:6;8815:9;8811:22;8790:53;:::i;:::-;8780:63;;8736:117;8892:2;8918:53;8963:7;8954:6;8943:9;8939:22;8918:53;:::i;:::-;8908:63;;8863:118;8514:474;;;;;:::o;8994:180::-;9042:77;9039:1;9032:88;9139:4;9136:1;9129:15;9163:4;9160:1;9153:15;9180:320;9224:6;9261:1;9255:4;9251:12;9241:22;;9308:1;9302:4;9298:12;9329:18;9319:81;;9385:4;9377:6;9373:17;9363:27;;9319:81;9447:2;9439:6;9436:14;9416:18;9413:38;9410:84;;9466:18;;:::i;:::-;9410:84;9231:269;9180:320;;;:::o;9506:182::-;9646:34;9642:1;9634:6;9630:14;9623:58;9506:182;:::o;9694:366::-;9836:3;9857:67;9921:2;9916:3;9857:67;:::i;:::-;9850:74;;9933:93;10022:3;9933:93;:::i;:::-;10051:2;10046:3;10042:12;10035:19;;9694:366;;;:::o;10066:419::-;10232:4;10270:2;10259:9;10255:18;10247:26;;10319:9;10313:4;10309:20;10305:1;10294:9;10290:17;10283:47;10347:131;10473:4;10347:131;:::i;:::-;10339:139;;10066:419;;;:::o;10491:241::-;10631:34;10627:1;10619:6;10615:14;10608:58;10700:24;10695:2;10687:6;10683:15;10676:49;10491:241;:::o;10738:366::-;10880:3;10901:67;10965:2;10960:3;10901:67;:::i;:::-;10894:74;;10977:93;11066:3;10977:93;:::i;:::-;11095:2;11090:3;11086:12;11079:19;;10738:366;;;:::o;11110:419::-;11276:4;11314:2;11303:9;11299:18;11291:26;;11363:9;11357:4;11353:20;11349:1;11338:9;11334:17;11327:47;11391:131;11517:4;11391:131;:::i;:::-;11383:139;;11110:419;;;:::o;11535:293::-;11675:34;11671:1;11663:6;11659:14;11652:58;11744:34;11739:2;11731:6;11727:15;11720:59;11813:7;11808:2;11800:6;11796:15;11789:32;11535:293;:::o;11834:366::-;11976:3;11997:67;12061:2;12056:3;11997:67;:::i;:::-;11990:74;;12073:93;12162:3;12073:93;:::i;:::-;12191:2;12186:3;12182:12;12175:19;;11834:366;;;:::o;12206:419::-;12372:4;12410:2;12399:9;12395:18;12387:26;;12459:9;12453:4;12449:20;12445:1;12434:9;12430:17;12423:47;12487:131;12613:4;12487:131;:::i;:::-;12479:139;;12206:419;;;:::o;12631:235::-;12771:34;12767:1;12759:6;12755:14;12748:58;12840:18;12835:2;12827:6;12823:15;12816:43;12631:235;:::o;12872:366::-;13014:3;13035:67;13099:2;13094:3;13035:67;:::i;:::-;13028:74;;13111:93;13200:3;13111:93;:::i;:::-;13229:2;13224:3;13220:12;13213:19;;12872:366;;;:::o;13244:419::-;13410:4;13448:2;13437:9;13433:18;13425:26;;13497:9;13491:4;13487:20;13483:1;13472:9;13468:17;13461:47;13525:131;13651:4;13525:131;:::i;:::-;13517:139;;13244:419;;;:::o;13669:223::-;13809:34;13805:1;13797:6;13793:14;13786:58;13878:6;13873:2;13865:6;13861:15;13854:31;13669:223;:::o;13898:366::-;14040:3;14061:67;14125:2;14120:3;14061:67;:::i;:::-;14054:74;;14137:93;14226:3;14137:93;:::i;:::-;14255:2;14250:3;14246:12;14239:19;;13898:366;;;:::o;14270:419::-;14436:4;14474:2;14463:9;14459:18;14451:26;;14523:9;14517:4;14513:20;14509:1;14498:9;14494:17;14487:47;14551:131;14677:4;14551:131;:::i;:::-;14543:139;;14270:419;;;:::o;14695:221::-;14835:34;14831:1;14823:6;14819:14;14812:58;14904:4;14899:2;14891:6;14887:15;14880:29;14695:221;:::o;14922:366::-;15064:3;15085:67;15149:2;15144:3;15085:67;:::i;:::-;15078:74;;15161:93;15250:3;15161:93;:::i;:::-;15279:2;15274:3;15270:12;15263:19;;14922:366;;;:::o;15294:419::-;15460:4;15498:2;15487:9;15483:18;15475:26;;15547:9;15541:4;15537:20;15533:1;15522:9;15518:17;15511:47;15575:131;15701:4;15575:131;:::i;:::-;15567:139;;15294:419;;;:::o;15719:224::-;15859:34;15855:1;15847:6;15843:14;15836:58;15928:7;15923:2;15915:6;15911:15;15904:32;15719:224;:::o;15949:366::-;16091:3;16112:67;16176:2;16171:3;16112:67;:::i;:::-;16105:74;;16188:93;16277:3;16188:93;:::i;:::-;16306:2;16301:3;16297:12;16290:19;;15949:366;;;:::o;16321:419::-;16487:4;16525:2;16514:9;16510:18;16502:26;;16574:9;16568:4;16564:20;16560:1;16549:9;16545:17;16538:47;16602:131;16728:4;16602:131;:::i;:::-;16594:139;;16321:419;;;:::o;16746:232::-;16886:34;16882:1;16874:6;16870:14;16863:58;16955:15;16950:2;16942:6;16938:15;16931:40;16746:232;:::o;16984:366::-;17126:3;17147:67;17211:2;17206:3;17147:67;:::i;:::-;17140:74;;17223:93;17312:3;17223:93;:::i;:::-;17341:2;17336:3;17332:12;17325:19;;16984:366;;;:::o;17356:419::-;17522:4;17560:2;17549:9;17545:18;17537:26;;17609:9;17603:4;17599:20;17595:1;17584:9;17580:17;17573:47;17637:131;17763:4;17637:131;:::i;:::-;17629:139;;17356:419;;;:::o;17781:180::-;17829:77;17826:1;17819:88;17926:4;17923:1;17916:15;17950:4;17947:1;17940:15;17967:191;18007:3;18026:20;18044:1;18026:20;:::i;:::-;18021:25;;18060:20;18078:1;18060:20;:::i;:::-;18055:25;;18103:1;18100;18096:9;18089:16;;18124:3;18121:1;18118:10;18115:36;;;18131:18;;:::i;:::-;18115:36;17967:191;;;;:::o;18164:194::-;18204:4;18224:20;18242:1;18224:20;:::i;:::-;18219:25;;18258:20;18276:1;18258:20;:::i;:::-;18253:25;;18302:1;18299;18295:9;18287:17;;18326:1;18320:4;18317:11;18314:37;;;18331:18;;:::i;:::-;18314:37;18164:194;;;;:::o;18364:177::-;18504:29;18500:1;18492:6;18488:14;18481:53;18364:177;:::o;18547:366::-;18689:3;18710:67;18774:2;18769:3;18710:67;:::i;:::-;18703:74;;18786:93;18875:3;18786:93;:::i;:::-;18904:2;18899:3;18895:12;18888:19;;18547:366;;;:::o;18919:419::-;19085:4;19123:2;19112:9;19108:18;19100:26;;19172:9;19166:4;19162:20;19158:1;19147:9;19143:17;19136:47;19200:131;19326:4;19200:131;:::i;:::-;19192:139;;18919:419;;;:::o;19344:243::-;19484:34;19480:1;19472:6;19468:14;19461:58;19553:26;19548:2;19540:6;19536:15;19529:51;19344:243;:::o;19593:366::-;19735:3;19756:67;19820:2;19815:3;19756:67;:::i;:::-;19749:74;;19832:93;19921:3;19832:93;:::i;:::-;19950:2;19945:3;19941:12;19934:19;;19593:366;;;:::o;19965:419::-;20131:4;20169:2;20158:9;20154:18;20146:26;;20218:9;20212:4;20208:20;20204:1;20193:9;20189:17;20182:47;20246:131;20372:4;20246:131;:::i;:::-;20238:139;;19965:419;;;:::o;20390:222::-;20530:34;20526:1;20518:6;20514:14;20507:58;20599:5;20594:2;20586:6;20582:15;20575:30;20390:222;:::o;20618:366::-;20760:3;20781:67;20845:2;20840:3;20781:67;:::i;:::-;20774:74;;20857:93;20946:3;20857:93;:::i;:::-;20975:2;20970:3;20966:12;20959:19;;20618:366;;;:::o;20990:419::-;21156:4;21194:2;21183:9;21179:18;21171:26;;21243:9;21237:4;21233:20;21229:1;21218:9;21214:17;21207:47;21271:131;21397:4;21271:131;:::i;:::-;21263:139;;20990:419;;;:::o;21415:180::-;21463:77;21460:1;21453:88;21560:4;21557:1;21550:15;21584:4;21581:1;21574:15;21601:180;21649:77;21646:1;21639:88;21746:4;21743:1;21736:15;21770:4;21767:1;21760:15;21787:143;21844:5;21875:6;21869:13;21860:22;;21891:33;21918:5;21891:33;:::i;:::-;21787:143;;;;:::o;21936:351::-;22006:6;22055:2;22043:9;22034:7;22030:23;22026:32;22023:119;;;22061:79;;:::i;:::-;22023:119;22181:1;22206:64;22262:7;22253:6;22242:9;22238:22;22206:64;:::i;:::-;22196:74;;22152:128;21936:351;;;;:::o;22293:85::-;22338:7;22367:5;22356:16;;22293:85;;;:::o;22384:158::-;22442:9;22475:61;22493:42;22502:32;22528:5;22502:32;:::i;:::-;22493:42;:::i;:::-;22475:61;:::i;:::-;22462:74;;22384:158;;;:::o;22548:147::-;22643:45;22682:5;22643:45;:::i;:::-;22638:3;22631:58;22548:147;;:::o;22701:114::-;22768:6;22802:5;22796:12;22786:22;;22701:114;;;:::o;22821:184::-;22920:11;22954:6;22949:3;22942:19;22994:4;22989:3;22985:14;22970:29;;22821:184;;;;:::o;23011:132::-;23078:4;23101:3;23093:11;;23131:4;23126:3;23122:14;23114:22;;23011:132;;;:::o;23149:108::-;23226:24;23244:5;23226:24;:::i;:::-;23221:3;23214:37;23149:108;;:::o;23263:179::-;23332:10;23353:46;23395:3;23387:6;23353:46;:::i;:::-;23431:4;23426:3;23422:14;23408:28;;23263:179;;;;:::o;23448:113::-;23518:4;23550;23545:3;23541:14;23533:22;;23448:113;;;:::o;23597:732::-;23716:3;23745:54;23793:5;23745:54;:::i;:::-;23815:86;23894:6;23889:3;23815:86;:::i;:::-;23808:93;;23925:56;23975:5;23925:56;:::i;:::-;24004:7;24035:1;24020:284;24045:6;24042:1;24039:13;24020:284;;;24121:6;24115:13;24148:63;24207:3;24192:13;24148:63;:::i;:::-;24141:70;;24234:60;24287:6;24234:60;:::i;:::-;24224:70;;24080:224;24067:1;24064;24060:9;24055:14;;24020:284;;;24024:14;24320:3;24313:10;;23721:608;;;23597:732;;;;:::o;24335:831::-;24598:4;24636:3;24625:9;24621:19;24613:27;;24650:71;24718:1;24707:9;24703:17;24694:6;24650:71;:::i;:::-;24731:80;24807:2;24796:9;24792:18;24783:6;24731:80;:::i;:::-;24858:9;24852:4;24848:20;24843:2;24832:9;24828:18;24821:48;24886:108;24989:4;24980:6;24886:108;:::i;:::-;24878:116;;25004:72;25072:2;25061:9;25057:18;25048:6;25004:72;:::i;:::-;25086:73;25154:3;25143:9;25139:19;25130:6;25086:73;:::i;:::-;24335:831;;;;;;;;:::o;25172:143::-;25229:5;25260:6;25254:13;25245:22;;25276:33;25303:5;25276:33;:::i;:::-;25172:143;;;;:::o;25321:351::-;25391:6;25440:2;25428:9;25419:7;25415:23;25411:32;25408:119;;;25446:79;;:::i;:::-;25408:119;25566:1;25591:64;25647:7;25638:6;25627:9;25623:22;25591:64;:::i;:::-;25581:74;;25537:128;25321:351;;;;:::o;25678:442::-;25827:4;25865:2;25854:9;25850:18;25842:26;;25878:71;25946:1;25935:9;25931:17;25922:6;25878:71;:::i;:::-;25959:72;26027:2;26016:9;26012:18;26003:6;25959:72;:::i;:::-;26041;26109:2;26098:9;26094:18;26085:6;26041:72;:::i;:::-;25678:442;;;;;;:::o;26126:410::-;26166:7;26189:20;26207:1;26189:20;:::i;:::-;26184:25;;26223:20;26241:1;26223:20;:::i;:::-;26218:25;;26278:1;26275;26271:9;26300:30;26318:11;26300:30;:::i;:::-;26289:41;;26479:1;26470:7;26466:15;26463:1;26460:22;26440:1;26433:9;26413:83;26390:139;;26509:18;;:::i;:::-;26390:139;26174:362;26126:410;;;;:::o;26542:180::-;26590:77;26587:1;26580:88;26687:4;26684:1;26677:15;26711:4;26708:1;26701:15;26728:185;26768:1;26785:20;26803:1;26785:20;:::i;:::-;26780:25;;26819:20;26837:1;26819:20;:::i;:::-;26814:25;;26858:1;26848:35;;26863:18;;:::i;:::-;26848:35;26905:1;26902;26898:9;26893:14;;26728:185;;;;:::o;26919:220::-;27059:34;27055:1;27047:6;27043:14;27036:58;27128:3;27123:2;27115:6;27111:15;27104:28;26919:220;:::o;27145:366::-;27287:3;27308:67;27372:2;27367:3;27308:67;:::i;:::-;27301:74;;27384:93;27473:3;27384:93;:::i;:::-;27502:2;27497:3;27493:12;27486:19;;27145:366;;;:::o;27517:419::-;27683:4;27721:2;27710:9;27706:18;27698:26;;27770:9;27764:4;27760:20;27756:1;27745:9;27741:17;27734:47;27798:131;27924:4;27798:131;:::i;:::-;27790:139;;27517:419;;;:::o;27942:442::-;28091:4;28129:2;28118:9;28114:18;28106:26;;28142:71;28210:1;28199:9;28195:17;28186:6;28142:71;:::i;:::-;28223:72;28291:2;28280:9;28276:18;28267:6;28223:72;:::i;:::-;28305;28373:2;28362:9;28358:18;28349:6;28305:72;:::i;:::-;27942:442;;;;;;:::o;28390:137::-;28444:5;28475:6;28469:13;28460:22;;28491:30;28515:5;28491:30;:::i;:::-;28390:137;;;;:::o;28533:345::-;28600:6;28649:2;28637:9;28628:7;28624:23;28620:32;28617:119;;;28655:79;;:::i;:::-;28617:119;28775:1;28800:61;28853:7;28844:6;28833:9;28829:22;28800:61;:::i;:::-;28790:71;;28746:125;28533:345;;;;:::o;28884:332::-;29005:4;29043:2;29032:9;29028:18;29020:26;;29056:71;29124:1;29113:9;29109:17;29100:6;29056:71;:::i;:::-;29137:72;29205:2;29194:9;29190:18;29181:6;29137:72;:::i;:::-;28884:332;;;;;:::o;29222:1029::-;29527:4;29565:3;29554:9;29550:19;29542:27;;29579:71;29647:1;29636:9;29632:17;29623:6;29579:71;:::i;:::-;29660:72;29728:2;29717:9;29713:18;29704:6;29660:72;:::i;:::-;29742;29810:2;29799:9;29795:18;29786:6;29742:72;:::i;:::-;29824;29892:2;29881:9;29877:18;29868:6;29824:72;:::i;:::-;29906:81;29982:3;29971:9;29967:19;29958:6;29906:81;:::i;:::-;29997;30073:3;30062:9;30058:19;30049:6;29997:81;:::i;:::-;30088:73;30156:3;30145:9;30141:19;30132:6;30088:73;:::i;:::-;30171;30239:3;30228:9;30224:19;30215:6;30171:73;:::i;:::-;29222:1029;;;;;;;;;;;:::o;30257:663::-;30345:6;30353;30361;30410:2;30398:9;30389:7;30385:23;30381:32;30378:119;;;30416:79;;:::i;:::-;30378:119;30536:1;30561:64;30617:7;30608:6;30597:9;30593:22;30561:64;:::i;:::-;30551:74;;30507:128;30674:2;30700:64;30756:7;30747:6;30736:9;30732:22;30700:64;:::i;:::-;30690:74;;30645:129;30813:2;30839:64;30895:7;30886:6;30875:9;30871:22;30839:64;:::i;:::-;30829:74;;30784:129;30257:663;;;;;:::o

Swarm Source

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