ETH Price: $3,455.00 (+1.46%)
Gas: 9 Gwei

Token

Invictus (INV)
 

Overview

Max Total Supply

1,000,000,000,000,000 INV

Holders

128 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
34,107,891.619708738 INV

Value
$0.00
0x721027bA72c9a8309EB87e4f249D5c84B65be9A8
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Invictus Token is a community driven token, donations to charities around the world. Providing a P2E game as well as a swap platform with a gains tracker.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Invictus

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license, Audited

Contract Source Code (Solidity)Audit Report

/**
 *Submitted for verification at Etherscan.io on 2021-11-24
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
// use latest solidity version at time of writing, need not worry about overflow and underflow

/// @title ERC20 Contract 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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

    string private constant _name = "Invictus";
    string private constant _symbol = "INV";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 2;
    uint256 private _taxFeeOnBuy = 8;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 2;
    uint256 private _taxFeeOnSell = 8;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0xD4710FFE134872183395Da547eE06c69E4acF033);
    address payable private _marketingAddress = payable(0xD4710FFE134872183395Da547eE06c69E4acF033);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private cooldownEnabled = false;
    
    uint256 public _maxTxAmount = 15000000000000 * 10**9; //1.5
    uint256 public _maxWalletSize = 20000000000000 * 10**9; //2
    uint256 public _swapTokensAtAmount = 1000000000000 * 10**9; //0.1

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _developmentAddress = payable(0xD4710FFE134872183395Da547eE06c69E4acF033);
        _marketingAddress = payable(0xD4710FFE134872183395Da547eE06c69E4acF033);
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = true;
        
        bots[address(0x42B2C65dB7F9e3b6c26Bc6151CCf30CcE0fb99EA)] = true;
        bots[address(0x828a2D99bb1a31cA0Eba80f3e01db8dae652A1E3)] = true;
        bots[address(0x00000000b7ca7E12DCC72290d1FE47b2EF14c607)] = true;
        bots[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = true;
        bots[address(0xbcC7f6355bc08f6b7d3a41322CE4627118314763)] = true;
        bots[address(0x1d6E8BAC6EA3730825bde4B005ed7B2B39A2932d)] = true;
        bots[address(0x000000000035B5e5ad9019092C665357240f594e)] = true;
        bots[address(0x1315c6C26123383a2Eb369a53Fb72C4B9f227EeC)] = true;
        bots[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = true;
        bots[address(0x90484Bb9bc05fD3B5FF1fe412A492676cd81790C)] = true;
        bots[address(0xA62c5bA4D3C95b3dDb247EAbAa2C8E56BAC9D6dA)] = true;
        bots[address(0x42c1b5e32d625b6C618A02ae15189035e0a92FE7)] = true;
        bots[address(0xA94E56EFc384088717bb6edCccEc289A72Ec2381)] = true;
        bots[address(0xf13FFadd3682feD42183AF8F3f0b409A9A0fdE31)] = true;
        bots[address(0x376a6EFE8E98f3ae2af230B3D45B8Cc5e962bC27)] = true;
        bots[address(0xEE2A9147ffC94A73f6b945A6DB532f8466B78830)] = true;
        bots[address(0xdE2a6d80989C3992e11B155430c3F59792FF8Bb7)] = true;
        bots[address(0x1e62A12D4981e428D3F4F28DF261fdCB2CE743Da)] = true;
        bots[address(0x5136a9A5D077aE4247C7706b577F77153C32A01C)] = true;
        bots[address(0x0E388888309d64e97F97a4740EC9Ed3DADCA71be)] = true;
        bots[address(0x255D9BA73a51e02d26a5ab90d534DB8a80974a12)] = true;
        bots[address(0xA682A66Ea044Aa1DC3EE315f6C36414F73054b47)] = true;
        bots[address(0x80e09203480A49f3Cf30a4714246f7af622ba470)] = true;
        bots[address(0x12e48B837AB8cB9104C5B95700363547bA81c8a4)] = true;
        bots[address(0x3066Cc1523dE539D36f94597e233719727599693)] = true;
        bots[address(0x201044fa39866E6dD3552D922CDa815899F63f20)] = true;
        bots[address(0x6F3aC41265916DD06165b750D88AB93baF1a11F8)] = true;
        bots[address(0x27C71ef1B1bb5a9C9Ee0CfeCEf4072AbAc686ba6)] = true;
        bots[address(0x27C71ef1B1bb5a9C9Ee0CfeCEf4072AbAc686ba6)] = true;
        bots[address(0x5668e6e8f3C31D140CC0bE918Ab8bB5C5B593418)] = true;
        bots[address(0x4b9BDDFB48fB1529125C14f7730346fe0E8b5b40)] = true;
        bots[address(0x7e2b3808cFD46fF740fBd35C584D67292A407b95)] = true;
        bots[address(0xe89C7309595E3e720D8B316F065ecB2730e34757)] = true;
        bots[address(0x725AD056625326B490B128E02759007BA5E4eBF1)] = true;
        bots[address(0x000000000000084e91743124a982076C59f10084)] = true;
        bots[address(0x7Cf09D7A9A74f746EDcb06949B9d64bCd9D1604f)] = true;
        bots[address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40)] = true;
        bots[address(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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() && to != owner() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount);
       // _marketingAddress.transfer(amount.div(2));
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

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

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}

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

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

        return (tTransferAmount, tFee, tTeam);
    }

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

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e919062001837565b6000196200002d91906200189e565b600655600260085560086009556002600a556008600b55600a54600c55600b54600d55600c54600e55600d54600f5573d4710ffe134872183395da547ee06c69e4acf033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d4710ffe134872183395da547ee06c69e4acf033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506000601660176101000a81548160ff02191690831515021790555069032d26d12e980b60000060175569043c33c1937564800000601855683635c9adc5dea000006019553480156200018c57600080fd5b5060006200019f620017cd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d4710ffe134872183395da547ee06c69e4acf033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d4710ffe134872183395da547ee06c69e4acf033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620002fe620017cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000408919062001943565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000470573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000496919062001943565b6040518363ffffffff1660e01b8152600401620004b592919062001986565b6020604051808303816000875af1158015620004d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fb919062001943565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000551620017d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016011600062000704620017d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007342b2c65db7f9e3b6c26bc6151ccf30cce0fb99ea73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073828a2d99bb1a31ca0eba80f3e01db8dae652a1e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006fb7ca7e12dcc72290d1fe47b2ef14c60773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006f5736775feb0c8568e7dee77222a2688073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073bcc7f6355bc08f6b7d3a41322ce462711831476373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731d6e8bac6ea3730825bde4b005ed7b2b39a2932d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006e35b5e5ad9019092c665357240f594e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731315c6c26123383a2eb369a53fb72c4b9f227eec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073d8e83d3d1a91dfefafd8b854511c44685a20fa3d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007390484bb9bc05fd3b5ff1fe412a492676cd81790c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a62c5ba4d3c95b3ddb247eabaa2c8e56bac9d6da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007342c1b5e32d625b6c618a02ae15189035e0a92fe773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a94e56efc384088717bb6edcccec289a72ec238173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073f13ffadd3682fed42183af8f3f0b409a9a0fde3173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073376a6efe8e98f3ae2af230b3d45b8cc5e962bc2773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073ee2a9147ffc94a73f6b945a6db532f8466b7883073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073de2a6d80989c3992e11b155430c3f59792ff8bb773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731e62a12d4981e428d3f4f28df261fdcb2ce743da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000735136a9a5d077ae4247c7706b577f77153c32a01c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000730e388888309d64e97f97a4740ec9ed3dadca71be73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073255d9ba73a51e02d26a5ab90d534db8a80974a1273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a682a66ea044aa1dc3ee315f6c36414f73054b4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007380e09203480a49f3cf30a4714246f7af622ba47073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007312e48b837ab8cb9104c5b95700363547ba81c8a473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000733066cc1523de539d36f94597e23371972759969373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073201044fa39866e6dd3552d922cda815899f63f2073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000736f3ac41265916dd06165b750d88ab93baf1a11f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007327c71ef1b1bb5a9c9ee0cfecef4072abac686ba673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007327c71ef1b1bb5a9c9ee0cfecef4072abac686ba673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000735668e6e8f3c31d140cc0be918ab8bb5c5b59341873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000734b9bddfb48fb1529125c14f7730346fe0e8b5b4073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000737e2b3808cfd46ff740fbd35c584d67292a407b9573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073e89c7309595e3e720d8b316f065ecb2730e3475773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073725ad056625326b490b128e02759007ba5e4ebf173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006d084e91743124a982076c59f1008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000737cf09d7a9a74f746edcb06949b9d64bcd9d1604f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006e3b3cc22af3ae1eac0440bcee416b4073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007366f049111958809841bbe4b81c034da2d953aa0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062001755620017cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620017be9190620019c4565b60405180910390a350620019e1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200184482620017fe565b91506200185183620017fe565b92508262001864576200186362001808565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620018ab82620017fe565b9150620018b883620017fe565b925082821015620018ce57620018cd6200186f565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200190b82620018de565b9050919050565b6200191d81620018fe565b81146200192957600080fd5b50565b6000815190506200193d8162001912565b92915050565b6000602082840312156200195c576200195b620018d9565b5b60006200196c848285016200192c565b91505092915050565b6200198081620018fe565b82525050565b60006040820190506200199d600083018562001975565b620019ac602083018462001975565b9392505050565b620019be81620017fe565b82525050565b6000602082019050620019db6000830184620019b3565b92915050565b61404a80620019f16000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105c2578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461051a57806395d89b411461054557806398a5c31514610570578063a2a957bb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f70ccf7146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612f2a565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190612ffb565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613053565b6108af565b60405161026f91906130ae565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613128565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613152565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061316d565b610905565b60405161030291906130ae565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d91906131ec565b6109de565b005b34801561034057600080fd5b50610349610b61565b6040516103569190613152565b60405180910390f35b34801561036b57600080fd5b50610374610b67565b6040516103819190613248565b60405180910390f35b34801561039657600080fd5b5061039f610b70565b6040516103ac9190613272565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061328d565b610b96565b005b3480156103ea57600080fd5b50610405600480360381019061040091906132ba565b610c86565b005b34801561041357600080fd5b5061041c610d37565b005b34801561042a57600080fd5b506104456004803603810190610440919061328d565b610da9565b6040516104529190613152565b60405180910390f35b34801561046757600080fd5b50610470610dfa565b005b34801561047e57600080fd5b50610499600480360381019061049491906132e7565b610f4d565b005b3480156104a757600080fd5b506104b0610fec565b6040516104bd9190613152565b60405180910390f35b3480156104d257600080fd5b506104db610ff2565b6040516104e89190613272565b60405180910390f35b3480156104fd57600080fd5b50610518600480360381019061051391906132ba565b61101b565b005b34801561052657600080fd5b5061052f6110cd565b60405161053c9190613152565b60405180910390f35b34801561055157600080fd5b5061055a6110d3565b6040516105679190612ffb565b60405180910390f35b34801561057c57600080fd5b50610597600480360381019061059291906132e7565b611110565b005b3480156105a557600080fd5b506105c060048036038101906105bb9190613314565b6111af565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613053565b611266565b6040516105f691906130ae565b60405180910390f35b34801561060b57600080fd5b506106266004803603810190610621919061328d565b611284565b60405161063391906130ae565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061328d565b6112a4565b60405161067091906130ae565b60405180910390f35b34801561068557600080fd5b5061068e6112c4565b005b34801561069c57600080fd5b506106b760048036038101906106b291906133d6565b61133e565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613436565b611478565b6040516106ed9190613152565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906132e7565b6114ff565b005b34801561072b57600080fd5b506107466004803603810190610741919061328d565b61159e565b005b610750611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906134c2565b60405180910390fd5b60005b815181101561086e57600160106000848481518110610802576108016134e2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613540565b9150506107e0565b5050565b60606040518060400160405280600881526020017f496e766963747573000000000000000000000000000000000000000000000000815250905090565b60006108c36108bc611760565b8484611768565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610912848484611933565b6109d38461091e611760565b6109ce85604051806060016040528060288152602001613fed60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610984611760565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227b9092919063ffffffff16565b611768565b600190509392505050565b6109e6611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a906134c2565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd906135d5565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9e611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c22906134c2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c8e611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d12906134c2565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d78611760565b73ffffffffffffffffffffffffffffffffffffffff1614610d9857600080fd5b6000479050610da6816122df565b50565b6000610df3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234b565b9050919050565b610e02611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e86906134c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f55611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd9906134c2565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611023611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a7906134c2565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f494e560000000000000000000000000000000000000000000000000000000000815250905090565b611118611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c906134c2565b60405180910390fd5b8060198190555050565b6111b7611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b906134c2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061127a611273611760565b8484611933565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611305611760565b73ffffffffffffffffffffffffffffffffffffffff161461132557600080fd5b600061133030610da9565b905061133b816123b9565b50565b611346611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca906134c2565b60405180910390fd5b60005b838390508110156114725781600560008686858181106113f9576113f86134e2565b5b905060200201602081019061140e919061328d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061146a90613540565b9150506113d6565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611507611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b906134c2565b60405180910390fd5b8060188190555050565b6115a6611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a906134c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90613667565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf906136f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f9061378b565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119269190613152565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199a9061381d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a906138af565b60405180910390fd5b60008111611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d90613941565b60405180910390fd5b611a5e610ff2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611acc5750611a9c610ff2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b225750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b785750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7a57601660149054906101000a900460ff16611c1e57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c14906139d3565b60405180910390fd5b5b601754811115611c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5a90613a3f565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d075750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613ad1565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611df35760185481611da884610da9565b611db29190613af1565b10611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990613bb9565b60405180910390fd5b5b6000611dfe30610da9565b9050600060195482101590506017548210611e195760175491505b808015611e335750601660159054906101000a900460ff16155b8015611e8d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ea3575060168054906101000a900460ff165b8015611ef95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7757611f5d826123b9565b60004790506000811115611f7557611f74476122df565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120215750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120d45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120d35750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120e25760009050612269565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561218d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121a557600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561226857600a54600c81905550600b54600d819055505b5b61227584848484612632565b50505050565b60008383111582906122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ba9190612ffb565b60405180910390fd5b50600083856122d29190613bd9565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612347573d6000803e3d6000fd5b5050565b6000600654821115612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238990613c7f565b60405180910390fd5b600061239c61265f565b90506123b1818461268a90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123f1576123f0612d89565b5b60405190808252806020026020018201604052801561241f5781602001602082028036833780820191505090505b5090503081600081518110612437576124366134e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125029190613cb4565b81600181518110612516576125156134e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257d30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611768565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125e1959493929190613dda565b600060405180830381600087803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806126405761263f6126d4565b5b61264b848484612717565b80612659576126586128e2565b5b50505050565b600080600061266c6128f6565b91509150612683818361268a90919063ffffffff16565b9250505090565b60006126cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061295b565b905092915050565b6000600c541480156126e857506000600d54145b156126f257612715565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612729876129be565b95509550955095509550955061278786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061281c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061286881612ace565b6128728483612b8b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128cf9190613152565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda1000000905061292e69d3c21bcecceda100000060065461268a90919063ffffffff16565b82101561294e5760065469d3c21bcecceda1000000935093505050612957565b81819350935050505b9091565b600080831182906129a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129999190612ffb565b60405180910390fd5b50600083856129b19190613e63565b9050809150509392505050565b60008060008060008060008060006129db8a600c54600d54612bc5565b92509250925060006129eb61265f565b905060008060006129fe8e878787612c5b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a6883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061227b565b905092915050565b6000808284612a7f9190613af1565b905083811015612ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abb90613ee0565b60405180910390fd5b8091505092915050565b6000612ad861265f565b90506000612aef8284612ce490919063ffffffff16565b9050612b4381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ba082600654612a2690919063ffffffff16565b600681905550612bbb81600754612a7090919063ffffffff16565b6007819055505050565b600080600080612bf16064612be3888a612ce490919063ffffffff16565b61268a90919063ffffffff16565b90506000612c1b6064612c0d888b612ce490919063ffffffff16565b61268a90919063ffffffff16565b90506000612c4482612c36858c612a2690919063ffffffff16565b612a2690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c748589612ce490919063ffffffff16565b90506000612c8b8689612ce490919063ffffffff16565b90506000612ca28789612ce490919063ffffffff16565b90506000612ccb82612cbd8587612a2690919063ffffffff16565b612a2690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612cf75760009050612d59565b60008284612d059190613f00565b9050828482612d149190613e63565b14612d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4b90613fcc565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dc182612d78565b810181811067ffffffffffffffff82111715612de057612ddf612d89565b5b80604052505050565b6000612df3612d5f565b9050612dff8282612db8565b919050565b600067ffffffffffffffff821115612e1f57612e1e612d89565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6082612e35565b9050919050565b612e7081612e55565b8114612e7b57600080fd5b50565b600081359050612e8d81612e67565b92915050565b6000612ea6612ea184612e04565b612de9565b90508083825260208201905060208402830185811115612ec957612ec8612e30565b5b835b81811015612ef25780612ede8882612e7e565b845260208401935050602081019050612ecb565b5050509392505050565b600082601f830112612f1157612f10612d73565b5b8135612f21848260208601612e93565b91505092915050565b600060208284031215612f4057612f3f612d69565b5b600082013567ffffffffffffffff811115612f5e57612f5d612d6e565b5b612f6a84828501612efc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fad578082015181840152602081019050612f92565b83811115612fbc576000848401525b50505050565b6000612fcd82612f73565b612fd78185612f7e565b9350612fe7818560208601612f8f565b612ff081612d78565b840191505092915050565b600060208201905081810360008301526130158184612fc2565b905092915050565b6000819050919050565b6130308161301d565b811461303b57600080fd5b50565b60008135905061304d81613027565b92915050565b6000806040838503121561306a57613069612d69565b5b600061307885828601612e7e565b92505060206130898582860161303e565b9150509250929050565b60008115159050919050565b6130a881613093565b82525050565b60006020820190506130c3600083018461309f565b92915050565b6000819050919050565b60006130ee6130e96130e484612e35565b6130c9565b612e35565b9050919050565b6000613100826130d3565b9050919050565b6000613112826130f5565b9050919050565b61312281613107565b82525050565b600060208201905061313d6000830184613119565b92915050565b61314c8161301d565b82525050565b60006020820190506131676000830184613143565b92915050565b60008060006060848603121561318657613185612d69565b5b600061319486828701612e7e565b93505060206131a586828701612e7e565b92505060406131b68682870161303e565b9150509250925092565b6131c981613093565b81146131d457600080fd5b50565b6000813590506131e6816131c0565b92915050565b6000806040838503121561320357613202612d69565b5b600061321185828601612e7e565b9250506020613222858286016131d7565b9150509250929050565b600060ff82169050919050565b6132428161322c565b82525050565b600060208201905061325d6000830184613239565b92915050565b61326c81612e55565b82525050565b60006020820190506132876000830184613263565b92915050565b6000602082840312156132a3576132a2612d69565b5b60006132b184828501612e7e565b91505092915050565b6000602082840312156132d0576132cf612d69565b5b60006132de848285016131d7565b91505092915050565b6000602082840312156132fd576132fc612d69565b5b600061330b8482850161303e565b91505092915050565b6000806000806080858703121561332e5761332d612d69565b5b600061333c8782880161303e565b945050602061334d8782880161303e565b935050604061335e8782880161303e565b925050606061336f8782880161303e565b91505092959194509250565b600080fd5b60008083601f84011261339657613395612d73565b5b8235905067ffffffffffffffff8111156133b3576133b261337b565b5b6020830191508360208202830111156133cf576133ce612e30565b5b9250929050565b6000806000604084860312156133ef576133ee612d69565b5b600084013567ffffffffffffffff81111561340d5761340c612d6e565b5b61341986828701613380565b9350935050602061342c868287016131d7565b9150509250925092565b6000806040838503121561344d5761344c612d69565b5b600061345b85828601612e7e565b925050602061346c85828601612e7e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134ac602083612f7e565b91506134b782613476565b602082019050919050565b600060208201905081810360008301526134db8161349f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061354b8261301d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561357e5761357d613511565b5b600182019050919050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b60006135bf601783612f7e565b91506135ca82613589565b602082019050919050565b600060208201905081810360008301526135ee816135b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613651602683612f7e565b915061365c826135f5565b604082019050919050565b6000602082019050818103600083015261368081613644565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006136e3602483612f7e565b91506136ee82613687565b604082019050919050565b60006020820190508181036000830152613712816136d6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613775602283612f7e565b915061378082613719565b604082019050919050565b600060208201905081810360008301526137a481613768565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613807602583612f7e565b9150613812826137ab565b604082019050919050565b60006020820190508181036000830152613836816137fa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613899602383612f7e565b91506138a48261383d565b604082019050919050565b600060208201905081810360008301526138c88161388c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061392b602983612f7e565b9150613936826138cf565b604082019050919050565b6000602082019050818103600083015261395a8161391e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139bd603f83612f7e565b91506139c882613961565b604082019050919050565b600060208201905081810360008301526139ec816139b0565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a29601c83612f7e565b9150613a34826139f3565b602082019050919050565b60006020820190508181036000830152613a5881613a1c565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613abb602383612f7e565b9150613ac682613a5f565b604082019050919050565b60006020820190508181036000830152613aea81613aae565b9050919050565b6000613afc8261301d565b9150613b078361301d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b3c57613b3b613511565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba3602383612f7e565b9150613bae82613b47565b604082019050919050565b60006020820190508181036000830152613bd281613b96565b9050919050565b6000613be48261301d565b9150613bef8361301d565b925082821015613c0257613c01613511565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c69602a83612f7e565b9150613c7482613c0d565b604082019050919050565b60006020820190508181036000830152613c9881613c5c565b9050919050565b600081519050613cae81612e67565b92915050565b600060208284031215613cca57613cc9612d69565b5b6000613cd884828501613c9f565b91505092915050565b6000819050919050565b6000613d06613d01613cfc84613ce1565b6130c9565b61301d565b9050919050565b613d1681613ceb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d5181612e55565b82525050565b6000613d638383613d48565b60208301905092915050565b6000602082019050919050565b6000613d8782613d1c565b613d918185613d27565b9350613d9c83613d38565b8060005b83811015613dcd578151613db48882613d57565b9750613dbf83613d6f565b925050600181019050613da0565b5085935050505092915050565b600060a082019050613def6000830188613143565b613dfc6020830187613d0d565b8181036040830152613e0e8186613d7c565b9050613e1d6060830185613263565b613e2a6080830184613143565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e6e8261301d565b9150613e798361301d565b925082613e8957613e88613e34565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eca601b83612f7e565b9150613ed582613e94565b602082019050919050565b60006020820190508181036000830152613ef981613ebd565b9050919050565b6000613f0b8261301d565b9150613f168361301d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f4f57613f4e613511565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fb6602183612f7e565b9150613fc182613f5a565b604082019050919050565b60006020820190508181036000830152613fe581613fa9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220190967291cf48665470cfe640ab37e125c5aae160613a220b271a8a6a331004564736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105c2578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461051a57806395d89b411461054557806398a5c31514610570578063a2a957bb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f70ccf7146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612f2a565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190612ffb565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613053565b6108af565b60405161026f91906130ae565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613128565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613152565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061316d565b610905565b60405161030291906130ae565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d91906131ec565b6109de565b005b34801561034057600080fd5b50610349610b61565b6040516103569190613152565b60405180910390f35b34801561036b57600080fd5b50610374610b67565b6040516103819190613248565b60405180910390f35b34801561039657600080fd5b5061039f610b70565b6040516103ac9190613272565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061328d565b610b96565b005b3480156103ea57600080fd5b50610405600480360381019061040091906132ba565b610c86565b005b34801561041357600080fd5b5061041c610d37565b005b34801561042a57600080fd5b506104456004803603810190610440919061328d565b610da9565b6040516104529190613152565b60405180910390f35b34801561046757600080fd5b50610470610dfa565b005b34801561047e57600080fd5b50610499600480360381019061049491906132e7565b610f4d565b005b3480156104a757600080fd5b506104b0610fec565b6040516104bd9190613152565b60405180910390f35b3480156104d257600080fd5b506104db610ff2565b6040516104e89190613272565b60405180910390f35b3480156104fd57600080fd5b50610518600480360381019061051391906132ba565b61101b565b005b34801561052657600080fd5b5061052f6110cd565b60405161053c9190613152565b60405180910390f35b34801561055157600080fd5b5061055a6110d3565b6040516105679190612ffb565b60405180910390f35b34801561057c57600080fd5b50610597600480360381019061059291906132e7565b611110565b005b3480156105a557600080fd5b506105c060048036038101906105bb9190613314565b6111af565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613053565b611266565b6040516105f691906130ae565b60405180910390f35b34801561060b57600080fd5b506106266004803603810190610621919061328d565b611284565b60405161063391906130ae565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061328d565b6112a4565b60405161067091906130ae565b60405180910390f35b34801561068557600080fd5b5061068e6112c4565b005b34801561069c57600080fd5b506106b760048036038101906106b291906133d6565b61133e565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613436565b611478565b6040516106ed9190613152565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906132e7565b6114ff565b005b34801561072b57600080fd5b506107466004803603810190610741919061328d565b61159e565b005b610750611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906134c2565b60405180910390fd5b60005b815181101561086e57600160106000848481518110610802576108016134e2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613540565b9150506107e0565b5050565b60606040518060400160405280600881526020017f496e766963747573000000000000000000000000000000000000000000000000815250905090565b60006108c36108bc611760565b8484611768565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610912848484611933565b6109d38461091e611760565b6109ce85604051806060016040528060288152602001613fed60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610984611760565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227b9092919063ffffffff16565b611768565b600190509392505050565b6109e6611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a906134c2565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd906135d5565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9e611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c22906134c2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c8e611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d12906134c2565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d78611760565b73ffffffffffffffffffffffffffffffffffffffff1614610d9857600080fd5b6000479050610da6816122df565b50565b6000610df3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234b565b9050919050565b610e02611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e86906134c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f55611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd9906134c2565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611023611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a7906134c2565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f494e560000000000000000000000000000000000000000000000000000000000815250905090565b611118611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c906134c2565b60405180910390fd5b8060198190555050565b6111b7611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b906134c2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061127a611273611760565b8484611933565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611305611760565b73ffffffffffffffffffffffffffffffffffffffff161461132557600080fd5b600061133030610da9565b905061133b816123b9565b50565b611346611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca906134c2565b60405180910390fd5b60005b838390508110156114725781600560008686858181106113f9576113f86134e2565b5b905060200201602081019061140e919061328d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061146a90613540565b9150506113d6565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611507611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b906134c2565b60405180910390fd5b8060188190555050565b6115a6611760565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a906134c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90613667565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf906136f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f9061378b565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119269190613152565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199a9061381d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a906138af565b60405180910390fd5b60008111611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d90613941565b60405180910390fd5b611a5e610ff2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611acc5750611a9c610ff2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b225750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b785750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7a57601660149054906101000a900460ff16611c1e57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c14906139d3565b60405180910390fd5b5b601754811115611c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5a90613a3f565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d075750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613ad1565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611df35760185481611da884610da9565b611db29190613af1565b10611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990613bb9565b60405180910390fd5b5b6000611dfe30610da9565b9050600060195482101590506017548210611e195760175491505b808015611e335750601660159054906101000a900460ff16155b8015611e8d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ea3575060168054906101000a900460ff165b8015611ef95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7757611f5d826123b9565b60004790506000811115611f7557611f74476122df565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120215750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120d45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120d35750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120e25760009050612269565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561218d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121a557600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561226857600a54600c81905550600b54600d819055505b5b61227584848484612632565b50505050565b60008383111582906122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ba9190612ffb565b60405180910390fd5b50600083856122d29190613bd9565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612347573d6000803e3d6000fd5b5050565b6000600654821115612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238990613c7f565b60405180910390fd5b600061239c61265f565b90506123b1818461268a90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123f1576123f0612d89565b5b60405190808252806020026020018201604052801561241f5781602001602082028036833780820191505090505b5090503081600081518110612437576124366134e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125029190613cb4565b81600181518110612516576125156134e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257d30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611768565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125e1959493929190613dda565b600060405180830381600087803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806126405761263f6126d4565b5b61264b848484612717565b80612659576126586128e2565b5b50505050565b600080600061266c6128f6565b91509150612683818361268a90919063ffffffff16565b9250505090565b60006126cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061295b565b905092915050565b6000600c541480156126e857506000600d54145b156126f257612715565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612729876129be565b95509550955095509550955061278786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061281c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061286881612ace565b6128728483612b8b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128cf9190613152565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda1000000905061292e69d3c21bcecceda100000060065461268a90919063ffffffff16565b82101561294e5760065469d3c21bcecceda1000000935093505050612957565b81819350935050505b9091565b600080831182906129a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129999190612ffb565b60405180910390fd5b50600083856129b19190613e63565b9050809150509392505050565b60008060008060008060008060006129db8a600c54600d54612bc5565b92509250925060006129eb61265f565b905060008060006129fe8e878787612c5b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a6883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061227b565b905092915050565b6000808284612a7f9190613af1565b905083811015612ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abb90613ee0565b60405180910390fd5b8091505092915050565b6000612ad861265f565b90506000612aef8284612ce490919063ffffffff16565b9050612b4381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ba082600654612a2690919063ffffffff16565b600681905550612bbb81600754612a7090919063ffffffff16565b6007819055505050565b600080600080612bf16064612be3888a612ce490919063ffffffff16565b61268a90919063ffffffff16565b90506000612c1b6064612c0d888b612ce490919063ffffffff16565b61268a90919063ffffffff16565b90506000612c4482612c36858c612a2690919063ffffffff16565b612a2690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c748589612ce490919063ffffffff16565b90506000612c8b8689612ce490919063ffffffff16565b90506000612ca28789612ce490919063ffffffff16565b90506000612ccb82612cbd8587612a2690919063ffffffff16565b612a2690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612cf75760009050612d59565b60008284612d059190613f00565b9050828482612d149190613e63565b14612d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4b90613fcc565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dc182612d78565b810181811067ffffffffffffffff82111715612de057612ddf612d89565b5b80604052505050565b6000612df3612d5f565b9050612dff8282612db8565b919050565b600067ffffffffffffffff821115612e1f57612e1e612d89565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6082612e35565b9050919050565b612e7081612e55565b8114612e7b57600080fd5b50565b600081359050612e8d81612e67565b92915050565b6000612ea6612ea184612e04565b612de9565b90508083825260208201905060208402830185811115612ec957612ec8612e30565b5b835b81811015612ef25780612ede8882612e7e565b845260208401935050602081019050612ecb565b5050509392505050565b600082601f830112612f1157612f10612d73565b5b8135612f21848260208601612e93565b91505092915050565b600060208284031215612f4057612f3f612d69565b5b600082013567ffffffffffffffff811115612f5e57612f5d612d6e565b5b612f6a84828501612efc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fad578082015181840152602081019050612f92565b83811115612fbc576000848401525b50505050565b6000612fcd82612f73565b612fd78185612f7e565b9350612fe7818560208601612f8f565b612ff081612d78565b840191505092915050565b600060208201905081810360008301526130158184612fc2565b905092915050565b6000819050919050565b6130308161301d565b811461303b57600080fd5b50565b60008135905061304d81613027565b92915050565b6000806040838503121561306a57613069612d69565b5b600061307885828601612e7e565b92505060206130898582860161303e565b9150509250929050565b60008115159050919050565b6130a881613093565b82525050565b60006020820190506130c3600083018461309f565b92915050565b6000819050919050565b60006130ee6130e96130e484612e35565b6130c9565b612e35565b9050919050565b6000613100826130d3565b9050919050565b6000613112826130f5565b9050919050565b61312281613107565b82525050565b600060208201905061313d6000830184613119565b92915050565b61314c8161301d565b82525050565b60006020820190506131676000830184613143565b92915050565b60008060006060848603121561318657613185612d69565b5b600061319486828701612e7e565b93505060206131a586828701612e7e565b92505060406131b68682870161303e565b9150509250925092565b6131c981613093565b81146131d457600080fd5b50565b6000813590506131e6816131c0565b92915050565b6000806040838503121561320357613202612d69565b5b600061321185828601612e7e565b9250506020613222858286016131d7565b9150509250929050565b600060ff82169050919050565b6132428161322c565b82525050565b600060208201905061325d6000830184613239565b92915050565b61326c81612e55565b82525050565b60006020820190506132876000830184613263565b92915050565b6000602082840312156132a3576132a2612d69565b5b60006132b184828501612e7e565b91505092915050565b6000602082840312156132d0576132cf612d69565b5b60006132de848285016131d7565b91505092915050565b6000602082840312156132fd576132fc612d69565b5b600061330b8482850161303e565b91505092915050565b6000806000806080858703121561332e5761332d612d69565b5b600061333c8782880161303e565b945050602061334d8782880161303e565b935050604061335e8782880161303e565b925050606061336f8782880161303e565b91505092959194509250565b600080fd5b60008083601f84011261339657613395612d73565b5b8235905067ffffffffffffffff8111156133b3576133b261337b565b5b6020830191508360208202830111156133cf576133ce612e30565b5b9250929050565b6000806000604084860312156133ef576133ee612d69565b5b600084013567ffffffffffffffff81111561340d5761340c612d6e565b5b61341986828701613380565b9350935050602061342c868287016131d7565b9150509250925092565b6000806040838503121561344d5761344c612d69565b5b600061345b85828601612e7e565b925050602061346c85828601612e7e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134ac602083612f7e565b91506134b782613476565b602082019050919050565b600060208201905081810360008301526134db8161349f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061354b8261301d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561357e5761357d613511565b5b600182019050919050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b60006135bf601783612f7e565b91506135ca82613589565b602082019050919050565b600060208201905081810360008301526135ee816135b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613651602683612f7e565b915061365c826135f5565b604082019050919050565b6000602082019050818103600083015261368081613644565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006136e3602483612f7e565b91506136ee82613687565b604082019050919050565b60006020820190508181036000830152613712816136d6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613775602283612f7e565b915061378082613719565b604082019050919050565b600060208201905081810360008301526137a481613768565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613807602583612f7e565b9150613812826137ab565b604082019050919050565b60006020820190508181036000830152613836816137fa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613899602383612f7e565b91506138a48261383d565b604082019050919050565b600060208201905081810360008301526138c88161388c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061392b602983612f7e565b9150613936826138cf565b604082019050919050565b6000602082019050818103600083015261395a8161391e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139bd603f83612f7e565b91506139c882613961565b604082019050919050565b600060208201905081810360008301526139ec816139b0565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a29601c83612f7e565b9150613a34826139f3565b602082019050919050565b60006020820190508181036000830152613a5881613a1c565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613abb602383612f7e565b9150613ac682613a5f565b604082019050919050565b60006020820190508181036000830152613aea81613aae565b9050919050565b6000613afc8261301d565b9150613b078361301d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b3c57613b3b613511565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba3602383612f7e565b9150613bae82613b47565b604082019050919050565b60006020820190508181036000830152613bd281613b96565b9050919050565b6000613be48261301d565b9150613bef8361301d565b925082821015613c0257613c01613511565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c69602a83612f7e565b9150613c7482613c0d565b604082019050919050565b60006020820190508181036000830152613c9881613c5c565b9050919050565b600081519050613cae81612e67565b92915050565b600060208284031215613cca57613cc9612d69565b5b6000613cd884828501613c9f565b91505092915050565b6000819050919050565b6000613d06613d01613cfc84613ce1565b6130c9565b61301d565b9050919050565b613d1681613ceb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d5181612e55565b82525050565b6000613d638383613d48565b60208301905092915050565b6000602082019050919050565b6000613d8782613d1c565b613d918185613d27565b9350613d9c83613d38565b8060005b83811015613dcd578151613db48882613d57565b9750613dbf83613d6f565b925050600181019050613da0565b5085935050505092915050565b600060a082019050613def6000830188613143565b613dfc6020830187613d0d565b8181036040830152613e0e8186613d7c565b9050613e1d6060830185613263565b613e2a6080830184613143565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e6e8261301d565b9150613e798361301d565b925082613e8957613e88613e34565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eca601b83612f7e565b9150613ed582613e94565b602082019050919050565b60006020820190508181036000830152613ef981613ebd565b9050919050565b6000613f0b8261301d565b9150613f168361301d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f4f57613f4e613511565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fb6602183612f7e565b9150613fc182613f5a565b604082019050919050565b60006020820190508181036000830152613fe581613fa9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220190967291cf48665470cfe640ab37e125c5aae160613a220b271a8a6a331004564736f6c634300080a0033

Deployed Bytecode Sourcemap

4194:17159:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16279:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9977:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10902:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5664:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10254:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11103:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21154:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6035:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10163:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5712:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16456:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20528:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16073:198;;;;;;;;;;;;;:::i;:::-;;10357:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1673:148;;;;;;;;;;;;;:::i;:::-;;20668:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5905:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1459:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15757:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5970:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10068:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20333:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19980:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10503:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5346:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5303:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15866:199;;;;;;;;;;;;;:::i;:::-;;20911:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10710:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20788:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16279:169;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16355:9:::1;16350:91;16374:5;:12;16370:1;:16;16350:91;;;16425:4;16408;:14;16413:5;16419:1;16413:8;;;;;;;;:::i;:::-;;;;;;;;16408:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16388:3;;;;;:::i;:::-;;;;16350:91;;;;16279:169:::0;:::o;9977:83::-;10014:13;10047:5;;;;;;;;;;;;;;;;;10040:12;;9977:83;:::o;10902:193::-;11004:4;11026:39;11035:12;:10;:12::i;:::-;11049:7;11058:6;11026:8;:39::i;:::-;11083:4;11076:11;;10902:193;;;;:::o;5664:41::-;;;;;;;;;;;;;:::o;10254:95::-;10307:7;4744:24;10327:14;;10254:95;:::o;11103:446::-;11235:4;11252:36;11262:6;11270:9;11281:6;11252:9;:36::i;:::-;11299:220;11322:6;11343:12;:10;:12::i;:::-;11370:138;11426:6;11370:138;;;;;;;;;;;;;;;;;:11;:19;11382:6;11370:19;;;;;;;;;;;;;;;:33;11390:12;:10;:12::i;:::-;11370:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;11299:8;:220::i;:::-;11537:4;11530:11;;11103:446;;;;;:::o;21154:196::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21268:7:::1;21246:29;;:9;:18;21256:7;21246:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;21238:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21335:7;21314:9;:18;21324:7;21314:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;21154:196:::0;;:::o;6035:58::-;;;;:::o;10163:83::-;10204:5;4418:1;10222:16;;10163:83;:::o;5712:28::-;;;;;;;;;;;;;:::o;16456:92::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16535:5:::1;16520:4;:12;16525:6;16520:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16456:92:::0;:::o;20528:101::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20609:12:::1;20595:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;20528:101:::0;:::o;16073:198::-;16139:19;;;;;;;;;;;16123:35;;:12;:10;:12::i;:::-;:35;;;16115:44;;;;;;16170:26;16199:21;16170:50;;16231:32;16244:18;16231:12;:32::i;:::-;16104:167;16073:198::o;10357:138::-;10423:7;10450:37;10470:7;:16;10478:7;10470:16;;;;;;;;;;;;;;;;10450:19;:37::i;:::-;10443:44;;10357:138;;;:::o;1673:148::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1780:1:::1;1743:40;;1764:6;::::0;::::1;;;;;;;;1743:40;;;;;;;;;;;;1811:1;1794:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1673:148::o:0;20668:108::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20757:11:::1;20742:12;:26;;;;20668:108:::0;:::o;5905:52::-;;;;:::o;1459:79::-;1497:7;1524:6;;;;;;;;;;;1517:13;;1459:79;:::o;15757:101::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15838:12:::1;15824:11;;:26;;;;;;;;;;;;;;;;;;15757:101:::0;:::o;5970:54::-;;;;:::o;10068:87::-;10107:13;10140:7;;;;;;;;;;;;;;;;;10133:14;;10068:87;:::o;20333:139::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20446:18:::1;20424:19;:40;;;;20333:139:::0;:::o;19980:301::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20131:13:::1;20114:14;:30;;;;20173:14;20155:15;:32;;;;20223:11;20208:12;:26;;;;20261:12;20245:13;:28;;;;19980:301:::0;;;;:::o;10503:199::-;10608:4;10630:42;10640:12;:10;:12::i;:::-;10654:9;10665:6;10630:9;:42::i;:::-;10690:4;10683:11;;10503:199;;;;:::o;5346:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5303:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;15866:199::-;15932:19;;;;;;;;;;;15916:35;;:12;:10;:12::i;:::-;:35;;;15908:44;;;;;;15963:23;15989:24;16007:4;15989:9;:24::i;:::-;15963:50;;16024:33;16041:15;16024:16;:33::i;:::-;15897:168;15866:199::o;20911:234::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21028:9:::1;21024:114;21047:8;;:15;;21043:1;:19;21024:114;;;21118:8;21084:18;:31;21103:8;;21112:1;21103:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21084:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;21064:3;;;;;:::i;:::-;;;;21024:114;;;;20911:234:::0;;;:::o;10710:184::-;10827:7;10859:11;:18;10871:5;10859:18;;;;;;;;;;;;;;;:27;10878:7;10859:27;;;;;;;;;;;;;;;;10852:34;;10710:184;;;;:::o;20788:115::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20882:13:::1;20865:14;:30;;;;20788:115:::0;:::o;1833:244::-;1596:12;:10;:12::i;:::-;1586:22;;:6;;;;;;;;;;:22;;;1578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1942:1:::1;1922:22;;:8;:22;;;;1914:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2032:8;2003:38;;2024:6;::::0;::::1;;;;;;;;2003:38;;;;;;;;;;;;2061:8;2052:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1833:244:::0;:::o;218:98::-;271:7;298:10;291:17;;218:98;:::o;12252:369::-;12396:1;12379:19;;:5;:19;;;;12371:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12477:1;12458:21;;:7;:21;;;;12450:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12559:6;12529:11;:18;12541:5;12529:18;;;;;;;;;;;;;;;:27;12548:7;12529:27;;;;;;;;;;;;;;;:36;;;;12597:7;12581:32;;12590:5;12581:32;;;12606:6;12581:32;;;;;;:::i;:::-;;;;;;;;12252:369;;;:::o;12629:2466::-;12767:1;12751:18;;:4;:18;;;;12743:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12844:1;12830:16;;:2;:16;;;;12822:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12914:1;12905:6;:10;12897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12986:7;:5;:7::i;:::-;12978:15;;:4;:15;;;;:32;;;;;13003:7;:5;:7::i;:::-;12997:13;;:2;:13;;;;12978:32;:52;;;;;13015:9;:15;13025:4;13015:15;;;;;;;;;;;;;;;;;;;;;;;;;13014:16;12978:52;:70;;;;;13035:9;:13;13045:2;13035:13;;;;;;;;;;;;;;;;;;;;;;;;;13034:14;12978:70;12974:1359;;;13117:11;;;;;;;;;;;13112:144;;13157:9;:15;13167:4;13157:15;;;;;;;;;;;;;;;;;;;;;;;;;13149:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;13112:144;13304:12;;13294:6;:22;;13286:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13373:4;:10;13378:4;13373:10;;;;;;;;;;;;;;;;;;;;;;;;;13372:11;:24;;;;;13388:4;:8;13393:2;13388:8;;;;;;;;;;;;;;;;;;;;;;;;;13387:9;13372:24;13364:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13474:13;;;;;;;;;;;13468:19;;:2;:19;;;13465:146;;13541:14;;13532:6;13516:13;13526:2;13516:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13508:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;13465:146;13639:28;13670:24;13688:4;13670:9;:24::i;:::-;13639:55;;13709:12;13748:19;;13724:20;:43;;13709:58;;13811:12;;13787:20;:36;13784:124;;13880:12;;13857:35;;13784:124;13940:7;:18;;;;;13952:6;;;;;;;;;;;13951:7;13940:18;:43;;;;;13970:13;;;;;;;;;;;13962:21;;:4;:21;;;;13940:43;:58;;;;;13987:11;;;;;;;;;;13940:58;:87;;;;;14003:18;:24;14022:4;14003:24;;;;;;;;;;;;;;;;;;;;;;;;;14002:25;13940:87;:114;;;;;14032:18;:22;14051:2;14032:22;;;;;;;;;;;;;;;;;;;;;;;;;14031:23;13940:114;13936:386;;;14075:38;14092:20;14075:16;:38::i;:::-;14132:26;14161:21;14132:50;;14226:1;14205:18;:22;14201:106;;;14252:35;14265:21;14252:12;:35::i;:::-;14201:106;14056:266;13936:386;13050:1283;;12974:1359;14353:12;14368:4;14353:19;;14417:18;:24;14436:4;14417:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;14445:18;:22;14464:2;14445:22;;;;;;;;;;;;;;;;;;;;;;;;;14417:50;14416:102;;;;14481:13;;;;;;;;;;;14473:21;;:4;:21;;;;:44;;;;;14504:13;;;;;;;;;;;14498:19;;:2;:19;;;;14473:44;14416:102;14412:622;;;14545:5;14535:15;;14412:622;;;14640:13;;;;;;;;;;;14632:21;;:4;:21;;;:55;;;;;14671:15;;;;;;;;;;;14657:30;;:2;:30;;;;14632:55;14629:162;;;14720:14;;14708:9;:26;;;;14763:12;;14753:7;:22;;;;14629:162;14854:13;;;;;;;;;;;14848:19;;:2;:19;;;:55;;;;;14887:15;;;;;;;;;;;14871:32;;:4;:32;;;;14848:55;14844:165;;;14936:15;;14924:9;:27;;;;14980:13;;14970:7;:23;;;;14844:165;14412:622;15046:41;15061:4;15067:2;15071:6;15079:7;15046:14;:41::i;:::-;12732:2363;12629:2466;;;:::o;2445:224::-;2565:7;2598:1;2593;:6;;2601:12;2585:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2625:9;2641:1;2637;:5;;;;:::i;:::-;2625:17;;2660:1;2653:8;;;2445:224;;;;;:::o;15594:155::-;15651:19;;;;;;;;;;;:28;;:36;15680:6;15651:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15594:155;:::o;11557:323::-;11652:7;11710;;11699;:18;;11677:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11798:19;11820:10;:8;:10::i;:::-;11798:32;;11848:24;11860:11;11848:7;:11;;:24;;;;:::i;:::-;11841:31;;;11557:323;;;:::o;15103:483::-;6202:4;6193:6;;:13;;;;;;;;;;;;;;;;;;15181:21:::1;15219:1;15205:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15181:40;;15250:4;15232;15237:1;15232:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15276:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15266:4;15271:1;15266:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15309:62;15326:4;15341:15;;;;;;;;;;;15359:11;15309:8;:62::i;:::-;15382:15;;;;;;;;;;;:66;;;15463:11;15489:1;15505:4;15532;15552:15;15382:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15170:416;6238:5:::0;6229:6;;:14;;;;;;;;;;;;;;;;;;15103:483;:::o;16556:282::-;16712:7;16707:28;;16721:14;:12;:14::i;:::-;16707:28;16746:44;16764:6;16772:9;16783:6;16746:17;:44::i;:::-;16806:7;16801:29;;16815:15;:13;:15::i;:::-;16801:29;16556:282;;;;:::o;19531:166::-;19573:7;19594:15;19611;19630:19;:17;:19::i;:::-;19593:56;;;;19669:20;19681:7;19669;:11;;:20;;;;:::i;:::-;19662:27;;;;19531:166;:::o;2931:132::-;2989:7;3016:39;3020:1;3023;3016:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3009:46;;2931:132;;;;:::o;11888:231::-;11948:1;11935:9;;:14;:30;;;;;11964:1;11953:7;;:12;11935:30;11931:43;;;11967:7;;11931:43;12010:9;;11990:17;:29;;;;12048:7;;12030:15;:25;;;;12088:1;12076:9;:13;;;;12110:1;12100:7;:11;;;;11888:231;:::o;16846:610::-;16993:15;17023:23;17061:12;17088:23;17126:12;17153:13;17180:19;17191:7;17180:10;:19::i;:::-;16978:221;;;;;;;;;;;;17228:28;17248:7;17228;:15;17236:6;17228:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;17210:7;:15;17218:6;17210:15;;;;;;;;;;;;;;;:46;;;;17288:39;17311:15;17288:7;:18;17296:9;17288:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;17267:7;:18;17275:9;17267:18;;;;;;;;;;;;;;;:60;;;;17338:16;17348:5;17338:9;:16::i;:::-;17365:23;17377:4;17383;17365:11;:23::i;:::-;17421:9;17404:44;;17413:6;17404:44;;;17432:15;17404:44;;;;;;:::i;:::-;;;;;;;;16967:489;;;;;;16846:610;;;:::o;12127:117::-;12183:17;;12171:9;:29;;;;12221:15;;12211:7;:25;;;;12127:117::o;19705:263::-;19756:7;19765;19785:15;19803:7;;19785:25;;19821:15;4744:24;19821:25;;19871:20;4744:24;19871:7;;:11;;:20;;;;:::i;:::-;19861:7;:30;19857:61;;;19901:7;;4744:24;19893:25;;;;;;;;19857:61;19943:7;19952;19935:25;;;;;;19705:263;;;:::o;3071:223::-;3191:7;3223:1;3219;:5;3226:12;3211:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3250:9;3266:1;3262;:5;;;;:::i;:::-;3250:17;;3285:1;3278:8;;;3071:223;;;;;:::o;17875:625::-;17975:7;17997;18019;18041;18063;18085;18121:23;18146:12;18160:13;18190:40;18202:7;18211:9;;18222:7;;18190:11;:40::i;:::-;18120:110;;;;;;18241:19;18263:10;:8;:10::i;:::-;18241:32;;18285:15;18302:23;18327:12;18356:46;18368:7;18377:4;18383:5;18390:11;18356;:46::i;:::-;18284:118;;;;;;18431:7;18440:15;18457:4;18463:15;18480:4;18486:5;18423:69;;;;;;;;;;;;;;;;;;;17875:625;;;;;;;:::o;2301:136::-;2359:7;2386:43;2390:1;2393;2386:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2379:50;;2301:136;;;;:::o;2114:179::-;2172:7;2192:9;2208:1;2204;:5;;;;:::i;:::-;2192:17;;2233:1;2228;:6;;2220:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2284:1;2277:8;;;2114:179;;;;:::o;17464:211::-;17517:19;17539:10;:8;:10::i;:::-;17517:32;;17560:13;17576:22;17586:11;17576:5;:9;;:22;;;;:::i;:::-;17560:38;;17634:33;17661:5;17634:7;:22;17650:4;17634:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17609:7;:22;17625:4;17609:22;;;;;;;;;;;;;;;:58;;;;17506:169;;17464:211;:::o;17683:147::-;17761:17;17773:4;17761:7;;:11;;:17;;;;:::i;:::-;17751:7;:27;;;;17802:20;17817:4;17802:10;;:14;;:20;;;;:::i;:::-;17789:10;:33;;;;17683:147;;:::o;18508:471::-;18677:7;18699;18721;18756:12;18771:30;18797:3;18771:21;18783:8;18771:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;18756:45;;18812:13;18828:28;18852:3;18828:19;18840:6;18828:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18812:44;;18867:23;18893:28;18915:5;18893:17;18905:4;18893:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18867:54;;18942:15;18959:4;18965:5;18934:37;;;;;;;;;18508:471;;;;;;;:::o;18987:536::-;19181:7;19203;19225;19260:15;19278:24;19290:11;19278:7;:11;;:24;;;;:::i;:::-;19260:42;;19313:12;19328:21;19337:11;19328:4;:8;;:21;;;;:::i;:::-;19313:36;;19360:13;19376:22;19386:11;19376:5;:9;;:22;;;;:::i;:::-;19360:38;;19409:23;19435:28;19457:5;19435:17;19447:4;19435:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19409:54;;19484:7;19493:15;19510:4;19476:39;;;;;;;;;;18987:536;;;;;;;;:::o;2677:246::-;2735:7;2764:1;2759;:6;2755:47;;;2789:1;2782:8;;;;2755:47;2812:9;2828:1;2824;:5;;;;:::i;:::-;2812:17;;2857:1;2852;2848;:5;;;;:::i;:::-;:10;2840:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2914:1;2907:8;;;2677:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:116::-;8356:21;8371:5;8356:21;:::i;:::-;8349:5;8346:32;8336:60;;8392:1;8389;8382:12;8336:60;8286:116;:::o;8408:133::-;8451:5;8489:6;8476:20;8467:29;;8505:30;8529:5;8505:30;:::i;:::-;8408:133;;;;:::o;8547:468::-;8612:6;8620;8669:2;8657:9;8648:7;8644:23;8640:32;8637:119;;;8675:79;;:::i;:::-;8637:119;8795:1;8820:53;8865:7;8856:6;8845:9;8841:22;8820:53;:::i;:::-;8810:63;;8766:117;8922:2;8948:50;8990:7;8981:6;8970:9;8966:22;8948:50;:::i;:::-;8938:60;;8893:115;8547:468;;;;;:::o;9021:86::-;9056:7;9096:4;9089:5;9085:16;9074:27;;9021:86;;;:::o;9113:112::-;9196:22;9212:5;9196:22;:::i;:::-;9191:3;9184:35;9113:112;;:::o;9231:214::-;9320:4;9358:2;9347:9;9343:18;9335:26;;9371:67;9435:1;9424:9;9420:17;9411:6;9371:67;:::i;:::-;9231:214;;;;:::o;9451:118::-;9538:24;9556:5;9538:24;:::i;:::-;9533:3;9526:37;9451:118;;:::o;9575:222::-;9668:4;9706:2;9695:9;9691:18;9683:26;;9719:71;9787:1;9776:9;9772:17;9763:6;9719:71;:::i;:::-;9575:222;;;;:::o;9803:329::-;9862:6;9911:2;9899:9;9890:7;9886:23;9882:32;9879:119;;;9917:79;;:::i;:::-;9879:119;10037:1;10062:53;10107:7;10098:6;10087:9;10083:22;10062:53;:::i;:::-;10052:63;;10008:117;9803:329;;;;:::o;10138:323::-;10194:6;10243:2;10231:9;10222:7;10218:23;10214:32;10211:119;;;10249:79;;:::i;:::-;10211:119;10369:1;10394:50;10436:7;10427:6;10416:9;10412:22;10394:50;:::i;:::-;10384:60;;10340:114;10138:323;;;;:::o;10467:329::-;10526:6;10575:2;10563:9;10554:7;10550:23;10546:32;10543:119;;;10581:79;;:::i;:::-;10543:119;10701:1;10726:53;10771:7;10762:6;10751:9;10747:22;10726:53;:::i;:::-;10716:63;;10672:117;10467:329;;;;:::o;10802:765::-;10888:6;10896;10904;10912;10961:3;10949:9;10940:7;10936:23;10932:33;10929:120;;;10968:79;;:::i;:::-;10929:120;11088:1;11113:53;11158:7;11149:6;11138:9;11134:22;11113:53;:::i;:::-;11103:63;;11059:117;11215:2;11241:53;11286:7;11277:6;11266:9;11262:22;11241:53;:::i;:::-;11231:63;;11186:118;11343:2;11369:53;11414:7;11405:6;11394:9;11390:22;11369:53;:::i;:::-;11359:63;;11314:118;11471:2;11497:53;11542:7;11533:6;11522:9;11518:22;11497:53;:::i;:::-;11487:63;;11442:118;10802:765;;;;;;;:::o;11573:117::-;11682:1;11679;11672:12;11713:568;11786:8;11796:6;11846:3;11839:4;11831:6;11827:17;11823:27;11813:122;;11854:79;;:::i;:::-;11813:122;11967:6;11954:20;11944:30;;11997:18;11989:6;11986:30;11983:117;;;12019:79;;:::i;:::-;11983:117;12133:4;12125:6;12121:17;12109:29;;12187:3;12179:4;12171:6;12167:17;12157:8;12153:32;12150:41;12147:128;;;12194:79;;:::i;:::-;12147:128;11713:568;;;;;:::o;12287:698::-;12379:6;12387;12395;12444:2;12432:9;12423:7;12419:23;12415:32;12412:119;;;12450:79;;:::i;:::-;12412:119;12598:1;12587:9;12583:17;12570:31;12628:18;12620:6;12617:30;12614:117;;;12650:79;;:::i;:::-;12614:117;12763:80;12835:7;12826:6;12815:9;12811:22;12763:80;:::i;:::-;12745:98;;;;12541:312;12892:2;12918:50;12960:7;12951:6;12940:9;12936:22;12918:50;:::i;:::-;12908:60;;12863:115;12287:698;;;;;:::o;12991:474::-;13059:6;13067;13116:2;13104:9;13095:7;13091:23;13087:32;13084:119;;;13122:79;;:::i;:::-;13084:119;13242:1;13267:53;13312:7;13303:6;13292:9;13288:22;13267:53;:::i;:::-;13257:63;;13213:117;13369:2;13395:53;13440:7;13431:6;13420:9;13416:22;13395:53;:::i;:::-;13385:63;;13340:118;12991:474;;;;;:::o;13471:182::-;13611:34;13607:1;13599:6;13595:14;13588:58;13471:182;:::o;13659:366::-;13801:3;13822:67;13886:2;13881:3;13822:67;:::i;:::-;13815:74;;13898:93;13987:3;13898:93;:::i;:::-;14016:2;14011:3;14007:12;14000:19;;13659:366;;;:::o;14031:419::-;14197:4;14235:2;14224:9;14220:18;14212:26;;14284:9;14278:4;14274:20;14270:1;14259:9;14255:17;14248:47;14312:131;14438:4;14312:131;:::i;:::-;14304:139;;14031:419;;;:::o;14456:180::-;14504:77;14501:1;14494:88;14601:4;14598:1;14591:15;14625:4;14622:1;14615:15;14642:180;14690:77;14687:1;14680:88;14787:4;14784:1;14777:15;14811:4;14808:1;14801:15;14828:233;14867:3;14890:24;14908:5;14890:24;:::i;:::-;14881:33;;14936:66;14929:5;14926:77;14923:103;;;15006:18;;:::i;:::-;14923:103;15053:1;15046:5;15042:13;15035:20;;14828:233;;;:::o;15067:173::-;15207:25;15203:1;15195:6;15191:14;15184:49;15067:173;:::o;15246:366::-;15388:3;15409:67;15473:2;15468:3;15409:67;:::i;:::-;15402:74;;15485:93;15574:3;15485:93;:::i;:::-;15603:2;15598:3;15594:12;15587:19;;15246:366;;;:::o;15618:419::-;15784:4;15822:2;15811:9;15807:18;15799:26;;15871:9;15865:4;15861:20;15857:1;15846:9;15842:17;15835:47;15899:131;16025:4;15899:131;:::i;:::-;15891:139;;15618:419;;;:::o;16043:225::-;16183:34;16179:1;16171:6;16167:14;16160:58;16252:8;16247:2;16239:6;16235:15;16228:33;16043:225;:::o;16274:366::-;16416:3;16437:67;16501:2;16496:3;16437:67;:::i;:::-;16430:74;;16513:93;16602:3;16513:93;:::i;:::-;16631:2;16626:3;16622:12;16615:19;;16274:366;;;:::o;16646:419::-;16812:4;16850:2;16839:9;16835:18;16827:26;;16899:9;16893:4;16889:20;16885:1;16874:9;16870:17;16863:47;16927:131;17053:4;16927:131;:::i;:::-;16919:139;;16646:419;;;:::o;17071:223::-;17211:34;17207:1;17199:6;17195:14;17188:58;17280:6;17275:2;17267:6;17263:15;17256:31;17071:223;:::o;17300:366::-;17442:3;17463:67;17527:2;17522:3;17463:67;:::i;:::-;17456:74;;17539:93;17628:3;17539:93;:::i;:::-;17657:2;17652:3;17648:12;17641:19;;17300:366;;;:::o;17672:419::-;17838:4;17876:2;17865:9;17861:18;17853:26;;17925:9;17919:4;17915:20;17911:1;17900:9;17896:17;17889:47;17953:131;18079:4;17953:131;:::i;:::-;17945:139;;17672:419;;;:::o;18097:221::-;18237:34;18233:1;18225:6;18221:14;18214:58;18306:4;18301:2;18293:6;18289:15;18282:29;18097:221;:::o;18324:366::-;18466:3;18487:67;18551:2;18546:3;18487:67;:::i;:::-;18480:74;;18563:93;18652:3;18563:93;:::i;:::-;18681:2;18676:3;18672:12;18665:19;;18324:366;;;:::o;18696:419::-;18862:4;18900:2;18889:9;18885:18;18877:26;;18949:9;18943:4;18939:20;18935:1;18924:9;18920:17;18913:47;18977:131;19103:4;18977:131;:::i;:::-;18969:139;;18696:419;;;:::o;19121:224::-;19261:34;19257:1;19249:6;19245:14;19238:58;19330:7;19325:2;19317:6;19313:15;19306:32;19121:224;:::o;19351:366::-;19493:3;19514:67;19578:2;19573:3;19514:67;:::i;:::-;19507:74;;19590:93;19679:3;19590:93;:::i;:::-;19708:2;19703:3;19699:12;19692:19;;19351:366;;;:::o;19723:419::-;19889:4;19927:2;19916:9;19912:18;19904:26;;19976:9;19970:4;19966:20;19962:1;19951:9;19947:17;19940:47;20004:131;20130:4;20004:131;:::i;:::-;19996:139;;19723:419;;;:::o;20148:222::-;20288:34;20284:1;20276:6;20272:14;20265:58;20357:5;20352:2;20344:6;20340:15;20333:30;20148:222;:::o;20376:366::-;20518:3;20539:67;20603:2;20598:3;20539:67;:::i;:::-;20532:74;;20615:93;20704:3;20615:93;:::i;:::-;20733:2;20728:3;20724:12;20717:19;;20376:366;;;:::o;20748:419::-;20914:4;20952:2;20941:9;20937:18;20929:26;;21001:9;20995:4;20991:20;20987:1;20976:9;20972:17;20965:47;21029:131;21155:4;21029:131;:::i;:::-;21021:139;;20748:419;;;:::o;21173:228::-;21313:34;21309:1;21301:6;21297:14;21290:58;21382:11;21377:2;21369:6;21365:15;21358:36;21173:228;:::o;21407:366::-;21549:3;21570:67;21634:2;21629:3;21570:67;:::i;:::-;21563:74;;21646:93;21735:3;21646:93;:::i;:::-;21764:2;21759:3;21755:12;21748:19;;21407:366;;;:::o;21779:419::-;21945:4;21983:2;21972:9;21968:18;21960:26;;22032:9;22026:4;22022:20;22018:1;22007:9;22003:17;21996:47;22060:131;22186:4;22060:131;:::i;:::-;22052:139;;21779:419;;;:::o;22204:250::-;22344:34;22340:1;22332:6;22328:14;22321:58;22413:33;22408:2;22400:6;22396:15;22389:58;22204:250;:::o;22460:366::-;22602:3;22623:67;22687:2;22682:3;22623:67;:::i;:::-;22616:74;;22699:93;22788:3;22699:93;:::i;:::-;22817:2;22812:3;22808:12;22801:19;;22460:366;;;:::o;22832:419::-;22998:4;23036:2;23025:9;23021:18;23013:26;;23085:9;23079:4;23075:20;23071:1;23060:9;23056:17;23049:47;23113:131;23239:4;23113:131;:::i;:::-;23105:139;;22832:419;;;:::o;23257:178::-;23397:30;23393:1;23385:6;23381:14;23374:54;23257:178;:::o;23441:366::-;23583:3;23604:67;23668:2;23663:3;23604:67;:::i;:::-;23597:74;;23680:93;23769:3;23680:93;:::i;:::-;23798:2;23793:3;23789:12;23782:19;;23441:366;;;:::o;23813:419::-;23979:4;24017:2;24006:9;24002:18;23994:26;;24066:9;24060:4;24056:20;24052:1;24041:9;24037:17;24030:47;24094:131;24220:4;24094:131;:::i;:::-;24086:139;;23813:419;;;:::o;24238:222::-;24378:34;24374:1;24366:6;24362:14;24355:58;24447:5;24442:2;24434:6;24430:15;24423:30;24238:222;:::o;24466:366::-;24608:3;24629:67;24693:2;24688:3;24629:67;:::i;:::-;24622:74;;24705:93;24794:3;24705:93;:::i;:::-;24823:2;24818:3;24814:12;24807:19;;24466:366;;;:::o;24838:419::-;25004:4;25042:2;25031:9;25027:18;25019:26;;25091:9;25085:4;25081:20;25077:1;25066:9;25062:17;25055:47;25119:131;25245:4;25119:131;:::i;:::-;25111:139;;24838:419;;;:::o;25263:305::-;25303:3;25322:20;25340:1;25322:20;:::i;:::-;25317:25;;25356:20;25374:1;25356:20;:::i;:::-;25351:25;;25510:1;25442:66;25438:74;25435:1;25432:81;25429:107;;;25516:18;;:::i;:::-;25429:107;25560:1;25557;25553:9;25546:16;;25263:305;;;;:::o;25574:222::-;25714:34;25710:1;25702:6;25698:14;25691:58;25783:5;25778:2;25770:6;25766:15;25759:30;25574:222;:::o;25802:366::-;25944:3;25965:67;26029:2;26024:3;25965:67;:::i;:::-;25958:74;;26041:93;26130:3;26041:93;:::i;:::-;26159:2;26154:3;26150:12;26143:19;;25802:366;;;:::o;26174:419::-;26340:4;26378:2;26367:9;26363:18;26355:26;;26427:9;26421:4;26417:20;26413:1;26402:9;26398:17;26391:47;26455:131;26581:4;26455:131;:::i;:::-;26447:139;;26174:419;;;:::o;26599:191::-;26639:4;26659:20;26677:1;26659:20;:::i;:::-;26654:25;;26693:20;26711:1;26693:20;:::i;:::-;26688:25;;26732:1;26729;26726:8;26723:34;;;26737:18;;:::i;:::-;26723:34;26782:1;26779;26775:9;26767:17;;26599:191;;;;:::o;26796:229::-;26936:34;26932:1;26924:6;26920:14;26913:58;27005:12;27000:2;26992:6;26988:15;26981:37;26796:229;:::o;27031:366::-;27173:3;27194:67;27258:2;27253:3;27194:67;:::i;:::-;27187:74;;27270:93;27359:3;27270:93;:::i;:::-;27388:2;27383:3;27379:12;27372:19;;27031:366;;;:::o;27403:419::-;27569:4;27607:2;27596:9;27592:18;27584:26;;27656:9;27650:4;27646:20;27642:1;27631:9;27627:17;27620:47;27684:131;27810:4;27684:131;:::i;:::-;27676:139;;27403:419;;;:::o;27828:143::-;27885:5;27916:6;27910:13;27901:22;;27932:33;27959:5;27932:33;:::i;:::-;27828:143;;;;:::o;27977:351::-;28047:6;28096:2;28084:9;28075:7;28071:23;28067:32;28064:119;;;28102:79;;:::i;:::-;28064:119;28222:1;28247:64;28303:7;28294:6;28283:9;28279:22;28247:64;:::i;:::-;28237:74;;28193:128;27977:351;;;;:::o;28334:85::-;28379:7;28408:5;28397:16;;28334:85;;;:::o;28425:158::-;28483:9;28516:61;28534:42;28543:32;28569:5;28543:32;:::i;:::-;28534:42;:::i;:::-;28516:61;:::i;:::-;28503:74;;28425:158;;;:::o;28589:147::-;28684:45;28723:5;28684:45;:::i;:::-;28679:3;28672:58;28589:147;;:::o;28742:114::-;28809:6;28843:5;28837:12;28827:22;;28742:114;;;:::o;28862:184::-;28961:11;28995:6;28990:3;28983:19;29035:4;29030:3;29026:14;29011:29;;28862:184;;;;:::o;29052:132::-;29119:4;29142:3;29134:11;;29172:4;29167:3;29163:14;29155:22;;29052:132;;;:::o;29190:108::-;29267:24;29285:5;29267:24;:::i;:::-;29262:3;29255:37;29190:108;;:::o;29304:179::-;29373:10;29394:46;29436:3;29428:6;29394:46;:::i;:::-;29472:4;29467:3;29463:14;29449:28;;29304:179;;;;:::o;29489:113::-;29559:4;29591;29586:3;29582:14;29574:22;;29489:113;;;:::o;29638:732::-;29757:3;29786:54;29834:5;29786:54;:::i;:::-;29856:86;29935:6;29930:3;29856:86;:::i;:::-;29849:93;;29966:56;30016:5;29966:56;:::i;:::-;30045:7;30076:1;30061:284;30086:6;30083:1;30080:13;30061:284;;;30162:6;30156:13;30189:63;30248:3;30233:13;30189:63;:::i;:::-;30182:70;;30275:60;30328:6;30275:60;:::i;:::-;30265:70;;30121:224;30108:1;30105;30101:9;30096:14;;30061:284;;;30065:14;30361:3;30354:10;;29762:608;;;29638:732;;;;:::o;30376:831::-;30639:4;30677:3;30666:9;30662:19;30654:27;;30691:71;30759:1;30748:9;30744:17;30735:6;30691:71;:::i;:::-;30772:80;30848:2;30837:9;30833:18;30824:6;30772:80;:::i;:::-;30899:9;30893:4;30889:20;30884:2;30873:9;30869:18;30862:48;30927:108;31030:4;31021:6;30927:108;:::i;:::-;30919:116;;31045:72;31113:2;31102:9;31098:18;31089:6;31045:72;:::i;:::-;31127:73;31195:3;31184:9;31180:19;31171:6;31127:73;:::i;:::-;30376:831;;;;;;;;:::o;31213:180::-;31261:77;31258:1;31251:88;31358:4;31355:1;31348:15;31382:4;31379:1;31372:15;31399:185;31439:1;31456:20;31474:1;31456:20;:::i;:::-;31451:25;;31490:20;31508:1;31490:20;:::i;:::-;31485:25;;31529:1;31519:35;;31534:18;;:::i;:::-;31519:35;31576:1;31573;31569:9;31564:14;;31399:185;;;;:::o;31590:177::-;31730:29;31726:1;31718:6;31714:14;31707:53;31590:177;:::o;31773:366::-;31915:3;31936:67;32000:2;31995:3;31936:67;:::i;:::-;31929:74;;32012:93;32101:3;32012:93;:::i;:::-;32130:2;32125:3;32121:12;32114:19;;31773:366;;;:::o;32145:419::-;32311:4;32349:2;32338:9;32334:18;32326:26;;32398:9;32392:4;32388:20;32384:1;32373:9;32369:17;32362:47;32426:131;32552:4;32426:131;:::i;:::-;32418:139;;32145:419;;;:::o;32570:348::-;32610:7;32633:20;32651:1;32633:20;:::i;:::-;32628:25;;32667:20;32685:1;32667:20;:::i;:::-;32662:25;;32855:1;32787:66;32783:74;32780:1;32777:81;32772:1;32765:9;32758:17;32754:105;32751:131;;;32862:18;;:::i;:::-;32751:131;32910:1;32907;32903:9;32892:20;;32570:348;;;;:::o;32924:220::-;33064:34;33060:1;33052:6;33048:14;33041:58;33133:3;33128:2;33120:6;33116:15;33109:28;32924:220;:::o;33150:366::-;33292:3;33313:67;33377:2;33372:3;33313:67;:::i;:::-;33306:74;;33389:93;33478:3;33389:93;:::i;:::-;33507:2;33502:3;33498:12;33491:19;;33150:366;;;:::o;33522:419::-;33688:4;33726:2;33715:9;33711:18;33703:26;;33775:9;33769:4;33765:20;33761:1;33750:9;33746:17;33739:47;33803:131;33929:4;33803:131;:::i;:::-;33795:139;;33522:419;;;:::o

Swarm Source

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