ETH Price: $3,174.68 (-8.26%)
Gas: 3 Gwei

Token

Grab em by the pussy (GPUSSY)
 

Overview

Max Total Supply

690,000,000,000 GPUSSY

Holders

125

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: GPUSSY
Balance
357,730,972,586.787097685 GPUSSY

Value
$0.00
0xa0a9f47c7a91a44089cadfb0df68a5b4bbb0b555
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:
GPUSSY

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-23
*/

/**
 * SPDX-License-Identifier: UNLICENSED
 *
 * https://www.gpussy.org/
 *
*/

pragma solidity ^0.8.24;
 
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be 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;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

contract GPUSSY is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Grab em by the pussy";
    string private constant _symbol = "GPUSSY";
    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);
    
    uint256 private constant _tTotal = 690000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _contractTokenSwapTrigger = 69000000 * 10**9;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWallet;

    uint256 private _taxFee = 0;
    uint256 private _teamFee = 0;
    uint256 private _maxWalletSize = 6900000000 * 10**9;
    uint256 private _buyFee = 10;
    uint256 private _sellFee = 30;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _feesWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _noFees = false;
    bool private _limitContractSwap = true;
    bool private inSwap = false;
    mapping(address => bool) private automatedMarketMakerPairs;

    event Response(bool success);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor () {

        _feesWallet = payable(0xB86795f70fA49B59a6461A711c32298bb55C4d3D);
        
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feesWallet] = true;
        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[_feesWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {

            if(to != uniswapV2Pair && !_isExcludedFromMaxWallet[to] && _maxWalletSize != 0) {
                require(balanceOf(address(to)) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                _teamFee = _buyFee;
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {

                _teamFee = _sellFee;

                if (automatedMarketMakerPairs[to]) {
                    if(contractTokenBalance > _contractTokenSwapTrigger) {
                        if(_limitContractSwap) {
                            contractTokenBalance = _contractTokenSwapTrigger;
                        }
                        swapBack(contractTokenBalance);
                    }
                }
            }
        }
        bool takeFee = true;

        if(_noFees || _isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        } else if(!automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) {
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapBack(uint256 contractTokenBalance) private {
        
        swapTokensForEth(contractTokenBalance);

        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(address(this).balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        (bool success, ) = _feesWallet.call{value: amount}("");

        emit Response(success);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        automatedMarketMakerPairs[uniswapV2Pair] = true;
        tradingOpen = true;
    }
    
    function setContractTokenSwapTrigger(uint256 numToken) external onlyOwner {
        _contractTokenSwapTrigger = numToken * 10**9;
    }

    function setMaxWallet(uint256 amt) external onlyOwner {
        _maxWalletSize = amt * 10**9;
    }

    function setFeesInEffect(bool onoff) external onlyOwner {
        _noFees = !onoff;
    }

    function setLimitContractSwap(bool onoff) external onlyOwner {
        _limitContractSwap = onoff;
    }
    
    function setFeesWallet (address payable fee) external onlyOwner {
        _isExcludedFromFee[_feesWallet] = false;
        _feesWallet = fee;
        _isExcludedFromFee[fee] = true;
    }

    function setFees(uint256 buy, uint256 sell, uint256 redist) external onlyOwner {
        _buyFee = buy;
        _sellFee = sell;
        _taxFee = redist;
    }

    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }

    function transferForeignToken(address _token, address _to) external onlyOwner returns (bool _sent) {
        require(_token != address(0), "_token address cannot be 0");
        require(_token != address(this), "Can't withdraw native tokens");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"Response","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setContractTokenSwapTrigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"redist","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setFeesInEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"fee","type":"address"}],"name":"setFeesWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setLimitContractSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","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"},{"stateMutability":"payable","type":"receive"}]

6080604052682567ac70392b8800005f1961001a9190610561565b5f1961002691906105be565b60025566f52322698080006004555f600a555f600b55675fc1b97136320000600c55600a600d55601e600e55600a54600f55600b546010555f601360146101000a81548160ff0219169083151502179055505f601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff0219169083151502179055505f601360176101000a81548160ff0219169083151502179055503480156100d2575f80fd5b505f6100e26104fd60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073b86795f70fa49b59a6461a711c32298bb55c4d3d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025460055f6101e66104fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f61023661050460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f61036361050460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061048b6104fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef682567ac70392b8800006040516104f09190610600565b60405180910390a3610619565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61056b8261052b565b91506105768361052b565b92508261058657610585610534565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6105c88261052b565b91506105d38361052b565b92508282039050818111156105eb576105ea610591565b5b92915050565b6105fa8161052b565b82525050565b5f6020820190506106135f8301846105f1565b92915050565b613d5c806106265f395ff3fe60806040526004361061014e575f3560e01c80638da5cb5b116100b5578063c9567bf91161006e578063c9567bf914610463578063cd5caee814610479578063cec10c11146104a1578063d043c044146104c9578063db92dbb6146104f1578063dd62ed3e1461051b57610155565b80638da5cb5b1461036d57806395d89b41146103975780639a7a23d6146103c1578063a9059cbb146103e9578063c110788f14610425578063c3c8cd801461044d57610155565b806343d4f92b1161010757806343d4f92b146102795780635d0044ca146102a15780636fc3eaec146102c957806370a08231146102df578063715018a61461031b5780638366e79a1461033157610155565b806306fdde0314610159578063095ea7b31461018357806318160ddd146101bf57806323b872dd146101e957806327f3a72a14610225578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610557565b60405161017a9190612ce6565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612d97565b610594565b6040516101b69190612def565b60405180910390f35b3480156101ca575f80fd5b506101d36105b1565b6040516101e09190612e17565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a9190612e30565b6105c1565b60405161021c9190612def565b60405180910390f35b348015610230575f80fd5b50610239610695565b6040516102469190612e17565b60405180910390f35b34801561025a575f80fd5b506102636106a4565b6040516102709190612e9b565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a9190612eef565b6106ac565b005b3480156102ac575f80fd5b506102c760048036038101906102c29190612f1a565b61084d565b005b3480156102d4575f80fd5b506102dd6108fa565b005b3480156102ea575f80fd5b5061030560048036038101906103009190612f45565b61099e565b6040516103129190612e17565b60405180910390f35b348015610326575f80fd5b5061032f6109ec565b005b34801561033c575f80fd5b5061035760048036038101906103529190612f70565b610b3a565b6040516103649190612def565b60405180910390f35b348015610378575f80fd5b50610381610daa565b60405161038e9190612fbd565b60405180910390f35b3480156103a2575f80fd5b506103ab610dd1565b6040516103b89190612ce6565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e29190613000565b610e0e565b005b3480156103f4575f80fd5b5061040f600480360381019061040a9190612d97565b610f3f565b60405161041c9190612def565b60405180910390f35b348015610430575f80fd5b5061044b6004803603810190610446919061303e565b610f5c565b005b348015610458575f80fd5b5061046161100d565b005b34801561046e575f80fd5b506104776110b9565b005b348015610484575f80fd5b5061049f600480360381019061049a919061303e565b6115e6565b005b3480156104ac575f80fd5b506104c760048036038101906104c29190613069565b611698565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190612f1a565b611746565b005b3480156104fc575f80fd5b506105056117f3565b6040516105129190612e17565b60405180910390f35b348015610526575f80fd5b50610541600480360381019061053c9190612f70565b611823565b60405161054e9190612e17565b60405180910390f35b60606040518060400160405280601481526020017f4772616220656d20627920746865207075737379000000000000000000000000815250905090565b5f6105a76105a06118a5565b84846118ac565b6001905092915050565b5f682567ac70392b880000905090565b5f6105cd848484611a6f565b61068a846105d96118a5565b61068585604051806060016040528060288152602001613cff6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063c6118a5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461210e9092919063ffffffff16565b6118ac565b600190509392505050565b5f61069f3061099e565b905090565b5f6009905090565b6106b46118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790613103565b60405180910390fd5b5f60085f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6108556118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d890613103565b60405180910390fd5b633b9aca00816108f1919061314e565b600c8190555050565b6109026118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590613103565b60405180910390fd5b5f47905061099b81612170565b50565b5f6109e560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612234565b9050919050565b6109f46118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790613103565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f610b436118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690613103565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c34906131d9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290613241565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ce59190612fbd565b602060405180830381865afa158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190613273565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610d6192919061329e565b6020604051808303815f875af1158015610d7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da191906132d9565b91505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4750555353590000000000000000000000000000000000000000000000000000815250905090565b610e166118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9990613103565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2890613374565b60405180910390fd5b610f3b82826122a0565b5050565b5f610f52610f4b6118a5565b8484611a6f565b6001905092915050565b610f646118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe790613103565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b6110156118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890613103565b60405180910390fd5b5f6110ab3061099e565b90506110b6816122f8565b50565b6110c16118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114490613103565b60405180910390fd5b601360149054906101000a900460ff161561119d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611194906133dc565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122a3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16682567ac70392b8800006118ac565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611273573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611297919061340e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611320919061340e565b6040518363ffffffff1660e01b815260040161133d929190613439565b6020604051808303815f875af1158015611359573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137d919061340e565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114043061099e565b5f8061140e610daa565b426040518863ffffffff1660e01b8152600401611430969594939291906134a2565b60606040518083038185885af115801561144c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114719190613501565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161151192919061329e565b6020604051808303815f875af115801561152d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155191906132d9565b50600160145f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555050565b6115ee6118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613103565b60405180910390fd5b8015601360156101000a81548160ff02191690831515021790555050565b6116a06118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390613103565b60405180910390fd5b82600d8190555081600e8190555080600a81905550505050565b61174e6118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d190613103565b60405180910390fd5b633b9aca00816117ea919061314e565b60048190555050565b5f61181e60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661099e565b905090565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361191a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611911906135c1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f9061364f565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a629190612e17565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad4906136dd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b429061376b565b60405180910390fd5b5f8111611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b84906137f9565b60405180910390fd5b611b95610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c035750611bd3610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f905760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611cac575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cba57505f600c5414155b15611d1857600c5481611ccc8461099e565b611cd69190613817565b1115611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e906138ba565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dc1575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e14575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e7257601360149054906101000a900460ff16611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90613922565b60405180910390fd5b600d54600b819055505b5f611e7c3061099e565b9050601360179054906101000a900460ff16158015611ee8575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f005750601360149054906101000a900460ff165b15611f8e57600e54600b8190555060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f8d57600454811115611f8c57601360169054906101000a900460ff1615611f825760045490505b611f8b81612563565b5b5b5b505b5f60019050601360159054906101000a900460ff1680611ff6575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612047575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612054575f90506120fc565b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120f2575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120fb575f90505b5b61210884848484612586565b50505050565b5f838311158290612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c9190612ce6565b60405180910390fd5b505f83856121639190613940565b9050809150509392505050565b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516121b6906139a0565b5f6040518083038185875af1925050503d805f81146121f0576040519150601f19603f3d011682016040523d82523d5f602084013e6121f5565b606091505b505090507fb6caad5b328a3de9a49b44605241a4b72f6f1aa955829d12e37decfd84a0b8ca816040516122289190612def565b60405180910390a15050565b5f60025482111561227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227190613a24565b60405180910390fd5b5f6122836125b3565b905061229881846125dc90919063ffffffff16565b915050919050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6001601360176101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561232f5761232e613a42565b5b60405190808252806020026020018201604052801561235d5781602001602082028036833780820191505090505b50905030815f8151811061237457612373613a6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612418573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243c919061340e565b816001815181106124505761244f613a6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124b63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118ac565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612518959493929190613b53565b5f604051808303815f87803b15801561252f575f80fd5b505af1158015612541573d5f803e3d5ffd5b50505050505f601360176101000a81548160ff02191690831515021790555050565b61256c816122f8565b5f4790505f8111156125825761258147612170565b5b5050565b8061259457612593612625565b5b61259f84848461265e565b806125ad576125ac61281e565b5b50505050565b5f805f6125be612832565b915091506125d581836125dc90919063ffffffff16565b9250505090565b5f61261d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612891565b905092915050565b5f600a5414801561263757505f600b54145b61265c57600a54600f81905550600b546010819055505f600a819055505f600b819055505b565b5f805f805f8061266d876128f2565b9550955095509550955095506126c98660055f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461295290919063ffffffff16565b60055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061275a8560055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299b90919063ffffffff16565b60055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127a4816129f8565b6127ae8483612aaf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161280b9190612e17565b60405180910390a3505050505050505050565b600f54600a81905550601054600b81905550565b5f805f60025490505f682567ac70392b8800009050612865682567ac70392b8800006002546125dc90919063ffffffff16565b82101561288457600254682567ac70392b88000093509350505061288d565b81819350935050505b9091565b5f80831182906128d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ce9190612ce6565b60405180910390fd5b505f83856128e59190613bd8565b9050809150509392505050565b5f805f805f805f805f61290a8a600a54600b54612ae9565b9250925092505f6129196125b3565b90505f805f61292a8e878787612b7b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61299383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061210e565b905092915050565b5f8082846129a99190613817565b9050838110156129ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e590613c52565b60405180910390fd5b8091505092915050565b5f612a016125b3565b90505f612a178284612bff90919063ffffffff16565b9050612a698160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299b90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ac48260025461295290919063ffffffff16565b600281905550612adf8160035461299b90919063ffffffff16565b6003819055505050565b5f805f80612b136064612b05888a612bff90919063ffffffff16565b6125dc90919063ffffffff16565b90505f612b3c6064612b2e888b612bff90919063ffffffff16565b6125dc90919063ffffffff16565b90505f612b6482612b56858c61295290919063ffffffff16565b61295290919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b928589612bff90919063ffffffff16565b90505f612ba88689612bff90919063ffffffff16565b90505f612bbe8789612bff90919063ffffffff16565b90505f612be682612bd8858761295290919063ffffffff16565b61295290919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c0f575f9050612c70565b5f8284612c1c919061314e565b9050828482612c2b9190613bd8565b14612c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6290613ce0565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612cb882612c76565b612cc28185612c80565b9350612cd2818560208601612c90565b612cdb81612c9e565b840191505092915050565b5f6020820190508181035f830152612cfe8184612cae565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d3382612d0a565b9050919050565b612d4381612d29565b8114612d4d575f80fd5b50565b5f81359050612d5e81612d3a565b92915050565b5f819050919050565b612d7681612d64565b8114612d80575f80fd5b50565b5f81359050612d9181612d6d565b92915050565b5f8060408385031215612dad57612dac612d06565b5b5f612dba85828601612d50565b9250506020612dcb85828601612d83565b9150509250929050565b5f8115159050919050565b612de981612dd5565b82525050565b5f602082019050612e025f830184612de0565b92915050565b612e1181612d64565b82525050565b5f602082019050612e2a5f830184612e08565b92915050565b5f805f60608486031215612e4757612e46612d06565b5b5f612e5486828701612d50565b9350506020612e6586828701612d50565b9250506040612e7686828701612d83565b9150509250925092565b5f60ff82169050919050565b612e9581612e80565b82525050565b5f602082019050612eae5f830184612e8c565b92915050565b5f612ebe82612d0a565b9050919050565b612ece81612eb4565b8114612ed8575f80fd5b50565b5f81359050612ee981612ec5565b92915050565b5f60208284031215612f0457612f03612d06565b5b5f612f1184828501612edb565b91505092915050565b5f60208284031215612f2f57612f2e612d06565b5b5f612f3c84828501612d83565b91505092915050565b5f60208284031215612f5a57612f59612d06565b5b5f612f6784828501612d50565b91505092915050565b5f8060408385031215612f8657612f85612d06565b5b5f612f9385828601612d50565b9250506020612fa485828601612d50565b9150509250929050565b612fb781612d29565b82525050565b5f602082019050612fd05f830184612fae565b92915050565b612fdf81612dd5565b8114612fe9575f80fd5b50565b5f81359050612ffa81612fd6565b92915050565b5f806040838503121561301657613015612d06565b5b5f61302385828601612d50565b925050602061303485828601612fec565b9150509250929050565b5f6020828403121561305357613052612d06565b5b5f61306084828501612fec565b91505092915050565b5f805f606084860312156130805761307f612d06565b5b5f61308d86828701612d83565b935050602061309e86828701612d83565b92505060406130af86828701612d83565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130ed602083612c80565b91506130f8826130b9565b602082019050919050565b5f6020820190508181035f83015261311a816130e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61315882612d64565b915061316383612d64565b925082820261317181612d64565b9150828204841483151761318857613187613121565b5b5092915050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f6131c3601a83612c80565b91506131ce8261318f565b602082019050919050565b5f6020820190508181035f8301526131f0816131b7565b9050919050565b7f43616e2774207769746864726177206e617469766520746f6b656e73000000005f82015250565b5f61322b601c83612c80565b9150613236826131f7565b602082019050919050565b5f6020820190508181035f8301526132588161321f565b9050919050565b5f8151905061326d81612d6d565b92915050565b5f6020828403121561328857613287612d06565b5b5f6132958482850161325f565b91505092915050565b5f6040820190506132b15f830185612fae565b6132be6020830184612e08565b9392505050565b5f815190506132d381612fd6565b92915050565b5f602082840312156132ee576132ed612d06565b5b5f6132fb848285016132c5565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61335e603983612c80565b915061336982613304565b604082019050919050565b5f6020820190508181035f83015261338b81613352565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6133c6601783612c80565b91506133d182613392565b602082019050919050565b5f6020820190508181035f8301526133f3816133ba565b9050919050565b5f8151905061340881612d3a565b92915050565b5f6020828403121561342357613422612d06565b5b5f613430848285016133fa565b91505092915050565b5f60408201905061344c5f830185612fae565b6134596020830184612fae565b9392505050565b5f819050919050565b5f819050919050565b5f61348c61348761348284613460565b613469565b612d64565b9050919050565b61349c81613472565b82525050565b5f60c0820190506134b55f830189612fae565b6134c26020830188612e08565b6134cf6040830187613493565b6134dc6060830186613493565b6134e96080830185612fae565b6134f660a0830184612e08565b979650505050505050565b5f805f6060848603121561351857613517612d06565b5b5f6135258682870161325f565b93505060206135368682870161325f565b92505060406135478682870161325f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135ab602483612c80565b91506135b682613551565b604082019050919050565b5f6020820190508181035f8301526135d88161359f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613639602283612c80565b9150613644826135df565b604082019050919050565b5f6020820190508181035f8301526136668161362d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136c7602583612c80565b91506136d28261366d565b604082019050919050565b5f6020820190508181035f8301526136f4816136bb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613755602383612c80565b9150613760826136fb565b604082019050919050565b5f6020820190508181035f83015261378281613749565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137e3602983612c80565b91506137ee82613789565b604082019050919050565b5f6020820190508181035f830152613810816137d7565b9050919050565b5f61382182612d64565b915061382c83612d64565b925082820190508082111561384457613843613121565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138a4602383612c80565b91506138af8261384a565b604082019050919050565b5f6020820190508181035f8301526138d181613898565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e00000000000000005f82015250565b5f61390c601883612c80565b9150613917826138d8565b602082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b5f61394a82612d64565b915061395583612d64565b925082820390508181111561396d5761396c613121565b5b92915050565b5f81905092915050565b50565b5f61398b5f83613973565b91506139968261397d565b5f82019050919050565b5f6139aa82613980565b9150819050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613a0e602a83612c80565b9150613a19826139b4565b604082019050919050565b5f6020820190508181035f830152613a3b81613a02565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ace81612d29565b82525050565b5f613adf8383613ac5565b60208301905092915050565b5f602082019050919050565b5f613b0182613a9c565b613b0b8185613aa6565b9350613b1683613ab6565b805f5b83811015613b46578151613b2d8882613ad4565b9750613b3883613aeb565b925050600181019050613b19565b5085935050505092915050565b5f60a082019050613b665f830188612e08565b613b736020830187613493565b8181036040830152613b858186613af7565b9050613b946060830185612fae565b613ba16080830184612e08565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613be282612d64565b9150613bed83612d64565b925082613bfd57613bfc613bab565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c3c601b83612c80565b9150613c4782613c08565b602082019050919050565b5f6020820190508181035f830152613c6981613c30565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cca602183612c80565b9150613cd582613c70565b604082019050919050565b5f6020820190508181035f830152613cf781613cbe565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a181072a9ecf09782c8b6695ba5a114ecc2336f488dbc9e806fa74a4f4892f9f64736f6c63430008190033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c80638da5cb5b116100b5578063c9567bf91161006e578063c9567bf914610463578063cd5caee814610479578063cec10c11146104a1578063d043c044146104c9578063db92dbb6146104f1578063dd62ed3e1461051b57610155565b80638da5cb5b1461036d57806395d89b41146103975780639a7a23d6146103c1578063a9059cbb146103e9578063c110788f14610425578063c3c8cd801461044d57610155565b806343d4f92b1161010757806343d4f92b146102795780635d0044ca146102a15780636fc3eaec146102c957806370a08231146102df578063715018a61461031b5780638366e79a1461033157610155565b806306fdde0314610159578063095ea7b31461018357806318160ddd146101bf57806323b872dd146101e957806327f3a72a14610225578063313ce5671461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610557565b60405161017a9190612ce6565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612d97565b610594565b6040516101b69190612def565b60405180910390f35b3480156101ca575f80fd5b506101d36105b1565b6040516101e09190612e17565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a9190612e30565b6105c1565b60405161021c9190612def565b60405180910390f35b348015610230575f80fd5b50610239610695565b6040516102469190612e17565b60405180910390f35b34801561025a575f80fd5b506102636106a4565b6040516102709190612e9b565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a9190612eef565b6106ac565b005b3480156102ac575f80fd5b506102c760048036038101906102c29190612f1a565b61084d565b005b3480156102d4575f80fd5b506102dd6108fa565b005b3480156102ea575f80fd5b5061030560048036038101906103009190612f45565b61099e565b6040516103129190612e17565b60405180910390f35b348015610326575f80fd5b5061032f6109ec565b005b34801561033c575f80fd5b5061035760048036038101906103529190612f70565b610b3a565b6040516103649190612def565b60405180910390f35b348015610378575f80fd5b50610381610daa565b60405161038e9190612fbd565b60405180910390f35b3480156103a2575f80fd5b506103ab610dd1565b6040516103b89190612ce6565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e29190613000565b610e0e565b005b3480156103f4575f80fd5b5061040f600480360381019061040a9190612d97565b610f3f565b60405161041c9190612def565b60405180910390f35b348015610430575f80fd5b5061044b6004803603810190610446919061303e565b610f5c565b005b348015610458575f80fd5b5061046161100d565b005b34801561046e575f80fd5b506104776110b9565b005b348015610484575f80fd5b5061049f600480360381019061049a919061303e565b6115e6565b005b3480156104ac575f80fd5b506104c760048036038101906104c29190613069565b611698565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190612f1a565b611746565b005b3480156104fc575f80fd5b506105056117f3565b6040516105129190612e17565b60405180910390f35b348015610526575f80fd5b50610541600480360381019061053c9190612f70565b611823565b60405161054e9190612e17565b60405180910390f35b60606040518060400160405280601481526020017f4772616220656d20627920746865207075737379000000000000000000000000815250905090565b5f6105a76105a06118a5565b84846118ac565b6001905092915050565b5f682567ac70392b880000905090565b5f6105cd848484611a6f565b61068a846105d96118a5565b61068585604051806060016040528060288152602001613cff6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063c6118a5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461210e9092919063ffffffff16565b6118ac565b600190509392505050565b5f61069f3061099e565b905090565b5f6009905090565b6106b46118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790613103565b60405180910390fd5b5f60085f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6108556118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d890613103565b60405180910390fd5b633b9aca00816108f1919061314e565b600c8190555050565b6109026118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590613103565b60405180910390fd5b5f47905061099b81612170565b50565b5f6109e560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612234565b9050919050565b6109f46118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790613103565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f610b436118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690613103565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c34906131d9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290613241565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ce59190612fbd565b602060405180830381865afa158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190613273565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610d6192919061329e565b6020604051808303815f875af1158015610d7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da191906132d9565b91505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4750555353590000000000000000000000000000000000000000000000000000815250905090565b610e166118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9990613103565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2890613374565b60405180910390fd5b610f3b82826122a0565b5050565b5f610f52610f4b6118a5565b8484611a6f565b6001905092915050565b610f646118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe790613103565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b6110156118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890613103565b60405180910390fd5b5f6110ab3061099e565b90506110b6816122f8565b50565b6110c16118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114490613103565b60405180910390fd5b601360149054906101000a900460ff161561119d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611194906133dc565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122a3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16682567ac70392b8800006118ac565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611273573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611297919061340e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611320919061340e565b6040518363ffffffff1660e01b815260040161133d929190613439565b6020604051808303815f875af1158015611359573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137d919061340e565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114043061099e565b5f8061140e610daa565b426040518863ffffffff1660e01b8152600401611430969594939291906134a2565b60606040518083038185885af115801561144c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114719190613501565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161151192919061329e565b6020604051808303815f875af115801561152d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155191906132d9565b50600160145f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555050565b6115ee6118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613103565b60405180910390fd5b8015601360156101000a81548160ff02191690831515021790555050565b6116a06118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390613103565b60405180910390fd5b82600d8190555081600e8190555080600a81905550505050565b61174e6118a5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d190613103565b60405180910390fd5b633b9aca00816117ea919061314e565b60048190555050565b5f61181e60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661099e565b905090565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361191a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611911906135c1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f9061364f565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a629190612e17565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad4906136dd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b429061376b565b60405180910390fd5b5f8111611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b84906137f9565b60405180910390fd5b611b95610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c035750611bd3610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f905760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611cac575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cba57505f600c5414155b15611d1857600c5481611ccc8461099e565b611cd69190613817565b1115611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e906138ba565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dc1575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e14575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e7257601360149054906101000a900460ff16611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90613922565b60405180910390fd5b600d54600b819055505b5f611e7c3061099e565b9050601360179054906101000a900460ff16158015611ee8575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f005750601360149054906101000a900460ff165b15611f8e57600e54600b8190555060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f8d57600454811115611f8c57601360169054906101000a900460ff1615611f825760045490505b611f8b81612563565b5b5b5b505b5f60019050601360159054906101000a900460ff1680611ff6575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612047575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612054575f90506120fc565b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120f2575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120fb575f90505b5b61210884848484612586565b50505050565b5f838311158290612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c9190612ce6565b60405180910390fd5b505f83856121639190613940565b9050809150509392505050565b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516121b6906139a0565b5f6040518083038185875af1925050503d805f81146121f0576040519150601f19603f3d011682016040523d82523d5f602084013e6121f5565b606091505b505090507fb6caad5b328a3de9a49b44605241a4b72f6f1aa955829d12e37decfd84a0b8ca816040516122289190612def565b60405180910390a15050565b5f60025482111561227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227190613a24565b60405180910390fd5b5f6122836125b3565b905061229881846125dc90919063ffffffff16565b915050919050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6001601360176101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561232f5761232e613a42565b5b60405190808252806020026020018201604052801561235d5781602001602082028036833780820191505090505b50905030815f8151811061237457612373613a6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612418573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243c919061340e565b816001815181106124505761244f613a6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124b63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118ac565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612518959493929190613b53565b5f604051808303815f87803b15801561252f575f80fd5b505af1158015612541573d5f803e3d5ffd5b50505050505f601360176101000a81548160ff02191690831515021790555050565b61256c816122f8565b5f4790505f8111156125825761258147612170565b5b5050565b8061259457612593612625565b5b61259f84848461265e565b806125ad576125ac61281e565b5b50505050565b5f805f6125be612832565b915091506125d581836125dc90919063ffffffff16565b9250505090565b5f61261d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612891565b905092915050565b5f600a5414801561263757505f600b54145b61265c57600a54600f81905550600b546010819055505f600a819055505f600b819055505b565b5f805f805f8061266d876128f2565b9550955095509550955095506126c98660055f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461295290919063ffffffff16565b60055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061275a8560055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299b90919063ffffffff16565b60055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127a4816129f8565b6127ae8483612aaf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161280b9190612e17565b60405180910390a3505050505050505050565b600f54600a81905550601054600b81905550565b5f805f60025490505f682567ac70392b8800009050612865682567ac70392b8800006002546125dc90919063ffffffff16565b82101561288457600254682567ac70392b88000093509350505061288d565b81819350935050505b9091565b5f80831182906128d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ce9190612ce6565b60405180910390fd5b505f83856128e59190613bd8565b9050809150509392505050565b5f805f805f805f805f61290a8a600a54600b54612ae9565b9250925092505f6129196125b3565b90505f805f61292a8e878787612b7b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61299383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061210e565b905092915050565b5f8082846129a99190613817565b9050838110156129ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e590613c52565b60405180910390fd5b8091505092915050565b5f612a016125b3565b90505f612a178284612bff90919063ffffffff16565b9050612a698160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299b90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ac48260025461295290919063ffffffff16565b600281905550612adf8160035461299b90919063ffffffff16565b6003819055505050565b5f805f80612b136064612b05888a612bff90919063ffffffff16565b6125dc90919063ffffffff16565b90505f612b3c6064612b2e888b612bff90919063ffffffff16565b6125dc90919063ffffffff16565b90505f612b6482612b56858c61295290919063ffffffff16565b61295290919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b928589612bff90919063ffffffff16565b90505f612ba88689612bff90919063ffffffff16565b90505f612bbe8789612bff90919063ffffffff16565b90505f612be682612bd8858761295290919063ffffffff16565b61295290919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c0f575f9050612c70565b5f8284612c1c919061314e565b9050828482612c2b9190613bd8565b14612c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6290613ce0565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612cb882612c76565b612cc28185612c80565b9350612cd2818560208601612c90565b612cdb81612c9e565b840191505092915050565b5f6020820190508181035f830152612cfe8184612cae565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d3382612d0a565b9050919050565b612d4381612d29565b8114612d4d575f80fd5b50565b5f81359050612d5e81612d3a565b92915050565b5f819050919050565b612d7681612d64565b8114612d80575f80fd5b50565b5f81359050612d9181612d6d565b92915050565b5f8060408385031215612dad57612dac612d06565b5b5f612dba85828601612d50565b9250506020612dcb85828601612d83565b9150509250929050565b5f8115159050919050565b612de981612dd5565b82525050565b5f602082019050612e025f830184612de0565b92915050565b612e1181612d64565b82525050565b5f602082019050612e2a5f830184612e08565b92915050565b5f805f60608486031215612e4757612e46612d06565b5b5f612e5486828701612d50565b9350506020612e6586828701612d50565b9250506040612e7686828701612d83565b9150509250925092565b5f60ff82169050919050565b612e9581612e80565b82525050565b5f602082019050612eae5f830184612e8c565b92915050565b5f612ebe82612d0a565b9050919050565b612ece81612eb4565b8114612ed8575f80fd5b50565b5f81359050612ee981612ec5565b92915050565b5f60208284031215612f0457612f03612d06565b5b5f612f1184828501612edb565b91505092915050565b5f60208284031215612f2f57612f2e612d06565b5b5f612f3c84828501612d83565b91505092915050565b5f60208284031215612f5a57612f59612d06565b5b5f612f6784828501612d50565b91505092915050565b5f8060408385031215612f8657612f85612d06565b5b5f612f9385828601612d50565b9250506020612fa485828601612d50565b9150509250929050565b612fb781612d29565b82525050565b5f602082019050612fd05f830184612fae565b92915050565b612fdf81612dd5565b8114612fe9575f80fd5b50565b5f81359050612ffa81612fd6565b92915050565b5f806040838503121561301657613015612d06565b5b5f61302385828601612d50565b925050602061303485828601612fec565b9150509250929050565b5f6020828403121561305357613052612d06565b5b5f61306084828501612fec565b91505092915050565b5f805f606084860312156130805761307f612d06565b5b5f61308d86828701612d83565b935050602061309e86828701612d83565b92505060406130af86828701612d83565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130ed602083612c80565b91506130f8826130b9565b602082019050919050565b5f6020820190508181035f83015261311a816130e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61315882612d64565b915061316383612d64565b925082820261317181612d64565b9150828204841483151761318857613187613121565b5b5092915050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f6131c3601a83612c80565b91506131ce8261318f565b602082019050919050565b5f6020820190508181035f8301526131f0816131b7565b9050919050565b7f43616e2774207769746864726177206e617469766520746f6b656e73000000005f82015250565b5f61322b601c83612c80565b9150613236826131f7565b602082019050919050565b5f6020820190508181035f8301526132588161321f565b9050919050565b5f8151905061326d81612d6d565b92915050565b5f6020828403121561328857613287612d06565b5b5f6132958482850161325f565b91505092915050565b5f6040820190506132b15f830185612fae565b6132be6020830184612e08565b9392505050565b5f815190506132d381612fd6565b92915050565b5f602082840312156132ee576132ed612d06565b5b5f6132fb848285016132c5565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61335e603983612c80565b915061336982613304565b604082019050919050565b5f6020820190508181035f83015261338b81613352565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6133c6601783612c80565b91506133d182613392565b602082019050919050565b5f6020820190508181035f8301526133f3816133ba565b9050919050565b5f8151905061340881612d3a565b92915050565b5f6020828403121561342357613422612d06565b5b5f613430848285016133fa565b91505092915050565b5f60408201905061344c5f830185612fae565b6134596020830184612fae565b9392505050565b5f819050919050565b5f819050919050565b5f61348c61348761348284613460565b613469565b612d64565b9050919050565b61349c81613472565b82525050565b5f60c0820190506134b55f830189612fae565b6134c26020830188612e08565b6134cf6040830187613493565b6134dc6060830186613493565b6134e96080830185612fae565b6134f660a0830184612e08565b979650505050505050565b5f805f6060848603121561351857613517612d06565b5b5f6135258682870161325f565b93505060206135368682870161325f565b92505060406135478682870161325f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135ab602483612c80565b91506135b682613551565b604082019050919050565b5f6020820190508181035f8301526135d88161359f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613639602283612c80565b9150613644826135df565b604082019050919050565b5f6020820190508181035f8301526136668161362d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136c7602583612c80565b91506136d28261366d565b604082019050919050565b5f6020820190508181035f8301526136f4816136bb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613755602383612c80565b9150613760826136fb565b604082019050919050565b5f6020820190508181035f83015261378281613749565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137e3602983612c80565b91506137ee82613789565b604082019050919050565b5f6020820190508181035f830152613810816137d7565b9050919050565b5f61382182612d64565b915061382c83612d64565b925082820190508082111561384457613843613121565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138a4602383612c80565b91506138af8261384a565b604082019050919050565b5f6020820190508181035f8301526138d181613898565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e00000000000000005f82015250565b5f61390c601883612c80565b9150613917826138d8565b602082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b5f61394a82612d64565b915061395583612d64565b925082820390508181111561396d5761396c613121565b5b92915050565b5f81905092915050565b50565b5f61398b5f83613973565b91506139968261397d565b5f82019050919050565b5f6139aa82613980565b9150819050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613a0e602a83612c80565b9150613a19826139b4565b604082019050919050565b5f6020820190508181035f830152613a3b81613a02565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ace81612d29565b82525050565b5f613adf8383613ac5565b60208301905092915050565b5f602082019050919050565b5f613b0182613a9c565b613b0b8185613aa6565b9350613b1683613ab6565b805f5b83811015613b46578151613b2d8882613ad4565b9750613b3883613aeb565b925050600181019050613b19565b5085935050505092915050565b5f60a082019050613b665f830188612e08565b613b736020830187613493565b8181036040830152613b858186613af7565b9050613b946060830185612fae565b613ba16080830184612e08565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613be282612d64565b9150613bed83612d64565b925082613bfd57613bfc613bab565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c3c601b83612c80565b9150613c4782613c08565b602082019050919050565b5f6020820190508181035f830152613c6981613c30565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cca602183612c80565b9150613cd582613c70565b604082019050919050565b5f6020820190508181035f830152613cf781613cbe565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a181072a9ecf09782c8b6695ba5a114ecc2336f488dbc9e806fa74a4f4892f9f64736f6c63430008190033

Deployed Bytecode Sourcemap

9032:12962:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18489:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17217:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18766:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17561:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16703:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18675:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20503:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20177:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21040:153;;;;;;;;;;;;;:::i;:::-;;16920:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8875:148;;;;;;;;;;;;;:::i;:::-;;21591:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8661:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18580:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21201:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17386:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20385:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20874:154;;;;;;;;;;;;;:::i;:::-;;19253:767;;;;;;;;;;;;;:::i;:::-;;20286:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20702:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20032:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16811:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17066:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18489:83;18526:13;18559:5;;;;;;;;;;;;;;;;;18552:12;;18489:83;:::o;17217:161::-;17292:4;17309:39;17318:12;:10;:12::i;:::-;17332:7;17341:6;17309:8;:39::i;:::-;17366:4;17359:11;;17217:161;;;;:::o;18766:95::-;18819:7;9361:20;18839:14;;18766:95;:::o;17561:313::-;17659:4;17676:36;17686:6;17694:9;17705:6;17676:9;:36::i;:::-;17723:121;17732:6;17740:12;:10;:12::i;:::-;17754:89;17792:6;17754:89;;;;;;;;;;;;;;;;;:11;:19;17766:6;17754:19;;;;;;;;;;;;;;;:33;17774:12;:10;:12::i;:::-;17754:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17723:8;:121::i;:::-;17862:4;17855:11;;17561:313;;;;;:::o;16703:100::-;16747:4;16771:24;16789:4;16771:9;:24::i;:::-;16764:31;;16703:100;:::o;18675:83::-;18716:5;9263:1;18734:16;;18675:83;:::o;20503:191::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20612:5:::1;20578:18;:31;20597:11;;;;;;;;;;;20578:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20642:3;20628:11;;:17;;;;;;;;;;;;;;;;;;20682:4;20656:18;:23;20675:3;20656:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;20503:191:::0;:::o;20177:101::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20265:5:::1;20259:3;:11;;;;:::i;:::-;20242:14;:28;;;;20177:101:::0;:::o;21040:153::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21092:26:::1;21121:21;21092:50;;21153:32;21166:18;21153:12;:32::i;:::-;21081:112;21040:153::o:0;16920:138::-;16986:7;17013:37;17033:7;:16;17041:7;17033:16;;;;;;;;;;;;;;;;17013:19;:37::i;:::-;17006:44;;16920:138;;;:::o;8875:148::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8982:1:::1;8945:40;;8966:6;::::0;::::1;;;;;;;;8945:40;;;;;;;;;;;;9013:1;8996:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8875:148::o:0;21591:394::-;21678:10;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21727:1:::1;21709:20;;:6;:20;;::::0;21701:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21797:4;21779:23;;:6;:23;;::::0;21771:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21846:24;21880:6;21873:24;;;21906:4;21873:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21846:66;;21938:6;21931:23;;;21955:3;21960:16;21931:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21923:54;;21690:295;21591:394:::0;;;;:::o;8661:79::-;8699:7;8726:6;;;;;;;;;;;8719:13;;8661:79;:::o;18580:87::-;18619:13;18652:7;;;;;;;;;;;;;;;;;18645:14;;18580:87;:::o;21201:244::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21310:13:::1;;;;;;;;;;;21302:21;;:4;:21;;::::0;21294:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21396:41;21425:4;21431:5;21396:28;:41::i;:::-;21201:244:::0;;:::o;17386:167::-;17464:4;17481:42;17491:12;:10;:12::i;:::-;17505:9;17516:6;17481:9;:42::i;:::-;17541:4;17534:11;;17386:167;;;;:::o;20385:106::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20478:5:::1;20457:18;;:26;;;;;;;;;;;;;;;;;;20385:106:::0;:::o;20874:154::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20926:23:::1;20952:24;20970:4;20952:9;:24::i;:::-;20926:50;;20987:33;21004:15;20987:16;:33::i;:::-;20915:113;20874:154::o:0;19253:767::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19317:11:::1;;;;;;;;;;;19316:12;19308:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;19366:35;19423:42;19366:100;;19495:16;19477:15;;:34;;;;;;;;;;;;;;;;;;19522:58;19539:4;19554:15;;;;;;;;;;;9361:20;19522:8;:58::i;:::-;19625:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19607:56;;;19672:4;19679:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19607:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19591:13;;:112;;;;;;;;;;;;;;;;;;19714:15;;;;;;;;;;;:31;;;19753:21;19784:4;19790:24;19808:4;19790:9;:24::i;:::-;19815:1;19817::::0;19819:7:::1;:5;:7::i;:::-;19827:15;19714:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19861:13;;;;;;;;;;;19854:29;;;19892:15;;;;;;;;;;;19910:14;19854:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19979:4;19936:25;:40;19962:13;;;;;;;;;;;19936:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;20008:4;19994:11;;:18;;;;;;;;;;;;;;;;;;19297:723;19253:767::o:0;20286:91::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20364:5:::1;20363:6;20353:7;;:16;;;;;;;;;;;;;;;;;;20286:91:::0;:::o;20702:164::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20802:3:::1;20792:7;:13;;;;20827:4;20816:8;:15;;;;20852:6;20842:7;:16;;;;20702:164:::0;;;:::o;20032:137::-;8798:12;:10;:12::i;:::-;8788:22;;:6;;;;;;;;;;:22;;;8780:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20156:5:::1;20145:8;:16;;;;:::i;:::-;20117:25;:44;;;;20032:137:::0;:::o;16811:101::-;16856:4;16880:24;16890:13;;;;;;;;;;;16880:9;:24::i;:::-;16873:31;;16811:101;:::o;17066:143::-;17147:7;17174:11;:18;17186:5;17174:18;;;;;;;;;;;;;;;:27;17193:7;17174:27;;;;;;;;;;;;;;;;17167:34;;17066:143;;;;:::o;8201:98::-;8254:7;8281:10;8274:17;;8201:98;:::o;18869:335::-;18979:1;18962:19;;:5;:19;;;18954:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19060:1;19041:21;;:7;:21;;;19033:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19142:6;19112:11;:18;19124:5;19112:18;;;;;;;;;;;;;;;:27;19131:7;19112:27;;;;;;;;;;;;;;;:36;;;;19180:7;19164:32;;19173:5;19164:32;;;19189:6;19164:32;;;;;;:::i;:::-;;;;;;;;18869:335;;;:::o;11166:1739::-;11270:1;11254:18;;:4;:18;;;11246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11347:1;11333:16;;:2;:16;;;11325:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11417:1;11408:6;:10;11400:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11488:7;:5;:7::i;:::-;11480:15;;:4;:15;;;;:32;;;;;11505:7;:5;:7::i;:::-;11499:13;;:2;:13;;;;11480:32;11477:1093;;;11540:13;;;;;;;;;;;11534:19;;:2;:19;;;;:52;;;;;11558:24;:28;11583:2;11558:28;;;;;;;;;;;;;;;;;;;;;;;;;11557:29;11534:52;:75;;;;;11608:1;11590:14;;:19;;11534:75;11531:212;;;11673:14;;11663:6;11638:22;11656:2;11638:9;:22::i;:::-;:31;;;;:::i;:::-;:49;;11630:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;11531:212;11782:13;;;;;;;;;;;11774:21;;:4;:21;;;:55;;;;;11813:15;;;;;;;;;;;11799:30;;:2;:30;;;;11774:55;:82;;;;;11834:18;:22;11853:2;11834:22;;;;;;;;;;;;;;;;;;;;;;;;;11833:23;11774:82;11771:207;;;11885:11;;;;;;;;;;;11877:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11955:7;;11944:8;:18;;;;11771:207;11992:28;12023:24;12041:4;12023:9;:24::i;:::-;11992:55;;12068:6;;;;;;;;;;;12067:7;:32;;;;;12086:13;;;;;;;;;;;12078:21;;:4;:21;;;;12067:32;:47;;;;;12103:11;;;;;;;;;;;12067:47;12064:495;;;12148:8;;12137;:19;;;;12181:25;:29;12207:2;12181:29;;;;;;;;;;;;;;;;;;;;;;;;;12177:367;;;12261:25;;12238:20;:48;12235:290;;;12318:18;;;;;;;;;;;12315:130;;;12392:25;;12369:48;;12315:130;12471:30;12480:20;12471:8;:30::i;:::-;12235:290;12177:367;12064:495;11514:1056;11477:1093;12580:12;12595:4;12580:19;;12615:7;;;;;;;;;;;:35;;;;12626:18;:24;12645:4;12626:24;;;;;;;;;;;;;;;;;;;;;;;;;12615:35;:61;;;;12654:18;:22;12673:2;12654:22;;;;;;;;;;;;;;;;;;;;;;;;;12615:61;12612:227;;;12703:5;12693:15;;12612:227;;;12730:25;:31;12756:4;12730:31;;;;;;;;;;;;;;;;;;;;;;;;;12729:32;:66;;;;;12766:25;:29;12792:2;12766:29;;;;;;;;;;;;;;;;;;;;;;;;;12765:30;12729:66;12726:113;;;12822:5;12812:15;;12726:113;12612:227;12859:38;12874:4;12879:2;12882:6;12889:7;12859:14;:38::i;:::-;11235:1670;11166:1739;;;:::o;1282:192::-;1368:7;1401:1;1396;:6;;1404:12;1388:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1428:9;1444:1;1440;:5;;;;:::i;:::-;1428:17;;1465:1;1458:8;;;1282:192;;;;;:::o;13705:154::-;13763:12;13781:11;;;;;;;;;;;:16;;13805:6;13781:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13762:54;;;13834:17;13843:7;13834:17;;;;;;:::i;:::-;;;;;;;;13751:108;13705:154;:::o;18227:254::-;18294:7;18333;;18322;:18;;18314:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18398:19;18421:10;:8;:10::i;:::-;18398:33;;18449:24;18461:11;18449:7;:11;;:24;;;;:::i;:::-;18442:31;;;18227:254;;;:::o;21453:130::-;21570:5;21536:25;:31;21562:4;21536:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21453:130;;:::o;13206:483::-;10573:4;10564:6;;:13;;;;;;;;;;;;;;;;;;13284:21:::1;13322:1;13308:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13284:40;;13353:4;13335;13340:1;13335:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13379:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13369:4;13374:1;13369:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13412:62;13429:4;13444:15;;;;;;;;;;;13462:11;13412:8;:62::i;:::-;13485:15;;;;;;;;;;;:66;;;13566:11;13592:1;13608:4;13635;13655:15;13485:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13273:416;10609:5:::0;10600:6;;:14;;;;;;;;;;;;;;;;;;13206:483;:::o;12913:285::-;12990:38;13007:20;12990:16;:38::i;:::-;13041:26;13070:21;13041:50;;13126:1;13105:18;:22;13102:89;;;13144:35;13157:21;13144:12;:35::i;:::-;13102:89;12969:229;12913:285;:::o;13871:263::-;13983:7;13979:40;;14005:14;:12;:14::i;:::-;13979:40;14030:44;14048:6;14056:9;14067:6;14030:17;:44::i;:::-;14089:7;14085:41;;14111:15;:13;:15::i;:::-;14085:41;13871:263;;;;:::o;15475:163::-;15516:7;15537:15;15554;15573:19;:17;:19::i;:::-;15536:56;;;;15610:20;15622:7;15610;:11;;:20;;;;:::i;:::-;15603:27;;;;15475:163;:::o;2680:132::-;2738:7;2765:39;2769:1;2772;2765:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2758:46;;2680:132;;;;:::o;17882:210::-;17939:1;17928:7;;:12;:29;;;;;17956:1;17944:8;;:13;17928:29;17959:7;17925:41;17994:7;;17976:15;:25;;;;18031:8;;18012:16;:27;;;;18060:1;18050:7;:11;;;;18083:1;18072:8;:12;;;;17882:210;:::o;14142:490::-;14241:15;14258:23;14283:12;14297:23;14322:12;14336:13;14353:19;14364:7;14353:10;:19::i;:::-;14240:132;;;;;;;;;;;;14401:28;14421:7;14401;:15;14409:6;14401:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14383:7;:15;14391:6;14383:15;;;;;;;;;;;;;;;:46;;;;14461:39;14484:15;14461:7;:18;14469:9;14461:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14440:7;:18;14448:9;14440:18;;;;;;;;;;;;;;;:60;;;;14514:16;14524:5;14514:9;:16::i;:::-;14541:23;14553:4;14559;14541:11;:23::i;:::-;14597:9;14580:44;;14589:6;14580:44;;;14608:15;14580:44;;;;;;:::i;:::-;;;;;;;;14229:403;;;;;;14142:490;;;:::o;18104:115::-;18158:15;;18148:7;:25;;;;18195:16;;18184:8;:27;;;;18104:115::o;15646:255::-;15696:7;15705;15725:15;15743:7;;15725:25;;15761:15;9361:20;15761:25;;15810:20;9361;15810:7;;:11;;:20;;;;:::i;:::-;15800:7;:30;15797:60;;;15840:7;;9361:20;15832:25;;;;;;;;15797:60;15876:7;15885;15868:25;;;;;;15646:255;;;:::o;3308:278::-;3394:7;3426:1;3422;:5;3429:12;3414:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3453:9;3469:1;3465;:5;;;;:::i;:::-;3453:17;;3577:1;3570:8;;;3308:278;;;;;:::o;14640:468::-;14699:7;14708;14717;14726;14735;14744;14765:23;14790:12;14804:13;14821:39;14833:7;14842;;14851:8;;14821:11;:39::i;:::-;14764:96;;;;;;14871:19;14894:10;:8;:10::i;:::-;14871:33;;14916:15;14933:23;14958:12;14974:46;14986:7;14995:4;15001:5;15008:11;14974;:46::i;:::-;14915:105;;;;;;15039:7;15048:15;15065:4;15071:15;15088:4;15094:5;15031:69;;;;;;;;;;;;;;;;;;;14640:468;;;;;;;:::o;843:136::-;901:7;928:43;932:1;935;928:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;921:50;;843:136;;;;:::o;379:181::-;437:7;457:9;473:1;469;:5;;;;:::i;:::-;457:17;;498:1;493;:6;;485:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;551:1;544:8;;;379:181;;;;:::o;16326:214::-;16379:19;16402:10;:8;:10::i;:::-;16379:33;;16423:13;16439:22;16449:11;16439:5;:9;;:22;;;;:::i;:::-;16423:38;;16499:33;16526:5;16499:7;:22;16515:4;16499:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16474:7;:22;16490:4;16474:22;;;;;;;;;;;;;;;:58;;;;16368:172;;16326:214;:::o;16548:147::-;16626:17;16638:4;16626:7;;:11;;:17;;;;:::i;:::-;16616:7;:27;;;;16667:20;16682:4;16667:10;;:14;;:20;;;;:::i;:::-;16654:10;:33;;;;16548:147;;:::o;15116:351::-;15209:7;15218;15227;15247:12;15262:28;15286:3;15262:19;15274:6;15262:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15247:43;;15301:13;15317:29;15342:3;15317:20;15329:7;15317;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15301:45;;15357:23;15383:28;15405:5;15383:17;15395:4;15383:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15357:54;;15430:15;15447:4;15453:5;15422:37;;;;;;;;;15116:351;;;;;;;:::o;15909:409::-;16019:7;16028;16037;16057:15;16075:24;16087:11;16075:7;:11;;:24;;;;:::i;:::-;16057:42;;16110:12;16125:21;16134:11;16125:4;:8;;:21;;;;:::i;:::-;16110:36;;16157:13;16173:22;16183:11;16173:5;:9;;:22;;;;:::i;:::-;16157:38;;16206:23;16232:28;16254:5;16232:17;16244:4;16232:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16206:54;;16279:7;16288:15;16305:4;16271:39;;;;;;;;;;15909:409;;;;;;;;:::o;1733:471::-;1791:7;2041:1;2036;:6;2032:47;;2066:1;2059:8;;;;2032:47;2091:9;2107:1;2103;:5;;;;:::i;:::-;2091:17;;2136:1;2131;2127;:5;;;;:::i;:::-;:10;2119:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2195:1;2188:8;;;1733:471;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:104::-;4791:7;4820:24;4838:5;4820:24;:::i;:::-;4809:35;;4746:104;;;:::o;4856:138::-;4937:32;4963:5;4937:32;:::i;:::-;4930:5;4927:43;4917:71;;4984:1;4981;4974:12;4917:71;4856:138;:::o;5000:155::-;5054:5;5092:6;5079:20;5070:29;;5108:41;5143:5;5108:41;:::i;:::-;5000:155;;;;:::o;5161:345::-;5228:6;5277:2;5265:9;5256:7;5252:23;5248:32;5245:119;;;5283:79;;:::i;:::-;5245:119;5403:1;5428:61;5481:7;5472:6;5461:9;5457:22;5428:61;:::i;:::-;5418:71;;5374:125;5161:345;;;;:::o;5512:329::-;5571:6;5620:2;5608:9;5599:7;5595:23;5591:32;5588:119;;;5626:79;;:::i;:::-;5588:119;5746:1;5771:53;5816:7;5807:6;5796:9;5792:22;5771:53;:::i;:::-;5761:63;;5717:117;5512:329;;;;:::o;5847:::-;5906:6;5955:2;5943:9;5934:7;5930:23;5926:32;5923:119;;;5961:79;;:::i;:::-;5923:119;6081:1;6106:53;6151:7;6142:6;6131:9;6127:22;6106:53;:::i;:::-;6096:63;;6052:117;5847:329;;;;:::o;6182:474::-;6250:6;6258;6307:2;6295:9;6286:7;6282:23;6278:32;6275:119;;;6313:79;;:::i;:::-;6275:119;6433:1;6458:53;6503:7;6494:6;6483:9;6479:22;6458:53;:::i;:::-;6448:63;;6404:117;6560:2;6586:53;6631:7;6622:6;6611:9;6607:22;6586:53;:::i;:::-;6576:63;;6531:118;6182:474;;;;;:::o;6662:118::-;6749:24;6767:5;6749:24;:::i;:::-;6744:3;6737:37;6662:118;;:::o;6786:222::-;6879:4;6917:2;6906:9;6902:18;6894:26;;6930:71;6998:1;6987:9;6983:17;6974:6;6930:71;:::i;:::-;6786:222;;;;:::o;7014:116::-;7084:21;7099:5;7084:21;:::i;:::-;7077:5;7074:32;7064:60;;7120:1;7117;7110:12;7064:60;7014:116;:::o;7136:133::-;7179:5;7217:6;7204:20;7195:29;;7233:30;7257:5;7233:30;:::i;:::-;7136:133;;;;:::o;7275:468::-;7340:6;7348;7397:2;7385:9;7376:7;7372:23;7368:32;7365:119;;;7403:79;;:::i;:::-;7365:119;7523:1;7548:53;7593:7;7584:6;7573:9;7569:22;7548:53;:::i;:::-;7538:63;;7494:117;7650:2;7676:50;7718:7;7709:6;7698:9;7694:22;7676:50;:::i;:::-;7666:60;;7621:115;7275:468;;;;;:::o;7749:323::-;7805:6;7854:2;7842:9;7833:7;7829:23;7825:32;7822:119;;;7860:79;;:::i;:::-;7822:119;7980:1;8005:50;8047:7;8038:6;8027:9;8023:22;8005:50;:::i;:::-;7995:60;;7951:114;7749:323;;;;:::o;8078:619::-;8155:6;8163;8171;8220:2;8208:9;8199:7;8195:23;8191:32;8188:119;;;8226:79;;:::i;:::-;8188:119;8346:1;8371:53;8416:7;8407:6;8396:9;8392:22;8371:53;:::i;:::-;8361:63;;8317:117;8473:2;8499:53;8544:7;8535:6;8524:9;8520:22;8499:53;:::i;:::-;8489:63;;8444:118;8601:2;8627:53;8672:7;8663:6;8652:9;8648:22;8627:53;:::i;:::-;8617:63;;8572:118;8078:619;;;;;:::o;8703:182::-;8843:34;8839:1;8831:6;8827:14;8820:58;8703:182;:::o;8891:366::-;9033:3;9054:67;9118:2;9113:3;9054:67;:::i;:::-;9047:74;;9130:93;9219:3;9130:93;:::i;:::-;9248:2;9243:3;9239:12;9232:19;;8891:366;;;:::o;9263:419::-;9429:4;9467:2;9456:9;9452:18;9444:26;;9516:9;9510:4;9506:20;9502:1;9491:9;9487:17;9480:47;9544:131;9670:4;9544:131;:::i;:::-;9536:139;;9263:419;;;:::o;9688:180::-;9736:77;9733:1;9726:88;9833:4;9830:1;9823:15;9857:4;9854:1;9847:15;9874:410;9914:7;9937:20;9955:1;9937:20;:::i;:::-;9932:25;;9971:20;9989:1;9971:20;:::i;:::-;9966:25;;10026:1;10023;10019:9;10048:30;10066:11;10048:30;:::i;:::-;10037:41;;10227:1;10218:7;10214:15;10211:1;10208:22;10188:1;10181:9;10161:83;10138:139;;10257:18;;:::i;:::-;10138:139;9922:362;9874:410;;;;:::o;10290:176::-;10430:28;10426:1;10418:6;10414:14;10407:52;10290:176;:::o;10472:366::-;10614:3;10635:67;10699:2;10694:3;10635:67;:::i;:::-;10628:74;;10711:93;10800:3;10711:93;:::i;:::-;10829:2;10824:3;10820:12;10813:19;;10472:366;;;:::o;10844:419::-;11010:4;11048:2;11037:9;11033:18;11025:26;;11097:9;11091:4;11087:20;11083:1;11072:9;11068:17;11061:47;11125:131;11251:4;11125:131;:::i;:::-;11117:139;;10844:419;;;:::o;11269:178::-;11409:30;11405:1;11397:6;11393:14;11386:54;11269:178;:::o;11453:366::-;11595:3;11616:67;11680:2;11675:3;11616:67;:::i;:::-;11609:74;;11692:93;11781:3;11692:93;:::i;:::-;11810:2;11805:3;11801:12;11794:19;;11453:366;;;:::o;11825:419::-;11991:4;12029:2;12018:9;12014:18;12006:26;;12078:9;12072:4;12068:20;12064:1;12053:9;12049:17;12042:47;12106:131;12232:4;12106:131;:::i;:::-;12098:139;;11825:419;;;:::o;12250:143::-;12307:5;12338:6;12332:13;12323:22;;12354:33;12381:5;12354:33;:::i;:::-;12250:143;;;;:::o;12399:351::-;12469:6;12518:2;12506:9;12497:7;12493:23;12489:32;12486:119;;;12524:79;;:::i;:::-;12486:119;12644:1;12669:64;12725:7;12716:6;12705:9;12701:22;12669:64;:::i;:::-;12659:74;;12615:128;12399:351;;;;:::o;12756:332::-;12877:4;12915:2;12904:9;12900:18;12892:26;;12928:71;12996:1;12985:9;12981:17;12972:6;12928:71;:::i;:::-;13009:72;13077:2;13066:9;13062:18;13053:6;13009:72;:::i;:::-;12756:332;;;;;:::o;13094:137::-;13148:5;13179:6;13173:13;13164:22;;13195:30;13219:5;13195:30;:::i;:::-;13094:137;;;;:::o;13237:345::-;13304:6;13353:2;13341:9;13332:7;13328:23;13324:32;13321:119;;;13359:79;;:::i;:::-;13321:119;13479:1;13504:61;13557:7;13548:6;13537:9;13533:22;13504:61;:::i;:::-;13494:71;;13450:125;13237:345;;;;:::o;13588:244::-;13728:34;13724:1;13716:6;13712:14;13705:58;13797:27;13792:2;13784:6;13780:15;13773:52;13588:244;:::o;13838:366::-;13980:3;14001:67;14065:2;14060:3;14001:67;:::i;:::-;13994:74;;14077:93;14166:3;14077:93;:::i;:::-;14195:2;14190:3;14186:12;14179:19;;13838:366;;;:::o;14210:419::-;14376:4;14414:2;14403:9;14399:18;14391:26;;14463:9;14457:4;14453:20;14449:1;14438:9;14434:17;14427:47;14491:131;14617:4;14491:131;:::i;:::-;14483:139;;14210:419;;;:::o;14635:173::-;14775:25;14771:1;14763:6;14759:14;14752:49;14635:173;:::o;14814:366::-;14956:3;14977:67;15041:2;15036:3;14977:67;:::i;:::-;14970:74;;15053:93;15142:3;15053:93;:::i;:::-;15171:2;15166:3;15162:12;15155:19;;14814:366;;;:::o;15186:419::-;15352:4;15390:2;15379:9;15375:18;15367:26;;15439:9;15433:4;15429:20;15425:1;15414:9;15410:17;15403:47;15467:131;15593:4;15467:131;:::i;:::-;15459:139;;15186:419;;;:::o;15611:143::-;15668:5;15699:6;15693:13;15684:22;;15715:33;15742:5;15715:33;:::i;:::-;15611:143;;;;:::o;15760:351::-;15830:6;15879:2;15867:9;15858:7;15854:23;15850:32;15847:119;;;15885:79;;:::i;:::-;15847:119;16005:1;16030:64;16086:7;16077:6;16066:9;16062:22;16030:64;:::i;:::-;16020:74;;15976:128;15760:351;;;;:::o;16117:332::-;16238:4;16276:2;16265:9;16261:18;16253:26;;16289:71;16357:1;16346:9;16342:17;16333:6;16289:71;:::i;:::-;16370:72;16438:2;16427:9;16423:18;16414:6;16370:72;:::i;:::-;16117:332;;;;;:::o;16455:85::-;16500:7;16529:5;16518:16;;16455:85;;;:::o;16546:60::-;16574:3;16595:5;16588:12;;16546:60;;;:::o;16612:158::-;16670:9;16703:61;16721:42;16730:32;16756:5;16730:32;:::i;:::-;16721:42;:::i;:::-;16703:61;:::i;:::-;16690:74;;16612:158;;;:::o;16776:147::-;16871:45;16910:5;16871:45;:::i;:::-;16866:3;16859:58;16776:147;;:::o;16929:807::-;17178:4;17216:3;17205:9;17201:19;17193:27;;17230:71;17298:1;17287:9;17283:17;17274:6;17230:71;:::i;:::-;17311:72;17379:2;17368:9;17364:18;17355:6;17311:72;:::i;:::-;17393:80;17469:2;17458:9;17454:18;17445:6;17393:80;:::i;:::-;17483;17559:2;17548:9;17544:18;17535:6;17483:80;:::i;:::-;17573:73;17641:3;17630:9;17626:19;17617:6;17573:73;:::i;:::-;17656;17724:3;17713:9;17709:19;17700:6;17656:73;:::i;:::-;16929:807;;;;;;;;;:::o;17742:663::-;17830:6;17838;17846;17895:2;17883:9;17874:7;17870:23;17866:32;17863:119;;;17901:79;;:::i;:::-;17863:119;18021:1;18046:64;18102:7;18093:6;18082:9;18078:22;18046:64;:::i;:::-;18036:74;;17992:128;18159:2;18185:64;18241:7;18232:6;18221:9;18217:22;18185:64;:::i;:::-;18175:74;;18130:129;18298:2;18324:64;18380:7;18371:6;18360:9;18356:22;18324:64;:::i;:::-;18314:74;;18269:129;17742:663;;;;;:::o;18411:223::-;18551:34;18547:1;18539:6;18535:14;18528:58;18620:6;18615:2;18607:6;18603:15;18596:31;18411:223;:::o;18640:366::-;18782:3;18803:67;18867:2;18862:3;18803:67;:::i;:::-;18796:74;;18879:93;18968:3;18879:93;:::i;:::-;18997:2;18992:3;18988:12;18981:19;;18640:366;;;:::o;19012:419::-;19178:4;19216:2;19205:9;19201:18;19193:26;;19265:9;19259:4;19255:20;19251:1;19240:9;19236:17;19229:47;19293:131;19419:4;19293:131;:::i;:::-;19285:139;;19012:419;;;:::o;19437:221::-;19577:34;19573:1;19565:6;19561:14;19554:58;19646:4;19641:2;19633:6;19629:15;19622:29;19437:221;:::o;19664:366::-;19806:3;19827:67;19891:2;19886:3;19827:67;:::i;:::-;19820:74;;19903:93;19992:3;19903:93;:::i;:::-;20021:2;20016:3;20012:12;20005:19;;19664:366;;;:::o;20036:419::-;20202:4;20240:2;20229:9;20225:18;20217:26;;20289:9;20283:4;20279:20;20275:1;20264:9;20260:17;20253:47;20317:131;20443:4;20317:131;:::i;:::-;20309:139;;20036:419;;;:::o;20461:224::-;20601:34;20597:1;20589:6;20585:14;20578:58;20670:7;20665:2;20657:6;20653:15;20646:32;20461:224;:::o;20691:366::-;20833:3;20854:67;20918:2;20913:3;20854:67;:::i;:::-;20847:74;;20930:93;21019:3;20930:93;:::i;:::-;21048:2;21043:3;21039:12;21032:19;;20691:366;;;:::o;21063:419::-;21229:4;21267:2;21256:9;21252:18;21244:26;;21316:9;21310:4;21306:20;21302:1;21291:9;21287:17;21280:47;21344:131;21470:4;21344:131;:::i;:::-;21336:139;;21063:419;;;:::o;21488:222::-;21628:34;21624:1;21616:6;21612:14;21605:58;21697:5;21692:2;21684:6;21680:15;21673:30;21488:222;:::o;21716:366::-;21858:3;21879:67;21943:2;21938:3;21879:67;:::i;:::-;21872:74;;21955:93;22044:3;21955:93;:::i;:::-;22073:2;22068:3;22064:12;22057:19;;21716:366;;;:::o;22088:419::-;22254:4;22292:2;22281:9;22277:18;22269:26;;22341:9;22335:4;22331:20;22327:1;22316:9;22312:17;22305:47;22369:131;22495:4;22369:131;:::i;:::-;22361:139;;22088:419;;;:::o;22513:228::-;22653:34;22649:1;22641:6;22637:14;22630:58;22722:11;22717:2;22709:6;22705:15;22698:36;22513:228;:::o;22747:366::-;22889:3;22910:67;22974:2;22969:3;22910:67;:::i;:::-;22903:74;;22986:93;23075:3;22986:93;:::i;:::-;23104:2;23099:3;23095:12;23088:19;;22747:366;;;:::o;23119:419::-;23285:4;23323:2;23312:9;23308:18;23300:26;;23372:9;23366:4;23362:20;23358:1;23347:9;23343:17;23336:47;23400:131;23526:4;23400:131;:::i;:::-;23392:139;;23119:419;;;:::o;23544:191::-;23584:3;23603:20;23621:1;23603:20;:::i;:::-;23598:25;;23637:20;23655:1;23637:20;:::i;:::-;23632:25;;23680:1;23677;23673:9;23666:16;;23701:3;23698:1;23695:10;23692:36;;;23708:18;;:::i;:::-;23692:36;23544:191;;;;:::o;23741:222::-;23881:34;23877:1;23869:6;23865:14;23858:58;23950:5;23945:2;23937:6;23933:15;23926:30;23741:222;:::o;23969:366::-;24111:3;24132:67;24196:2;24191:3;24132:67;:::i;:::-;24125:74;;24208:93;24297:3;24208:93;:::i;:::-;24326:2;24321:3;24317:12;24310:19;;23969:366;;;:::o;24341:419::-;24507:4;24545:2;24534:9;24530:18;24522:26;;24594:9;24588:4;24584:20;24580:1;24569:9;24565:17;24558:47;24622:131;24748:4;24622:131;:::i;:::-;24614:139;;24341:419;;;:::o;24766:174::-;24906:26;24902:1;24894:6;24890:14;24883:50;24766:174;:::o;24946:366::-;25088:3;25109:67;25173:2;25168:3;25109:67;:::i;:::-;25102:74;;25185:93;25274:3;25185:93;:::i;:::-;25303:2;25298:3;25294:12;25287:19;;24946:366;;;:::o;25318:419::-;25484:4;25522:2;25511:9;25507:18;25499:26;;25571:9;25565:4;25561:20;25557:1;25546:9;25542:17;25535:47;25599:131;25725:4;25599:131;:::i;:::-;25591:139;;25318:419;;;:::o;25743:194::-;25783:4;25803:20;25821:1;25803:20;:::i;:::-;25798:25;;25837:20;25855:1;25837:20;:::i;:::-;25832:25;;25881:1;25878;25874:9;25866:17;;25905:1;25899:4;25896:11;25893:37;;;25910:18;;:::i;:::-;25893:37;25743:194;;;;:::o;25943:147::-;26044:11;26081:3;26066:18;;25943:147;;;;:::o;26096:114::-;;:::o;26216:398::-;26375:3;26396:83;26477:1;26472:3;26396:83;:::i;:::-;26389:90;;26488:93;26577:3;26488:93;:::i;:::-;26606:1;26601:3;26597:11;26590:18;;26216:398;;;:::o;26620:379::-;26804:3;26826:147;26969:3;26826:147;:::i;:::-;26819:154;;26990:3;26983:10;;26620:379;;;:::o;27005:229::-;27145:34;27141:1;27133:6;27129:14;27122:58;27214:12;27209:2;27201:6;27197:15;27190:37;27005:229;:::o;27240:366::-;27382:3;27403:67;27467:2;27462:3;27403:67;:::i;:::-;27396:74;;27479:93;27568:3;27479:93;:::i;:::-;27597:2;27592:3;27588:12;27581:19;;27240:366;;;:::o;27612:419::-;27778:4;27816:2;27805:9;27801:18;27793:26;;27865:9;27859:4;27855:20;27851:1;27840:9;27836:17;27829:47;27893:131;28019:4;27893:131;:::i;:::-;27885:139;;27612:419;;;:::o;28037:180::-;28085:77;28082:1;28075:88;28182:4;28179:1;28172:15;28206:4;28203:1;28196:15;28223:180;28271:77;28268:1;28261:88;28368:4;28365:1;28358:15;28392:4;28389:1;28382:15;28409:114;28476:6;28510:5;28504:12;28494:22;;28409:114;;;:::o;28529:184::-;28628:11;28662:6;28657:3;28650:19;28702:4;28697:3;28693:14;28678:29;;28529:184;;;;:::o;28719:132::-;28786:4;28809:3;28801:11;;28839:4;28834:3;28830:14;28822:22;;28719:132;;;:::o;28857:108::-;28934:24;28952:5;28934:24;:::i;:::-;28929:3;28922:37;28857:108;;:::o;28971:179::-;29040:10;29061:46;29103:3;29095:6;29061:46;:::i;:::-;29139:4;29134:3;29130:14;29116:28;;28971:179;;;;:::o;29156:113::-;29226:4;29258;29253:3;29249:14;29241:22;;29156:113;;;:::o;29305:732::-;29424:3;29453:54;29501:5;29453:54;:::i;:::-;29523:86;29602:6;29597:3;29523:86;:::i;:::-;29516:93;;29633:56;29683:5;29633:56;:::i;:::-;29712:7;29743:1;29728:284;29753:6;29750:1;29747:13;29728:284;;;29829:6;29823:13;29856:63;29915:3;29900:13;29856:63;:::i;:::-;29849:70;;29942:60;29995:6;29942:60;:::i;:::-;29932:70;;29788:224;29775:1;29772;29768:9;29763:14;;29728:284;;;29732:14;30028:3;30021:10;;29429:608;;;29305:732;;;;:::o;30043:831::-;30306:4;30344:3;30333:9;30329:19;30321:27;;30358:71;30426:1;30415:9;30411:17;30402:6;30358:71;:::i;:::-;30439:80;30515:2;30504:9;30500:18;30491:6;30439:80;:::i;:::-;30566:9;30560:4;30556:20;30551:2;30540:9;30536:18;30529:48;30594:108;30697:4;30688:6;30594:108;:::i;:::-;30586:116;;30712:72;30780:2;30769:9;30765:18;30756:6;30712:72;:::i;:::-;30794:73;30862:3;30851:9;30847:19;30838:6;30794:73;:::i;:::-;30043:831;;;;;;;;:::o;30880:180::-;30928:77;30925:1;30918:88;31025:4;31022:1;31015:15;31049:4;31046:1;31039:15;31066:185;31106:1;31123:20;31141:1;31123:20;:::i;:::-;31118:25;;31157:20;31175:1;31157:20;:::i;:::-;31152:25;;31196:1;31186:35;;31201:18;;:::i;:::-;31186:35;31243:1;31240;31236:9;31231:14;;31066:185;;;;:::o;31257:177::-;31397:29;31393:1;31385:6;31381:14;31374:53;31257:177;:::o;31440:366::-;31582:3;31603:67;31667:2;31662:3;31603:67;:::i;:::-;31596:74;;31679:93;31768:3;31679:93;:::i;:::-;31797:2;31792:3;31788:12;31781:19;;31440:366;;;:::o;31812:419::-;31978:4;32016:2;32005:9;32001:18;31993:26;;32065:9;32059:4;32055:20;32051:1;32040:9;32036:17;32029:47;32093:131;32219:4;32093:131;:::i;:::-;32085:139;;31812:419;;;:::o;32237:220::-;32377:34;32373:1;32365:6;32361:14;32354:58;32446:3;32441:2;32433:6;32429:15;32422:28;32237:220;:::o;32463:366::-;32605:3;32626:67;32690:2;32685:3;32626:67;:::i;:::-;32619:74;;32702:93;32791:3;32702:93;:::i;:::-;32820:2;32815:3;32811:12;32804:19;;32463:366;;;:::o;32835:419::-;33001:4;33039:2;33028:9;33024:18;33016:26;;33088:9;33082:4;33078:20;33074:1;33063:9;33059:17;33052:47;33116:131;33242:4;33116:131;:::i;:::-;33108:139;;32835:419;;;:::o

Swarm Source

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