ETH Price: $3,491.88 (+0.11%)
Gas: 2 Gwei

Token

XNIME (XNIME)
 

Overview

Max Total Supply

100,000,000 XNIME

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
587,139.509558186241414162 XNIME

Value
$0.00
0x115fe24fb22b140b4da9626bf1020ff6870e281f
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:
XNIME

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-31
*/

/**
 *已提交验证于 Etherscan.io on 2023-07-31
*/

// XNIME.IO
// T.ME/XNIMEOFFICIAL
// TWITTER.COM/XNIMEOFFICIAL

// SPDX-License-Identifier: Unlicensed



pragma solidity ^0.8.16;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

library SafeMath {
     function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

}

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

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

abstract contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

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

interface IuniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IuniswapV2Router01 {
}

contract XNIME is Context, IERC20, Ownable {

    using SafeMath for uint256;
    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 _isExcluded;
    mapping(address => bool) private _isExcludedFromMaxWallet;

    address[] private _excluded;
    address public _marketingWalletAddress;
    address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal;
    uint256 private _rTotal;
    uint256 private _tFeeTotal;
    string private _name;
    string private _symbol;
    uint256 private _decimals;

    uint256 private _buyTaxFee = 0;
    uint256 private _buyMarketingFee = 3000;
    uint256 private _buyBurnFee = 0;

    uint256 private _sellTaxFee = 0;
    uint256 private _sellMarketingFee = 3000;
    uint256 private _sellBurnFee = 0;

    uint256 public _taxFee = _buyTaxFee;
    uint256 public _marketingFee = _buyMarketingFee;
    uint256 public _burnFee = _buyBurnFee;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousMarketingFee = _marketingFee;
    uint256 private _previousBurnFee = _burnFee;

    IUniswapV2Router02  public uniswapV2Router ;
    address public uniswapV2Pair;
    uint256 public maxWalletBalance;
    bool public tradingEnabled = true;

    constructor() {
        _name = "XNIME"; //  
        _symbol = "XNIME"; // 
        _decimals = 18; // 
        _tTotal = 100000000 * 10**_decimals; //  
        maxWalletBalance = 100000000  * 10**_decimals; //   
        _rTotal = (MAX - (MAX % _tTotal));
        _marketingWalletAddress =  0xFD44d025E13bCa38A934077Bfc0A993EfE1E61C0;  // 
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02  _uniswapV2Router = IUniswapV2Router02 (
             0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair  = IUniswapV2Factory (_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router  = _uniswapV2Router;
        _owner = _msgSender();

        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingWalletAddress] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[_burnAddress] = true;
        _isExcludedFromMaxWallet[_marketingWalletAddress]= true;

        _isExcluded[_burnAddress] = true;
        _isExcluded[uniswapV2Pair ] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

    function decimals() public view returns (uint256) {
        return _decimals;
    }

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

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

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

    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 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 increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(
            !_isExcluded[sender],
            "Excluded addresses cannot call this function"
        );
        (uint256 rAmount, , , , , , ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount, , , , , , ) = _getValues(tAmount);
            return rAmount;
        } else {
            (, uint256 rTransferAmount, , , , , ) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

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

    function excludeFromReward(address account) public onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is already included");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function _transferBothExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeBurn(tBurn);
        _takeMarketing(tMarket);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

     function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function includeAndExcludedFromMaxWallet(address account, bool value) public onlyOwner {
            _isExcludedFromMaxWallet[account] = value;
    }

    function isExcludedFromMaxWallet(address account) public view returns(bool){
            return _isExcludedFromMaxWallet[account];
    }

    function setSellFeePercent(
        uint256 tFee,
        uint256 mFee,
        uint256 cFee
    ) external onlyOwner {
        _sellTaxFee = tFee;
        _taxFee = _sellTaxFee;
        _sellMarketingFee = mFee;
        _marketingFee = _sellMarketingFee;
        _sellBurnFee = cFee;
        _burnFee = _sellBurnFee;
    }

    function setBuyFeePercent(
        uint256 tFee,
        uint256 mFee,
        uint256 cFee
    ) external onlyOwner {
        _buyTaxFee = tFee;
        _taxFee = _buyTaxFee;
        _buyMarketingFee = mFee;
        _marketingFee = _buyMarketingFee;
        _buyBurnFee = cFee;
        _burnFee = _buyBurnFee;
    }

    function setMarketingWalletAddress(address _addr) external onlyOwner {
        _marketingWalletAddress = _addr;
    }

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

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(
            tAmount,
            tFee,
            tBurn,
            tMarket,
            _getRate()
        );
        return (
            rAmount,
            rTransferAmount,
            rFee,
            tTransferAmount,
            tFee,
            tBurn,
            tMarket
        );
    }

    function _getTValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tBurn = calculateBurn(tAmount);
        uint256 tMarket = calculateMarketingFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn).sub(
            tMarket
        );
        return (tTransferAmount, tFee, tBurn, tMarket);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tBurn,
        uint256 tMarket,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rBurn = tBurn.mul(currentRate);
        uint256 rMarket= tMarket.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).sub(
            rMarket
        );
        return (rAmount, rTransferAmount, rFee);
    }

    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;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (
                _rOwned[_excluded[i]] > rSupply ||
                _tOwned[_excluded[i]] > tSupply
            ) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _takeBurn(uint256 tBurn)
        private
    {
         uint256 currentRate = _getRate();
        uint256 rBurn = tBurn.mul(
            currentRate
        );
        _rOwned[_burnAddress] = _rOwned[_burnAddress].add(
            rBurn
        );
        if (_isExcluded[_burnAddress])
            _tOwned[_burnAddress] = _tOwned[_burnAddress].add(
                tBurn
            );
    }

    function _takeMarketing(uint256 tMarket) private {
        uint256 currentRate = _getRate();
        uint256 rMarket = tMarket.mul(currentRate);
        _rOwned[_marketingWalletAddress] = _rOwned[_marketingWalletAddress].add(
            rMarket
        );
        if (_isExcluded[_marketingWalletAddress])
            _tOwned[_marketingWalletAddress] = _tOwned[_marketingWalletAddress].add(
                tMarket
            );
    }

    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(10**4);
    }

    function calculateMarketingFee(uint256 _amount)
        private
        view
        returns (uint256)
    {
        return _amount.mul(_marketingFee).div(10**4);
    }

    function calculateBurn(uint256 _amount)
        private
        view
        returns (uint256)
    {
        return _amount.mul(_burnFee).div(10**4);
    }

    function removeAllFee() private {
        _previousTaxFee = _taxFee;
        _previousMarketingFee = _marketingFee;
        _previousBurnFee = _burnFee;

        _taxFee = 0;
        _marketingFee = 0;
        _burnFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _marketingFee = _previousMarketingFee;
        _burnFee = _previousBurnFee;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

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

    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() && !tradingEnabled) {
            require(tradingEnabled, "Trading is not enabled yet");
        }

         if (
                from != owner() &&
                to != address(this) &&
                to != _burnAddress &&
                to != uniswapV2Pair
            ) {
                uint256 currentBalance = balanceOf(to);
                require(
                    _isExcludedFromMaxWallet[to] ||
                        (currentBalance + amount <= maxWalletBalance),
                    "ERC20: Reached Max wallet holding"
                );
            }
        
        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair ) {
                _taxFee = _buyTaxFee;
                _marketingFee = _buyMarketingFee;
                _burnFee = _buyBurnFee;
            } else if (to == uniswapV2Pair ) {
                _taxFee = _sellTaxFee;
                _marketingFee = _sellMarketingFee;
                _burnFee = _sellBurnFee;
            } else {
                _taxFee = 0;
                _marketingFee = 0;
                _burnFee = 0;
            }
        }
       
        _tokenTransfer(from, to, amount, takeFee);

    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _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 tBurn,
            uint256 tMarket
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeBurn(tBurn);
        _takeMarketing(tMarket);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeBurn(tBurn);
        _takeMarketing(tMarket);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tBurn,
            uint256 tMarket
        ) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeBurn(tBurn);
        _takeMarketing(tMarket);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"cFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"cFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526000601055610bb860115560006012556000601355610bb86014556000601555601054601655601154601755601254601855601654601955601754601a55601854601b556001601f60006101000a81548160ff0219169083151502179055503480156200007057600080fd5b50620000816200096060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36040518060400160405280600581526020017f584e494d45000000000000000000000000000000000000000000000000000000815250600d908162000181919062000c0b565b506040518060400160405280600581526020017f584e494d45000000000000000000000000000000000000000000000000000000815250600e9081620001c8919062000c0b565b506012600f81905550600f54600a620001e2919062000e75565b6305f5e100620001f3919062000ec6565b600a81905550600f54600a6200020a919062000e75565b6305f5e1006200021b919062000ec6565b601e81905550600a5460001962000233919062000f40565b60001962000242919062000f78565b600b8190555073fd44d025e13bca38a934077bfc0a993efe1e61c0600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5460026000620002b46200096060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000357573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037d91906200101d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040b91906200101d565b6040518363ffffffff1660e01b81526004016200042a92919062001060565b6020604051808303816000875af11580156200044a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047091906200101d565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005016200096060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005566200096060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006200068f6200096860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008f06200096060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200095191906200109e565b60405180910390a350620010bb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a1357607f821691505b60208210810362000a295762000a28620009cb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a54565b62000a9f868362000a54565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000aec62000ae662000ae08462000ab7565b62000ac1565b62000ab7565b9050919050565b6000819050919050565b62000b088362000acb565b62000b2062000b178262000af3565b84845462000a61565b825550505050565b600090565b62000b3762000b28565b62000b4481848462000afd565b505050565b5b8181101562000b6c5762000b6060008262000b2d565b60018101905062000b4a565b5050565b601f82111562000bbb5762000b858162000a2f565b62000b908462000a44565b8101602085101562000ba0578190505b62000bb862000baf8562000a44565b83018262000b49565b50505b505050565b600082821c905092915050565b600062000be06000198460080262000bc0565b1980831691505092915050565b600062000bfb838362000bcd565b9150826002028217905092915050565b62000c168262000991565b67ffffffffffffffff81111562000c325762000c316200099c565b5b62000c3e8254620009fa565b62000c4b82828562000b70565b600060209050601f83116001811462000c83576000841562000c6e578287015190505b62000c7a858262000bed565b86555062000cea565b601f19841662000c938662000a2f565b60005b8281101562000cbd5784890151825560018201915060208501945060208101905062000c96565b8683101562000cdd578489015162000cd9601f89168262000bcd565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d805780860481111562000d585762000d5762000cf2565b5b600185161562000d685780820291505b808102905062000d788562000d21565b945062000d38565b94509492505050565b60008262000d9b576001905062000e6e565b8162000dab576000905062000e6e565b816001811462000dc4576002811462000dcf5762000e05565b600191505062000e6e565b60ff84111562000de45762000de362000cf2565b5b8360020a91508482111562000dfe5762000dfd62000cf2565b5b5062000e6e565b5060208310610133831016604e8410600b841016171562000e3f5782820a90508381111562000e395762000e3862000cf2565b5b62000e6e565b62000e4e848484600162000d2e565b9250905081840481111562000e685762000e6762000cf2565b5b81810290505b9392505050565b600062000e828262000ab7565b915062000e8f8362000ab7565b925062000ebe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d89565b905092915050565b600062000ed38262000ab7565b915062000ee08362000ab7565b925082820262000ef08162000ab7565b9150828204841483151762000f0a5762000f0962000cf2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f4d8262000ab7565b915062000f5a8362000ab7565b92508262000f6d5762000f6c62000f11565b5b828206905092915050565b600062000f858262000ab7565b915062000f928362000ab7565b925082820390508181111562000fad5762000fac62000cf2565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000fe58262000fb8565b9050919050565b62000ff78162000fd8565b81146200100357600080fd5b50565b600081519050620010178162000fec565b92915050565b60006020828403121562001036576200103562000fb3565b5b6000620010468482850162001006565b91505092915050565b6200105a8162000fd8565b82525050565b60006040820190506200107760008301856200104f565b6200108660208301846200104f565b9392505050565b620010988162000ab7565b82525050565b6000602082019050620010b560008301846200108d565b92915050565b614b6280620010cb6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80634ada218b116101305780638da5cb5b116100b8578063be19674b1161007c578063be19674b146106a5578063c0b0fda2146106c1578063dd62ed3e146106df578063ea2f0b371461070f578063f2fde38b1461072b57610232565b80638da5cb5b146105eb57806395d89b4114610609578063a457c2d714610627578063a9059cbb14610657578063bbde77c11461068757610232565b80636dd3d39f116100ff5780636dd3d39f1461054757806370a0823114610577578063715018a6146105a757806388f82020146105b15780638a8c523c146105e157610232565b80634ada218b146104c15780634cb80fd5146104df57806352390c02146104fb5780635342acb41461051757610232565b8063313ce567116101be5780634144d9e4116101825780634144d9e41461041d578063437823ec1461043b5780634549b0391461045757806348eb61b61461048757806349bd5a5e146104a357610232565b8063313ce567146103795780633685d4191461039757806339509351146103b35780633b124fe7146103e35780633bd5d1731461040157610232565b80631694505e116102055780631694505e146102bf57806318160ddd146102dd57806322976e0d146102fb57806323b872dd146103195780632d8381191461034957610232565b806306fdde0314610237578063095ea7b31461025557806313114a9d14610285578063151cd1c2146102a3575b600080fd5b61023f610747565b60405161024c9190613d77565b60405180910390f35b61026f600480360381019061026a9190613e32565b6107d9565b60405161027c9190613e8d565b60405180910390f35b61028d6107f7565b60405161029a9190613eb7565b60405180910390f35b6102bd60048036038101906102b89190613ed2565b610801565b005b6102c76108b2565b6040516102d49190613f84565b60405180910390f35b6102e56108d8565b6040516102f29190613eb7565b60405180910390f35b6103036108e2565b6040516103109190613eb7565b60405180910390f35b610333600480360381019061032e9190613f9f565b6108e8565b6040516103409190613e8d565b60405180910390f35b610363600480360381019061035e9190613ff2565b6109c1565b6040516103709190613eb7565b60405180910390f35b610381610a2f565b60405161038e9190613eb7565b60405180910390f35b6103b160048036038101906103ac919061401f565b610a39565b005b6103cd60048036038101906103c89190613e32565b610d6e565b6040516103da9190613e8d565b60405180910390f35b6103eb610e21565b6040516103f89190613eb7565b60405180910390f35b61041b60048036038101906104169190613ff2565b610e27565b005b610425610fa3565b604051610432919061405b565b60405180910390f35b6104556004803603810190610450919061401f565b610fc9565b005b610471600480360381019061046c91906140a2565b6110a0565b60405161047e9190613eb7565b60405180910390f35b6104a1600480360381019061049c91906140e2565b611126565b005b6104ab6111fd565b6040516104b8919061405b565b60405180910390f35b6104c9611223565b6040516104d69190613e8d565b60405180910390f35b6104f960048036038101906104f4919061401f565b611236565b005b6105156004803603810190610510919061401f565b6112f6565b005b610531600480360381019061052c919061401f565b611591565b60405161053e9190613e8d565b60405180910390f35b610561600480360381019061055c919061401f565b6115e7565b60405161056e9190613e8d565b60405180910390f35b610591600480360381019061058c919061401f565b61163d565b60405161059e9190613eb7565b60405180910390f35b6105af611728565b005b6105cb60048036038101906105c6919061401f565b611862565b6040516105d89190613e8d565b60405180910390f35b6105e96118b8565b005b6105f3611951565b604051610600919061405b565b60405180910390f35b61061161197a565b60405161061e9190613d77565b60405180910390f35b610641600480360381019061063c9190613e32565b611a0c565b60405161064e9190613e8d565b60405180910390f35b610671600480360381019061066c9190613e32565b611ad9565b60405161067e9190613e8d565b60405180910390f35b61068f611af7565b60405161069c9190613eb7565b60405180910390f35b6106bf60048036038101906106ba9190613ed2565b611afd565b005b6106c9611bae565b6040516106d69190613eb7565b60405180910390f35b6106f960048036038101906106f49190614122565b611bb4565b6040516107069190613eb7565b60405180910390f35b6107296004803603810190610724919061401f565b611c3b565b005b6107456004803603810190610740919061401f565b611d12565b005b6060600d805461075690614191565b80601f016020809104026020016040519081016040528092919081815260200182805461078290614191565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b60006107ed6107e6611eba565b8484611ec2565b6001905092915050565b6000600c54905090565b610809611eba565b73ffffffffffffffffffffffffffffffffffffffff16610827611951565b73ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108749061420e565b60405180910390fd5b826013819055506013546016819055508160148190555060145460178190555080601581905550601554601881905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60175481565b60006108f584848461208b565b6109b684610901611eba565b6109b185604051806060016040528060288152602001614ae060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610967611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b600190509392505050565b6000600b54821115610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906142a0565b60405180910390fd5b6000610a1261262d565b9050610a27818461265890919063ffffffff16565b915050919050565b6000600f54905090565b610a41611eba565b73ffffffffffffffffffffffffffffffffffffffff16610a5f611951565b73ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061430c565b60405180910390fd5b60005b600880549050811015610d6a578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7c57610b7b61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d575760086001600880549050610bd6919061438a565b81548110610be757610be661432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c2657610c2561432c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d1d57610d1c6143be565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d6a565b8080610d62906143ed565b915050610b44565b5050565b6000610e17610d7b611eba565b84610e128560046000610d8c611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611ec2565b6001905092915050565b60165481565b6000610e31611eba565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906144a7565b60405180910390fd5b6000610ecb83612684565b5050505050509050610f2581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7d81600b546126ec90919063ffffffff16565b600b81905550610f9883600c5461266e90919063ffffffff16565b600c81905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16610fef611951565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061420e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90614513565b60405180910390fd5b816111085760006110f784612684565b505050505050905080915050611120565b600061111384612684565b5050505050915050809150505b92915050565b61112e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661114c611951565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061420e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b61123e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661125c611951565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061420e565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112fe611eba565b73ffffffffffffffffffffffffffffffffffffffff1661131c611951565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f69061457f565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114d35761148f600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611723565b611720600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b90505b919050565b611730611eba565b73ffffffffffffffffffffffffffffffffffffffff1661174e611951565b73ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b9061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118c0611eba565b73ffffffffffffffffffffffffffffffffffffffff166118de611951565b73ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b9061420e565b60405180910390fd5b6001601f60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e805461198990614191565b80601f01602080910402602001604051908101604052809291908181526020018280546119b590614191565b8015611a025780601f106119d757610100808354040283529160200191611a02565b820191906000526020600020905b8154815290600101906020018083116119e557829003601f168201915b5050505050905090565b6000611acf611a19611eba565b84611aca85604051806060016040528060258152602001614b086025913960046000611a43611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b6001905092915050565b6000611aed611ae6611eba565b848461208b565b6001905092915050565b601e5481565b611b05611eba565b73ffffffffffffffffffffffffffffffffffffffff16611b23611951565b73ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b709061420e565b60405180910390fd5b826010819055506010546016819055508160118190555060115460178190555080601281905550601254601881905550505050565b60185481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c43611eba565b73ffffffffffffffffffffffffffffffffffffffff16611c61611951565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae9061420e565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d1a611eba565b73ffffffffffffffffffffffffffffffffffffffff16611d38611951565b73ffffffffffffffffffffffffffffffffffffffff1614611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d859061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490614611565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906146a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9790614735565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161207e9190613eb7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906147c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090614859565b60405180910390fd5b600081116121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906148eb565b60405180910390fd5b6121b4611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121fc5750601f60009054906101000a900460ff16155b1561225157601f60009054906101000a900460ff16612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224790614957565b60405180910390fd5b5b612259611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123545750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240c5760006123648361163d565b9050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601e5482826123c89190614977565b11155b61240a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240190614a1d565b60405180910390fd5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124b35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124c157600090506125c6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612536576010546016819055506011546017819055506012546018819055506125c5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ab576013546016819055506014546017819055506015546018819055506125c4565b6000601681905550600060178190555060006018819055505b5b5b6125d284848484612702565b50505050565b6000838311158290612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179190613d77565b60405180910390fd5b5082840390509392505050565b600080600061263a612a13565b91509150612651818361265890919063ffffffff16565b9250505090565b600081836126669190614a6c565b905092915050565b6000818361267c9190614977565b905092915050565b600080600080600080600080600080600061269e8c612cc6565b935093509350935060008060006126bf8f8787876126ba61262d565b612d45565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b600081836126fa919061438a565b905092915050565b806127105761270f612df9565b5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127b35750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c8576127c3848484612e2e565b6129ff565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561286b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128805761287b84848461309c565b6129fe565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129245750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129395761293484848461330a565b6129fd565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129db5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129f0576129eb8484846134e3565b6129fc565b6129fb84848461330a565b5b5b5b5b80612a0d57612a0c6137e6565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015612c8957826002600060088481548110612a4d57612a4c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b3b5750816003600060088481548110612ad357612ad261432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b5257600b54600a5494509450505050612cc2565b612be26002600060088481548110612b6d57612b6c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126ec90919063ffffffff16565b9250612c746003600060088481548110612bff57612bfe61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126ec90919063ffffffff16565b91508080612c81906143ed565b915050612a27565b50612ca1600a54600b5461265890919063ffffffff16565b821015612cb957600b54600a54935093505050612cc2565b81819350935050505b9091565b6000806000806000612cd786613803565b90506000612ce487613835565b90506000612cf188613867565b90506000612d2c82612d1e85612d10888e6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b9050808484849750975097509750505050509193509193565b600080600080612d5e858a61389990919063ffffffff16565b90506000612d75868a61389990919063ffffffff16565b90506000612d8c878a61389990919063ffffffff16565b90506000612da3888a61389990919063ffffffff16565b90506000612dde82612dd085612dc2888a6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b601654601981905550601754601a81905550601854601b81905550600060168190555060006017819055506000601881905550565b6000806000806000806000612e4288612684565b9650965096509650965096509650612ea288600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3787600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613018826138af565b61302181613a5e565b61302b8584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130889190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006130b088612684565b965096509650965096509650965061311087600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a584600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613286826138af565b61328f81613a5e565b6132998584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132f69190613eb7565b60405180910390a350505050505050505050565b600080600080600080600061331e88612684565b965096509650965096509650965061337e87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345f826138af565b61346881613a5e565b6134728584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf9190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006134f788612684565b965096509650965096509650965061355788600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135ec87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368184600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061371686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613762826138af565b61376b81613a5e565b6137758584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516137d29190613eb7565b60405180910390a350505050505050505050565b601954601681905550601a54601781905550601b54601881905550565b600061382e6127106138206016548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138606127106138526018548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138926127106138846017548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b600081836138a79190614a9d565b905092915050565b60006138b961262d565b905060006138d0828461389990919063ffffffff16565b9050613926816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a5957613a13836003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6000613a6861262d565b90506000613a7f828461389990919063ffffffff16565b9050613af58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613ca857613c428360036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b613cc282600b546126ec90919063ffffffff16565b600b81905550613cdd81600c5461266e90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d21578082015181840152602081019050613d06565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d4982613ce7565b613d538185613cf2565b9350613d63818560208601613d03565b613d6c81613d2d565b840191505092915050565b60006020820190508181036000830152613d918184613d3e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc982613d9e565b9050919050565b613dd981613dbe565b8114613de457600080fd5b50565b600081359050613df681613dd0565b92915050565b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613d99565b5b6000613e5785828601613de7565b9250506020613e6885828601613e1d565b9150509250929050565b60008115159050919050565b613e8781613e72565b82525050565b6000602082019050613ea26000830184613e7e565b92915050565b613eb181613dfc565b82525050565b6000602082019050613ecc6000830184613ea8565b92915050565b600080600060608486031215613eeb57613eea613d99565b5b6000613ef986828701613e1d565b9350506020613f0a86828701613e1d565b9250506040613f1b86828701613e1d565b9150509250925092565b6000819050919050565b6000613f4a613f45613f4084613d9e565b613f25565b613d9e565b9050919050565b6000613f5c82613f2f565b9050919050565b6000613f6e82613f51565b9050919050565b613f7e81613f63565b82525050565b6000602082019050613f996000830184613f75565b92915050565b600080600060608486031215613fb857613fb7613d99565b5b6000613fc686828701613de7565b9350506020613fd786828701613de7565b9250506040613fe886828701613e1d565b9150509250925092565b60006020828403121561400857614007613d99565b5b600061401684828501613e1d565b91505092915050565b60006020828403121561403557614034613d99565b5b600061404384828501613de7565b91505092915050565b61405581613dbe565b82525050565b6000602082019050614070600083018461404c565b92915050565b61407f81613e72565b811461408a57600080fd5b50565b60008135905061409c81614076565b92915050565b600080604083850312156140b9576140b8613d99565b5b60006140c785828601613e1d565b92505060206140d88582860161408d565b9150509250929050565b600080604083850312156140f9576140f8613d99565b5b600061410785828601613de7565b92505060206141188582860161408d565b9150509250929050565b6000806040838503121561413957614138613d99565b5b600061414785828601613de7565b925050602061415885828601613de7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141a957607f821691505b6020821081036141bc576141bb614162565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141f8602083613cf2565b9150614203826141c2565b602082019050919050565b60006020820190508181036000830152614227816141eb565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061428a602a83613cf2565b91506142958261422e565b604082019050919050565b600060208201905081810360008301526142b98161427d565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006142f6601b83613cf2565b9150614301826142c0565b602082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061439582613dfc565b91506143a083613dfc565b92508282039050818111156143b8576143b761435b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006143f882613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361442a5761442961435b565b5b600182019050919050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000614491602c83613cf2565b915061449c82614435565b604082019050919050565b600060208201905081810360008301526144c081614484565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006144fd601f83613cf2565b9150614508826144c7565b602082019050919050565b6000602082019050818103600083015261452c816144f0565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000614569601b83613cf2565b915061457482614533565b602082019050919050565b600060208201905081810360008301526145988161455c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145fb602683613cf2565b91506146068261459f565b604082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061468d602483613cf2565b915061469882614631565b604082019050919050565b600060208201905081810360008301526146bc81614680565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061471f602283613cf2565b915061472a826146c3565b604082019050919050565b6000602082019050818103600083015261474e81614712565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147b1602583613cf2565b91506147bc82614755565b604082019050919050565b600060208201905081810360008301526147e0816147a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614843602383613cf2565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006148d5602983613cf2565b91506148e082614879565b604082019050919050565b60006020820190508181036000830152614904816148c8565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000614941601a83613cf2565b915061494c8261490b565b602082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b600061498282613dfc565b915061498d83613dfc565b92508282019050808211156149a5576149a461435b565b5b92915050565b7f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60008201527f6700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a07602183613cf2565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7782613dfc565b9150614a8283613dfc565b925082614a9257614a91614a3d565b5b828204905092915050565b6000614aa882613dfc565b9150614ab383613dfc565b9250828202614ac181613dfc565b91508282048414831517614ad857614ad761435b565b5b509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220730e05c8c9fbf1a220a6daab43fe98bdecafdde48b3049b6e5cd71f37457d69e64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102325760003560e01c80634ada218b116101305780638da5cb5b116100b8578063be19674b1161007c578063be19674b146106a5578063c0b0fda2146106c1578063dd62ed3e146106df578063ea2f0b371461070f578063f2fde38b1461072b57610232565b80638da5cb5b146105eb57806395d89b4114610609578063a457c2d714610627578063a9059cbb14610657578063bbde77c11461068757610232565b80636dd3d39f116100ff5780636dd3d39f1461054757806370a0823114610577578063715018a6146105a757806388f82020146105b15780638a8c523c146105e157610232565b80634ada218b146104c15780634cb80fd5146104df57806352390c02146104fb5780635342acb41461051757610232565b8063313ce567116101be5780634144d9e4116101825780634144d9e41461041d578063437823ec1461043b5780634549b0391461045757806348eb61b61461048757806349bd5a5e146104a357610232565b8063313ce567146103795780633685d4191461039757806339509351146103b35780633b124fe7146103e35780633bd5d1731461040157610232565b80631694505e116102055780631694505e146102bf57806318160ddd146102dd57806322976e0d146102fb57806323b872dd146103195780632d8381191461034957610232565b806306fdde0314610237578063095ea7b31461025557806313114a9d14610285578063151cd1c2146102a3575b600080fd5b61023f610747565b60405161024c9190613d77565b60405180910390f35b61026f600480360381019061026a9190613e32565b6107d9565b60405161027c9190613e8d565b60405180910390f35b61028d6107f7565b60405161029a9190613eb7565b60405180910390f35b6102bd60048036038101906102b89190613ed2565b610801565b005b6102c76108b2565b6040516102d49190613f84565b60405180910390f35b6102e56108d8565b6040516102f29190613eb7565b60405180910390f35b6103036108e2565b6040516103109190613eb7565b60405180910390f35b610333600480360381019061032e9190613f9f565b6108e8565b6040516103409190613e8d565b60405180910390f35b610363600480360381019061035e9190613ff2565b6109c1565b6040516103709190613eb7565b60405180910390f35b610381610a2f565b60405161038e9190613eb7565b60405180910390f35b6103b160048036038101906103ac919061401f565b610a39565b005b6103cd60048036038101906103c89190613e32565b610d6e565b6040516103da9190613e8d565b60405180910390f35b6103eb610e21565b6040516103f89190613eb7565b60405180910390f35b61041b60048036038101906104169190613ff2565b610e27565b005b610425610fa3565b604051610432919061405b565b60405180910390f35b6104556004803603810190610450919061401f565b610fc9565b005b610471600480360381019061046c91906140a2565b6110a0565b60405161047e9190613eb7565b60405180910390f35b6104a1600480360381019061049c91906140e2565b611126565b005b6104ab6111fd565b6040516104b8919061405b565b60405180910390f35b6104c9611223565b6040516104d69190613e8d565b60405180910390f35b6104f960048036038101906104f4919061401f565b611236565b005b6105156004803603810190610510919061401f565b6112f6565b005b610531600480360381019061052c919061401f565b611591565b60405161053e9190613e8d565b60405180910390f35b610561600480360381019061055c919061401f565b6115e7565b60405161056e9190613e8d565b60405180910390f35b610591600480360381019061058c919061401f565b61163d565b60405161059e9190613eb7565b60405180910390f35b6105af611728565b005b6105cb60048036038101906105c6919061401f565b611862565b6040516105d89190613e8d565b60405180910390f35b6105e96118b8565b005b6105f3611951565b604051610600919061405b565b60405180910390f35b61061161197a565b60405161061e9190613d77565b60405180910390f35b610641600480360381019061063c9190613e32565b611a0c565b60405161064e9190613e8d565b60405180910390f35b610671600480360381019061066c9190613e32565b611ad9565b60405161067e9190613e8d565b60405180910390f35b61068f611af7565b60405161069c9190613eb7565b60405180910390f35b6106bf60048036038101906106ba9190613ed2565b611afd565b005b6106c9611bae565b6040516106d69190613eb7565b60405180910390f35b6106f960048036038101906106f49190614122565b611bb4565b6040516107069190613eb7565b60405180910390f35b6107296004803603810190610724919061401f565b611c3b565b005b6107456004803603810190610740919061401f565b611d12565b005b6060600d805461075690614191565b80601f016020809104026020016040519081016040528092919081815260200182805461078290614191565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b60006107ed6107e6611eba565b8484611ec2565b6001905092915050565b6000600c54905090565b610809611eba565b73ffffffffffffffffffffffffffffffffffffffff16610827611951565b73ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108749061420e565b60405180910390fd5b826013819055506013546016819055508160148190555060145460178190555080601581905550601554601881905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60175481565b60006108f584848461208b565b6109b684610901611eba565b6109b185604051806060016040528060288152602001614ae060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610967611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b600190509392505050565b6000600b54821115610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906142a0565b60405180910390fd5b6000610a1261262d565b9050610a27818461265890919063ffffffff16565b915050919050565b6000600f54905090565b610a41611eba565b73ffffffffffffffffffffffffffffffffffffffff16610a5f611951565b73ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061430c565b60405180910390fd5b60005b600880549050811015610d6a578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7c57610b7b61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d575760086001600880549050610bd6919061438a565b81548110610be757610be661432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c2657610c2561432c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d1d57610d1c6143be565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d6a565b8080610d62906143ed565b915050610b44565b5050565b6000610e17610d7b611eba565b84610e128560046000610d8c611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611ec2565b6001905092915050565b60165481565b6000610e31611eba565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906144a7565b60405180910390fd5b6000610ecb83612684565b5050505050509050610f2581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7d81600b546126ec90919063ffffffff16565b600b81905550610f9883600c5461266e90919063ffffffff16565b600c81905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16610fef611951565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061420e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90614513565b60405180910390fd5b816111085760006110f784612684565b505050505050905080915050611120565b600061111384612684565b5050505050915050809150505b92915050565b61112e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661114c611951565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061420e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b61123e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661125c611951565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061420e565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112fe611eba565b73ffffffffffffffffffffffffffffffffffffffff1661131c611951565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f69061457f565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114d35761148f600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611723565b611720600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b90505b919050565b611730611eba565b73ffffffffffffffffffffffffffffffffffffffff1661174e611951565b73ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b9061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118c0611eba565b73ffffffffffffffffffffffffffffffffffffffff166118de611951565b73ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b9061420e565b60405180910390fd5b6001601f60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e805461198990614191565b80601f01602080910402602001604051908101604052809291908181526020018280546119b590614191565b8015611a025780601f106119d757610100808354040283529160200191611a02565b820191906000526020600020905b8154815290600101906020018083116119e557829003601f168201915b5050505050905090565b6000611acf611a19611eba565b84611aca85604051806060016040528060258152602001614b086025913960046000611a43611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b6001905092915050565b6000611aed611ae6611eba565b848461208b565b6001905092915050565b601e5481565b611b05611eba565b73ffffffffffffffffffffffffffffffffffffffff16611b23611951565b73ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b709061420e565b60405180910390fd5b826010819055506010546016819055508160118190555060115460178190555080601281905550601254601881905550505050565b60185481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c43611eba565b73ffffffffffffffffffffffffffffffffffffffff16611c61611951565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae9061420e565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d1a611eba565b73ffffffffffffffffffffffffffffffffffffffff16611d38611951565b73ffffffffffffffffffffffffffffffffffffffff1614611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d859061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490614611565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906146a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9790614735565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161207e9190613eb7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906147c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090614859565b60405180910390fd5b600081116121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906148eb565b60405180910390fd5b6121b4611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121fc5750601f60009054906101000a900460ff16155b1561225157601f60009054906101000a900460ff16612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224790614957565b60405180910390fd5b5b612259611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123545750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240c5760006123648361163d565b9050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601e5482826123c89190614977565b11155b61240a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240190614a1d565b60405180910390fd5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124b35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124c157600090506125c6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612536576010546016819055506011546017819055506012546018819055506125c5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ab576013546016819055506014546017819055506015546018819055506125c4565b6000601681905550600060178190555060006018819055505b5b5b6125d284848484612702565b50505050565b6000838311158290612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179190613d77565b60405180910390fd5b5082840390509392505050565b600080600061263a612a13565b91509150612651818361265890919063ffffffff16565b9250505090565b600081836126669190614a6c565b905092915050565b6000818361267c9190614977565b905092915050565b600080600080600080600080600080600061269e8c612cc6565b935093509350935060008060006126bf8f8787876126ba61262d565b612d45565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b600081836126fa919061438a565b905092915050565b806127105761270f612df9565b5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127b35750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c8576127c3848484612e2e565b6129ff565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561286b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128805761287b84848461309c565b6129fe565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129245750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129395761293484848461330a565b6129fd565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129db5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129f0576129eb8484846134e3565b6129fc565b6129fb84848461330a565b5b5b5b5b80612a0d57612a0c6137e6565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015612c8957826002600060088481548110612a4d57612a4c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b3b5750816003600060088481548110612ad357612ad261432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b5257600b54600a5494509450505050612cc2565b612be26002600060088481548110612b6d57612b6c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126ec90919063ffffffff16565b9250612c746003600060088481548110612bff57612bfe61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126ec90919063ffffffff16565b91508080612c81906143ed565b915050612a27565b50612ca1600a54600b5461265890919063ffffffff16565b821015612cb957600b54600a54935093505050612cc2565b81819350935050505b9091565b6000806000806000612cd786613803565b90506000612ce487613835565b90506000612cf188613867565b90506000612d2c82612d1e85612d10888e6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b9050808484849750975097509750505050509193509193565b600080600080612d5e858a61389990919063ffffffff16565b90506000612d75868a61389990919063ffffffff16565b90506000612d8c878a61389990919063ffffffff16565b90506000612da3888a61389990919063ffffffff16565b90506000612dde82612dd085612dc2888a6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b601654601981905550601754601a81905550601854601b81905550600060168190555060006017819055506000601881905550565b6000806000806000806000612e4288612684565b9650965096509650965096509650612ea288600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3787600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613018826138af565b61302181613a5e565b61302b8584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130889190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006130b088612684565b965096509650965096509650965061311087600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a584600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613286826138af565b61328f81613a5e565b6132998584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132f69190613eb7565b60405180910390a350505050505050505050565b600080600080600080600061331e88612684565b965096509650965096509650965061337e87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345f826138af565b61346881613a5e565b6134728584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf9190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006134f788612684565b965096509650965096509650965061355788600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135ec87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368184600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061371686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613762826138af565b61376b81613a5e565b6137758584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516137d29190613eb7565b60405180910390a350505050505050505050565b601954601681905550601a54601781905550601b54601881905550565b600061382e6127106138206016548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138606127106138526018548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138926127106138846017548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b600081836138a79190614a9d565b905092915050565b60006138b961262d565b905060006138d0828461389990919063ffffffff16565b9050613926816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a5957613a13836003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6000613a6861262d565b90506000613a7f828461389990919063ffffffff16565b9050613af58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613ca857613c428360036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b613cc282600b546126ec90919063ffffffff16565b600b81905550613cdd81600c5461266e90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d21578082015181840152602081019050613d06565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d4982613ce7565b613d538185613cf2565b9350613d63818560208601613d03565b613d6c81613d2d565b840191505092915050565b60006020820190508181036000830152613d918184613d3e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc982613d9e565b9050919050565b613dd981613dbe565b8114613de457600080fd5b50565b600081359050613df681613dd0565b92915050565b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613d99565b5b6000613e5785828601613de7565b9250506020613e6885828601613e1d565b9150509250929050565b60008115159050919050565b613e8781613e72565b82525050565b6000602082019050613ea26000830184613e7e565b92915050565b613eb181613dfc565b82525050565b6000602082019050613ecc6000830184613ea8565b92915050565b600080600060608486031215613eeb57613eea613d99565b5b6000613ef986828701613e1d565b9350506020613f0a86828701613e1d565b9250506040613f1b86828701613e1d565b9150509250925092565b6000819050919050565b6000613f4a613f45613f4084613d9e565b613f25565b613d9e565b9050919050565b6000613f5c82613f2f565b9050919050565b6000613f6e82613f51565b9050919050565b613f7e81613f63565b82525050565b6000602082019050613f996000830184613f75565b92915050565b600080600060608486031215613fb857613fb7613d99565b5b6000613fc686828701613de7565b9350506020613fd786828701613de7565b9250506040613fe886828701613e1d565b9150509250925092565b60006020828403121561400857614007613d99565b5b600061401684828501613e1d565b91505092915050565b60006020828403121561403557614034613d99565b5b600061404384828501613de7565b91505092915050565b61405581613dbe565b82525050565b6000602082019050614070600083018461404c565b92915050565b61407f81613e72565b811461408a57600080fd5b50565b60008135905061409c81614076565b92915050565b600080604083850312156140b9576140b8613d99565b5b60006140c785828601613e1d565b92505060206140d88582860161408d565b9150509250929050565b600080604083850312156140f9576140f8613d99565b5b600061410785828601613de7565b92505060206141188582860161408d565b9150509250929050565b6000806040838503121561413957614138613d99565b5b600061414785828601613de7565b925050602061415885828601613de7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141a957607f821691505b6020821081036141bc576141bb614162565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141f8602083613cf2565b9150614203826141c2565b602082019050919050565b60006020820190508181036000830152614227816141eb565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061428a602a83613cf2565b91506142958261422e565b604082019050919050565b600060208201905081810360008301526142b98161427d565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006142f6601b83613cf2565b9150614301826142c0565b602082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061439582613dfc565b91506143a083613dfc565b92508282039050818111156143b8576143b761435b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006143f882613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361442a5761442961435b565b5b600182019050919050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000614491602c83613cf2565b915061449c82614435565b604082019050919050565b600060208201905081810360008301526144c081614484565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006144fd601f83613cf2565b9150614508826144c7565b602082019050919050565b6000602082019050818103600083015261452c816144f0565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000614569601b83613cf2565b915061457482614533565b602082019050919050565b600060208201905081810360008301526145988161455c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145fb602683613cf2565b91506146068261459f565b604082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061468d602483613cf2565b915061469882614631565b604082019050919050565b600060208201905081810360008301526146bc81614680565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061471f602283613cf2565b915061472a826146c3565b604082019050919050565b6000602082019050818103600083015261474e81614712565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147b1602583613cf2565b91506147bc82614755565b604082019050919050565b600060208201905081810360008301526147e0816147a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614843602383613cf2565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006148d5602983613cf2565b91506148e082614879565b604082019050919050565b60006020820190508181036000830152614904816148c8565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000614941601a83613cf2565b915061494c8261490b565b602082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b600061498282613dfc565b915061498d83613dfc565b92508282019050808211156149a5576149a461435b565b5b92915050565b7f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60008201527f6700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a07602183613cf2565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7782613dfc565b9150614a8283613dfc565b925082614a9257614a91614a3d565b5b828204905092915050565b6000614aa882613dfc565b9150614ab383613dfc565b9250828202614ac181613dfc565b91508282048414831517614ad857614ad761435b565b5b509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220730e05c8c9fbf1a220a6daab43fe98bdecafdde48b3049b6e5cd71f37457d69e64736f6c63430008120033

