ETH Price: $3,480.62 (+0.92%)

Token

MAGA (MAGA)
 

Overview

Max Total Supply

100,000,000 MAGA

Holders

291

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
383,045.067870845838222591 MAGA

Value
$0.00
0xf6333827c9175818bb920f0ac91593503f431aea
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:
MAGA

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-08
*/

// 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 MAGA owner is the zero 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 MAGA 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 MAGA 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 MAGA 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 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 MAGA allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _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 MAGA 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 MAGA 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 MAGA 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("MAGA", "MAGA",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 MAGA 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 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 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"}]

608060405261dead60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c5f6101000a81548160ff0219169083151502179055506040518060400160405280600481526020017f4d414741000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d4147410000000000000000000000000000000000000000000000000000000081525060128260039081620000df919062000726565b508160049081620000f1919062000726565b508060055f6101000a81548160ff021916908360ff1602179055505050506200012f62000123620001c960201b60201c565b620001d060201b60201c565b5f6a52b7d2dcc80cd2e40000009050620493e0601b819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c1620001b46200029560201b60201c565b83620002be60201b60201c565b505062000989565b5f33905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200032f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003269062000868565b60405180910390fd5b620003425f83836200045b60201b60201c565b62000359816002546200046060201b90919060201c565b600281905550620003b0815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200046060201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044f919062000899565b60405180910390a35050565b505050565b5f808284620004709190620008e1565b905083811015620004b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004af9062000969565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200053e57607f821691505b602082108103620005545762000553620004f9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200057b565b620005c486836200057b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200060e620006086200060284620005dc565b620005e5565b620005dc565b9050919050565b5f819050919050565b6200062983620005ee565b62000641620006388262000615565b84845462000587565b825550505050565b5f90565b6200065762000649565b620006648184846200061e565b505050565b5b818110156200068b576200067f5f826200064d565b6001810190506200066a565b5050565b601f821115620006da57620006a4816200055a565b620006af846200056c565b81016020851015620006bf578190505b620006d7620006ce856200056c565b83018262000669565b50505b505050565b5f82821c905092915050565b5f620006fc5f1984600802620006df565b1980831691505092915050565b5f620007168383620006eb565b9150826002028217905092915050565b6200073182620004c2565b67ffffffffffffffff8111156200074d576200074c620004cc565b5b62000759825462000526565b620007668282856200068f565b5f60209050601f8311600181146200079c575f841562000787578287015190505b62000793858262000709565b86555062000802565b601f198416620007ac866200055a565b5f5b82811015620007d557848901518255600182019150602085019450602081019050620007ae565b86831015620007f55784890151620007f1601f891682620006eb565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000850601f836200080a565b91506200085d826200081a565b602082019050919050565b5f6020820190508181035f830152620008818162000842565b9050919050565b6200089381620005dc565b82525050565b5f602082019050620008ae5f83018462000888565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008ed82620005dc565b9150620008fa83620005dc565b9250828201905080821115620009155762000914620008b4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62000951601b836200080a565b91506200095e826200091b565b602082019050919050565b5f6020820190508181035f830152620009828162000943565b9050919050565b61407d80620009975f395ff3fe60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b9585604051806060016040528060288152602001613fd86028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d709061351a565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e229061351a565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135a8565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe19061351a565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061365c565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280602581526020016140236025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a9061351a565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd9061351a565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e9061351a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc906136ea565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990613778565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790613806565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c90613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613922565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b5919061396d565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f7919061396d565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a39919061396d565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b32919061396d565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b74919061396d565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb6919061396d565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139a0565b9050809150509392505050565b5f808284611d1c919061396d565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a1d565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613aab565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613922565b60405180910390fd5b6120448383836128c2565b6120ad81604051806060016040528060268152602001613fb2602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613ac9565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613b37565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613c52565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613c52565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139a0565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613cbe565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613cbe565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139a0565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613ce9565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139a0565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613d1e565b90508284826128029190613d8c565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613e2c565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba838360405180606001604052806023815260200161400060239139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613ac9565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613c52565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613cbe565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613e4a565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613e93565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613ebe565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613e93565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613ee5565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad9190613f61565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613ac9565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613c52565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613d8c565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350460208361305a565b915061350f826134d0565b602082019050919050565b5f6020820190508181035f830152613531816134f8565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f613592602c8361305a565b915061359d82613538565b604082019050919050565b5f6020820190508181035f8301526135bf81613586565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61364660458361305a565b9150613651826135c6565b606082019050919050565b5f6020820190508181035f8301526136738161363a565b9050919050565b7f4f776e61626c653a206e6577204d414741206f776e657220697320746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f6136d4602b8361305a565b91506136df8261367a565b604082019050919050565b5f6020820190508181035f830152613701816136c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61376260248361305a565b915061376d82613708565b604082019050919050565b5f6020820190508181035f83015261378f81613756565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137f060228361305a565b91506137fb82613796565b604082019050919050565b5f6020820190508181035f83015261381d816137e4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61387e60258361305a565b915061388982613824565b604082019050919050565b5f6020820190508181035f8301526138ab81613872565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61390c60238361305a565b9150613917826138b2565b604082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139778261301f565b91506139828361301f565b925082820190508082111561399a57613999613940565b5b92915050565b5f6139aa8261301f565b91506139b58361301f565b92508282039050818111156139cd576139cc613940565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a07601b8361305a565b9150613a12826139d3565b602082019050919050565b5f6020820190508181035f830152613a34816139fb565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972204d4147415f8201527f20697320616c72656164792073657420746f20746861742076616c7565000000602082015250565b5f613a95603d8361305a565b9150613aa082613a3b565b604082019050919050565b5f6020820190508181035f830152613ac281613a89565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613b318161312e565b92915050565b5f60208284031215613b4c57613b4b6130fa565b5b5f613b5984828501613b23565b91505092915050565b5f819050919050565b5f613b85613b80613b7b84613b62565b6131f3565b61301f565b9050919050565b613b9581613b6b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bcd8161311d565b82525050565b5f613bde8383613bc4565b60208301905092915050565b5f602082019050919050565b5f613c0082613b9b565b613c0a8185613ba5565b9350613c1583613bb5565b805f5b83811015613c45578151613c2c8882613bd3565b9750613c3783613bea565b925050600181019050613c18565b5085935050505092915050565b5f60a082019050613c655f830188613028565b613c726020830187613b8c565b8181036040830152613c848186613bf6565b9050613c9360608301856132eb565b613ca06080830184613028565b9695505050505050565b5f81519050613cb881613158565b92915050565b5f60208284031215613cd357613cd26130fa565b5b5f613ce084828501613caa565b91505092915050565b5f606082019050613cfc5f830186613028565b613d096020830185613028565b613d166040830184613028565b949350505050565b5f613d288261301f565b9150613d338361301f565b9250828202613d418161301f565b91508282048414831517613d5857613d57613940565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d968261301f565b9150613da18361301f565b925082613db157613db0613d5f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e1660218361305a565b9150613e2182613dbc565b604082019050919050565b5f6020820190508181035f830152613e4381613e0a565b9050919050565b5f606082019050613e5d5f8301866132eb565b613e6a60208301856132eb565b613e776040830184613028565b949350505050565b5f81519050613e8d81613369565b92915050565b5f60208284031215613ea857613ea76130fa565b5b5f613eb584828501613e7f565b91505092915050565b5f604082019050613ed15f8301856132eb565b613ede6020830184613028565b9392505050565b5f61010082019050613ef95f83018b6132eb565b613f06602083018a6132eb565b613f136040830189613028565b613f206060830188613028565b613f2d6080830187613b8c565b613f3a60a0830186613b8c565b613f4760c08301856132eb565b613f5460e0830184613028565b9998505050505050505050565b5f805f60608486031215613f7857613f776130fa565b5b5f613f8586828701613caa565b9350506020613f9686828701613caa565b9250506040613fa786828701613caa565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a207375627472616374696f6e204d414741206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eaaff68a269c2b268618c255c8e22c40310f69aa5a4f3b84589341556d1ca7b064736f6c63430008140033

