ETH Price: $3,428.93 (+2.92%)

Token

SquirtleInu (SquirtleInu)
 

Overview

Max Total Supply

300,000,000 SquirtleInu

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
daddyshitcoinpleasedontrugmybaby.eth
Balance
13,744.449407737 SquirtleInu

Value
$0.00
0xe1eaa09ce581e655fba3e217d400e273fd828ef3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SquirtleInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-18
*/

/*

SquirtleInu


https://t.me/squirtleinuu
https://squirtleinu.net/

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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 SquirtleInu is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "SquirtleInu";
    string private constant _symbol = "SquirtleInu";
    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 = 300000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 6;
    uint256 private _taxFeeOnBuy = 6;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 6;
    uint256 private _taxFeeOnSell = 6;
    
    //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(0x165bE3A272790D97BaeB3AdD6bDa139008ee93ba);
    address payable private _marketingAddress = payable(0x165bE3A272790D97BaeB3AdD6bDa139008ee93ba);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 4500000 * 10**9; //1.5%
    uint256 public _maxWalletSize = 9000000 * 10**9; //3%
    uint256 public _swapTokensAtAmount = 15000000 * 10**9; //0.5

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

    constructor() {
        
        _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(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true;
        bots[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = true;
        bots[address(0x00000000003b3cc22aF3aE1EAc0440BcEe416B40)] = true;
        bots[address(0xD8E83d3d1a91dFefafd8b854511c44685a20fa3D)] = 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(0x89e63b101F0baC1Fb7E8Ac97022866f0B04E67Dd)] = 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.div(2));
        _marketingAddress.transfer(amount.div(2));
    }

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

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

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        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"}]

6080604052670429d069189e00006000196200001c919062001751565b6000196200002b9190620016d8565b600655600660085560066009556006600a556006600b55600a54600c55600b54600d55600c54600e55600d54600f5573165be3a272790d97baeb3add6bda139008ee93ba601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073165be3a272790d97baeb3add6bda139008ee93ba601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550660ffcb9e57d4000601755661ff973cafa800060185566354a6ba7a180006019553480156200016757600080fd5b5060006200017a620015f260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f620015f260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030e57600080fd5b505afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034991906200163a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ac57600080fd5b505afa158015620003c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e791906200163a565b6040518363ffffffff1660e01b8152600401620004069291906200168e565b602060405180830381600087803b1580156200042157600080fd5b505af115801562000436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045c91906200163a565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b2620015fa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016011600062000665620015fa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007366f049111958809841bbe4b81c034da2d953aa0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006f5736775feb0c8568e7dee77222a2688073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006e3b3cc22af3ae1eac0440bcee416b4073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073d8e83d3d1a91dfefafd8b854511c44685a20fa3d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073bcc7f6355bc08f6b7d3a41322ce462711831476373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731d6e8bac6ea3730825bde4b005ed7b2b39a2932d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006e35b5e5ad9019092c665357240f594e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731315c6c26123383a2eb369a53fb72c4b9f227eec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073d8e83d3d1a91dfefafd8b854511c44685a20fa3d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007390484bb9bc05fd3b5ff1fe412a492676cd81790c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a62c5ba4d3c95b3ddb247eabaa2c8e56bac9d6da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007342c1b5e32d625b6c618a02ae15189035e0a92fe773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a94e56efc384088717bb6edcccec289a72ec238173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073f13ffadd3682fed42183af8f3f0b409a9a0fde3173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073376a6efe8e98f3ae2af230b3d45b8cc5e962bc2773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073ee2a9147ffc94a73f6b945a6db532f8466b7883073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073de2a6d80989c3992e11b155430c3f59792ff8bb773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000731e62a12d4981e428d3f4f28df261fdcb2ce743da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000735136a9a5d077ae4247c7706b577f77153c32a01c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000730e388888309d64e97f97a4740ec9ed3dadca71be73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073255d9ba73a51e02d26a5ab90d534db8a80974a1273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073a682a66ea044aa1dc3ee315f6c36414f73054b4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007380e09203480a49f3cf30a4714246f7af622ba47073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007312e48b837ab8cb9104c5b95700363547ba81c8a473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000733066cc1523de539d36f94597e23371972759969373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073201044fa39866e6dd3552d922cda815899f63f2073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000736f3ac41265916dd06165b750d88ab93baf1a11f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007327c71ef1b1bb5a9c9ee0cfecef4072abac686ba673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007327c71ef1b1bb5a9c9ee0cfecef4072abac686ba673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000735668e6e8f3c31d140cc0be918ab8bb5c5b59341873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000734b9bddfb48fb1529125c14f7730346fe0e8b5b4073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000737e2b3808cfd46ff740fbd35c584d67292a407b9573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073e89c7309595e3e720d8b316f065ecb2730e3475773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073725ad056625326b490b128e02759007ba5e4ebf173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007389e63b101f0bac1fb7e8ac97022866f0b04e67dd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200157c620015f260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670429d069189e0000604051620015e39190620016bb565b60405180910390a35062001806565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200163481620017ec565b92915050565b600060208284031215620016535762001652620017e7565b5b6000620016638482850162001623565b91505092915050565b620016778162001713565b82525050565b620016888162001747565b82525050565b6000604082019050620016a560008301856200166c565b620016b460208301846200166c565b9392505050565b6000602082019050620016d260008301846200167d565b92915050565b6000620016e58262001747565b9150620016f28362001747565b92508282101562001708576200170762001789565b5b828203905092915050565b6000620017208262001727565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200175e8262001747565b91506200176b8362001747565b9250826200177e576200177d620017b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620017f78162001713565b81146200180357600080fd5b50565b61417180620018166000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105c2578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461051a57806395d89b411461054557806398a5c31514610570578063a2a957bb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f70ccf7146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e600480360381019061020991906131c8565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190613648565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613128565b6108af565b60405161026f9190613612565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a919061362d565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c5919061384a565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613095565b610903565b6040516103029190613612565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d91906130e8565b6109dc565b005b34801561034057600080fd5b50610349610b5f565b604051610356919061384a565b60405180910390f35b34801561036b57600080fd5b50610374610b65565b60405161038191906138bf565b60405180910390f35b34801561039657600080fd5b5061039f610b6e565b6040516103ac91906135f7565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190612ffb565b610b94565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613211565b610c84565b005b34801561041357600080fd5b5061041c610d35565b005b34801561042a57600080fd5b5061044560048036038101906104409190612ffb565b610e06565b604051610452919061384a565b60405180910390f35b34801561046757600080fd5b50610470610e57565b005b34801561047e57600080fd5b506104996004803603810190610494919061323e565b610faa565b005b3480156104a757600080fd5b506104b0611049565b6040516104bd919061384a565b60405180910390f35b3480156104d257600080fd5b506104db61104f565b6040516104e891906135f7565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190613211565b611078565b005b34801561052657600080fd5b5061052f61112a565b60405161053c919061384a565b60405180910390f35b34801561055157600080fd5b5061055a611130565b6040516105679190613648565b60405180910390f35b34801561057c57600080fd5b506105976004803603810190610592919061323e565b61116d565b005b3480156105a557600080fd5b506105c060048036038101906105bb919061326b565b61120c565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613128565b6112c3565b6040516105f69190613612565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612ffb565b6112e1565b6040516106339190613612565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190612ffb565b611301565b6040516106709190613612565b60405180910390f35b34801561068557600080fd5b5061068e611321565b005b34801561069c57600080fd5b506106b760048036038101906106b29190613168565b6113fa565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613055565b611534565b6040516106ed919061384a565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061323e565b6115bb565b005b34801561072b57600080fd5b5061074660048036038101906107419190612ffb565b61165a565b005b61075061181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906137aa565b60405180910390fd5b60005b815181101561086e5760016010600084848151811061080257610801613c3d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613b96565b9150506107e0565b5050565b60606040518060400160405280600b81526020017f5371756972746c65496e75000000000000000000000000000000000000000000815250905090565b60006108c36108bc61181c565b8484611824565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670429d069189e0000905090565b60006109108484846119ef565b6109d18461091c61181c565b6109cc8560405180606001604052806028815260200161411460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098261181c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123379092919063ffffffff16565b611824565b600190509392505050565b6109e461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a68906137aa565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb9061376a565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9c61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c20906137aa565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c8c61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d10906137aa565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7661181c565b73ffffffffffffffffffffffffffffffffffffffff161480610dec5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd461181c565b73ffffffffffffffffffffffffffffffffffffffff16145b610df557600080fd5b6000479050610e038161239b565b50565b6000610e50600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612496565b9050919050565b610e5f61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee3906137aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611036906137aa565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61108061181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611104906137aa565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600b81526020017f5371756972746c65496e75000000000000000000000000000000000000000000815250905090565b61117561181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906137aa565b60405180910390fd5b8060198190555050565b61121461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906137aa565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112d76112d061181c565b84846119ef565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136261181c565b73ffffffffffffffffffffffffffffffffffffffff1614806113d85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c061181c565b73ffffffffffffffffffffffffffffffffffffffff16145b6113e157600080fd5b60006113ec30610e06565b90506113f781612504565b50565b61140261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906137aa565b60405180910390fd5b60005b8383905081101561152e5781600560008686858181106114b5576114b4613c3d565b5b90506020020160208101906114ca9190612ffb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152690613b96565b915050611492565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c361181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611647906137aa565b60405180910390fd5b8060188190555050565b61166261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e6906137aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611756906136ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b9061382a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb9061370a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e2919061384a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a56906137ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac69061366a565b60405180910390fd5b60008111611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b09906137ca565b60405180910390fd5b611b1a61104f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b885750611b5861104f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bde5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c345750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203657601660149054906101000a900460ff16611cda57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd09061368a565b60405180910390fd5b5b601754811115611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d16906136ca565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dc35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df99061372a565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611eaf5760185481611e6484610e06565b611e6e9190613980565b10611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea59061380a565b60405180910390fd5b5b6000611eba30610e06565b9050600060195482101590506017548210611ed55760175491505b808015611eef5750601660159054906101000a900460ff16155b8015611f495750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f5f575060168054906101000a900460ff165b8015611fb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120335761201982612504565b60004790506000811115612031576120304761239b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120dd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121905750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561218f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561219e5760009050612325565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561226157600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232457600a54600c81905550600b54600d819055505b5b6123318484848461278c565b50505050565b600083831115829061237f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123769190613648565b60405180910390fd5b506000838561238e9190613a61565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123eb6002846127b990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612416573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124676002846127b990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612492573d6000803e3d6000fd5b5050565b60006006548211156124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d4906136aa565b60405180910390fd5b60006124e7612803565b90506124fc81846127b990919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561253c5761253b613c6c565b5b60405190808252806020026020018201604052801561256a5781602001602082028036833780820191505090505b509050308160008151811061258257612581613c3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561262457600080fd5b505afa158015612638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265c9190613028565b816001815181106126705761266f613c3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126d730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611824565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161273b959493929190613865565b600060405180830381600087803b15801561275557600080fd5b505af1158015612769573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061279a5761279961282e565b5b6127a5848484612871565b806127b3576127b2612a3c565b5b50505050565b60006127fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a50565b905092915050565b6000806000612810612ab3565b9150915061282781836127b990919063ffffffff16565b9250505090565b6000600c5414801561284257506000600d54145b1561284c5761286f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061288387612b12565b9550955095509550955095506128e186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c281612c22565b6129cc8483612cdf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a29919061384a565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8e9190613648565b60405180910390fd5b5060008385612aa691906139d6565b9050809150509392505050565b600080600060065490506000670429d069189e00009050612ae7670429d069189e00006006546127b990919063ffffffff16565b821015612b0557600654670429d069189e0000935093505050612b0e565b81819350935050505b9091565b6000806000806000806000806000612b2f8a600c54600d54612d19565b9250925092506000612b3f612803565b90506000806000612b528e878787612daf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612bbc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612337565b905092915050565b6000808284612bd39190613980565b905083811015612c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0f9061374a565b60405180910390fd5b8091505092915050565b6000612c2c612803565b90506000612c438284612e3890919063ffffffff16565b9050612c9781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cf482600654612b7a90919063ffffffff16565b600681905550612d0f81600754612bc490919063ffffffff16565b6007819055505050565b600080600080612d456064612d37888a612e3890919063ffffffff16565b6127b990919063ffffffff16565b90506000612d6f6064612d61888b612e3890919063ffffffff16565b6127b990919063ffffffff16565b90506000612d9882612d8a858c612b7a90919063ffffffff16565b612b7a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612dc88589612e3890919063ffffffff16565b90506000612ddf8689612e3890919063ffffffff16565b90506000612df68789612e3890919063ffffffff16565b90506000612e1f82612e118587612b7a90919063ffffffff16565b612b7a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612e4b5760009050612ead565b60008284612e599190613a07565b9050828482612e6891906139d6565b14612ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9f9061378a565b60405180910390fd5b809150505b92915050565b6000612ec6612ec1846138ff565b6138da565b90508083825260208201905082856020860282011115612ee957612ee8613ca5565b5b60005b85811015612f195781612eff8882612f23565b845260208401935060208301925050600181019050612eec565b5050509392505050565b600081359050612f32816140ce565b92915050565b600081519050612f47816140ce565b92915050565b60008083601f840112612f6357612f62613ca0565b5b8235905067ffffffffffffffff811115612f8057612f7f613c9b565b5b602083019150836020820283011115612f9c57612f9b613ca5565b5b9250929050565b600082601f830112612fb857612fb7613ca0565b5b8135612fc8848260208601612eb3565b91505092915050565b600081359050612fe0816140e5565b92915050565b600081359050612ff5816140fc565b92915050565b60006020828403121561301157613010613caf565b5b600061301f84828501612f23565b91505092915050565b60006020828403121561303e5761303d613caf565b5b600061304c84828501612f38565b91505092915050565b6000806040838503121561306c5761306b613caf565b5b600061307a85828601612f23565b925050602061308b85828601612f23565b9150509250929050565b6000806000606084860312156130ae576130ad613caf565b5b60006130bc86828701612f23565b93505060206130cd86828701612f23565b92505060406130de86828701612fe6565b9150509250925092565b600080604083850312156130ff576130fe613caf565b5b600061310d85828601612f23565b925050602061311e85828601612fd1565b9150509250929050565b6000806040838503121561313f5761313e613caf565b5b600061314d85828601612f23565b925050602061315e85828601612fe6565b9150509250929050565b60008060006040848603121561318157613180613caf565b5b600084013567ffffffffffffffff81111561319f5761319e613caa565b5b6131ab86828701612f4d565b935093505060206131be86828701612fd1565b9150509250925092565b6000602082840312156131de576131dd613caf565b5b600082013567ffffffffffffffff8111156131fc576131fb613caa565b5b61320884828501612fa3565b91505092915050565b60006020828403121561322757613226613caf565b5b600061323584828501612fd1565b91505092915050565b60006020828403121561325457613253613caf565b5b600061326284828501612fe6565b91505092915050565b6000806000806080858703121561328557613284613caf565b5b600061329387828801612fe6565b94505060206132a487828801612fe6565b93505060406132b587828801612fe6565b92505060606132c687828801612fe6565b91505092959194509250565b60006132de83836132ea565b60208301905092915050565b6132f381613a95565b82525050565b61330281613a95565b82525050565b60006133138261393b565b61331d818561395e565b93506133288361392b565b8060005b8381101561335957815161334088826132d2565b975061334b83613951565b92505060018101905061332c565b5085935050505092915050565b61336f81613aa7565b82525050565b61337e81613aea565b82525050565b61338d81613afc565b82525050565b600061339e82613946565b6133a8818561396f565b93506133b8818560208601613b32565b6133c181613cb4565b840191505092915050565b60006133d960238361396f565b91506133e482613cc5565b604082019050919050565b60006133fc603f8361396f565b915061340782613d14565b604082019050919050565b600061341f602a8361396f565b915061342a82613d63565b604082019050919050565b6000613442601c8361396f565b915061344d82613db2565b602082019050919050565b600061346560268361396f565b915061347082613ddb565b604082019050919050565b600061348860228361396f565b915061349382613e2a565b604082019050919050565b60006134ab60238361396f565b91506134b682613e79565b604082019050919050565b60006134ce601b8361396f565b91506134d982613ec8565b602082019050919050565b60006134f160178361396f565b91506134fc82613ef1565b602082019050919050565b600061351460218361396f565b915061351f82613f1a565b604082019050919050565b600061353760208361396f565b915061354282613f69565b602082019050919050565b600061355a60298361396f565b915061356582613f92565b604082019050919050565b600061357d60258361396f565b915061358882613fe1565b604082019050919050565b60006135a060238361396f565b91506135ab82614030565b604082019050919050565b60006135c360248361396f565b91506135ce8261407f565b604082019050919050565b6135e281613ad3565b82525050565b6135f181613add565b82525050565b600060208201905061360c60008301846132f9565b92915050565b60006020820190506136276000830184613366565b92915050565b60006020820190506136426000830184613375565b92915050565b600060208201905081810360008301526136628184613393565b905092915050565b60006020820190508181036000830152613683816133cc565b9050919050565b600060208201905081810360008301526136a3816133ef565b9050919050565b600060208201905081810360008301526136c381613412565b9050919050565b600060208201905081810360008301526136e381613435565b9050919050565b6000602082019050818103600083015261370381613458565b9050919050565b600060208201905081810360008301526137238161347b565b9050919050565b600060208201905081810360008301526137438161349e565b9050919050565b60006020820190508181036000830152613763816134c1565b9050919050565b60006020820190508181036000830152613783816134e4565b9050919050565b600060208201905081810360008301526137a381613507565b9050919050565b600060208201905081810360008301526137c38161352a565b9050919050565b600060208201905081810360008301526137e38161354d565b9050919050565b6000602082019050818103600083015261380381613570565b9050919050565b6000602082019050818103600083015261382381613593565b9050919050565b60006020820190508181036000830152613843816135b6565b9050919050565b600060208201905061385f60008301846135d9565b92915050565b600060a08201905061387a60008301886135d9565b6138876020830187613384565b81810360408301526138998186613308565b90506138a860608301856132f9565b6138b560808301846135d9565b9695505050505050565b60006020820190506138d460008301846135e8565b92915050565b60006138e46138f5565b90506138f08282613b65565b919050565b6000604051905090565b600067ffffffffffffffff82111561391a57613919613c6c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061398b82613ad3565b915061399683613ad3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139cb576139ca613bdf565b5b828201905092915050565b60006139e182613ad3565b91506139ec83613ad3565b9250826139fc576139fb613c0e565b5b828204905092915050565b6000613a1282613ad3565b9150613a1d83613ad3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5657613a55613bdf565b5b828202905092915050565b6000613a6c82613ad3565b9150613a7783613ad3565b925082821015613a8a57613a89613bdf565b5b828203905092915050565b6000613aa082613ab3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613af582613b0e565b9050919050565b6000613b0782613ad3565b9050919050565b6000613b1982613b20565b9050919050565b6000613b2b82613ab3565b9050919050565b60005b83811015613b50578082015181840152602081019050613b35565b83811115613b5f576000848401525b50505050565b613b6e82613cb4565b810181811067ffffffffffffffff82111715613b8d57613b8c613c6c565b5b80604052505050565b6000613ba182613ad3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bd457613bd3613bdf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6140d781613a95565b81146140e257600080fd5b50565b6140ee81613aa7565b81146140f957600080fd5b50565b61410581613ad3565b811461411057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014a071f808ec315d0c817af4f65b8175684ffd0f09f5b28889855daa9f6befc064736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105c2578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461051a57806395d89b411461054557806398a5c31514610570578063a2a957bb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f70ccf7146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e600480360381019061020991906131c8565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190613648565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613128565b6108af565b60405161026f9190613612565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a919061362d565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c5919061384a565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613095565b610903565b6040516103029190613612565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d91906130e8565b6109dc565b005b34801561034057600080fd5b50610349610b5f565b604051610356919061384a565b60405180910390f35b34801561036b57600080fd5b50610374610b65565b60405161038191906138bf565b60405180910390f35b34801561039657600080fd5b5061039f610b6e565b6040516103ac91906135f7565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190612ffb565b610b94565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613211565b610c84565b005b34801561041357600080fd5b5061041c610d35565b005b34801561042a57600080fd5b5061044560048036038101906104409190612ffb565b610e06565b604051610452919061384a565b60405180910390f35b34801561046757600080fd5b50610470610e57565b005b34801561047e57600080fd5b506104996004803603810190610494919061323e565b610faa565b005b3480156104a757600080fd5b506104b0611049565b6040516104bd919061384a565b60405180910390f35b3480156104d257600080fd5b506104db61104f565b6040516104e891906135f7565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190613211565b611078565b005b34801561052657600080fd5b5061052f61112a565b60405161053c919061384a565b60405180910390f35b34801561055157600080fd5b5061055a611130565b6040516105679190613648565b60405180910390f35b34801561057c57600080fd5b506105976004803603810190610592919061323e565b61116d565b005b3480156105a557600080fd5b506105c060048036038101906105bb919061326b565b61120c565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613128565b6112c3565b6040516105f69190613612565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612ffb565b6112e1565b6040516106339190613612565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190612ffb565b611301565b6040516106709190613612565b60405180910390f35b34801561068557600080fd5b5061068e611321565b005b34801561069c57600080fd5b506106b760048036038101906106b29190613168565b6113fa565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613055565b611534565b6040516106ed919061384a565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061323e565b6115bb565b005b34801561072b57600080fd5b5061074660048036038101906107419190612ffb565b61165a565b005b61075061181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906137aa565b60405180910390fd5b60005b815181101561086e5760016010600084848151811061080257610801613c3d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613b96565b9150506107e0565b5050565b60606040518060400160405280600b81526020017f5371756972746c65496e75000000000000000000000000000000000000000000815250905090565b60006108c36108bc61181c565b8484611824565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670429d069189e0000905090565b60006109108484846119ef565b6109d18461091c61181c565b6109cc8560405180606001604052806028815260200161411460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098261181c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123379092919063ffffffff16565b611824565b600190509392505050565b6109e461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a68906137aa565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb9061376a565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9c61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c20906137aa565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c8c61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d10906137aa565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7661181c565b73ffffffffffffffffffffffffffffffffffffffff161480610dec5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd461181c565b73ffffffffffffffffffffffffffffffffffffffff16145b610df557600080fd5b6000479050610e038161239b565b50565b6000610e50600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612496565b9050919050565b610e5f61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee3906137aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611036906137aa565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61108061181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611104906137aa565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600b81526020017f5371756972746c65496e75000000000000000000000000000000000000000000815250905090565b61117561181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906137aa565b60405180910390fd5b8060198190555050565b61121461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906137aa565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112d76112d061181c565b84846119ef565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136261181c565b73ffffffffffffffffffffffffffffffffffffffff1614806113d85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c061181c565b73ffffffffffffffffffffffffffffffffffffffff16145b6113e157600080fd5b60006113ec30610e06565b90506113f781612504565b50565b61140261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906137aa565b60405180910390fd5b60005b8383905081101561152e5781600560008686858181106114b5576114b4613c3d565b5b90506020020160208101906114ca9190612ffb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152690613b96565b915050611492565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c361181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611647906137aa565b60405180910390fd5b8060188190555050565b61166261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e6906137aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611756906136ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b9061382a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb9061370a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e2919061384a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a56906137ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac69061366a565b60405180910390fd5b60008111611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b09906137ca565b60405180910390fd5b611b1a61104f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b885750611b5861104f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bde5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c345750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203657601660149054906101000a900460ff16611cda57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd09061368a565b60405180910390fd5b5b601754811115611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d16906136ca565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dc35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df99061372a565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611eaf5760185481611e6484610e06565b611e6e9190613980565b10611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea59061380a565b60405180910390fd5b5b6000611eba30610e06565b9050600060195482101590506017548210611ed55760175491505b808015611eef5750601660159054906101000a900460ff16155b8015611f495750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f5f575060168054906101000a900460ff165b8015611fb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120335761201982612504565b60004790506000811115612031576120304761239b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120dd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121905750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561218f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561219e5760009050612325565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561226157600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232457600a54600c81905550600b54600d819055505b5b6123318484848461278c565b50505050565b600083831115829061237f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123769190613648565b60405180910390fd5b506000838561238e9190613a61565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123eb6002846127b990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612416573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124676002846127b990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612492573d6000803e3d6000fd5b5050565b60006006548211156124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d4906136aa565b60405180910390fd5b60006124e7612803565b90506124fc81846127b990919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561253c5761253b613c6c565b5b60405190808252806020026020018201604052801561256a5781602001602082028036833780820191505090505b509050308160008151811061258257612581613c3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561262457600080fd5b505afa158015612638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265c9190613028565b816001815181106126705761266f613c3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126d730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611824565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161273b959493929190613865565b600060405180830381600087803b15801561275557600080fd5b505af1158015612769573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061279a5761279961282e565b5b6127a5848484612871565b806127b3576127b2612a3c565b5b50505050565b60006127fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a50565b905092915050565b6000806000612810612ab3565b9150915061282781836127b990919063ffffffff16565b9250505090565b6000600c5414801561284257506000600d54145b1561284c5761286f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061288387612b12565b9550955095509550955095506128e186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c281612c22565b6129cc8483612cdf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a29919061384a565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8e9190613648565b60405180910390fd5b5060008385612aa691906139d6565b9050809150509392505050565b600080600060065490506000670429d069189e00009050612ae7670429d069189e00006006546127b990919063ffffffff16565b821015612b0557600654670429d069189e0000935093505050612b0e565b81819350935050505b9091565b6000806000806000806000806000612b2f8a600c54600d54612d19565b9250925092506000612b3f612803565b90506000806000612b528e878787612daf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612bbc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612337565b905092915050565b6000808284612bd39190613980565b905083811015612c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0f9061374a565b60405180910390fd5b8091505092915050565b6000612c2c612803565b90506000612c438284612e3890919063ffffffff16565b9050612c9781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cf482600654612b7a90919063ffffffff16565b600681905550612d0f81600754612bc490919063ffffffff16565b6007819055505050565b600080600080612d456064612d37888a612e3890919063ffffffff16565b6127b990919063ffffffff16565b90506000612d6f6064612d61888b612e3890919063ffffffff16565b6127b990919063ffffffff16565b90506000612d9882612d8a858c612b7a90919063ffffffff16565b612b7a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612dc88589612e3890919063ffffffff16565b90506000612ddf8689612e3890919063ffffffff16565b90506000612df68789612e3890919063ffffffff16565b90506000612e1f82612e118587612b7a90919063ffffffff16565b612b7a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612e4b5760009050612ead565b60008284612e599190613a07565b9050828482612e6891906139d6565b14612ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9f9061378a565b60405180910390fd5b809150505b92915050565b6000612ec6612ec1846138ff565b6138da565b90508083825260208201905082856020860282011115612ee957612ee8613ca5565b5b60005b85811015612f195781612eff8882612f23565b845260208401935060208301925050600181019050612eec565b5050509392505050565b600081359050612f32816140ce565b92915050565b600081519050612f47816140ce565b92915050565b60008083601f840112612f6357612f62613ca0565b5b8235905067ffffffffffffffff811115612f8057612f7f613c9b565b5b602083019150836020820283011115612f9c57612f9b613ca5565b5b9250929050565b600082601f830112612fb857612fb7613ca0565b5b8135612fc8848260208601612eb3565b91505092915050565b600081359050612fe0816140e5565b92915050565b600081359050612ff5816140fc565b92915050565b60006020828403121561301157613010613caf565b5b600061301f84828501612f23565b91505092915050565b60006020828403121561303e5761303d613caf565b5b600061304c84828501612f38565b91505092915050565b6000806040838503121561306c5761306b613caf565b5b600061307a85828601612f23565b925050602061308b85828601612f23565b9150509250929050565b6000806000606084860312156130ae576130ad613caf565b5b60006130bc86828701612f23565b93505060206130cd86828701612f23565b92505060406130de86828701612fe6565b9150509250925092565b600080604083850312156130ff576130fe613caf565b5b600061310d85828601612f23565b925050602061311e85828601612fd1565b9150509250929050565b6000806040838503121561313f5761313e613caf565b5b600061314d85828601612f23565b925050602061315e85828601612fe6565b9150509250929050565b60008060006040848603121561318157613180613caf565b5b600084013567ffffffffffffffff81111561319f5761319e613caa565b5b6131ab86828701612f4d565b935093505060206131be86828701612fd1565b9150509250925092565b6000602082840312156131de576131dd613caf565b5b600082013567ffffffffffffffff8111156131fc576131fb613caa565b5b61320884828501612fa3565b91505092915050565b60006020828403121561322757613226613caf565b5b600061323584828501612fd1565b91505092915050565b60006020828403121561325457613253613caf565b5b600061326284828501612fe6565b91505092915050565b6000806000806080858703121561328557613284613caf565b5b600061329387828801612fe6565b94505060206132a487828801612fe6565b93505060406132b587828801612fe6565b92505060606132c687828801612fe6565b91505092959194509250565b60006132de83836132ea565b60208301905092915050565b6132f381613a95565b82525050565b61330281613a95565b82525050565b60006133138261393b565b61331d818561395e565b93506133288361392b565b8060005b8381101561335957815161334088826132d2565b975061334b83613951565b92505060018101905061332c565b5085935050505092915050565b61336f81613aa7565b82525050565b61337e81613aea565b82525050565b61338d81613afc565b82525050565b600061339e82613946565b6133a8818561396f565b93506133b8818560208601613b32565b6133c181613cb4565b840191505092915050565b60006133d960238361396f565b91506133e482613cc5565b604082019050919050565b60006133fc603f8361396f565b915061340782613d14565b604082019050919050565b600061341f602a8361396f565b915061342a82613d63565b604082019050919050565b6000613442601c8361396f565b915061344d82613db2565b602082019050919050565b600061346560268361396f565b915061347082613ddb565b604082019050919050565b600061348860228361396f565b915061349382613e2a565b604082019050919050565b60006134ab60238361396f565b91506134b682613e79565b604082019050919050565b60006134ce601b8361396f565b91506134d982613ec8565b602082019050919050565b60006134f160178361396f565b91506134fc82613ef1565b602082019050919050565b600061351460218361396f565b915061351f82613f1a565b604082019050919050565b600061353760208361396f565b915061354282613f69565b602082019050919050565b600061355a60298361396f565b915061356582613f92565b604082019050919050565b600061357d60258361396f565b915061358882613fe1565b604082019050919050565b60006135a060238361396f565b91506135ab82614030565b604082019050919050565b60006135c360248361396f565b91506135ce8261407f565b604082019050919050565b6135e281613ad3565b82525050565b6135f181613add565b82525050565b600060208201905061360c60008301846132f9565b92915050565b60006020820190506136276000830184613366565b92915050565b60006020820190506136426000830184613375565b92915050565b600060208201905081810360008301526136628184613393565b905092915050565b60006020820190508181036000830152613683816133cc565b9050919050565b600060208201905081810360008301526136a3816133ef565b9050919050565b600060208201905081810360008301526136c381613412565b9050919050565b600060208201905081810360008301526136e381613435565b9050919050565b6000602082019050818103600083015261370381613458565b9050919050565b600060208201905081810360008301526137238161347b565b9050919050565b600060208201905081810360008301526137438161349e565b9050919050565b60006020820190508181036000830152613763816134c1565b9050919050565b60006020820190508181036000830152613783816134e4565b9050919050565b600060208201905081810360008301526137a381613507565b9050919050565b600060208201905081810360008301526137c38161352a565b9050919050565b600060208201905081810360008301526137e38161354d565b9050919050565b6000602082019050818103600083015261380381613570565b9050919050565b6000602082019050818103600083015261382381613593565b9050919050565b60006020820190508181036000830152613843816135b6565b9050919050565b600060208201905061385f60008301846135d9565b92915050565b600060a08201905061387a60008301886135d9565b6138876020830187613384565b81810360408301526138998186613308565b90506138a860608301856132f9565b6138b560808301846135d9565b9695505050505050565b60006020820190506138d460008301846135e8565b92915050565b60006138e46138f5565b90506138f08282613b65565b919050565b6000604051905090565b600067ffffffffffffffff82111561391a57613919613c6c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061398b82613ad3565b915061399683613ad3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139cb576139ca613bdf565b5b828201905092915050565b60006139e182613ad3565b91506139ec83613ad3565b9250826139fc576139fb613c0e565b5b828204905092915050565b6000613a1282613ad3565b9150613a1d83613ad3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5657613a55613bdf565b5b828202905092915050565b6000613a6c82613ad3565b9150613a7783613ad3565b925082821015613a8a57613a89613bdf565b5b828203905092915050565b6000613aa082613ab3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613af582613b0e565b9050919050565b6000613b0782613ad3565b9050919050565b6000613b1982613b20565b9050919050565b6000613b2b82613ab3565b9050919050565b60005b83811015613b50578082015181840152602081019050613b35565b83811115613b5f576000848401525b50505050565b613b6e82613cb4565b810181811067ffffffffffffffff82111715613b8d57613b8c613c6c565b5b80604052505050565b6000613ba182613ad3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bd457613bd3613bdf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6140d781613a95565b81146140e257600080fd5b50565b6140ee81613aa7565b81146140f957600080fd5b50565b61410581613ad3565b811461411057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014a071f808ec315d0c817af4f65b8175684ffd0f09f5b28889855daa9f6befc064736f6c63430008070033

Deployed Bytecode Sourcemap

4162:16802:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15890:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9509:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10434:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5639:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9786:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10635:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20765:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5955:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9695:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5687:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16067:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20139:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15647:235;;;;;;;;;;;;;:::i;:::-;;9889:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1641:148;;;;;;;;;;;;;:::i;:::-;;20279:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5837:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1427:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15294:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5896:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9600:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19944:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19591:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10035:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5321:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5278:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15403:236;;;;;;;;;;;;;:::i;:::-;;20522:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10242:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20399:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1801:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15890:169;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15966:9:::1;15961:91;15985:5;:12;15981:1;:16;15961:91;;;16036:4;16019;:14;16024:5;16030:1;16024:8;;;;;;;;:::i;:::-;;;;;;;;16019:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15999:3;;;;;:::i;:::-;;;;15961:91;;;;15890:169:::0;:::o;9509:83::-;9546:13;9579:5;;;;;;;;;;;;;;;;;9572:12;;9509:83;:::o;10434:193::-;10536:4;10558:39;10567:12;:10;:12::i;:::-;10581:7;10590:6;10558:8;:39::i;:::-;10615:4;10608:11;;10434:193;;;;:::o;5639:41::-;;;;;;;;;;;;;:::o;9786:95::-;9839:7;4726:17;9859:14;;9786:95;:::o;10635:446::-;10767:4;10784:36;10794:6;10802:9;10813:6;10784:9;:36::i;:::-;10831:220;10854:6;10875:12;:10;:12::i;:::-;10902:138;10958:6;10902:138;;;;;;;;;;;;;;;;;:11;:19;10914:6;10902:19;;;;;;;;;;;;;;;:33;10922:12;:10;:12::i;:::-;10902:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10831:8;:220::i;:::-;11069:4;11062:11;;10635:446;;;;;:::o;20765:196::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20879:7:::1;20857:29;;:9;:18;20867:7;20857:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;20849:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20946:7;20925:9;:18;20935:7;20925:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20765:196:::0;;:::o;5955:53::-;;;;:::o;9695:83::-;9736:5;4400:1;9754:16;;9695:83;:::o;5687:28::-;;;;;;;;;;;;;:::o;16067:92::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16146:5:::1;16131:4;:12;16136:6;16131:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16067:92:::0;:::o;20139:101::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20220:12:::1;20206:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;20139:101:::0;:::o;15647:235::-;15713:19;;;;;;;;;;;15697:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;15752:17;;;;;;;;;;;15736:33;;:12;:10;:12::i;:::-;:33;;;15697:72;15689:81;;;;;;15781:26;15810:21;15781:50;;15842:32;15855:18;15842:12;:32::i;:::-;15678:204;15647:235::o;9889:138::-;9955:7;9982:37;10002:7;:16;10010:7;10002:16;;;;;;;;;;;;;;;;9982:19;:37::i;:::-;9975:44;;9889:138;;;:::o;1641:148::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1748:1:::1;1711:40;;1732:6;::::0;::::1;;;;;;;;1711:40;;;;;;;;;;;;1779:1;1762:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1641:148::o:0;20279:108::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20368:11:::1;20353:12;:26;;;;20279:108:::0;:::o;5837:45::-;;;;:::o;1427:79::-;1465:7;1492:6;;;;;;;;;;;1485:13;;1427:79;:::o;15294:101::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15375:12:::1;15361:11;;:26;;;;;;;;;;;;;;;;;;15294:101:::0;:::o;5896:47::-;;;;:::o;9600:87::-;9639:13;9672:7;;;;;;;;;;;;;;;;;9665:14;;9600:87;:::o;19944:139::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20057:18:::1;20035:19;:40;;;;19944:139:::0;:::o;19591:301::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19742:13:::1;19725:14;:30;;;;19784:14;19766:15;:32;;;;19834:11;19819:12;:26;;;;19872:12;19856:13;:28;;;;19591:301:::0;;;;:::o;10035:199::-;10140:4;10162:42;10172:12;:10;:12::i;:::-;10186:9;10197:6;10162:9;:42::i;:::-;10222:4;10215:11;;10035:199;;;;:::o;5321:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5278:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;15403:236::-;15469:19;;;;;;;;;;;15453:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;15508:17;;;;;;;;;;;15492:33;;:12;:10;:12::i;:::-;:33;;;15453:72;15445:81;;;;;;15537:23;15563:24;15581:4;15563:9;:24::i;:::-;15537:50;;15598:33;15615:15;15598:16;:33::i;:::-;15434:205;15403:236::o;20522:234::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20639:9:::1;20635:114;20658:8;;:15;;20654:1;:19;20635:114;;;20729:8;20695:18;:31;20714:8;;20723:1;20714:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20695:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;20675:3;;;;;:::i;:::-;;;;20635:114;;;;20522:234:::0;;;:::o;10242:184::-;10359:7;10391:11;:18;10403:5;10391:18;;;;;;;;;;;;;;;:27;10410:7;10391:27;;;;;;;;;;;;;;;;10384:34;;10242:184;;;;:::o;20399:115::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20493:13:::1;20476:14;:30;;;;20399:115:::0;:::o;1801:244::-;1564:12;:10;:12::i;:::-;1554:22;;:6;;;;;;;;;;:22;;;1546:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1910:1:::1;1890:22;;:8;:22;;;;1882:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2000:8;1971:38;;1992:6;::::0;::::1;;;;;;;;1971:38;;;;;;;;;;;;2029:8;2020:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1801:244:::0;:::o;186:98::-;239:7;266:10;259:17;;186:98;:::o;11784:369::-;11928:1;11911:19;;:5;:19;;;;11903:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12009:1;11990:21;;:7;:21;;;;11982:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12091:6;12061:11;:18;12073:5;12061:18;;;;;;;;;;;;;;;:27;12080:7;12061:27;;;;;;;;;;;;;;;:36;;;;12129:7;12113:32;;12122:5;12113:32;;;12138:6;12113:32;;;;;;:::i;:::-;;;;;;;;11784:369;;;:::o;12161:2466::-;12299:1;12283:18;;:4;:18;;;;12275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12376:1;12362:16;;:2;:16;;;;12354:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12446:1;12437:6;:10;12429:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12518:7;:5;:7::i;:::-;12510:15;;:4;:15;;;;:32;;;;;12535:7;:5;:7::i;:::-;12529:13;;:2;:13;;;;12510:32;:52;;;;;12547:9;:15;12557:4;12547:15;;;;;;;;;;;;;;;;;;;;;;;;;12546:16;12510:52;:70;;;;;12567:9;:13;12577:2;12567:13;;;;;;;;;;;;;;;;;;;;;;;;;12566:14;12510:70;12506:1359;;;12649:11;;;;;;;;;;;12644:144;;12689:9;:15;12699:4;12689:15;;;;;;;;;;;;;;;;;;;;;;;;;12681:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12644:144;12836:12;;12826:6;:22;;12818:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12905:4;:10;12910:4;12905:10;;;;;;;;;;;;;;;;;;;;;;;;;12904:11;:24;;;;;12920:4;:8;12925:2;12920:8;;;;;;;;;;;;;;;;;;;;;;;;;12919:9;12904:24;12896:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13006:13;;;;;;;;;;;13000:19;;:2;:19;;;12997:146;;13073:14;;13064:6;13048:13;13058:2;13048:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13040:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12997:146;13171:28;13202:24;13220:4;13202:9;:24::i;:::-;13171:55;;13241:12;13280:19;;13256:20;:43;;13241:58;;13343:12;;13319:20;:36;13316:124;;13412:12;;13389:35;;13316:124;13472:7;:18;;;;;13484:6;;;;;;;;;;;13483:7;13472:18;:43;;;;;13502:13;;;;;;;;;;;13494:21;;:4;:21;;;;13472:43;:58;;;;;13519:11;;;;;;;;;;13472:58;:87;;;;;13535:18;:24;13554:4;13535:24;;;;;;;;;;;;;;;;;;;;;;;;;13534:25;13472:87;:114;;;;;13564:18;:22;13583:2;13564:22;;;;;;;;;;;;;;;;;;;;;;;;;13563:23;13472:114;13468:386;;;13607:38;13624:20;13607:16;:38::i;:::-;13664:26;13693:21;13664:50;;13758:1;13737:18;:22;13733:106;;;13784:35;13797:21;13784:12;:35::i;:::-;13733:106;13588:266;13468:386;12582:1283;;12506:1359;13885:12;13900:4;13885:19;;13949:18;:24;13968:4;13949:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13977:18;:22;13996:2;13977:22;;;;;;;;;;;;;;;;;;;;;;;;;13949:50;13948:102;;;;14013:13;;;;;;;;;;;14005:21;;:4;:21;;;;:44;;;;;14036:13;;;;;;;;;;;14030:19;;:2;:19;;;;14005:44;13948:102;13944:622;;;14077:5;14067:15;;13944:622;;;14172:13;;;;;;;;;;;14164:21;;:4;:21;;;:55;;;;;14203:15;;;;;;;;;;;14189:30;;:2;:30;;;;14164:55;14161:162;;;14252:14;;14240:9;:26;;;;14295:12;;14285:7;:22;;;;14161:162;14386:13;;;;;;;;;;;14380:19;;:2;:19;;;:55;;;;;14419:15;;;;;;;;;;;14403:32;;:4;:32;;;;14380:55;14376:165;;;14468:15;;14456:9;:27;;;;14512:13;;14502:7;:23;;;;14376:165;13944:622;14578:41;14593:4;14599:2;14603:6;14611:7;14578:14;:41::i;:::-;12264:2363;12161:2466;;;:::o;2413:224::-;2533:7;2566:1;2561;:6;;2569:12;2553:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2593:9;2609:1;2605;:5;;;;:::i;:::-;2593:17;;2628:1;2621:8;;;2413:224;;;;;:::o;15126:160::-;15183:19;;;;;;;;;;;:28;;:43;15212:13;15223:1;15212:6;:10;;:13;;;;:::i;:::-;15183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15237:17;;;;;;;;;;;:26;;:41;15264:13;15275:1;15264:6;:10;;:13;;;;:::i;:::-;15237:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15126:160;:::o;11089:323::-;11184:7;11242;;11231;:18;;11209:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11330:19;11352:10;:8;:10::i;:::-;11330:32;;11380:24;11392:11;11380:7;:11;;:24;;;;:::i;:::-;11373:31;;;11089:323;;;:::o;14635:483::-;6117:4;6108:6;;:13;;;;;;;;;;;;;;;;;;14713:21:::1;14751:1;14737:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14713:40;;14782:4;14764;14769:1;14764:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14808:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14798:4;14803:1;14798:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14841:62;14858:4;14873:15;;;;;;;;;;;14891:11;14841:8;:62::i;:::-;14914:15;;;;;;;;;;;:66;;;14995:11;15021:1;15037:4;15064;15084:15;14914:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14702:416;6153:5:::0;6144:6;;:14;;;;;;;;;;;;;;;;;;14635:483;:::o;16167:282::-;16323:7;16318:28;;16332:14;:12;:14::i;:::-;16318:28;16357:44;16375:6;16383:9;16394:6;16357:17;:44::i;:::-;16417:7;16412:29;;16426:15;:13;:15::i;:::-;16412:29;16167:282;;;;:::o;2899:132::-;2957:7;2984:39;2988:1;2991;2984:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2977:46;;2899:132;;;;:::o;19142:166::-;19184:7;19205:15;19222;19241:19;:17;:19::i;:::-;19204:56;;;;19280:20;19292:7;19280;:11;;:20;;;;:::i;:::-;19273:27;;;;19142:166;:::o;11420:231::-;11480:1;11467:9;;:14;:30;;;;;11496:1;11485:7;;:12;11467:30;11463:43;;;11499:7;;11463:43;11542:9;;11522:17;:29;;;;11580:7;;11562:15;:25;;;;11620:1;11608:9;:13;;;;11642:1;11632:7;:11;;;;11420:231;:::o;16457:610::-;16604:15;16634:23;16672:12;16699:23;16737:12;16764:13;16791:19;16802:7;16791:10;:19::i;:::-;16589:221;;;;;;;;;;;;16839:28;16859:7;16839;:15;16847:6;16839:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16821:7;:15;16829:6;16821:15;;;;;;;;;;;;;;;:46;;;;16899:39;16922:15;16899:7;:18;16907:9;16899:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16878:7;:18;16886:9;16878:18;;;;;;;;;;;;;;;:60;;;;16949:16;16959:5;16949:9;:16::i;:::-;16976:23;16988:4;16994;16976:11;:23::i;:::-;17032:9;17015:44;;17024:6;17015:44;;;17043:15;17015:44;;;;;;:::i;:::-;;;;;;;;16578:489;;;;;;16457:610;;;:::o;11659:117::-;11715:17;;11703:9;:29;;;;11753:15;;11743:7;:25;;;;11659:117::o;3039:223::-;3159:7;3191:1;3187;:5;3194:12;3179:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3218:9;3234:1;3230;:5;;;;:::i;:::-;3218:17;;3253:1;3246:8;;;3039:223;;;;;:::o;19316:263::-;19367:7;19376;19396:15;19414:7;;19396:25;;19432:15;4726:17;19432:25;;19482:20;4726:17;19482:7;;:11;;:20;;;;:::i;:::-;19472:7;:30;19468:61;;;19512:7;;4726:17;19504:25;;;;;;;;19468:61;19554:7;19563;19546:25;;;;;;19316:263;;;:::o;17486:625::-;17586:7;17608;17630;17652;17674;17696;17732:23;17757:12;17771:13;17801:40;17813:7;17822:9;;17833:7;;17801:11;:40::i;:::-;17731:110;;;;;;17852:19;17874:10;:8;:10::i;:::-;17852:32;;17896:15;17913:23;17938:12;17967:46;17979:7;17988:4;17994:5;18001:11;17967;:46::i;:::-;17895:118;;;;;;18042:7;18051:15;18068:4;18074:15;18091:4;18097:5;18034:69;;;;;;;;;;;;;;;;;;;17486:625;;;;;;;:::o;2269:136::-;2327:7;2354:43;2358:1;2361;2354:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2347:50;;2269:136;;;;:::o;2082:179::-;2140:7;2160:9;2176:1;2172;:5;;;;:::i;:::-;2160:17;;2201:1;2196;:6;;2188:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2252:1;2245:8;;;2082:179;;;;:::o;17075:211::-;17128:19;17150:10;:8;:10::i;:::-;17128:32;;17171:13;17187:22;17197:11;17187:5;:9;;:22;;;;:::i;:::-;17171:38;;17245:33;17272:5;17245:7;:22;17261:4;17245:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17220:7;:22;17236:4;17220:22;;;;;;;;;;;;;;;:58;;;;17117:169;;17075:211;:::o;17294:147::-;17372:17;17384:4;17372:7;;:11;;:17;;;;:::i;:::-;17362:7;:27;;;;17413:20;17428:4;17413:10;;:14;;:20;;;;:::i;:::-;17400:10;:33;;;;17294:147;;:::o;18119:471::-;18288:7;18310;18332;18367:12;18382:30;18408:3;18382:21;18394:8;18382:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;18367:45;;18423:13;18439:28;18463:3;18439:19;18451:6;18439:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18423:44;;18478:23;18504:28;18526:5;18504:17;18516:4;18504:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18478:54;;18553:15;18570:4;18576:5;18545:37;;;;;;;;;18119:471;;;;;;;:::o;18598:536::-;18792:7;18814;18836;18871:15;18889:24;18901:11;18889:7;:11;;:24;;;;:::i;:::-;18871:42;;18924:12;18939:21;18948:11;18939:4;:8;;:21;;;;:::i;:::-;18924:36;;18971:13;18987:22;18997:11;18987:5;:9;;:22;;;;:::i;:::-;18971:38;;19020:23;19046:28;19068:5;19046:17;19058:4;19046:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19020:54;;19095:7;19104:15;19121:4;19087:39;;;;;;;;;;18598:536;;;;;;;;:::o;2645:246::-;2703:7;2732:1;2727;:6;2723:47;;;2757:1;2750:8;;;;2723:47;2780:9;2796:1;2792;:5;;;;:::i;:::-;2780:17;;2825:1;2820;2816;:5;;;;:::i;:::-;:10;2808:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2882:1;2875:8;;;2645:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:568::-;1136:8;1146:6;1196:3;1189:4;1181:6;1177:17;1173:27;1163:122;;1204:79;;:::i;:::-;1163:122;1317:6;1304:20;1294:30;;1347:18;1339:6;1336:30;1333:117;;;1369:79;;:::i;:::-;1333:117;1483:4;1475:6;1471:17;1459:29;;1537:3;1529:4;1521:6;1517:17;1507:8;1503:32;1500:41;1497:128;;;1544:79;;:::i;:::-;1497:128;1063:568;;;;;:::o;1654:370::-;1725:5;1774:3;1767:4;1759:6;1755:17;1751:27;1741:122;;1782:79;;:::i;:::-;1741:122;1899:6;1886:20;1924:94;2014:3;2006:6;1999:4;1991:6;1987:17;1924:94;:::i;:::-;1915:103;;1731:293;1654:370;;;;:::o;2030:133::-;2073:5;2111:6;2098:20;2089:29;;2127:30;2151:5;2127:30;:::i;:::-;2030:133;;;;:::o;2169:139::-;2215:5;2253:6;2240:20;2231:29;;2269:33;2296:5;2269:33;:::i;:::-;2169:139;;;;:::o;2314:329::-;2373:6;2422:2;2410:9;2401:7;2397:23;2393:32;2390:119;;;2428:79;;:::i;:::-;2390:119;2548:1;2573:53;2618:7;2609:6;2598:9;2594:22;2573:53;:::i;:::-;2563:63;;2519:117;2314:329;;;;:::o;2649:351::-;2719:6;2768:2;2756:9;2747:7;2743:23;2739:32;2736:119;;;2774:79;;:::i;:::-;2736:119;2894:1;2919:64;2975:7;2966:6;2955:9;2951:22;2919:64;:::i;:::-;2909:74;;2865:128;2649:351;;;;:::o;3006:474::-;3074:6;3082;3131:2;3119:9;3110:7;3106:23;3102:32;3099:119;;;3137:79;;:::i;:::-;3099:119;3257:1;3282:53;3327:7;3318:6;3307:9;3303:22;3282:53;:::i;:::-;3272:63;;3228:117;3384:2;3410:53;3455:7;3446:6;3435:9;3431:22;3410:53;:::i;:::-;3400:63;;3355:118;3006:474;;;;;:::o;3486:619::-;3563:6;3571;3579;3628:2;3616:9;3607:7;3603:23;3599:32;3596:119;;;3634:79;;:::i;:::-;3596:119;3754:1;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3725:117;3881:2;3907:53;3952:7;3943:6;3932:9;3928:22;3907:53;:::i;:::-;3897:63;;3852:118;4009:2;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3980:118;3486:619;;;;;:::o;4111:468::-;4176:6;4184;4233:2;4221:9;4212:7;4208:23;4204:32;4201:119;;;4239:79;;:::i;:::-;4201:119;4359:1;4384:53;4429:7;4420:6;4409:9;4405:22;4384:53;:::i;:::-;4374:63;;4330:117;4486:2;4512:50;4554:7;4545:6;4534:9;4530:22;4512:50;:::i;:::-;4502:60;;4457:115;4111:468;;;;;:::o;4585:474::-;4653:6;4661;4710:2;4698:9;4689:7;4685:23;4681:32;4678:119;;;4716:79;;:::i;:::-;4678:119;4836:1;4861:53;4906:7;4897:6;4886:9;4882:22;4861:53;:::i;:::-;4851:63;;4807:117;4963:2;4989:53;5034:7;5025:6;5014:9;5010:22;4989:53;:::i;:::-;4979:63;;4934:118;4585:474;;;;;:::o;5065:698::-;5157:6;5165;5173;5222:2;5210:9;5201:7;5197:23;5193:32;5190:119;;;5228:79;;:::i;:::-;5190:119;5376:1;5365:9;5361:17;5348:31;5406:18;5398:6;5395:30;5392:117;;;5428:79;;:::i;:::-;5392:117;5541:80;5613:7;5604:6;5593:9;5589:22;5541:80;:::i;:::-;5523:98;;;;5319:312;5670:2;5696:50;5738:7;5729:6;5718:9;5714:22;5696:50;:::i;:::-;5686:60;;5641:115;5065:698;;;;;:::o;5769:539::-;5853:6;5902:2;5890:9;5881:7;5877:23;5873:32;5870:119;;;5908:79;;:::i;:::-;5870:119;6056:1;6045:9;6041:17;6028:31;6086:18;6078:6;6075:30;6072:117;;;6108:79;;:::i;:::-;6072:117;6213:78;6283:7;6274:6;6263:9;6259:22;6213:78;:::i;:::-;6203:88;;5999:302;5769:539;;;;:::o;6314:323::-;6370:6;6419:2;6407:9;6398:7;6394:23;6390:32;6387:119;;;6425:79;;:::i;:::-;6387:119;6545:1;6570:50;6612:7;6603:6;6592:9;6588:22;6570:50;:::i;:::-;6560:60;;6516:114;6314:323;;;;:::o;6643:329::-;6702:6;6751:2;6739:9;6730:7;6726:23;6722:32;6719:119;;;6757:79;;:::i;:::-;6719:119;6877:1;6902:53;6947:7;6938:6;6927:9;6923:22;6902:53;:::i;:::-;6892:63;;6848:117;6643:329;;;;:::o;6978:765::-;7064:6;7072;7080;7088;7137:3;7125:9;7116:7;7112:23;7108:33;7105:120;;;7144:79;;:::i;:::-;7105:120;7264:1;7289:53;7334:7;7325:6;7314:9;7310:22;7289:53;:::i;:::-;7279:63;;7235:117;7391:2;7417:53;7462:7;7453:6;7442:9;7438:22;7417:53;:::i;:::-;7407:63;;7362:118;7519:2;7545:53;7590:7;7581:6;7570:9;7566:22;7545:53;:::i;:::-;7535:63;;7490:118;7647:2;7673:53;7718:7;7709:6;7698:9;7694:22;7673:53;:::i;:::-;7663:63;;7618:118;6978:765;;;;;;;:::o;7749:179::-;7818:10;7839:46;7881:3;7873:6;7839:46;:::i;:::-;7917:4;7912:3;7908:14;7894:28;;7749:179;;;;:::o;7934:108::-;8011:24;8029:5;8011:24;:::i;:::-;8006:3;7999:37;7934:108;;:::o;8048:118::-;8135:24;8153:5;8135:24;:::i;:::-;8130:3;8123:37;8048:118;;:::o;8202:732::-;8321:3;8350:54;8398:5;8350:54;:::i;:::-;8420:86;8499:6;8494:3;8420:86;:::i;:::-;8413:93;;8530:56;8580:5;8530:56;:::i;:::-;8609:7;8640:1;8625:284;8650:6;8647:1;8644:13;8625:284;;;8726:6;8720:13;8753:63;8812:3;8797:13;8753:63;:::i;:::-;8746:70;;8839:60;8892:6;8839:60;:::i;:::-;8829:70;;8685:224;8672:1;8669;8665:9;8660:14;;8625:284;;;8629:14;8925:3;8918:10;;8326:608;;;8202:732;;;;:::o;8940:109::-;9021:21;9036:5;9021:21;:::i;:::-;9016:3;9009:34;8940:109;;:::o;9055:183::-;9168:63;9225:5;9168:63;:::i;:::-;9163:3;9156:76;9055:183;;:::o;9244:147::-;9339:45;9378:5;9339:45;:::i;:::-;9334:3;9327:58;9244:147;;:::o;9397:364::-;9485:3;9513:39;9546:5;9513:39;:::i;:::-;9568:71;9632:6;9627:3;9568:71;:::i;:::-;9561:78;;9648:52;9693:6;9688:3;9681:4;9674:5;9670:16;9648:52;:::i;:::-;9725:29;9747:6;9725:29;:::i;:::-;9720:3;9716:39;9709:46;;9489:272;9397:364;;;;:::o;9767:366::-;9909:3;9930:67;9994:2;9989:3;9930:67;:::i;:::-;9923:74;;10006:93;10095:3;10006:93;:::i;:::-;10124:2;10119:3;10115:12;10108:19;;9767:366;;;:::o;10139:::-;10281:3;10302:67;10366:2;10361:3;10302:67;:::i;:::-;10295:74;;10378:93;10467:3;10378:93;:::i;:::-;10496:2;10491:3;10487:12;10480:19;;10139:366;;;:::o;10511:::-;10653:3;10674:67;10738:2;10733:3;10674:67;:::i;:::-;10667:74;;10750:93;10839:3;10750:93;:::i;:::-;10868:2;10863:3;10859:12;10852:19;;10511:366;;;:::o;10883:::-;11025:3;11046:67;11110:2;11105:3;11046:67;:::i;:::-;11039:74;;11122:93;11211:3;11122:93;:::i;:::-;11240:2;11235:3;11231:12;11224:19;;10883:366;;;:::o;11255:::-;11397:3;11418:67;11482:2;11477:3;11418:67;:::i;:::-;11411:74;;11494:93;11583:3;11494:93;:::i;:::-;11612:2;11607:3;11603:12;11596:19;;11255:366;;;:::o;11627:::-;11769:3;11790:67;11854:2;11849:3;11790:67;:::i;:::-;11783:74;;11866:93;11955:3;11866:93;:::i;:::-;11984:2;11979:3;11975:12;11968:19;;11627:366;;;:::o;11999:::-;12141:3;12162:67;12226:2;12221:3;12162:67;:::i;:::-;12155:74;;12238:93;12327:3;12238:93;:::i;:::-;12356:2;12351:3;12347:12;12340:19;;11999:366;;;:::o;12371:::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12371:366;;;:::o;12743:::-;12885:3;12906:67;12970:2;12965:3;12906:67;:::i;:::-;12899:74;;12982:93;13071:3;12982:93;:::i;:::-;13100:2;13095:3;13091:12;13084:19;;12743:366;;;:::o;13115:::-;13257:3;13278:67;13342:2;13337:3;13278:67;:::i;:::-;13271:74;;13354:93;13443:3;13354:93;:::i;:::-;13472:2;13467:3;13463:12;13456:19;;13115:366;;;:::o;13487:::-;13629:3;13650:67;13714:2;13709:3;13650:67;:::i;:::-;13643:74;;13726:93;13815:3;13726:93;:::i;:::-;13844:2;13839:3;13835:12;13828:19;;13487:366;;;:::o;13859:::-;14001:3;14022:67;14086:2;14081:3;14022:67;:::i;:::-;14015:74;;14098:93;14187:3;14098:93;:::i;:::-;14216:2;14211:3;14207:12;14200:19;;13859:366;;;:::o;14231:::-;14373:3;14394:67;14458:2;14453:3;14394:67;:::i;:::-;14387:74;;14470:93;14559:3;14470:93;:::i;:::-;14588:2;14583:3;14579:12;14572:19;;14231:366;;;:::o;14603:::-;14745:3;14766:67;14830:2;14825:3;14766:67;:::i;:::-;14759:74;;14842:93;14931:3;14842:93;:::i;:::-;14960:2;14955:3;14951:12;14944:19;;14603:366;;;:::o;14975:::-;15117:3;15138:67;15202:2;15197:3;15138:67;:::i;:::-;15131:74;;15214:93;15303:3;15214:93;:::i;:::-;15332:2;15327:3;15323:12;15316:19;;14975:366;;;:::o;15347:118::-;15434:24;15452:5;15434:24;:::i;:::-;15429:3;15422:37;15347:118;;:::o;15471:112::-;15554:22;15570:5;15554:22;:::i;:::-;15549:3;15542:35;15471:112;;:::o;15589:222::-;15682:4;15720:2;15709:9;15705:18;15697:26;;15733:71;15801:1;15790:9;15786:17;15777:6;15733:71;:::i;:::-;15589:222;;;;:::o;15817:210::-;15904:4;15942:2;15931:9;15927:18;15919:26;;15955:65;16017:1;16006:9;16002:17;15993:6;15955:65;:::i;:::-;15817:210;;;;:::o;16033:274::-;16152:4;16190:2;16179:9;16175:18;16167:26;;16203:97;16297:1;16286:9;16282:17;16273:6;16203:97;:::i;:::-;16033:274;;;;:::o;16313:313::-;16426:4;16464:2;16453:9;16449:18;16441:26;;16513:9;16507:4;16503:20;16499:1;16488:9;16484:17;16477:47;16541:78;16614:4;16605:6;16541:78;:::i;:::-;16533:86;;16313:313;;;;:::o;16632:419::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16632:419;;;:::o;17057:::-;17223:4;17261:2;17250:9;17246:18;17238:26;;17310:9;17304:4;17300:20;17296:1;17285:9;17281:17;17274:47;17338:131;17464:4;17338:131;:::i;:::-;17330:139;;17057:419;;;:::o;17482:::-;17648:4;17686:2;17675:9;17671:18;17663:26;;17735:9;17729:4;17725:20;17721:1;17710:9;17706:17;17699:47;17763:131;17889:4;17763:131;:::i;:::-;17755:139;;17482:419;;;:::o;17907:::-;18073:4;18111:2;18100:9;18096:18;18088:26;;18160:9;18154:4;18150:20;18146:1;18135:9;18131:17;18124:47;18188:131;18314:4;18188:131;:::i;:::-;18180:139;;17907:419;;;:::o;18332:::-;18498:4;18536:2;18525:9;18521:18;18513:26;;18585:9;18579:4;18575:20;18571:1;18560:9;18556:17;18549:47;18613:131;18739:4;18613:131;:::i;:::-;18605:139;;18332:419;;;:::o;18757:::-;18923:4;18961:2;18950:9;18946:18;18938:26;;19010:9;19004:4;19000:20;18996:1;18985:9;18981:17;18974:47;19038:131;19164:4;19038:131;:::i;:::-;19030:139;;18757:419;;;:::o;19182:::-;19348:4;19386:2;19375:9;19371:18;19363:26;;19435:9;19429:4;19425:20;19421:1;19410:9;19406:17;19399:47;19463:131;19589:4;19463:131;:::i;:::-;19455:139;;19182:419;;;:::o;19607:::-;19773:4;19811:2;19800:9;19796:18;19788:26;;19860:9;19854:4;19850:20;19846:1;19835:9;19831:17;19824:47;19888:131;20014:4;19888:131;:::i;:::-;19880:139;;19607:419;;;:::o;20032:::-;20198:4;20236:2;20225:9;20221:18;20213:26;;20285:9;20279:4;20275:20;20271:1;20260:9;20256:17;20249:47;20313:131;20439:4;20313:131;:::i;:::-;20305:139;;20032:419;;;:::o;20457:::-;20623:4;20661:2;20650:9;20646:18;20638:26;;20710:9;20704:4;20700:20;20696:1;20685:9;20681:17;20674:47;20738:131;20864:4;20738:131;:::i;:::-;20730:139;;20457:419;;;:::o;20882:::-;21048:4;21086:2;21075:9;21071:18;21063:26;;21135:9;21129:4;21125:20;21121:1;21110:9;21106:17;21099:47;21163:131;21289:4;21163:131;:::i;:::-;21155:139;;20882:419;;;:::o;21307:::-;21473:4;21511:2;21500:9;21496:18;21488:26;;21560:9;21554:4;21550:20;21546:1;21535:9;21531:17;21524:47;21588:131;21714:4;21588:131;:::i;:::-;21580:139;;21307:419;;;:::o;21732:::-;21898:4;21936:2;21925:9;21921:18;21913:26;;21985:9;21979:4;21975:20;21971:1;21960:9;21956:17;21949:47;22013:131;22139:4;22013:131;:::i;:::-;22005:139;;21732:419;;;:::o;22157:::-;22323:4;22361:2;22350:9;22346:18;22338:26;;22410:9;22404:4;22400:20;22396:1;22385:9;22381:17;22374:47;22438:131;22564:4;22438:131;:::i;:::-;22430:139;;22157:419;;;:::o;22582:::-;22748:4;22786:2;22775:9;22771:18;22763:26;;22835:9;22829:4;22825:20;22821:1;22810:9;22806:17;22799:47;22863:131;22989:4;22863:131;:::i;:::-;22855:139;;22582:419;;;:::o;23007:222::-;23100:4;23138:2;23127:9;23123:18;23115:26;;23151:71;23219:1;23208:9;23204:17;23195:6;23151:71;:::i;:::-;23007:222;;;;:::o;23235:831::-;23498:4;23536:3;23525:9;23521:19;23513:27;;23550:71;23618:1;23607:9;23603:17;23594:6;23550:71;:::i;:::-;23631:80;23707:2;23696:9;23692:18;23683:6;23631:80;:::i;:::-;23758:9;23752:4;23748:20;23743:2;23732:9;23728:18;23721:48;23786:108;23889:4;23880:6;23786:108;:::i;:::-;23778:116;;23904:72;23972:2;23961:9;23957:18;23948:6;23904:72;:::i;:::-;23986:73;24054:3;24043:9;24039:19;24030:6;23986:73;:::i;:::-;23235:831;;;;;;;;:::o;24072:214::-;24161:4;24199:2;24188:9;24184:18;24176:26;;24212:67;24276:1;24265:9;24261:17;24252:6;24212:67;:::i;:::-;24072:214;;;;:::o;24292:129::-;24326:6;24353:20;;:::i;:::-;24343:30;;24382:33;24410:4;24402:6;24382:33;:::i;:::-;24292:129;;;:::o;24427:75::-;24460:6;24493:2;24487:9;24477:19;;24427:75;:::o;24508:311::-;24585:4;24675:18;24667:6;24664:30;24661:56;;;24697:18;;:::i;:::-;24661:56;24747:4;24739:6;24735:17;24727:25;;24807:4;24801;24797:15;24789:23;;24508:311;;;:::o;24825:132::-;24892:4;24915:3;24907:11;;24945:4;24940:3;24936:14;24928:22;;24825:132;;;:::o;24963:114::-;25030:6;25064:5;25058:12;25048:22;;24963:114;;;:::o;25083:99::-;25135:6;25169:5;25163:12;25153:22;;25083:99;;;:::o;25188:113::-;25258:4;25290;25285:3;25281:14;25273:22;;25188:113;;;:::o;25307:184::-;25406:11;25440:6;25435:3;25428:19;25480:4;25475:3;25471:14;25456:29;;25307:184;;;;:::o;25497:169::-;25581:11;25615:6;25610:3;25603:19;25655:4;25650:3;25646:14;25631:29;;25497:169;;;;:::o;25672:305::-;25712:3;25731:20;25749:1;25731:20;:::i;:::-;25726:25;;25765:20;25783:1;25765:20;:::i;:::-;25760:25;;25919:1;25851:66;25847:74;25844:1;25841:81;25838:107;;;25925:18;;:::i;:::-;25838:107;25969:1;25966;25962:9;25955:16;;25672:305;;;;:::o;25983:185::-;26023:1;26040:20;26058:1;26040:20;:::i;:::-;26035:25;;26074:20;26092:1;26074:20;:::i;:::-;26069:25;;26113:1;26103:35;;26118:18;;:::i;:::-;26103:35;26160:1;26157;26153:9;26148:14;;25983:185;;;;:::o;26174:348::-;26214:7;26237:20;26255:1;26237:20;:::i;:::-;26232:25;;26271:20;26289:1;26271:20;:::i;:::-;26266:25;;26459:1;26391:66;26387:74;26384:1;26381:81;26376:1;26369:9;26362:17;26358:105;26355:131;;;26466:18;;:::i;:::-;26355:131;26514:1;26511;26507:9;26496:20;;26174:348;;;;:::o;26528:191::-;26568:4;26588:20;26606:1;26588:20;:::i;:::-;26583:25;;26622:20;26640:1;26622:20;:::i;:::-;26617:25;;26661:1;26658;26655:8;26652:34;;;26666:18;;:::i;:::-;26652:34;26711:1;26708;26704:9;26696:17;;26528:191;;;;:::o;26725:96::-;26762:7;26791:24;26809:5;26791:24;:::i;:::-;26780:35;;26725:96;;;:::o;26827:90::-;26861:7;26904:5;26897:13;26890:21;26879:32;;26827:90;;;:::o;26923:126::-;26960:7;27000:42;26993:5;26989:54;26978:65;;26923:126;;;:::o;27055:77::-;27092:7;27121:5;27110:16;;27055:77;;;:::o;27138:86::-;27173:7;27213:4;27206:5;27202:16;27191:27;;27138:86;;;:::o;27230:152::-;27306:9;27339:37;27370:5;27339:37;:::i;:::-;27326:50;;27230:152;;;:::o;27388:121::-;27446:9;27479:24;27497:5;27479:24;:::i;:::-;27466:37;;27388:121;;;:::o;27515:126::-;27565:9;27598:37;27629:5;27598:37;:::i;:::-;27585:50;;27515:126;;;:::o;27647:113::-;27697:9;27730:24;27748:5;27730:24;:::i;:::-;27717:37;;27647:113;;;:::o;27766:307::-;27834:1;27844:113;27858:6;27855:1;27852:13;27844:113;;;27943:1;27938:3;27934:11;27928:18;27924:1;27919:3;27915:11;27908:39;27880:2;27877:1;27873:10;27868:15;;27844:113;;;27975:6;27972:1;27969:13;27966:101;;;28055:1;28046:6;28041:3;28037:16;28030:27;27966:101;27815:258;27766:307;;;:::o;28079:281::-;28162:27;28184:4;28162:27;:::i;:::-;28154:6;28150:40;28292:6;28280:10;28277:22;28256:18;28244:10;28241:34;28238:62;28235:88;;;28303:18;;:::i;:::-;28235:88;28343:10;28339:2;28332:22;28122:238;28079:281;;:::o;28366:233::-;28405:3;28428:24;28446:5;28428:24;:::i;:::-;28419:33;;28474:66;28467:5;28464:77;28461:103;;;28544:18;;:::i;:::-;28461:103;28591:1;28584:5;28580:13;28573:20;;28366:233;;;:::o;28605:180::-;28653:77;28650:1;28643:88;28750:4;28747:1;28740:15;28774:4;28771:1;28764:15;28791:180;28839:77;28836:1;28829:88;28936:4;28933:1;28926:15;28960:4;28957:1;28950:15;28977:180;29025:77;29022:1;29015:88;29122:4;29119:1;29112:15;29146:4;29143:1;29136:15;29163:180;29211:77;29208:1;29201:88;29308:4;29305:1;29298:15;29332:4;29329:1;29322:15;29349:117;29458:1;29455;29448:12;29472:117;29581:1;29578;29571:12;29595:117;29704:1;29701;29694:12;29718:117;29827:1;29824;29817:12;29841:117;29950:1;29947;29940:12;29964:102;30005:6;30056:2;30052:7;30047:2;30040:5;30036:14;30032:28;30022:38;;29964:102;;;:::o;30072:222::-;30212:34;30208:1;30200:6;30196:14;30189:58;30281:5;30276:2;30268:6;30264:15;30257:30;30072:222;:::o;30300:250::-;30440:34;30436:1;30428:6;30424:14;30417:58;30509:33;30504:2;30496:6;30492:15;30485:58;30300:250;:::o;30556:229::-;30696:34;30692:1;30684:6;30680:14;30673:58;30765:12;30760:2;30752:6;30748:15;30741:37;30556:229;:::o;30791:178::-;30931:30;30927:1;30919:6;30915:14;30908:54;30791:178;:::o;30975:225::-;31115:34;31111:1;31103:6;31099:14;31092:58;31184:8;31179:2;31171:6;31167:15;31160:33;30975:225;:::o;31206:221::-;31346:34;31342:1;31334:6;31330:14;31323:58;31415:4;31410:2;31402:6;31398:15;31391:29;31206:221;:::o;31433:222::-;31573:34;31569:1;31561:6;31557:14;31550:58;31642:5;31637:2;31629:6;31625:15;31618:30;31433:222;:::o;31661:177::-;31801:29;31797:1;31789:6;31785:14;31778:53;31661:177;:::o;31844:173::-;31984:25;31980:1;31972:6;31968:14;31961:49;31844:173;:::o;32023:220::-;32163:34;32159:1;32151:6;32147:14;32140:58;32232:3;32227:2;32219:6;32215:15;32208:28;32023:220;:::o;32249:182::-;32389:34;32385:1;32377:6;32373:14;32366:58;32249:182;:::o;32437:228::-;32577:34;32573:1;32565:6;32561:14;32554:58;32646:11;32641:2;32633:6;32629:15;32622:36;32437:228;:::o;32671:224::-;32811:34;32807:1;32799:6;32795:14;32788:58;32880:7;32875:2;32867:6;32863:15;32856:32;32671:224;:::o;32901:222::-;33041:34;33037:1;33029:6;33025:14;33018:58;33110:5;33105:2;33097:6;33093:15;33086:30;32901:222;:::o;33129:223::-;33269:34;33265:1;33257:6;33253:14;33246:58;33338:6;33333:2;33325:6;33321:15;33314:31;33129:223;:::o;33358:122::-;33431:24;33449:5;33431:24;:::i;:::-;33424:5;33421:35;33411:63;;33470:1;33467;33460:12;33411:63;33358:122;:::o;33486:116::-;33556:21;33571:5;33556:21;:::i;:::-;33549:5;33546:32;33536:60;;33592:1;33589;33582:12;33536:60;33486:116;:::o;33608:122::-;33681:24;33699:5;33681:24;:::i;:::-;33674:5;33671:35;33661:63;;33720:1;33717;33710:12;33661:63;33608:122;:::o

Swarm Source

ipfs://14a071f808ec315d0c817af4f65b8175684ffd0f09f5b28889855daa9f6befc0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.