Deployed Bytecode Sourcemap

3579:19710:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6431:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7418:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8917:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12536:334;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4956:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6710:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4696:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7619:446;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9932:322;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6617:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10602:477;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8073:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4654:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9012:421;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4047:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11901:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9441:483;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12231:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5006:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5079:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13213:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10262:332;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18074:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12390:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6813:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2783:148;;;:::i;:::-;;8789:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12021:84;;;:::i;:::-;;2560:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6522;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8381:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7019:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5041:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12878:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4750:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7226:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12113:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2939:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6431:83;6468:13;6501:5;6494:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6431:83;:::o;7418:193::-;7520:4;7542:39;7551:12;:10;:12::i;:::-;7565:7;7574:6;7542:8;:39::i;:::-;7599:4;7592:11;;7418:193;;;;:::o;8917:87::-;8959:7;8986:10;;8979:17;;8917:87;:::o;12536:334::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12683:4:::1;12669:11;:18;;;;12708:11;;12698:7;:21;;;;12750:4;12730:17;:24;;;;12781:17;;12765:13;:33;;;;12824:4;12809:12;:19;;;;12850:12;;12839:8;:23;;;;12536:334:::0;;;:::o;4956:42::-;;;;;;;;;;;;;:::o;6710:95::-;6763:7;6790;;6783:14;;6710:95;:::o;4696:47::-;;;;:::o;7619:446::-;7751:4;7768:36;7778:6;7786:9;7797:6;7768:9;:36::i;:::-;7815:220;7838:6;7859:12;:10;:12::i;:::-;7886:138;7942:6;7886:138;;;;;;;;;;;;;;;;;:11;:19;7898:6;7886:19;;;;;;;;;;;;;;;:33;7906:12;:10;:12::i;:::-;7886:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7815:8;:220::i;:::-;8053:4;8046:11;;7619:446;;;;;:::o;9932:322::-;10026:7;10084;;10073;:18;;10051:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10172:19;10194:10;:8;:10::i;:::-;10172:32;;10222:24;10234:11;10222:7;:11;;:24;;;;:::i;:::-;10215:31;;;9932:322;;;:::o;6617:85::-;6658:7;6685:9;;6678:16;;6617:85;:::o;10602:477::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10682:11:::1;:20;10694:7;10682:20;;;;;;;;;;;;;;;;;;;;;;;;;10674:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10750:9;10745:327;10769:9;:16;;;;10765:1;:20;10745:327;;;10827:7;10811:23;;:9;10821:1;10811:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;::::0;10807:254:::1;;10870:9;10899:1;10880:9;:16;;;;:20;;;;:::i;:::-;10870:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10855:9;10865:1;10855:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;10939:1;10920:7;:16;10928:7;10920:16;;;;;;;;;;;;;;;:20;;;;10982:5;10959:11;:20;10971:7;10959:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11006:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11040:5;;10807:254;10787:3;;;;;:::i;:::-;;;;10745:327;;;;10602:477:::0;:::o;8073:300::-;8188:4;8210:133;8233:12;:10;:12::i;:::-;8260:7;8282:50;8321:10;8282:11;:25;8294:12;:10;:12::i;:::-;8282:25;;;;;;;;;;;;;;;:34;8308:7;8282:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8210:8;:133::i;:::-;8361:4;8354:11;;8073:300;;;;:::o;4654:35::-;;;;:::o;9012:421::-;9064:14;9081:12;:10;:12::i;:::-;9064:29;;9127:11;:19;9139:6;9127:19;;;;;;;;;;;;;;;;;;;;;;;;;9126:20;9104:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;9230:15;9261:19;9272:7;9261:10;:19::i;:::-;9229:51;;;;;;;;9309:28;9329:7;9309;:15;9317:6;9309:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9291:7;:15;9299:6;9291:15;;;;;;;;;;;;;;;:46;;;;9358:20;9370:7;9358;;:11;;:20;;;;:::i;:::-;9348:7;:30;;;;9402:23;9417:7;9402:10;;:14;;:23;;;;:::i;:::-;9389:10;:36;;;;9053:380;;9012:421;:::o;4047:38::-;;;;;;;;;;;;;:::o;11901:111::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12000:4:::1;11970:18;:27;11989:7;11970:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11901:111:::0;:::o;9441:483::-;9559:7;9603;;9592;:18;;9584:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9662:17;9657:260;;9697:15;9728:19;9739:7;9728:10;:19::i;:::-;9696:51;;;;;;;;9769:7;9762:14;;;;;9657:260;9812:23;9849:19;9860:7;9849:10;:19::i;:::-;9809:59;;;;;;;;9890:15;9883:22;;;9441:483;;;;;:::o;12231:151::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12369:5:::1;12333:24;:33;12358:7;12333:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12231:151:::0;;:::o;5006:28::-;;;;;;;;;;;;;:::o;5079:33::-;;;;;;;;;;;;;:::o;13213:119::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13319:5:::1;13293:23;;:31;;;;;;;;;;;;;;;;;;13213:119:::0;:::o;10262:332::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10343:11:::1;:20;10355:7;10343:20;;;;;;;;;;;;;;;;;;;;;;;;;10342:21;10334:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10429:1;10410:7;:16;10418:7;10410:16;;;;;;;;;;;;;;;;:20;10406:109;;;10466:37;10486:7;:16;10494:7;10486:16;;;;;;;;;;;;;;;;10466:19;:37::i;:::-;10447:7;:16;10455:7;10447:16;;;;;;;;;;;;;;;:56;;;;10406:109;10548:4;10525:11;:20;10537:7;10525:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10563:9;10578:7;10563:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10262:332:::0;:::o;18074:124::-;18139:4;18163:18;:27;18182:7;18163:27;;;;;;;;;;;;;;;;;;;;;;;;;18156:34;;18074:124;;;:::o;12390:138::-;12460:4;12487:24;:33;12512:7;12487:33;;;;;;;;;;;;;;;;;;;;;;;;;12480:40;;12390:138;;;:::o;6813:198::-;6879:7;6903:11;:20;6915:7;6903:20;;;;;;;;;;;;;;;;;;;;;;;;;6899:49;;;6932:7;:16;6940:7;6932:16;;;;;;;;;;;;;;;;6925:23;;;;6899:49;6966:37;6986:7;:16;6994:7;6986:16;;;;;;;;;;;;;;;;6966:19;:37::i;:::-;6959:44;;6813:198;;;;:::o;2783:148::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2890:1:::1;2853:40;;2874:6;::::0;::::1;;;;;;;;2853:40;;;;;;;;;;;;2921:1;2904:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2783:148::o:0;8789:120::-;8857:4;8881:11;:20;8893:7;8881:20;;;;;;;;;;;;;;;;;;;;;;;;;8874:27;;8789:120;;;:::o;12021:84::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12093:4:::1;12076:14;;:21;;;;;;;;;;;;;;;;;;12021:84::o:0;2560:87::-;2606:7;2633:6;;;;;;;;;;;2626:13;;2560:87;:::o;6522:::-;6561:13;6594:7;6587:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6522:87;:::o;8381:400::-;8501:4;8523:228;8546:12;:10;:12::i;:::-;8573:7;8595:145;8652:15;8595:145;;;;;;;;;;;;;;;;;:11;:25;8607:12;:10;:12::i;:::-;8595:25;;;;;;;;;;;;;;;:34;8621:7;8595:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;8523:8;:228::i;:::-;8769:4;8762:11;;8381:400;;;;:::o;7019:199::-;7124:4;7146:42;7156:12;:10;:12::i;:::-;7170:9;7181:6;7146:9;:42::i;:::-;7206:4;7199:11;;7019:199;;;;:::o;5041:31::-;;;;:::o;12878:327::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13023:4:::1;13010:10;:17;;;;13048:10;;13038:7;:20;;;;13088:4;13069:16;:23;;;;13119:16;;13103:13;:32;;;;13160:4;13146:11;:18;;;;13186:11;;13175:8;:22;;;;12878:327:::0;;;:::o;4750:37::-;;;;:::o;7226:184::-;7343:7;7375:11;:18;7387:5;7375:18;;;;;;;;;;;;;;;:27;7394:7;7375:27;;;;;;;;;;;;;;;;7368:34;;7226:184;;;;:::o;12113:110::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12210:5:::1;12180:18;:27;12199:7;12180:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12113:110:::0;:::o;2939:281::-;2706:12;:10;:12::i;:::-;2695:23;;:7;:5;:7::i;:::-;:23;;;2687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3062:1:::1;3042:22;;:8;:22;;::::0;3020:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3175:8;3146:38;;3167:6;::::0;::::1;;;;;;;;3146:38;;;;;;;;;;;;3204:8;3195:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2939:281:::0;:::o;1982:98::-;2035:7;2062:10;2055:17;;1982:98;:::o;18206:371::-;18350:1;18333:19;;:5;:19;;;18325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18431:1;18412:21;;:7;:21;;;18404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18515:6;18485:11;:18;18497:5;18485:18;;;;;;;;;;;;;;;:27;18504:7;18485:27;;;;;;;;;;;;;;;:36;;;;18553:7;18537:32;;18546:5;18537:32;;;18562:6;18537:32;;;;;;:::i;:::-;;;;;;;;18206:371;;;:::o;18585:1675::-;18723:1;18707:18;;:4;:18;;;18699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18800:1;18786:16;;:2;:16;;;18778:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18870:1;18861:6;:10;18853:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18940:7;:5;:7::i;:::-;18932:15;;:4;:15;;;;:34;;;;;18952:14;;;;;;;;;;;18951:15;18932:34;18928:120;;;18991:14;;;;;;;;;;;18983:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;18928:120;19091:7;:5;:7::i;:::-;19083:15;;:4;:15;;;;:55;;;;;19133:4;19119:19;;:2;:19;;;;19083:55;:94;;;;;4124:42;19159:18;;:2;:18;;;;19083:94;:134;;;;;19204:13;;;;;;;;;;;19198:19;;:2;:19;;;;19083:134;19061:473;;;19252:22;19277:13;19287:2;19277:9;:13::i;:::-;19252:38;;19339:24;:28;19364:2;19339:28;;;;;;;;;;;;;;;;;;;;;;;;;:102;;;;19424:16;;19414:6;19397:14;:23;;;;:::i;:::-;:43;;19339:102;19309:209;;;;;;;;;;;;:::i;:::-;;;;;;;;;19233:301;19061:473;19554:12;19569:4;19554:19;;19588:18;:24;19607:4;19588:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;19616:18;:22;19635:2;19616:22;;;;;;;;;;;;;;;;;;;;;;;;;19588:50;19584:606;;;19665:5;19655:15;;19584:606;;;19715:13;;;;;;;;;;;19707:21;;:4;:21;;;19703:476;;19760:10;;19750:7;:20;;;;19805:16;;19789:13;:32;;;;19851:11;;19840:8;:22;;;;19703:476;;;19894:13;;;;;;;;;;;19888:19;;:2;:19;;;19884:295;;19939:11;;19929:7;:21;;;;19985:17;;19969:13;:33;;;;20032:12;;20021:8;:23;;;;19884:295;;;20095:1;20085:7;:11;;;;20131:1;20115:13;:17;;;;20162:1;20151:8;:12;;;;19884:295;19703:476;19584:606;20209:41;20224:4;20230:2;20234:6;20242:7;20209:14;:41::i;:::-;18688:1572;18585:1675;;;:::o;1453:240::-;1573:7;1631:1;1626;:6;;1634:12;1618:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1673:1;1669;:5;1662:12;;1453:240;;;;;:::o;15507:164::-;15549:7;15570:15;15587;15606:19;:17;:19::i;:::-;15569:56;;;;15643:20;15655:7;15643;:11;;:20;;;;:::i;:::-;15636:27;;;;15507:164;:::o;1347:98::-;1405:7;1436:1;1432;:5;;;;:::i;:::-;1425:12;;1347:98;;;;:::o;1029:::-;1087:7;1118:1;1114;:5;;;;:::i;:::-;1107:12;;1029:98;;;;:::o;13495:823::-;13595:7;13617;13639;13661;13683;13705;13727;13777:23;13815:12;13842:13;13870:15;13899:20;13911:7;13899:11;:20::i;:::-;13762:157;;;;;;;;13931:15;13948:23;13973:12;13989:130;14015:7;14037:4;14056:5;14076:7;14098:10;:8;:10::i;:::-;13989:11;:130::i;:::-;13930:189;;;;;;14152:7;14174:15;14204:4;14223:15;14253:4;14272:5;14292:7;14130:180;;;;;;;;;;;;;;;;;;;;;13495:823;;;;;;;;;:::o;1135:98::-;1193:7;1224:1;1220;:5;;;;:::i;:::-;1213:12;;1135:98;;;;:::o;20268:838::-;20424:7;20419:28;;20433:14;:12;:14::i;:::-;20419:28;20464:11;:19;20476:6;20464:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;20488:11;:22;20500:9;20488:22;;;;;;;;;;;;;;;;;;;;;;;;;20487:23;20464:46;20460:597;;;20527:48;20549:6;20557:9;20568:6;20527:21;:48::i;:::-;20460:597;;;20598:11;:19;20610:6;20598:19;;;;;;;;;;;;;;;;;;;;;;;;;20597:20;:46;;;;;20621:11;:22;20633:9;20621:22;;;;;;;;;;;;;;;;;;;;;;;;;20597:46;20593:464;;;20660:46;20680:6;20688:9;20699:6;20660:19;:46::i;:::-;20593:464;;;20729:11;:19;20741:6;20729:19;;;;;;;;;;;;;;;;;;;;;;;;;20728:20;:47;;;;;20753:11;:22;20765:9;20753:22;;;;;;;;;;;;;;;;;;;;;;;;;20752:23;20728:47;20724:333;;;20792:44;20810:6;20818:9;20829:6;20792:17;:44::i;:::-;20724:333;;;20858:11;:19;20870:6;20858:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;20881:11;:22;20893:9;20881:22;;;;;;;;;;;;;;;;;;;;;;;;;20858:45;20854:203;;;20920:48;20942:6;20950:9;20961:6;20920:21;:48::i;:::-;20854:203;;;21001:44;21019:6;21027:9;21038:6;21001:17;:44::i;:::-;20854:203;20724:333;20593:464;20460:597;21074:7;21069:29;;21083:15;:13;:15::i;:::-;21069:29;20268:838;;;;:::o;15679:605::-;15730:7;15739;15759:15;15777:7;;15759:25;;15795:15;15813:7;;15795:25;;15836:9;15831:338;15855:9;:16;;;;15851:1;:20;15831:338;;;15939:7;15915;:21;15923:9;15933:1;15923:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15915:21;;;;;;;;;;;;;;;;:31;:83;;;;15991:7;15967;:21;15975:9;15985:1;15975:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15967:21;;;;;;;;;;;;;;;;:31;15915:83;15893:146;;;16022:7;;16031;;16014:25;;;;;;;;;15893:146;16064:34;16076:7;:21;16084:9;16094:1;16084:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16076:21;;;;;;;;;;;;;;;;16064:7;:11;;:34;;;;:::i;:::-;16054:44;;16123:34;16135:7;:21;16143:9;16153:1;16143:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16135:21;;;;;;;;;;;;;;;;16123:7;:11;;:34;;;;:::i;:::-;16113:44;;15873:3;;;;;:::i;:::-;;;;15831:338;;;;16193:20;16205:7;;16193;;:11;;:20;;;;:::i;:::-;16183:7;:30;16179:61;;;16223:7;;16232;;16215:25;;;;;;;;16179:61;16259:7;16268;16251:25;;;;;;15679:605;;;:::o;14326:516::-;14427:7;14449;14471;14493;14528:12;14543:24;14559:7;14543:15;:24::i;:::-;14528:39;;14578:13;14594:22;14608:7;14594:13;:22::i;:::-;14578:38;;14627:15;14645:30;14667:7;14645:21;:30::i;:::-;14627:48;;14686:23;14712:65;14759:7;14712:28;14734:5;14712:17;14724:4;14712:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;14686:91;;14796:15;14813:4;14819:5;14826:7;14788:46;;;;;;;;;;;;14326:516;;;;;:::o;14850:649::-;15070:7;15092;15114;15149:15;15167:24;15179:11;15167:7;:11;;:24;;;;:::i;:::-;15149:42;;15202:12;15217:21;15226:11;15217:4;:8;;:21;;;;:::i;:::-;15202:36;;15249:13;15265:22;15275:11;15265:5;:9;;:22;;;;:::i;:::-;15249:38;;15298:15;15315:24;15327:11;15315:7;:11;;:24;;;;:::i;:::-;15298:41;;15350:23;15376:65;15423:7;15376:28;15398:5;15376:17;15388:4;15376:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;15350:91;;15460:7;15469:15;15486:4;15452:39;;;;;;;;;;;14850:649;;;;;;;;;:::o;17658:237::-;17719:7;;17701:15;:25;;;;17761:13;;17737:21;:37;;;;17804:8;;17785:16;:27;;;;17835:1;17825:7;:11;;;;17863:1;17847:13;:17;;;;17886:1;17875:8;:12;;;;17658:237::o;22551:735::-;22702:15;22732:23;22770:12;22797:23;22835:12;22862:13;22890:15;22919:19;22930:7;22919:10;:19::i;:::-;22687:251;;;;;;;;;;;;;;22967:28;22987:7;22967;:15;22975:6;22967:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22949:7;:15;22957:6;22949:15;;;;;;;;;;;;;;;:46;;;;23024:28;23044:7;23024;:15;23032:6;23024:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23006:7;:15;23014:6;23006:15;;;;;;;;;;;;;;;:46;;;;23084:39;23107:15;23084:7;:18;23092:9;23084:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23063:7;:18;23071:9;23063:18;;;;;;;;;;;;;;;:60;;;;23134:16;23144:5;23134:9;:16::i;:::-;23161:23;23176:7;23161:14;:23::i;:::-;23195;23207:4;23213;23195:11;:23::i;:::-;23251:9;23234:44;;23243:6;23234:44;;;23262:15;23234:44;;;;;;:::i;:::-;;;;;;;;22676:610;;;;;;;22551:735;;;:::o;21796:747::-;21945:15;21975:23;22013:12;22040:23;22078:12;22105:13;22133:15;22162:19;22173:7;22162:10;:19::i;:::-;21930:251;;;;;;;;;;;;;;22210:28;22230:7;22210;:15;22218:6;22210:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22192:7;:15;22200:6;22192:15;;;;;;;;;;;;;;;:46;;;;22270:39;22293:15;22270:7;:18;22278:9;22270:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22249:7;:18;22257:9;22249:18;;;;;;;;;;;;;;;:60;;;;22341:39;22364:15;22341:7;:18;22349:9;22341:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22320:7;:18;22328:9;22320:18;;;;;;;;;;;;;;;:60;;;;22391:16;22401:5;22391:9;:16::i;:::-;22418:23;22433:7;22418:14;:23::i;:::-;22452;22464:4;22470;22452:11;:23::i;:::-;22508:9;22491:44;;22500:6;22491:44;;;22519:15;22491:44;;;;;;:::i;:::-;;;;;;;;21919:624;;;;;;;21796:747;;;:::o;21114:674::-;21261:15;21291:23;21329:12;21356:23;21394:12;21421:13;21449:15;21478:19;21489:7;21478:10;:19::i;:::-;21246:251;;;;;;;;;;;;;;21526:28;21546:7;21526;:15;21534:6;21526:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21508:7;:15;21516:6;21508:15;;;;;;;;;;;;;;;:46;;;;21586:39;21609:15;21586:7;:18;21594:9;21586:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21565:7;:18;21573:9;21565:18;;;;;;;;;;;;;;;:60;;;;21636:16;21646:5;21636:9;:16::i;:::-;21663:23;21678:7;21663:14;:23::i;:::-;21697;21709:4;21715;21697:11;:23::i;:::-;21753:9;21736:44;;21745:6;21736:44;;;21764:15;21736:44;;;;;;:::i;:::-;;;;;;;;21235:553;;;;;;;21114:674;;;:::o;11087:806::-;11238:15;11268:23;11306:12;11333:23;11371:12;11398:13;11426:15;11455:19;11466:7;11455:10;:19::i;:::-;11223:251;;;;;;;;;;;;;;11503:28;11523:7;11503;:15;11511:6;11503:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11485:7;:15;11493:6;11485:15;;;;;;;;;;;;;;;:46;;;;11560:28;11580:7;11560;:15;11568:6;11560:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11542:7;:15;11550:6;11542:15;;;;;;;;;;;;;;;:46;;;;11620:39;11643:15;11620:7;:18;11628:9;11620:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11599:7;:18;11607:9;11599:18;;;;;;;;;;;;;;;:60;;;;11691:39;11714:15;11691:7;:18;11699:9;11691:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11670:7;:18;11678:9;11670:18;;;;;;;;;;;;;;;:60;;;;11741:16;11751:5;11741:9;:16::i;:::-;11768:23;11783:7;11768:14;:23::i;:::-;11802;11814:4;11820;11802:11;:23::i;:::-;11858:9;11841:44;;11850:6;11841:44;;;11869:15;11841:44;;;;;;:::i;:::-;;;;;;;;11212:681;;;;;;;11087:806;;;:::o;17903:163::-;17957:15;;17947:7;:25;;;;17999:21;;17983:13;:37;;;;18042:16;;18031:8;:27;;;;17903:163::o;17169:130::-;17233:7;17260:31;17285:5;17260:20;17272:7;;17260;:11;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;17253:38;;17169:130;;;:::o;17489:161::-;17578:7;17610:32;17636:5;17610:21;17622:8;;17610:7;:11;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;17603:39;;17489:161;;;:::o;17307:174::-;17404:7;17436:37;17467:5;17436:26;17448:13;;17436:7;:11;;:26;;;;:::i;:::-;:30;;:37;;;;:::i;:::-;17429:44;;17307:174;;;:::o;1241:98::-;1299:7;1330:1;1326;:5;;;;:::i;:::-;1319:12;;1241:98;;;;:::o;16292:415::-;16360:19;16382:10;:8;:10::i;:::-;16360:32;;16403:13;16419:46;16443:11;16419:5;:9;;:46;;;;:::i;:::-;16403:62;;16500:56;16540:5;16500:7;:21;4124:42;16500:21;;;;;;;;;;;;;;;;:25;;:56;;;;:::i;:::-;16476:7;:21;4124:42;16476:21;;;;;;;;;;;;;;;:80;;;;16571:11;:25;4124:42;16571:25;;;;;;;;;;;;;;;;;;;;;;;;;16567:132;;;16635:64;16679:5;16635:7;:21;4124:42;16635:21;;;;;;;;;;;;;;;;:25;;:64;;;;:::i;:::-;16611:7;:21;4124:42;16611:21;;;;;;;;;;;;;;;:88;;;;16567:132;16348:359;;16292:415;:::o;16715:446::-;16775:19;16797:10;:8;:10::i;:::-;16775:32;;16818:15;16836:24;16848:11;16836:7;:11;;:24;;;;:::i;:::-;16818:42;;16906:69;16957:7;16906;:32;16914:23;;;;;;;;;;;16906:32;;;;;;;;;;;;;;;;:36;;:69;;;;:::i;:::-;16871:7;:32;16879:23;;;;;;;;;;;16871:32;;;;;;;;;;;;;;;:104;;;;16990:11;:36;17002:23;;;;;;;;;;;16990:36;;;;;;;;;;;;;;;;;;;;;;;;;16986:167;;;17076:77;17131:7;17076;:32;17084:23;;;;;;;;;;;17076:32;;;;;;;;;;;;;;;;:36;;:77;;;;:::i;:::-;17041:7;:32;17049:23;;;;;;;;;;;17041:32;;;;;;;;;;;;;;;:112;;;;16986:167;16764:397;;16715:446;:::o;13340:147::-;13418:17;13430:4;13418:7;;:11;;:17;;;;:::i;:::-;13408:7;:27;;;;13459:20;13474:4;13459:10;;:14;;:20;;;;:::i;:::-;13446:10;:33;;;;13340:147;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:60::-;4451:3;4472:5;4465:12;;4423:60;;;:::o;4489:142::-;4539:9;4572:53;4590:34;4599:24;4617:5;4599:24;:::i;:::-;4590:34;:::i;:::-;4572:53;:::i;:::-;4559:66;;4489:142;;;:::o;4637:126::-;4687:9;4720:37;4751:5;4720:37;:::i;:::-;4707:50;;4637:126;;;:::o;4769:152::-;4845:9;4878:37;4909:5;4878:37;:::i;:::-;4865:50;;4769:152;;;:::o;4927:183::-;5040:63;5097:5;5040:63;:::i;:::-;5035:3;5028:76;4927:183;;:::o;5116:274::-;5235:4;5273:2;5262:9;5258:18;5250:26;;5286:97;5380:1;5369:9;5365:17;5356:6;5286:97;:::i;:::-;5116:274;;;;:::o;5396:619::-;5473:6;5481;5489;5538:2;5526:9;5517:7;5513:23;5509:32;5506:119;;;5544:79;;:::i;:::-;5506:119;5664:1;5689:53;5734:7;5725:6;5714:9;5710:22;5689:53;:::i;:::-;5679:63;;5635:117;5791:2;5817:53;5862:7;5853:6;5842:9;5838:22;5817:53;:::i;:::-;5807:63;;5762:118;5919:2;5945:53;5990:7;5981:6;5970:9;5966:22;5945:53;:::i;:::-;5935:63;;5890:118;5396:619;;;;;:::o;6021:329::-;6080:6;6129:2;6117:9;6108:7;6104:23;6100:32;6097:119;;;6135:79;;:::i;:::-;6097:119;6255:1;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6226:117;6021:329;;;;:::o;6356:::-;6415:6;6464:2;6452:9;6443:7;6439:23;6435:32;6432:119;;;6470:79;;:::i;:::-;6432:119;6590:1;6615:53;6660:7;6651:6;6640:9;6636:22;6615:53;:::i;:::-;6605:63;;6561:117;6356:329;;;;:::o;6691:118::-;6778:24;6796:5;6778:24;:::i;:::-;6773:3;6766:37;6691:118;;:::o;6815:222::-;6908:4;6946:2;6935:9;6931:18;6923:26;;6959:71;7027:1;7016:9;7012:17;7003:6;6959:71;:::i;:::-;6815:222;;;;:::o;7043:116::-;7113:21;7128:5;7113:21;:::i;:::-;7106:5;7103:32;7093:60;;7149:1;7146;7139:12;7093:60;7043:116;:::o;7165:133::-;7208:5;7246:6;7233:20;7224:29;;7262:30;7286:5;7262:30;:::i;:::-;7165:133;;;;:::o;7304:468::-;7369:6;7377;7426:2;7414:9;7405:7;7401:23;7397:32;7394:119;;;7432:79;;:::i;:::-;7394:119;7552:1;7577:53;7622:7;7613:6;7602:9;7598:22;7577:53;:::i;:::-;7567:63;;7523:117;7679:2;7705:50;7747:7;7738:6;7727:9;7723:22;7705:50;:::i;:::-;7695:60;;7650:115;7304:468;;;;;:::o;7778:::-;7843:6;7851;7900:2;7888:9;7879:7;7875:23;7871:32;7868:119;;;7906:79;;:::i;:::-;7868:119;8026:1;8051:53;8096:7;8087:6;8076:9;8072:22;8051:53;:::i;:::-;8041:63;;7997:117;8153:2;8179:50;8221:7;8212:6;8201:9;8197:22;8179:50;:::i;:::-;8169:60;;8124:115;7778:468;;;;;:::o;8252:474::-;8320:6;8328;8377:2;8365:9;8356:7;8352:23;8348:32;8345:119;;;8383:79;;:::i;:::-;8345:119;8503:1;8528:53;8573:7;8564:6;8553:9;8549:22;8528:53;:::i;:::-;8518:63;;8474:117;8630:2;8656:53;8701:7;8692:6;8681:9;8677:22;8656:53;:::i;:::-;8646:63;;8601:118;8252:474;;;;;:::o;8732:180::-;8780:77;8777:1;8770:88;8877:4;8874:1;8867:15;8901:4;8898:1;8891:15;8918:320;8962:6;8999:1;8993:4;8989:12;8979:22;;9046:1;9040:4;9036:12;9067:18;9057:81;;9123:4;9115:6;9111:17;9101:27;;9057:81;9185:2;9177:6;9174:14;9154:18;9151:38;9148:84;;9204:18;;:::i;:::-;9148:84;8969:269;8918:320;;;:::o;9244:182::-;9384:34;9380:1;9372:6;9368:14;9361:58;9244:182;:::o;9432:366::-;9574:3;9595:67;9659:2;9654:3;9595:67;:::i;:::-;9588:74;;9671:93;9760:3;9671:93;:::i;:::-;9789:2;9784:3;9780:12;9773:19;;9432:366;;;:::o;9804:419::-;9970:4;10008:2;9997:9;9993:18;9985:26;;10057:9;10051:4;10047:20;10043:1;10032:9;10028:17;10021:47;10085:131;10211:4;10085:131;:::i;:::-;10077:139;;9804:419;;;:::o;10229:229::-;10369:34;10365:1;10357:6;10353:14;10346:58;10438:12;10433:2;10425:6;10421:15;10414:37;10229:229;:::o;10464:366::-;10606:3;10627:67;10691:2;10686:3;10627:67;:::i;:::-;10620:74;;10703:93;10792:3;10703:93;:::i;:::-;10821:2;10816:3;10812:12;10805:19;;10464:366;;;:::o;10836:419::-;11002:4;11040:2;11029:9;11025:18;11017:26;;11089:9;11083:4;11079:20;11075:1;11064:9;11060:17;11053:47;11117:131;11243:4;11117:131;:::i;:::-;11109:139;;10836:419;;;:::o;11261:177::-;11401:29;11397:1;11389:6;11385:14;11378:53;11261:177;:::o;11444:366::-;11586:3;11607:67;11671:2;11666:3;11607:67;:::i;:::-;11600:74;;11683:93;11772:3;11683:93;:::i;:::-;11801:2;11796:3;11792:12;11785:19;;11444:366;;;:::o;11816:419::-;11982:4;12020:2;12009:9;12005:18;11997:26;;12069:9;12063:4;12059:20;12055:1;12044:9;12040:17;12033:47;12097:131;12223:4;12097:131;:::i;:::-;12089:139;;11816:419;;;:::o;12241:180::-;12289:77;12286:1;12279:88;12386:4;12383:1;12376:15;12410:4;12407:1;12400:15;12427:180;12475:77;12472:1;12465:88;12572:4;12569:1;12562:15;12596:4;12593:1;12586:15;12613:194;12653:4;12673:20;12691:1;12673:20;:::i;:::-;12668:25;;12707:20;12725:1;12707:20;:::i;:::-;12702:25;;12751:1;12748;12744:9;12736:17;;12775:1;12769:4;12766:11;12763:37;;;12780:18;;:::i;:::-;12763:37;12613:194;;;;:::o;12813:180::-;12861:77;12858:1;12851:88;12958:4;12955:1;12948:15;12982:4;12979:1;12972:15;12999:233;13038:3;13061:24;13079:5;13061:24;:::i;:::-;13052:33;;13107:66;13100:5;13097:77;13094:103;;13177:18;;:::i;:::-;13094:103;13224:1;13217:5;13213:13;13206:20;;12999:233;;;:::o;13238:231::-;13378:34;13374:1;13366:6;13362:14;13355:58;13447:14;13442:2;13434:6;13430:15;13423:39;13238:231;:::o;13475:366::-;13617:3;13638:67;13702:2;13697:3;13638:67;:::i;:::-;13631:74;;13714:93;13803:3;13714:93;:::i;:::-;13832:2;13827:3;13823:12;13816:19;;13475:366;;;:::o;13847:419::-;14013:4;14051:2;14040:9;14036:18;14028:26;;14100:9;14094:4;14090:20;14086:1;14075:9;14071:17;14064:47;14128:131;14254:4;14128:131;:::i;:::-;14120:139;;13847:419;;;:::o;14272:181::-;14412:33;14408:1;14400:6;14396:14;14389:57;14272:181;:::o;14459:366::-;14601:3;14622:67;14686:2;14681:3;14622:67;:::i;:::-;14615:74;;14698:93;14787:3;14698:93;:::i;:::-;14816:2;14811:3;14807:12;14800:19;;14459:366;;;:::o;14831:419::-;14997:4;15035:2;15024:9;15020:18;15012:26;;15084:9;15078:4;15074:20;15070:1;15059:9;15055:17;15048:47;15112:131;15238:4;15112:131;:::i;:::-;15104:139;;14831:419;;;:::o;15256:177::-;15396:29;15392:1;15384:6;15380:14;15373:53;15256:177;:::o;15439:366::-;15581:3;15602:67;15666:2;15661:3;15602:67;:::i;:::-;15595:74;;15678:93;15767:3;15678:93;:::i;:::-;15796:2;15791:3;15787:12;15780:19;;15439:366;;;:::o;15811:419::-;15977:4;16015:2;16004:9;16000:18;15992:26;;16064:9;16058:4;16054:20;16050:1;16039:9;16035:17;16028:47;16092:131;16218:4;16092:131;:::i;:::-;16084:139;;15811:419;;;:::o;16236:225::-;16376:34;16372:1;16364:6;16360:14;16353:58;16445:8;16440:2;16432:6;16428:15;16421:33;16236:225;:::o;16467:366::-;16609:3;16630:67;16694:2;16689:3;16630:67;:::i;:::-;16623:74;;16706:93;16795:3;16706:93;:::i;:::-;16824:2;16819:3;16815:12;16808:19;;16467:366;;;:::o;16839:419::-;17005:4;17043:2;17032:9;17028:18;17020:26;;17092:9;17086:4;17082:20;17078:1;17067:9;17063:17;17056:47;17120:131;17246:4;17120:131;:::i;:::-;17112:139;;16839:419;;;:::o;17264:223::-;17404:34;17400:1;17392:6;17388:14;17381:58;17473:6;17468:2;17460:6;17456:15;17449:31;17264:223;:::o;17493:366::-;17635:3;17656:67;17720:2;17715:3;17656:67;:::i;:::-;17649:74;;17732:93;17821:3;17732:93;:::i;:::-;17850:2;17845:3;17841:12;17834:19;;17493:366;;;:::o;17865:419::-;18031:4;18069:2;18058:9;18054:18;18046:26;;18118:9;18112:4;18108:20;18104:1;18093:9;18089:17;18082:47;18146:131;18272:4;18146:131;:::i;:::-;18138:139;;17865:419;;;:::o;18290:221::-;18430:34;18426:1;18418:6;18414:14;18407:58;18499:4;18494:2;18486:6;18482:15;18475:29;18290:221;:::o;18517:366::-;18659:3;18680:67;18744:2;18739:3;18680:67;:::i;:::-;18673:74;;18756:93;18845:3;18756:93;:::i;:::-;18874:2;18869:3;18865:12;18858:19;;18517:366;;;:::o;18889:419::-;19055:4;19093:2;19082:9;19078:18;19070:26;;19142:9;19136:4;19132:20;19128:1;19117:9;19113:17;19106:47;19170:131;19296:4;19170:131;:::i;:::-;19162:139;;18889:419;;;:::o;19314:224::-;19454:34;19450:1;19442:6;19438:14;19431:58;19523:7;19518:2;19510:6;19506:15;19499:32;19314:224;:::o;19544:366::-;19686:3;19707:67;19771:2;19766:3;19707:67;:::i;:::-;19700:74;;19783:93;19872:3;19783:93;:::i;:::-;19901:2;19896:3;19892:12;19885:19;;19544:366;;;:::o;19916:419::-;20082:4;20120:2;20109:9;20105:18;20097:26;;20169:9;20163:4;20159:20;20155:1;20144:9;20140:17;20133:47;20197:131;20323:4;20197:131;:::i;:::-;20189:139;;19916:419;;;:::o;20341:222::-;20481:34;20477:1;20469:6;20465:14;20458:58;20550:5;20545:2;20537:6;20533:15;20526:30;20341:222;:::o;20569:366::-;20711:3;20732:67;20796:2;20791:3;20732:67;:::i;:::-;20725:74;;20808:93;20897:3;20808:93;:::i;:::-;20926:2;20921:3;20917:12;20910:19;;20569:366;;;:::o;20941:419::-;21107:4;21145:2;21134:9;21130:18;21122:26;;21194:9;21188:4;21184:20;21180:1;21169:9;21165:17;21158:47;21222:131;21348:4;21222:131;:::i;:::-;21214:139;;20941:419;;;:::o;21366:228::-;21506:34;21502:1;21494:6;21490:14;21483:58;21575:11;21570:2;21562:6;21558:15;21551:36;21366:228;:::o;21600:366::-;21742:3;21763:67;21827:2;21822:3;21763:67;:::i;:::-;21756:74;;21839:93;21928:3;21839:93;:::i;:::-;21957:2;21952:3;21948:12;21941:19;;21600:366;;;:::o;21972:419::-;22138:4;22176:2;22165:9;22161:18;22153:26;;22225:9;22219:4;22215:20;22211:1;22200:9;22196:17;22189:47;22253:131;22379:4;22253:131;:::i;:::-;22245:139;;21972:419;;;:::o;22397:176::-;22537:28;22533:1;22525:6;22521:14;22514:52;22397:176;:::o;22579:366::-;22721:3;22742:67;22806:2;22801:3;22742:67;:::i;:::-;22735:74;;22818:93;22907:3;22818:93;:::i;:::-;22936:2;22931:3;22927:12;22920:19;;22579:366;;;:::o;22951:419::-;23117:4;23155:2;23144:9;23140:18;23132:26;;23204:9;23198:4;23194:20;23190:1;23179:9;23175:17;23168:47;23232:131;23358:4;23232:131;:::i;:::-;23224:139;;22951:419;;;:::o;23376:191::-;23416:3;23435:20;23453:1;23435:20;:::i;:::-;23430:25;;23469:20;23487:1;23469:20;:::i;:::-;23464:25;;23512:1;23509;23505:9;23498:16;;23533:3;23530:1;23527:10;23524:36;;;23540:18;;:::i;:::-;23524:36;23376:191;;;;:::o;23573:220::-;23713:34;23709:1;23701:6;23697:14;23690:58;23782:3;23777:2;23769:6;23765:15;23758:28;23573:220;:::o;23799:366::-;23941:3;23962:67;24026:2;24021:3;23962:67;:::i;:::-;23955:74;;24038:93;24127:3;24038:93;:::i;:::-;24156:2;24151:3;24147:12;24140:19;;23799:366;;;:::o;24171:419::-;24337:4;24375:2;24364:9;24360:18;24352:26;;24424:9;24418:4;24414:20;24410:1;24399:9;24395:17;24388:47;24452:131;24578:4;24452:131;:::i;:::-;24444:139;;24171:419;;;:::o;24596:180::-;24644:77;24641:1;24634:88;24741:4;24738:1;24731:15;24765:4;24762:1;24755:15;24782:185;24822:1;24839:20;24857:1;24839:20;:::i;:::-;24834:25;;24873:20;24891:1;24873:20;:::i;:::-;24868:25;;24912:1;24902:35;;24917:18;;:::i;:::-;24902:35;24959:1;24956;24952:9;24947:14;;24782:185;;;;:::o;24973:410::-;25013:7;25036:20;25054:1;25036:20;:::i;:::-;25031:25;;25070:20;25088:1;25070:20;:::i;:::-;25065:25;;25125:1;25122;25118:9;25147:30;25165:11;25147:30;:::i;:::-;25136:41;;25326:1;25317:7;25313:15;25310:1;25307:22;25287:1;25280:9;25260:83;25237:139;;25356:18;;:::i;:::-;25237:139;25021:362;24973:410;;;;:::o

Swarm Source

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