Deployed Bytecode

0x60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b9585604051806060016040528060288152602001613fd86028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d709061351a565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e229061351a565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135a8565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe19061351a565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061365c565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280602581526020016140236025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a9061351a565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd9061351a565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e9061351a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc906136ea565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990613778565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790613806565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c90613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613922565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b5919061396d565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f7919061396d565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a39919061396d565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b32919061396d565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b74919061396d565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb6919061396d565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139a0565b9050809150509392505050565b5f808284611d1c919061396d565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a1d565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613aab565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613922565b60405180910390fd5b6120448383836128c2565b6120ad81604051806060016040528060268152602001613fb2602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613ac9565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613b37565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613c52565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613c52565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139a0565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613cbe565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613cbe565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139a0565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613ce9565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139a0565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613d1e565b90508284826128029190613d8c565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613e2c565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba838360405180606001604052806023815260200161400060239139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613ac9565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613c52565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613cbe565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613e4a565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613e93565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613ebe565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613e93565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613ee5565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad9190613f61565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613ac9565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613af6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613c52565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613d8c565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350460208361305a565b915061350f826134d0565b602082019050919050565b5f6020820190508181035f830152613531816134f8565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f613592602c8361305a565b915061359d82613538565b604082019050919050565b5f6020820190508181035f8301526135bf81613586565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61364660458361305a565b9150613651826135c6565b606082019050919050565b5f6020820190508181035f8301526136738161363a565b9050919050565b7f4f776e61626c653a206e6577204d414741206f776e657220697320746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f6136d4602b8361305a565b91506136df8261367a565b604082019050919050565b5f6020820190508181035f830152613701816136c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61376260248361305a565b915061376d82613708565b604082019050919050565b5f6020820190508181035f83015261378f81613756565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137f060228361305a565b91506137fb82613796565b604082019050919050565b5f6020820190508181035f83015261381d816137e4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61387e60258361305a565b915061388982613824565b604082019050919050565b5f6020820190508181035f8301526138ab81613872565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61390c60238361305a565b9150613917826138b2565b604082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139778261301f565b91506139828361301f565b925082820190508082111561399a57613999613940565b5b92915050565b5f6139aa8261301f565b91506139b58361301f565b92508282039050818111156139cd576139cc613940565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a07601b8361305a565b9150613a12826139d3565b602082019050919050565b5f6020820190508181035f830152613a34816139fb565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972204d4147415f8201527f20697320616c72656164792073657420746f20746861742076616c7565000000602082015250565b5f613a95603d8361305a565b9150613aa082613a3b565b604082019050919050565b5f6020820190508181035f830152613ac281613a89565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613b318161312e565b92915050565b5f60208284031215613b4c57613b4b6130fa565b5b5f613b5984828501613b23565b91505092915050565b5f819050919050565b5f613b85613b80613b7b84613b62565b6131f3565b61301f565b9050919050565b613b9581613b6b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bcd8161311d565b82525050565b5f613bde8383613bc4565b60208301905092915050565b5f602082019050919050565b5f613c0082613b9b565b613c0a8185613ba5565b9350613c1583613bb5565b805f5b83811015613c45578151613c2c8882613bd3565b9750613c3783613bea565b925050600181019050613c18565b5085935050505092915050565b5f60a082019050613c655f830188613028565b613c726020830187613b8c565b8181036040830152613c848186613bf6565b9050613c9360608301856132eb565b613ca06080830184613028565b9695505050505050565b5f81519050613cb881613158565b92915050565b5f60208284031215613cd357613cd26130fa565b5b5f613ce084828501613caa565b91505092915050565b5f606082019050613cfc5f830186613028565b613d096020830185613028565b613d166040830184613028565b949350505050565b5f613d288261301f565b9150613d338361301f565b9250828202613d418161301f565b91508282048414831517613d5857613d57613940565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d968261301f565b9150613da18361301f565b925082613db157613db0613d5f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e1660218361305a565b9150613e2182613dbc565b604082019050919050565b5f6020820190508181035f830152613e4381613e0a565b9050919050565b5f606082019050613e5d5f8301866132eb565b613e6a60208301856132eb565b613e776040830184613028565b949350505050565b5f81519050613e8d81613369565b92915050565b5f60208284031215613ea857613ea76130fa565b5b5f613eb584828501613e7f565b91505092915050565b5f604082019050613ed15f8301856132eb565b613ede6020830184613028565b9392505050565b5f61010082019050613ef95f83018b6132eb565b613f06602083018a6132eb565b613f136040830189613028565b613f206060830188613028565b613f2d6080830187613b8c565b613f3a60a0830186613b8c565b613f4760c08301856132eb565b613f5460e0830184613028565b9998505050505050505050565b5f805f60608486031215613f7857613f776130fa565b5b5f613f8586828701613caa565b9350506020613f9686828701613caa565b9250506040613fa786828701613caa565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a207375627472616374696f6e204d414741206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eaaff68a269c2b268618c255c8e22c40310f69aa5a4f3b84589341556d1ca7b064736f6c63430008140033

Deployed Bytecode Sourcemap

15471:10492:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15701:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4993:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15741:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7167:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15545:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6120:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7833:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15970:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5955:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16045:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8597:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16130:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16359:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16478:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1095:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6291:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;770:103;;;;;;;;;;;;;:::i;:::-;;15861:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16249:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18876:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;547:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15938:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15898:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5212:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18295:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16326:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16440:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9318:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6631:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19289:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16209:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16676:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16167:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16404:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19162:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15593:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16088:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6869:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15659:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15784:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;881:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15821:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16005:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15701;;;;:::o;4993:100::-;5047:13;5080:5;5073:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4993:100;:::o;15741:34::-;;;;:::o;7167:179::-;7250:4;7267:49;7276:12;:10;:12::i;:::-;7300:7;7309:6;7267:8;:49::i;:::-;7334:4;7327:11;;7167:179;;;;:::o;15545:41::-;;;;;;;;;;;;;:::o;6120:108::-;6181:7;6208:12;;6201:19;;6120:108;:::o;7833:355::-;7973:4;7990:36;8000:6;8008:9;8019:6;7990:9;:36::i;:::-;8037:121;8046:6;8054:12;:10;:12::i;:::-;8068:89;8106:6;8068:89;;;;;;;;;;;;;;;;;:11;:19;8080:6;8068:19;;;;;;;;;;;;;;;:33;8088:12;:10;:12::i;:::-;8068:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8037:8;:121::i;:::-;8176:4;8169:11;;7833:355;;;;;:::o;15970:26::-;;;;:::o;5955:100::-;6013:5;6038:9;;;;;;;;;;;6031:16;;5955:100;:::o;16045:36::-;;;;:::o;8597:218::-;8685:4;8702:83;8711:12;:10;:12::i;:::-;8725:7;8734:50;8773:10;8734:11;:25;8746:12;:10;:12::i;:::-;8734:25;;;;;;;;;;;;;;;:34;8760:7;8734:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8702:8;:83::i;:::-;8803:4;8796:11;;8597:218;;;;:::o;16130:30::-;;;;:::o;16359:38::-;;;;;;;;;;;;;:::o;16478:40::-;;;;;;;;;;;;;:::o;1095:90::-;1135:7;1162:15;1155:22;;1095:90;:::o;6291:127::-;6365:7;6392:9;:18;6402:7;6392:18;;;;;;;;;;;;;;;;6385:25;;6291:127;;;:::o;770:103::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;835:30:::1;862:1;835:18;:30::i;:::-;770:103::o:0;15861:30::-;;;;:::o;16249:70::-;;;;;;;;;;;;;:::o;18876:276::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18974:16:::1;;18962:8;:28:::0;18954:85:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19089:16;;19079:8;19055:51;;;;;;;;;;19136:8;19117:16;:27;;;;18876:276:::0;:::o;547:87::-;593:7;620:6;;;;;;;;;;;613:13;;547:87;:::o;15938:25::-;;;;:::o;15898:31::-;;;;:::o;5212:104::-;5268:13;5301:7;5294:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5212:104;:::o;18295:252::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18402:11:::1;;;;;;;;;;;18394:19;;:4;:19;;::::0;18386:101:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18498:41;18527:4;18533:5;18498:28;:41::i;:::-;18295:252:::0;;:::o;16326:26::-;;;;;;;;;;;;;:::o;16440:31::-;;;;:::o;9318:269::-;9411:4;9428:129;9437:12;:10;:12::i;:::-;9451:7;9460:96;9499:15;9460:96;;;;;;;;;;;;;;;;;:11;:25;9472:12;:10;:12::i;:::-;9460:25;;;;;;;;;;;;;;;:34;9486:7;9460:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9428:8;:129::i;:::-;9575:4;9568:11;;9318:269;;;;:::o;6631:175::-;6717:4;6734:42;6744:12;:10;:12::i;:::-;6758:9;6769:6;6734:9;:42::i;:::-;6794:4;6787:11;;6631:175;;;;:::o;19289:110::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19385:6:::1;19364:18;:27;;;;19289:110:::0;:::o;16209:33::-;;;;;;;;;;;;;:::o;16676:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16167:33::-;;;;:::o;16404:29::-;;;;;;;;;;;;;:::o;19162:117::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19263:8:::1;19239:21;;:32;;;;;;;;;;;;;;;;;;19162:117:::0;:::o;15593:27::-;;;;;;;;;;;;;:::o;16088:33::-;;;;:::o;6869:151::-;6958:7;6985:11;:18;6997:5;6985:18;;;;;;;;;;;;;;;:27;7004:7;6985:27;;;;;;;;;;;;;;;;6978:34;;6869:151;;;;:::o;15659:33::-;;;;:::o;15784:30::-;;;;:::o;881:206::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;990:1:::1;970:22;;:8;:22;;::::0;962:78:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1051:28;1070:8;1051:18;:28::i;:::-;881:206:::0;:::o;15821:31::-;;;;:::o;16005:33::-;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;12500:373::-;12646:1;12629:19;;:5;:19;;;12621:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12727:1;12708:21;;:7;:21;;;12700:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12811:6;12781:11;:18;12793:5;12781:18;;;;;;;;;;;;;;;:27;12800:7;12781:27;;;;;;;;;;;;;;;:36;;;;12849:7;12833:32;;12842:5;12833:32;;;12858:6;12833:32;;;;;;:::i;:::-;;;;;;;;12500:373;;;:::o;19413:2481::-;19561:1;19545:18;;:4;:18;;;19537:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;19648:1;19634:16;;:2;:16;;;19626:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19717:1;19707:6;:11;19703:93;;19735:28;19751:4;19757:2;19761:1;19735:15;:28::i;:::-;19778:7;;19703:93;19808:28;19839:24;19857:4;19839:9;:24::i;:::-;19808:55;;19876:12;19915:18;;19891:20;:42;;19876:57;;19950:7;:33;;;;;19975:8;;;;;;;;;;;19974:9;19950:33;:81;;;;;20000:25;:31;20026:4;20000:31;;;;;;;;;;;;;;;;;;;;;;;;;19950:81;:113;;;;;20056:7;:5;:7::i;:::-;20048:15;;:4;:15;;;;19950:113;:143;;;;;20086:7;:5;:7::i;:::-;20080:13;;:2;:13;;;;19950:143;:181;;;;;20110:21;;;;;;;;;;;19950:181;19946:432;;;20169:4;20158:8;;:15;;;;;;;;;;;;;;;;;;20188:40;20209:18;;20188:20;:40::i;:::-;20243:34;20258:18;;20243:14;:34::i;:::-;20292:43;20313:21;;20292:20;:43::i;:::-;20361:5;20350:8;;:16;;;;;;;;;;;;;;;;;;19946:432;20392:12;20408:8;;;;;;;;;;;20407:9;20392:24;;20432:7;20429:1408;;;20456:12;20483;20523;20561;20601;20641:25;:31;20667:4;20641:31;;;;;;;;;;;;;;;;;;;;;;;;;20638:997;;;20699:36;20731:3;20699:27;20710:15;;20699:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20692:43;;20776:4;20754:18;;:26;;;;;;;:::i;:::-;;;;;;;;20806:39;20841:3;20806:30;20817:18;;20806:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;20799:46;;20889:4;20864:21;;:29;;;;;;;:::i;:::-;;;;;;;;20919:36;20951:3;20919:27;20930:15;;20919:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20912:43;;20996:4;20974:18;;:26;;;;;;;:::i;:::-;;;;;;;;21026:31;21053:3;21026:22;21037:10;;21026:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;21019:38;;21083:34;21112:4;21083:24;21102:4;21083:14;21092:4;21083;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21076:41;;20638:997;;;21141:25;:29;21167:2;21141:29;;;;;;;;;;;;;;;;;;;;;;;;;21138:497;;;21197:37;21230:3;21197:28;21208:16;;21197:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21190:44;;21275:4;21253:18;;:26;;;;;;;:::i;:::-;;;;;;;;21305:40;21341:3;21305:31;21316:19;;21305:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;21298:47;;21389:4;21364:21;;:29;;;;;;;:::i;:::-;;;;;;;;21419:37;21452:3;21419:28;21430:16;;21419:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21412:44;;21497:4;21475:18;;:26;;;;;;;:::i;:::-;;;;;;;;21527:32;21555:3;21527:23;21538:11;;21527:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;21520:39;;21585:34;21614:4;21585:24;21604:4;21585:14;21594:4;21585;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21578:41;;21138:497;20638:997;21662:16;21673:4;21662:6;:10;;:16;;;;:::i;:::-;21653:25;;21703:1;21696:4;:8;21693:52;;;21706:39;21722:4;21728:10;;;;;;;;;;;21740:4;21706:15;:39::i;:::-;21693:52;21770:1;21763:4;:8;21760:65;;;21773:52;21789:4;21803;21810:14;21819:4;21810;:8;;:14;;;;:::i;:::-;21773:15;:52::i;:::-;21760:65;20441:1396;;;;;20429:1408;21851:33;21867:4;21873:2;21877:6;21851:15;:33::i;:::-;19526:2368;;;19413:2481;;;;:::o;2668:192::-;2754:7;2787:1;2782;:6;;2790:12;2774:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2814:9;2830:1;2826;:5;;;;:::i;:::-;2814:17;;2851:1;2844:8;;;2668:192;;;;;:::o;2330:181::-;2388:7;2408:9;2424:1;2420;:5;;;;:::i;:::-;2408:17;;2449:1;2444;:6;;2436:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2502:1;2495:8;;;2330:181;;;;:::o;1193:191::-;1267:16;1286:6;;;;;;;;;;;1267:25;;1312:8;1303:6;;:17;;;;;;;;;;;;;;;;;;1367:8;1336:40;;1357:8;1336:40;;;;;;;;;;;;1256:128;1193:191;:::o;18555:311::-;18681:5;18646:40;;:25;:31;18672:4;18646:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;18638:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;18797:5;18763:25;:31;18789:4;18763:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18852:5;18818:40;;18846:4;18818:40;;;;;;;;;;;;18555:311;;:::o;10082:564::-;10231:1;10213:20;;:6;:20;;;10205:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10315:1;10294:23;;:9;:23;;;10286:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10370:47;10391:6;10399:9;10410:6;10370:20;:47::i;:::-;10450:71;10472:6;10450:71;;;;;;;;;;;;;;;;;:9;:17;10460:6;10450:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;10430:9;:17;10440:6;10430:17;;;;;;;;;;;;;;;:91;;;;10555:32;10580:6;10555:9;:20;10565:9;10555:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10532:9;:20;10542:9;10532:20;;;;;;;;;;;;;;;:55;;;;10620:9;10603:35;;10612:6;10603:35;;;10631:6;10603:35;;;;;;:::i;:::-;;;;;;;;10082:564;;;:::o;21906:993::-;22031:21;22069:1;22055:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22031:40;;22100:4;22082;22087:1;22082:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22126:11;;;;;;;;;;;22116:4;22121:1;22116:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;22166:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22151:37;;:11;;;;;;;;;;;:37;;;22148:685;;22234:15;;;;;;;;;;;:66;;;22319:6;22344:1;22392:4;22415:23;;;;;;;;;;;22473:15;22234:269;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22148:685;;;22564:15;;;;;;;;;;;:69;;;22652:6;22677:1;22726:4;22749:23;;;;;;;;;;;22791:15;22564:257;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22148:685;22885:6;22864:18;;:27;;;;:::i;:::-;22843:18;:48;;;;21960:939;21906:993;:::o;22907:779::-;23016:12;23031:13;23042:1;23031:6;:10;;:13;;;;:::i;:::-;23016:28;;23055:17;23075:16;23086:4;23075:6;:10;;:16;;;;:::i;:::-;23055:36;;23104:22;23136:11;;;;;;;;;;;23129:29;;;23167:4;23129:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23104:69;;23218:37;23236:4;23249;23218:17;:37::i;:::-;23386:18;23407:64;23456:14;23414:11;;;;;;;;;;;23407:29;;;23445:4;23407:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;:64;;;;:::i;:::-;23386:85;;23521:39;23538:9;23549:10;23521:16;:39::i;:::-;23613:6;23592:18;;:27;;;;:::i;:::-;23571:18;:48;;;;23635:43;23650:4;23656:10;23668:9;23635:43;;;;;;;;:::i;:::-;;;;;;;;22955:731;;;;22907:779;:::o;25587:369::-;25744:14;;;;;;;;;;;25729:29;;:11;;;;;;;;;;;:29;;;25726:158;;25774:39;25792:6;25807:4;25774:17;:39::i;:::-;25726:158;;;25844:28;25865:6;25844:20;:28::i;:::-;25726:158;25942:6;25918:21;;:30;;;;:::i;:::-;25894:21;:54;;;;25587:369;:::o;2868:476::-;2926:7;3181:1;3176;:6;3172:47;;3206:1;3199:8;;;;3172:47;3231:9;3247:1;3243;:5;;;;:::i;:::-;3231:17;;3276:1;3271;3267;:5;;;;:::i;:::-;:10;3259:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3335:1;3328:8;;;2868:476;;;;;:::o;3352:132::-;3410:7;3437:39;3441:1;3444;3437:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3430:46;;3352:132;;;;:::o;2519:141::-;2577:7;2604:48;2608:1;2611;2604:48;;;;;;;;;;;;;;;;;:3;:48::i;:::-;2597:55;;2519:141;;;;:::o;13481:125::-;;;;:::o;24266:689::-;24406:21;24444:1;24430:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24406:40;;24475:4;24457;24462:1;24457:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24501:11;;;;;;;;;;;24491:4;24496:1;24491:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;24549:15;;;;;;;;;;;:69;;;24633:11;24659:1;24704:4;24731:13;;;;;;;;;;;24760:15;24549:237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24797:14;24821:11;;;;;;;;;;;24814:29;;;24852:13;;;;;;;;;;;24814:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24797:70;;24885:11;;;;;;;;;;;24878:32;;;24919:13;;;;;;;;;;;24934:4;24940:6;24878:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24335:620;;24266:689;;:::o;23694:564::-;23854:11;;;;;;;;;;;23847:27;;;23883:15;;;;;;;;;;;23900:10;23847:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23952:15;;;;;;;;;;;:28;;;24003:4;24023:11;;;;;;;;;;;24049;24075:10;24100:1;24143;24186:23;;;;;;;;;;;24224:15;23952:298;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23694:564;;:::o;24963:616::-;25104:21;25142:1;25128:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25104:40;;25173:4;25155;25160:1;25155:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25199:11;;;;;;;;;;;25189:4;25194:1;25189:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;25231:14;;;;;;;;;;;25221:4;25226:1;25221:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;25299:15;;;;;;;;;;;:69;;;25387:11;25417:1;25466:4;25497;25521:15;25299:252;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25282:288;25022:557;24963:616;:::o;3492:278::-;3578:7;3610:1;3606;:5;3613:12;3598:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3637:9;3653:1;3649;:5;;;;:::i;:::-;3637:17;;3761:1;3754:8;;;3492: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:231::-;10631:34;10627:1;10619:6;10615:14;10608:58;10700:14;10695:2;10687:6;10683:15;10676:39;10491:231;:::o;10728:366::-;10870:3;10891:67;10955:2;10950:3;10891:67;:::i;:::-;10884:74;;10967:93;11056:3;10967:93;:::i;:::-;11085:2;11080:3;11076:12;11069:19;;10728:366;;;:::o;11100:419::-;11266:4;11304:2;11293:9;11289:18;11281:26;;11353:9;11347:4;11343:20;11339:1;11328:9;11324:17;11317:47;11381:131;11507:4;11381:131;:::i;:::-;11373:139;;11100:419;;;:::o;11525:293::-;11665:34;11661:1;11653:6;11649:14;11642:58;11734:34;11729:2;11721:6;11717:15;11710:59;11803:7;11798:2;11790:6;11786:15;11779:32;11525:293;:::o;11824:366::-;11966:3;11987:67;12051:2;12046:3;11987:67;:::i;:::-;11980:74;;12063:93;12152:3;12063:93;:::i;:::-;12181:2;12176:3;12172:12;12165:19;;11824:366;;;:::o;12196:419::-;12362:4;12400:2;12389:9;12385:18;12377:26;;12449:9;12443:4;12439:20;12435:1;12424:9;12420:17;12413:47;12477:131;12603:4;12477:131;:::i;:::-;12469:139;;12196:419;;;:::o;12621:230::-;12761:34;12757:1;12749:6;12745:14;12738:58;12830:13;12825:2;12817:6;12813:15;12806:38;12621:230;:::o;12857:366::-;12999:3;13020:67;13084:2;13079:3;13020:67;:::i;:::-;13013:74;;13096:93;13185:3;13096:93;:::i;:::-;13214:2;13209:3;13205:12;13198:19;;12857:366;;;:::o;13229:419::-;13395:4;13433:2;13422:9;13418:18;13410:26;;13482:9;13476:4;13472:20;13468:1;13457:9;13453:17;13446:47;13510:131;13636:4;13510:131;:::i;:::-;13502:139;;13229:419;;;:::o;13654:223::-;13794:34;13790:1;13782:6;13778:14;13771:58;13863:6;13858:2;13850:6;13846:15;13839:31;13654:223;:::o;13883:366::-;14025:3;14046:67;14110:2;14105:3;14046:67;:::i;:::-;14039:74;;14122:93;14211:3;14122:93;:::i;:::-;14240:2;14235:3;14231:12;14224:19;;13883:366;;;:::o;14255:419::-;14421:4;14459:2;14448:9;14444:18;14436:26;;14508:9;14502:4;14498:20;14494:1;14483:9;14479:17;14472:47;14536:131;14662:4;14536:131;:::i;:::-;14528:139;;14255:419;;;:::o;14680:221::-;14820:34;14816:1;14808:6;14804:14;14797:58;14889:4;14884:2;14876:6;14872:15;14865:29;14680:221;:::o;14907:366::-;15049:3;15070:67;15134:2;15129:3;15070:67;:::i;:::-;15063:74;;15146:93;15235:3;15146:93;:::i;:::-;15264:2;15259:3;15255:12;15248:19;;14907:366;;;:::o;15279:419::-;15445:4;15483:2;15472:9;15468:18;15460:26;;15532:9;15526:4;15522:20;15518:1;15507:9;15503:17;15496:47;15560:131;15686:4;15560:131;:::i;:::-;15552:139;;15279:419;;;:::o;15704:224::-;15844:34;15840:1;15832:6;15828:14;15821:58;15913:7;15908:2;15900:6;15896:15;15889:32;15704:224;:::o;15934:366::-;16076:3;16097:67;16161:2;16156:3;16097:67;:::i;:::-;16090:74;;16173:93;16262:3;16173:93;:::i;:::-;16291:2;16286:3;16282:12;16275:19;;15934:366;;;:::o;16306:419::-;16472:4;16510:2;16499:9;16495:18;16487:26;;16559:9;16553:4;16549:20;16545:1;16534:9;16530:17;16523:47;16587:131;16713:4;16587:131;:::i;:::-;16579:139;;16306:419;;;:::o;16731:222::-;16871:34;16867:1;16859:6;16855:14;16848:58;16940:5;16935:2;16927:6;16923:15;16916:30;16731:222;:::o;16959:366::-;17101:3;17122:67;17186:2;17181:3;17122:67;:::i;:::-;17115:74;;17198:93;17287:3;17198:93;:::i;:::-;17316:2;17311:3;17307:12;17300:19;;16959:366;;;:::o;17331:419::-;17497:4;17535:2;17524:9;17520:18;17512:26;;17584:9;17578:4;17574:20;17570:1;17559:9;17555:17;17548:47;17612:131;17738:4;17612:131;:::i;:::-;17604:139;;17331:419;;;:::o;17756:180::-;17804:77;17801:1;17794:88;17901:4;17898:1;17891:15;17925:4;17922:1;17915:15;17942:191;17982:3;18001:20;18019:1;18001:20;:::i;:::-;17996:25;;18035:20;18053:1;18035:20;:::i;:::-;18030:25;;18078:1;18075;18071:9;18064:16;;18099:3;18096:1;18093:10;18090:36;;;18106:18;;:::i;:::-;18090:36;17942:191;;;;:::o;18139:194::-;18179:4;18199:20;18217:1;18199:20;:::i;:::-;18194:25;;18233:20;18251:1;18233:20;:::i;:::-;18228:25;;18277:1;18274;18270:9;18262:17;;18301:1;18295:4;18292:11;18289:37;;;18306:18;;:::i;:::-;18289:37;18139:194;;;;:::o;18339:177::-;18479:29;18475:1;18467:6;18463:14;18456:53;18339:177;:::o;18522:366::-;18664:3;18685:67;18749:2;18744:3;18685:67;:::i;:::-;18678:74;;18761:93;18850:3;18761:93;:::i;:::-;18879:2;18874:3;18870:12;18863:19;;18522:366;;;:::o;18894:419::-;19060:4;19098:2;19087:9;19083:18;19075:26;;19147:9;19141:4;19137:20;19133:1;19122:9;19118:17;19111:47;19175:131;19301:4;19175:131;:::i;:::-;19167:139;;18894:419;;;:::o;19319:248::-;19459:34;19455:1;19447:6;19443:14;19436:58;19528:31;19523:2;19515:6;19511:15;19504:56;19319:248;:::o;19573:366::-;19715:3;19736:67;19800:2;19795:3;19736:67;:::i;:::-;19729:74;;19812:93;19901:3;19812:93;:::i;:::-;19930:2;19925:3;19921:12;19914:19;;19573:366;;;:::o;19945:419::-;20111:4;20149:2;20138:9;20134:18;20126:26;;20198:9;20192:4;20188:20;20184:1;20173:9;20169:17;20162:47;20226:131;20352:4;20226:131;:::i;:::-;20218:139;;19945:419;;;:::o;20370:180::-;20418:77;20415:1;20408:88;20515:4;20512:1;20505:15;20539:4;20536:1;20529:15;20556:180;20604:77;20601:1;20594:88;20701:4;20698:1;20691:15;20725:4;20722:1;20715:15;20742:143;20799:5;20830:6;20824:13;20815:22;;20846:33;20873:5;20846:33;:::i;:::-;20742:143;;;;:::o;20891:351::-;20961:6;21010:2;20998:9;20989:7;20985:23;20981:32;20978:119;;;21016:79;;:::i;:::-;20978:119;21136:1;21161:64;21217:7;21208:6;21197:9;21193:22;21161:64;:::i;:::-;21151:74;;21107:128;20891:351;;;;:::o;21248:85::-;21293:7;21322:5;21311:16;;21248:85;;;:::o;21339:158::-;21397:9;21430:61;21448:42;21457:32;21483:5;21457:32;:::i;:::-;21448:42;:::i;:::-;21430:61;:::i;:::-;21417:74;;21339:158;;;:::o;21503:147::-;21598:45;21637:5;21598:45;:::i;:::-;21593:3;21586:58;21503:147;;:::o;21656:114::-;21723:6;21757:5;21751:12;21741:22;;21656:114;;;:::o;21776:184::-;21875:11;21909:6;21904:3;21897:19;21949:4;21944:3;21940:14;21925:29;;21776:184;;;;:::o;21966:132::-;22033:4;22056:3;22048:11;;22086:4;22081:3;22077:14;22069:22;;21966:132;;;:::o;22104:108::-;22181:24;22199:5;22181:24;:::i;:::-;22176:3;22169:37;22104:108;;:::o;22218:179::-;22287:10;22308:46;22350:3;22342:6;22308:46;:::i;:::-;22386:4;22381:3;22377:14;22363:28;;22218:179;;;;:::o;22403:113::-;22473:4;22505;22500:3;22496:14;22488:22;;22403:113;;;:::o;22552:732::-;22671:3;22700:54;22748:5;22700:54;:::i;:::-;22770:86;22849:6;22844:3;22770:86;:::i;:::-;22763:93;;22880:56;22930:5;22880:56;:::i;:::-;22959:7;22990:1;22975:284;23000:6;22997:1;22994:13;22975:284;;;23076:6;23070:13;23103:63;23162:3;23147:13;23103:63;:::i;:::-;23096:70;;23189:60;23242:6;23189:60;:::i;:::-;23179:70;;23035:224;23022:1;23019;23015:9;23010:14;;22975:284;;;22979:14;23275:3;23268:10;;22676:608;;;22552:732;;;;:::o;23290:831::-;23553:4;23591:3;23580:9;23576:19;23568:27;;23605:71;23673:1;23662:9;23658:17;23649:6;23605:71;:::i;:::-;23686:80;23762:2;23751:9;23747:18;23738:6;23686:80;:::i;:::-;23813:9;23807:4;23803:20;23798:2;23787:9;23783:18;23776:48;23841:108;23944:4;23935:6;23841:108;:::i;:::-;23833:116;;23959:72;24027:2;24016:9;24012:18;24003:6;23959:72;:::i;:::-;24041:73;24109:3;24098:9;24094:19;24085:6;24041:73;:::i;:::-;23290:831;;;;;;;;:::o;24127:143::-;24184:5;24215:6;24209:13;24200:22;;24231:33;24258:5;24231:33;:::i;:::-;24127:143;;;;:::o;24276:351::-;24346:6;24395:2;24383:9;24374:7;24370:23;24366:32;24363:119;;;24401:79;;:::i;:::-;24363:119;24521:1;24546:64;24602:7;24593:6;24582:9;24578:22;24546:64;:::i;:::-;24536:74;;24492:128;24276:351;;;;:::o;24633:442::-;24782:4;24820:2;24809:9;24805:18;24797:26;;24833:71;24901:1;24890:9;24886:17;24877:6;24833:71;:::i;:::-;24914:72;24982:2;24971:9;24967:18;24958:6;24914:72;:::i;:::-;24996;25064:2;25053:9;25049:18;25040:6;24996:72;:::i;:::-;24633:442;;;;;;:::o;25081:410::-;25121:7;25144:20;25162:1;25144:20;:::i;:::-;25139:25;;25178:20;25196:1;25178:20;:::i;:::-;25173:25;;25233:1;25230;25226:9;25255:30;25273:11;25255:30;:::i;:::-;25244:41;;25434:1;25425:7;25421:15;25418:1;25415:22;25395:1;25388:9;25368:83;25345:139;;25464:18;;:::i;:::-;25345:139;25129:362;25081:410;;;;:::o;25497:180::-;25545:77;25542:1;25535:88;25642:4;25639:1;25632:15;25666:4;25663:1;25656:15;25683:185;25723:1;25740:20;25758:1;25740:20;:::i;:::-;25735:25;;25774:20;25792:1;25774:20;:::i;:::-;25769:25;;25813:1;25803:35;;25818:18;;:::i;:::-;25803:35;25860:1;25857;25853:9;25848:14;;25683:185;;;;:::o;25874:220::-;26014:34;26010:1;26002:6;25998:14;25991:58;26083:3;26078:2;26070:6;26066:15;26059:28;25874:220;:::o;26100:366::-;26242:3;26263:67;26327:2;26322:3;26263:67;:::i;:::-;26256:74;;26339:93;26428:3;26339:93;:::i;:::-;26457:2;26452:3;26448:12;26441:19;;26100:366;;;:::o;26472:419::-;26638:4;26676:2;26665:9;26661:18;26653:26;;26725:9;26719:4;26715:20;26711:1;26700:9;26696:17;26689:47;26753:131;26879:4;26753:131;:::i;:::-;26745:139;;26472:419;;;:::o;26897:442::-;27046:4;27084:2;27073:9;27069:18;27061:26;;27097:71;27165:1;27154:9;27150:17;27141:6;27097:71;:::i;:::-;27178:72;27246:2;27235:9;27231:18;27222:6;27178:72;:::i;:::-;27260;27328:2;27317:9;27313:18;27304:6;27260:72;:::i;:::-;26897:442;;;;;;:::o;27345:137::-;27399:5;27430:6;27424:13;27415:22;;27446:30;27470:5;27446:30;:::i;:::-;27345:137;;;;:::o;27488:345::-;27555:6;27604:2;27592:9;27583:7;27579:23;27575:32;27572:119;;;27610:79;;:::i;:::-;27572:119;27730:1;27755:61;27808:7;27799:6;27788:9;27784:22;27755:61;:::i;:::-;27745:71;;27701:125;27488:345;;;;:::o;27839:332::-;27960:4;27998:2;27987:9;27983:18;27975:26;;28011:71;28079:1;28068:9;28064:17;28055:6;28011:71;:::i;:::-;28092:72;28160:2;28149:9;28145:18;28136:6;28092:72;:::i;:::-;27839:332;;;;;:::o;28177:1029::-;28482:4;28520:3;28509:9;28505:19;28497:27;;28534:71;28602:1;28591:9;28587:17;28578:6;28534:71;:::i;:::-;28615:72;28683:2;28672:9;28668:18;28659:6;28615:72;:::i;:::-;28697;28765:2;28754:9;28750:18;28741:6;28697:72;:::i;:::-;28779;28847:2;28836:9;28832:18;28823:6;28779:72;:::i;:::-;28861:81;28937:3;28926:9;28922:19;28913:6;28861:81;:::i;:::-;28952;29028:3;29017:9;29013:19;29004:6;28952:81;:::i;:::-;29043:73;29111:3;29100:9;29096:19;29087:6;29043:73;:::i;:::-;29126;29194:3;29183:9;29179:19;29170:6;29126:73;:::i;:::-;28177:1029;;;;;;;;;;;:::o;29212:663::-;29300:6;29308;29316;29365:2;29353:9;29344:7;29340:23;29336:32;29333:119;;;29371:79;;:::i;:::-;29333:119;29491:1;29516:64;29572:7;29563:6;29552:9;29548:22;29516:64;:::i;:::-;29506:74;;29462:128;29629:2;29655:64;29711:7;29702:6;29691:9;29687:22;29655:64;:::i;:::-;29645:74;;29600:129;29768:2;29794:64;29850:7;29841:6;29830:9;29826:22;29794:64;:::i;:::-;29784:74;;29739:129;29212:663;;;;;:::o

Swarm Source

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