ETH Price: $2,450.76 (-0.87%)

Token

AkiraTAMA (ATAMA)
 

Overview

Max Total Supply

1,000,000 ATAMA

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,441.589759717 ATAMA

Value
$0.00
0xcf7fb9cce81ad81c88f5e0aefec9987193926b1c
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:
AkiraTAMA

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-06
*/

/**
*/
//
//
//      AkiraTAMA Senshi       
//      *Be Quiet
//       - You want me to enroll in that kindergarten and live happily ever after, huh?! 
//       - "Be quiet, do what you're told, take your medicine every day" and end up all shriveled like all those humans!?           
//      *It's Pointless To Fight Each Other
//       - Enough! Open up your eyes and look at the big picture; 
//       - You're all puppets of corrupt politicians and capitalists.
//       - Don't you understand, it's utterly pointless to fight each other! 
//
//||||||||||||||||||||||||||| 100% SAFU - LP BURNED & CONTRACT RENOUNCED |||||||||||||||||||||||||||
//
// tg - https://t.me/Akiratama_eth
//
// 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 AkiraTAMA is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "AkiraTAMA";
    string private constant _symbol = "ATAMA";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    mapping(address => bool) private _isSniper;
    uint256 public launchTime;

    uint256 private _redisFeeJeets = 0;
    uint256 private _taxFeeJeets = 3;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 3;
    
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 3;
    
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _burnFee = 0;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _previousburnFee = _burnFee;
    
    address payable private _marketingAddress = payable(0xf5A3d6063f233801a33263a40c2699074c251584);
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public timeJeets = 5 minutes;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private isMaxBuyActivated = true;
    
    uint256 public _maxTxAmount = 2e4 * 10**9; 
    uint256 public _maxWalletSize = 4e4 * 10**9; 
    uint256 public _swapTokensAtAmount = 1e3 * 10**9;
    uint256 public _minimumBuyAmount = 2e4 * 10**9; 

    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[_marketingAddress] = true;
        _isExcludedFromFee[deadAddress] = 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 && _burnFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _previousburnFee = _burnFee;
        
        _redisFee = 0;
        _taxFee = 0;
        _burnFee = 0;
    }

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

    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");
        require(!_isSniper[to], 'Stop sniping!');
        require(!_isSniper[from], 'Stop sniping!');
        require(!_isSniper[_msgSender()], 'Stop sniping!');

        if (from != owner() && to != owner()) {
            
            if (!tradingOpen) {
                revert("Trading not yet enabled!");
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }

            if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                if (isMaxBuyActivated) {
                    if (block.timestamp <= launchTime + 20 minutes) {
                        require(amount <= _minimumBuyAmount, "Amount too much");
                    }
                }
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _swapTokensAtAmount;
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 burntAmount = 0;
                if (_burnFee > 0) {
                    burntAmount = contractTokenBalance.mul(_burnFee).div(10**2);
                    burnTokens(burntAmount);
                }
                swapTokensForEth(contractTokenBalance - burntAmount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    _buyMap[to] = block.timestamp;
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
                    if (block.timestamp == launchTime) {
                        _isSniper[to] = true;
                    }
            }
    
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (_buyMap[from] != 0 && (_buyMap[from] + timeJeets >= block.timestamp)) {
                    _redisFee = _redisFeeJeets;
                    _taxFee = _taxFeeJeets;
                } else {
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
                }
            }
        }

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

    function burnTokens(uint256 burntAmount) private {
        _transfer(address(this), deadAddress, burntAmount);
    }

    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 {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchTime = block.timestamp;
    }

    function setMarketingWallet(address marketingAddress) external {
        require(_msgSender() == _marketingAddress);
        _marketingAddress = payable(marketingAddress);
        _isExcludedFromFee[_marketingAddress] = true;
    }

    function setIsMaxBuyActivated(bool _isMaxBuyActivated) public onlyOwner {
        isMaxBuyActivated = _isMaxBuyActivated;
    }

    function manualswap(uint256 amount) external {
        require(_msgSender() == _marketingAddress);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function addSniper(address sniper) external onlyOwner {
        _isSniper[sniper] = true;
    }

    function removeSniper(address sniper) external onlyOwner {
        if (_isSniper[sniper]) {
            _isSniper[sniper] = false;
        }
    }

    function isSniper(address sniper) external view returns (bool){
        return _isSniper[sniper];
    }

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

    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 toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner {
        require(maxTxAmount >= 5e3 * 10**9, "Maximum transaction amount must be greater than 0.5%");
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner {
        require(maxWalletSize >= _maxWalletSize);
        _maxWalletSize = maxWalletSize;
    }

    // USUAL TAXES CANNOT BE RAISED MORE THAN 2%
    function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner {
        require(amountBuy >= 0 && amountBuy <= 2);
        require(amountSell >= 0 && amountSell <= 2);
        _taxFeeOnBuy = amountBuy;
        _taxFeeOnSell = amountSell;
    }

    function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner {
        require(amountRefBuy >= 0 && amountRefBuy <= 1);
        require(amountRefSell >= 0 && amountRefSell <= 1);
        _redisFeeOnBuy = amountRefBuy;
        _redisFeeOnSell = amountRefSell;
    }

    function setBurnFee(uint256 amount) external onlyOwner {
        require(amount >= 0 && amount <= 1);
        _burnFee = amount;
    }

    function setJeetsFee(uint256 amountRedisJeets, uint256 amountTaxJeets) external onlyOwner {
        require(amountRedisJeets >= 0 && amountRedisJeets <= 1);
        require(amountTaxJeets >= 0 && amountTaxJeets <= 2);
        _redisFeeJeets = amountRedisJeets;
        _taxFeeJeets = amountTaxJeets;
    }

    function setTimeJeets(uint256 hoursTime) external onlyOwner {
        require(hoursTime >= 0 && hoursTime <= 1);
        timeJeets = hoursTime * 1 hours;
    }

}

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":"_minimumBuyAmount","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":"sniper","type":"address"}],"name":"addSniper","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":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"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":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isMaxBuyActivated","type":"bool"}],"name":"setIsMaxBuyActivated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRedisJeets","type":"uint256"},{"internalType":"uint256","name":"amountTaxJeets","type":"uint256"}],"name":"setJeetsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","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":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"hoursTime","type":"uint256"}],"name":"setTimeJeets","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":[],"name":"timeJeets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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"}]

608060405266038d7ea4c680006000196200001b9190620007fa565b6000196200002a919062000781565b6007556000600b556003600c556000600d556003600e556000600f556003601055600f54601155601054601255600060135560115460145560125460155560135460165573f5a3d6063f233801a33263a40c2699074c251584601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012c6018556000601a60156101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff0219169083151502179055506512309ce54000601b5565246139ca8000601c5564e8d4a51000601d556512309ce54000601e553480156200014e57600080fd5b506000620001616200069b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620002166200069b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002f557600080fd5b505afa1580156200030a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003309190620006e3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039357600080fd5b505afa158015620003a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ce9190620006e3565b6040518363ffffffff1660e01b8152600401620003ed92919062000737565b602060405180830381600087803b1580156200040857600080fd5b505af11580156200041d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004439190620006e3565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016006600062000499620006a360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006266200069b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040516200068c919062000764565b60405180910390a350620008af565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006dd8162000895565b92915050565b600060208284031215620006fc57620006fb62000890565b5b60006200070c84828501620006cc565b91505092915050565b6200072081620007bc565b82525050565b6200073181620007f0565b82525050565b60006040820190506200074e600083018562000715565b6200075d602083018462000715565b9392505050565b60006020820190506200077b600083018462000726565b92915050565b60006200078e82620007f0565b91506200079b83620007f0565b925082821015620007b157620007b062000832565b5b828203905092915050565b6000620007c982620007d0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200080782620007f0565b91506200081483620007f0565b92508262000827576200082662000861565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008a081620007bc565b8114620008ac57600080fd5b50565b6146ab80620008bf6000396000f3fe60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e146107a4578063e0f9f6a0146107e1578063ea1644d51461080a578063f2fde38b14610833578063fe72c3c11461085c57610225565b806395d89b41146106c15780639ec350ed146106ec5780639f13157114610715578063a9059cbb1461073e578063c55284901461077b57610225565b80637d1db4a5116100f25780637d1db4a5146105ee578063881dce60146106195780638da5cb5b146106425780638f70ccf71461066d5780638f9a55c01461069657610225565b806370a0823114610546578063715018a61461058357806374010ece1461059a578063790ca413146105c357610225565b806333251a0b116101a65780634bf2c7c9116101755780634bf2c7c9146104895780635d098b38146104b25780636b9cf534146104db5780636d8aa8f8146105065780636fc3eaec1461052f57610225565b806333251a0b146103e357806338eea22d1461040c5780633e3e95981461043557806349bd5a5e1461045e57610225565b806318160ddd116101ed57806318160ddd146102fa57806323b872dd1461032557806327c8f835146103625780632fd689e31461038d578063313ce567146103b857610225565b806306fdde031461022a578063095ea7b3146102555780630f3a325f146102925780631694505e146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610887565b60405161024c9190613bf5565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061375f565b6108c4565b6040516102899190613bbf565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613672565b6108e2565b6040516102c69190613bbf565b60405180910390f35b3480156102db57600080fd5b506102e4610938565b6040516102f19190613bda565b60405180910390f35b34801561030657600080fd5b5061030f61095e565b60405161031c9190613e37565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061370c565b61096d565b6040516103599190613bbf565b60405180910390f35b34801561036e57600080fd5b50610377610a46565b6040516103849190613ba4565b60405180910390f35b34801561039957600080fd5b506103a2610a4c565b6040516103af9190613e37565b60405180910390f35b3480156103c457600080fd5b506103cd610a52565b6040516103da9190613eac565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190613672565b610a5b565b005b34801561041857600080fd5b50610433600480360381019061042e91906137f9565b610b9e565b005b34801561044157600080fd5b5061045c60048036038101906104579190613672565b610c7b565b005b34801561046a57600080fd5b50610473610d6b565b6040516104809190613ba4565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906137cc565b610d91565b005b3480156104be57600080fd5b506104d960048036038101906104d49190613672565b610e4b565b005b3480156104e757600080fd5b506104f0610f6a565b6040516104fd9190613e37565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061379f565b610f70565b005b34801561053b57600080fd5b50610544611022565b005b34801561055257600080fd5b5061056d60048036038101906105689190613672565b611094565b60405161057a9190613e37565b60405180910390f35b34801561058f57600080fd5b506105986110e5565b005b3480156105a657600080fd5b506105c160048036038101906105bc91906137cc565b611238565b005b3480156105cf57600080fd5b506105d8611320565b6040516105e59190613e37565b60405180910390f35b3480156105fa57600080fd5b50610603611326565b6040516106109190613e37565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906137cc565b61132c565b005b34801561064e57600080fd5b506106576113f0565b6040516106649190613ba4565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f919061379f565b611419565b005b3480156106a257600080fd5b506106ab6114d2565b6040516106b89190613e37565b60405180910390f35b3480156106cd57600080fd5b506106d66114d8565b6040516106e39190613bf5565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e91906137f9565b611515565b005b34801561072157600080fd5b5061073c6004803603810190610737919061379f565b6115f2565b005b34801561074a57600080fd5b506107656004803603810190610760919061375f565b6116a4565b6040516107729190613bbf565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d91906137f9565b6116c2565b005b3480156107b057600080fd5b506107cb60048036038101906107c691906136cc565b61179f565b6040516107d89190613e37565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906137cc565b611826565b005b34801561081657600080fd5b50610831600480360381019061082c91906137cc565b6118ed565b005b34801561083f57600080fd5b5061085a60048036038101906108559190613672565b61199b565b005b34801561086857600080fd5b50610871611b5d565b60405161087e9190613e37565b60405180910390f35b60606040518060400160405280600981526020017f416b69726154414d410000000000000000000000000000000000000000000000815250905090565b60006108d86108d1611b63565b8484611b6b565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b600061097a848484611d36565b610a3b84610986611b63565b610a368560405180606001604052806028815260200161464e60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ec611b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afc9092919063ffffffff16565b611b6b565b600190509392505050565b61dead81565b601d5481565b60006009905090565b610a63611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790613d57565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9b576000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610ba6611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90613d57565b60405180910390fd5b60008210158015610c45575060018211155b610c4e57600080fd5b60008110158015610c60575060018111155b610c6957600080fd5b81600d8190555080600f819055505050565b610c83611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613d57565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d99611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d90613d57565b60405180910390fd5b60008110158015610e38575060018111155b610e4157600080fd5b8060138190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8c611b63565b73ffffffffffffffffffffffffffffffffffffffff1614610eac57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e5481565b610f78611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90613d57565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611063611b63565b73ffffffffffffffffffffffffffffffffffffffff161461108357600080fd5b600047905061109181612b60565b50565b60006110de600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcc565b9050919050565b6110ed611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190613d57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611240611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613d57565b60405180910390fd5b65048c27395000811015611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90613d17565b60405180910390fd5b80601b8190555050565b600a5481565b601b5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136d611b63565b73ffffffffffffffffffffffffffffffffffffffff161461138d57600080fd5b61139630611094565b81111580156113a55750600081115b6113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90613e17565b60405180910390fd5b6113ed81612c3a565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611421611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a590613d57565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555042600a8190555050565b601c5481565b60606040518060400160405280600581526020017f4154414d41000000000000000000000000000000000000000000000000000000815250905090565b61151d611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a190613d57565b60405180910390fd5b600082101580156115bc575060018211155b6115c557600080fd5b600081101580156115d7575060028111155b6115e057600080fd5b81600b8190555080600c819055505050565b6115fa611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90613d57565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b60006116b86116b1611b63565b8484611d36565b6001905092915050565b6116ca611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613d57565b60405180910390fd5b60008210158015611769575060028211155b61177257600080fd5b60008110158015611784575060028111155b61178d57600080fd5b81600e81905550806010819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61182e611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290613d57565b60405180910390fd5b600081101580156118cd575060018111155b6118d657600080fd5b610e10816118e49190613fa3565b60188190555050565b6118f5611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197990613d57565b60405180910390fd5b601c5481101561199157600080fd5b80601c8190555050565b6119a3611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613d57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613c97565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd290613df7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613cb7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d299190613e37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613d97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613c17565b60405180910390fd5b60008111611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5090613d77565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd90613dd7565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90613dd7565b60405180910390fd5b60096000611f7f611b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe90613dd7565b60405180910390fd5b61200f6113f0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207d575061204d6113f0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561269b57601a60149054906101000a900460ff166120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890613c37565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561217c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e9573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121e957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122435750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561229d5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e857601b548111156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90613c77565b60405180910390fd5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123955750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123cd57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612407575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124d657601c548161241984611094565b6124239190613f1c565b10612463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245a90613db7565b60405180910390fd5b601a60179054906101000a900460ff16156124d5576104b0600a546124889190613f1c565b42116124d457601e548111156124d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ca90613cd7565b60405180910390fd5b5b5b5b60006124e130611094565b90506000601d54821190508080156125065750601a60159054906101000a900460ff16155b80156125605750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156125785750601a60169054906101000a900460ff165b80156125ce5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126245750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126985760008060135411156126695761265d606461264f60135486612ec290919063ffffffff16565b612f3d90919063ffffffff16565b905061266881612f87565b5b61267d81846126789190613ffd565b612c3a565b600047905060008111156126955761269447612b60565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127425750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127f55750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127f45750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156128035760009050612aea565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128ae5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561296d5742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d54601181905550600e54601281905550600a5442141561296c576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a185750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612ae9576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612ab9575042601854600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab69190613f1c565b10155b15612ad557600b54601181905550600c54601281905550612ae8565b600f546011819055506010546012819055505b5b5b612af684848484612f97565b50505050565b6000838311158290612b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3b9190613bf5565b60405180910390fd5b5060008385612b539190613ffd565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bc8573d6000803e3d6000fd5b5050565b6000600754821115612c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0a90613c57565b60405180910390fd5b6000612c1d612fc4565b9050612c328184612f3d90919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c7257612c7161418e565b5b604051908082528060200260200182016040528015612ca05781602001602082028036833780820191505090505b5090503081600081518110612cb857612cb761415f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d5a57600080fd5b505afa158015612d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d92919061369f565b81600181518110612da657612da561415f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e0d30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b6b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e71959493929190613e52565b600060405180830381600087803b158015612e8b57600080fd5b505af1158015612e9f573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b600080831415612ed55760009050612f37565b60008284612ee39190613fa3565b9050828482612ef29190613f72565b14612f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2990613d37565b60405180910390fd5b809150505b92915050565b6000612f7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fef565b905092915050565b612f943061dead83611d36565b50565b80612fa557612fa4613052565b5b612fb08484846130b4565b80612fbe57612fbd61327f565b5b50505050565b6000806000612fd161329c565b91509150612fe88183612f3d90919063ffffffff16565b9250505090565b60008083118290613036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302d9190613bf5565b60405180910390fd5b50600083856130459190613f72565b9050809150509392505050565b600060115414801561306657506000601254145b801561307457506000601354145b1561307e576130b2565b6011546014819055506012546015819055506013546016819055506000601181905550600060128190555060006013819055505b565b6000806000806000806130c6876132f8565b95509550955095509550955061312486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131b985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133aa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320581613408565b61320f84836134c5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161326c9190613e37565b60405180910390a3505050505050505050565b601454601181905550601554601281905550601654601381905550565b60008060006007549050600066038d7ea4c6800090506132ce66038d7ea4c68000600754612f3d90919063ffffffff16565b8210156132eb5760075466038d7ea4c680009350935050506132f4565b81819350935050505b9091565b60008060008060008060008060006133158a6011546012546134ff565b9250925092506000613325612fc4565b905060008060006133388e878787613595565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006133a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afc565b905092915050565b60008082846133b99190613f1c565b9050838110156133fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f590613cf7565b60405180910390fd5b8091505092915050565b6000613412612fc4565b905060006134298284612ec290919063ffffffff16565b905061347d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133aa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6134da8260075461336090919063ffffffff16565b6007819055506134f5816008546133aa90919063ffffffff16565b6008819055505050565b60008060008061352b606461351d888a612ec290919063ffffffff16565b612f3d90919063ffffffff16565b905060006135556064613547888b612ec290919063ffffffff16565b612f3d90919063ffffffff16565b9050600061357e82613570858c61336090919063ffffffff16565b61336090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135ae8589612ec290919063ffffffff16565b905060006135c58689612ec290919063ffffffff16565b905060006135dc8789612ec290919063ffffffff16565b90506000613605826135f7858761336090919063ffffffff16565b61336090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061362d81614608565b92915050565b60008151905061364281614608565b92915050565b6000813590506136578161461f565b92915050565b60008135905061366c81614636565b92915050565b600060208284031215613688576136876141bd565b5b60006136968482850161361e565b91505092915050565b6000602082840312156136b5576136b46141bd565b5b60006136c384828501613633565b91505092915050565b600080604083850312156136e3576136e26141bd565b5b60006136f18582860161361e565b92505060206137028582860161361e565b9150509250929050565b600080600060608486031215613725576137246141bd565b5b60006137338682870161361e565b93505060206137448682870161361e565b92505060406137558682870161365d565b9150509250925092565b60008060408385031215613776576137756141bd565b5b60006137848582860161361e565b92505060206137958582860161365d565b9150509250929050565b6000602082840312156137b5576137b46141bd565b5b60006137c384828501613648565b91505092915050565b6000602082840312156137e2576137e16141bd565b5b60006137f08482850161365d565b91505092915050565b600080604083850312156138105761380f6141bd565b5b600061381e8582860161365d565b925050602061382f8582860161365d565b9150509250929050565b60006138458383613851565b60208301905092915050565b61385a81614031565b82525050565b61386981614031565b82525050565b600061387a82613ed7565b6138848185613efa565b935061388f83613ec7565b8060005b838110156138c05781516138a78882613839565b97506138b283613eed565b925050600181019050613893565b5085935050505092915050565b6138d681614043565b82525050565b6138e581614086565b82525050565b6138f481614098565b82525050565b600061390582613ee2565b61390f8185613f0b565b935061391f8185602086016140ce565b613928816141c2565b840191505092915050565b6000613940602383613f0b565b915061394b826141d3565b604082019050919050565b6000613963601883613f0b565b915061396e82614222565b602082019050919050565b6000613986602a83613f0b565b91506139918261424b565b604082019050919050565b60006139a9601c83613f0b565b91506139b48261429a565b602082019050919050565b60006139cc602683613f0b565b91506139d7826142c3565b604082019050919050565b60006139ef602283613f0b565b91506139fa82614312565b604082019050919050565b6000613a12600f83613f0b565b9150613a1d82614361565b602082019050919050565b6000613a35601b83613f0b565b9150613a408261438a565b602082019050919050565b6000613a58603483613f0b565b9150613a63826143b3565b604082019050919050565b6000613a7b602183613f0b565b9150613a8682614402565b604082019050919050565b6000613a9e602083613f0b565b9150613aa982614451565b602082019050919050565b6000613ac1602983613f0b565b9150613acc8261447a565b604082019050919050565b6000613ae4602583613f0b565b9150613aef826144c9565b604082019050919050565b6000613b07602383613f0b565b9150613b1282614518565b604082019050919050565b6000613b2a600d83613f0b565b9150613b3582614567565b602082019050919050565b6000613b4d602483613f0b565b9150613b5882614590565b604082019050919050565b6000613b70600c83613f0b565b9150613b7b826145df565b602082019050919050565b613b8f8161406f565b82525050565b613b9e81614079565b82525050565b6000602082019050613bb96000830184613860565b92915050565b6000602082019050613bd460008301846138cd565b92915050565b6000602082019050613bef60008301846138dc565b92915050565b60006020820190508181036000830152613c0f81846138fa565b905092915050565b60006020820190508181036000830152613c3081613933565b9050919050565b60006020820190508181036000830152613c5081613956565b9050919050565b60006020820190508181036000830152613c7081613979565b9050919050565b60006020820190508181036000830152613c908161399c565b9050919050565b60006020820190508181036000830152613cb0816139bf565b9050919050565b60006020820190508181036000830152613cd0816139e2565b9050919050565b60006020820190508181036000830152613cf081613a05565b9050919050565b60006020820190508181036000830152613d1081613a28565b9050919050565b60006020820190508181036000830152613d3081613a4b565b9050919050565b60006020820190508181036000830152613d5081613a6e565b9050919050565b60006020820190508181036000830152613d7081613a91565b9050919050565b60006020820190508181036000830152613d9081613ab4565b9050919050565b60006020820190508181036000830152613db081613ad7565b9050919050565b60006020820190508181036000830152613dd081613afa565b9050919050565b60006020820190508181036000830152613df081613b1d565b9050919050565b60006020820190508181036000830152613e1081613b40565b9050919050565b60006020820190508181036000830152613e3081613b63565b9050919050565b6000602082019050613e4c6000830184613b86565b92915050565b600060a082019050613e676000830188613b86565b613e7460208301876138eb565b8181036040830152613e86818661386f565b9050613e956060830185613860565b613ea26080830184613b86565b9695505050505050565b6000602082019050613ec16000830184613b95565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f278261406f565b9150613f328361406f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f6757613f66614101565b5b828201905092915050565b6000613f7d8261406f565b9150613f888361406f565b925082613f9857613f97614130565b5b828204905092915050565b6000613fae8261406f565b9150613fb98361406f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ff257613ff1614101565b5b828202905092915050565b60006140088261406f565b91506140138361406f565b92508282101561402657614025614101565b5b828203905092915050565b600061403c8261404f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614091826140aa565b9050919050565b60006140a38261406f565b9050919050565b60006140b5826140bc565b9050919050565b60006140c78261404f565b9050919050565b60005b838110156140ec5780820151818401526020810190506140d1565b838111156140fb576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e7420746f6f206d7563680000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3525000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61461181614031565b811461461c57600080fd5b50565b61462881614043565b811461463357600080fd5b50565b61463f8161406f565b811461464a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202950def4d246e20f7cd3f8641346b402484f9ed3face0fc3d56ee1599e30c0fc64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e146107a4578063e0f9f6a0146107e1578063ea1644d51461080a578063f2fde38b14610833578063fe72c3c11461085c57610225565b806395d89b41146106c15780639ec350ed146106ec5780639f13157114610715578063a9059cbb1461073e578063c55284901461077b57610225565b80637d1db4a5116100f25780637d1db4a5146105ee578063881dce60146106195780638da5cb5b146106425780638f70ccf71461066d5780638f9a55c01461069657610225565b806370a0823114610546578063715018a61461058357806374010ece1461059a578063790ca413146105c357610225565b806333251a0b116101a65780634bf2c7c9116101755780634bf2c7c9146104895780635d098b38146104b25780636b9cf534146104db5780636d8aa8f8146105065780636fc3eaec1461052f57610225565b806333251a0b146103e357806338eea22d1461040c5780633e3e95981461043557806349bd5a5e1461045e57610225565b806318160ddd116101ed57806318160ddd146102fa57806323b872dd1461032557806327c8f835146103625780632fd689e31461038d578063313ce567146103b857610225565b806306fdde031461022a578063095ea7b3146102555780630f3a325f146102925780631694505e146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610887565b60405161024c9190613bf5565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061375f565b6108c4565b6040516102899190613bbf565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613672565b6108e2565b6040516102c69190613bbf565b60405180910390f35b3480156102db57600080fd5b506102e4610938565b6040516102f19190613bda565b60405180910390f35b34801561030657600080fd5b5061030f61095e565b60405161031c9190613e37565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061370c565b61096d565b6040516103599190613bbf565b60405180910390f35b34801561036e57600080fd5b50610377610a46565b6040516103849190613ba4565b60405180910390f35b34801561039957600080fd5b506103a2610a4c565b6040516103af9190613e37565b60405180910390f35b3480156103c457600080fd5b506103cd610a52565b6040516103da9190613eac565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190613672565b610a5b565b005b34801561041857600080fd5b50610433600480360381019061042e91906137f9565b610b9e565b005b34801561044157600080fd5b5061045c60048036038101906104579190613672565b610c7b565b005b34801561046a57600080fd5b50610473610d6b565b6040516104809190613ba4565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906137cc565b610d91565b005b3480156104be57600080fd5b506104d960048036038101906104d49190613672565b610e4b565b005b3480156104e757600080fd5b506104f0610f6a565b6040516104fd9190613e37565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061379f565b610f70565b005b34801561053b57600080fd5b50610544611022565b005b34801561055257600080fd5b5061056d60048036038101906105689190613672565b611094565b60405161057a9190613e37565b60405180910390f35b34801561058f57600080fd5b506105986110e5565b005b3480156105a657600080fd5b506105c160048036038101906105bc91906137cc565b611238565b005b3480156105cf57600080fd5b506105d8611320565b6040516105e59190613e37565b60405180910390f35b3480156105fa57600080fd5b50610603611326565b6040516106109190613e37565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906137cc565b61132c565b005b34801561064e57600080fd5b506106576113f0565b6040516106649190613ba4565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f919061379f565b611419565b005b3480156106a257600080fd5b506106ab6114d2565b6040516106b89190613e37565b60405180910390f35b3480156106cd57600080fd5b506106d66114d8565b6040516106e39190613bf5565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e91906137f9565b611515565b005b34801561072157600080fd5b5061073c6004803603810190610737919061379f565b6115f2565b005b34801561074a57600080fd5b506107656004803603810190610760919061375f565b6116a4565b6040516107729190613bbf565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d91906137f9565b6116c2565b005b3480156107b057600080fd5b506107cb60048036038101906107c691906136cc565b61179f565b6040516107d89190613e37565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906137cc565b611826565b005b34801561081657600080fd5b50610831600480360381019061082c91906137cc565b6118ed565b005b34801561083f57600080fd5b5061085a60048036038101906108559190613672565b61199b565b005b34801561086857600080fd5b50610871611b5d565b60405161087e9190613e37565b60405180910390f35b60606040518060400160405280600981526020017f416b69726154414d410000000000000000000000000000000000000000000000815250905090565b60006108d86108d1611b63565b8484611b6b565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b600061097a848484611d36565b610a3b84610986611b63565b610a368560405180606001604052806028815260200161464e60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ec611b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afc9092919063ffffffff16565b611b6b565b600190509392505050565b61dead81565b601d5481565b60006009905090565b610a63611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790613d57565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9b576000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610ba6611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90613d57565b60405180910390fd5b60008210158015610c45575060018211155b610c4e57600080fd5b60008110158015610c60575060018111155b610c6957600080fd5b81600d8190555080600f819055505050565b610c83611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613d57565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d99611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d90613d57565b60405180910390fd5b60008110158015610e38575060018111155b610e4157600080fd5b8060138190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8c611b63565b73ffffffffffffffffffffffffffffffffffffffff1614610eac57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e5481565b610f78611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90613d57565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611063611b63565b73ffffffffffffffffffffffffffffffffffffffff161461108357600080fd5b600047905061109181612b60565b50565b60006110de600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcc565b9050919050565b6110ed611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190613d57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611240611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613d57565b60405180910390fd5b65048c27395000811015611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90613d17565b60405180910390fd5b80601b8190555050565b600a5481565b601b5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136d611b63565b73ffffffffffffffffffffffffffffffffffffffff161461138d57600080fd5b61139630611094565b81111580156113a55750600081115b6113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90613e17565b60405180910390fd5b6113ed81612c3a565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611421611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a590613d57565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555042600a8190555050565b601c5481565b60606040518060400160405280600581526020017f4154414d41000000000000000000000000000000000000000000000000000000815250905090565b61151d611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a190613d57565b60405180910390fd5b600082101580156115bc575060018211155b6115c557600080fd5b600081101580156115d7575060028111155b6115e057600080fd5b81600b8190555080600c819055505050565b6115fa611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90613d57565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b60006116b86116b1611b63565b8484611d36565b6001905092915050565b6116ca611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613d57565b60405180910390fd5b60008210158015611769575060028211155b61177257600080fd5b60008110158015611784575060028111155b61178d57600080fd5b81600e81905550806010819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61182e611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290613d57565b60405180910390fd5b600081101580156118cd575060018111155b6118d657600080fd5b610e10816118e49190613fa3565b60188190555050565b6118f5611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197990613d57565b60405180910390fd5b601c5481101561199157600080fd5b80601c8190555050565b6119a3611b63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613d57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613c97565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd290613df7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613cb7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d299190613e37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613d97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d90613c17565b60405180910390fd5b60008111611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5090613d77565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd90613dd7565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90613dd7565b60405180910390fd5b60096000611f7f611b63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe90613dd7565b60405180910390fd5b61200f6113f0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207d575061204d6113f0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561269b57601a60149054906101000a900460ff166120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890613c37565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561217c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e9573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121e957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122435750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561229d5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e857601b548111156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90613c77565b60405180910390fd5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123955750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123cd57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612407575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124d657601c548161241984611094565b6124239190613f1c565b10612463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245a90613db7565b60405180910390fd5b601a60179054906101000a900460ff16156124d5576104b0600a546124889190613f1c565b42116124d457601e548111156124d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ca90613cd7565b60405180910390fd5b5b5b5b60006124e130611094565b90506000601d54821190508080156125065750601a60159054906101000a900460ff16155b80156125605750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156125785750601a60169054906101000a900460ff165b80156125ce5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126245750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126985760008060135411156126695761265d606461264f60135486612ec290919063ffffffff16565b612f3d90919063ffffffff16565b905061266881612f87565b5b61267d81846126789190613ffd565b612c3a565b600047905060008111156126955761269447612b60565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127425750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127f55750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127f45750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156128035760009050612aea565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128ae5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561296d5742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d54601181905550600e54601281905550600a5442141561296c576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a185750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612ae9576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612ab9575042601854600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab69190613f1c565b10155b15612ad557600b54601181905550600c54601281905550612ae8565b600f546011819055506010546012819055505b5b5b612af684848484612f97565b50505050565b6000838311158290612b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3b9190613bf5565b60405180910390fd5b5060008385612b539190613ffd565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bc8573d6000803e3d6000fd5b5050565b6000600754821115612c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0a90613c57565b60405180910390fd5b6000612c1d612fc4565b9050612c328184612f3d90919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c7257612c7161418e565b5b604051908082528060200260200182016040528015612ca05781602001602082028036833780820191505090505b5090503081600081518110612cb857612cb761415f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d5a57600080fd5b505afa158015612d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d92919061369f565b81600181518110612da657612da561415f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e0d30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b6b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e71959493929190613e52565b600060405180830381600087803b158015612e8b57600080fd5b505af1158015612e9f573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b600080831415612ed55760009050612f37565b60008284612ee39190613fa3565b9050828482612ef29190613f72565b14612f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2990613d37565b60405180910390fd5b809150505b92915050565b6000612f7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fef565b905092915050565b612f943061dead83611d36565b50565b80612fa557612fa4613052565b5b612fb08484846130b4565b80612fbe57612fbd61327f565b5b50505050565b6000806000612fd161329c565b91509150612fe88183612f3d90919063ffffffff16565b9250505090565b60008083118290613036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302d9190613bf5565b60405180910390fd5b50600083856130459190613f72565b9050809150509392505050565b600060115414801561306657506000601254145b801561307457506000601354145b1561307e576130b2565b6011546014819055506012546015819055506013546016819055506000601181905550600060128190555060006013819055505b565b6000806000806000806130c6876132f8565b95509550955095509550955061312486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131b985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133aa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320581613408565b61320f84836134c5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161326c9190613e37565b60405180910390a3505050505050505050565b601454601181905550601554601281905550601654601381905550565b60008060006007549050600066038d7ea4c6800090506132ce66038d7ea4c68000600754612f3d90919063ffffffff16565b8210156132eb5760075466038d7ea4c680009350935050506132f4565b81819350935050505b9091565b60008060008060008060008060006133158a6011546012546134ff565b9250925092506000613325612fc4565b905060008060006133388e878787613595565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006133a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afc565b905092915050565b60008082846133b99190613f1c565b9050838110156133fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f590613cf7565b60405180910390fd5b8091505092915050565b6000613412612fc4565b905060006134298284612ec290919063ffffffff16565b905061347d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133aa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6134da8260075461336090919063ffffffff16565b6007819055506134f5816008546133aa90919063ffffffff16565b6008819055505050565b60008060008061352b606461351d888a612ec290919063ffffffff16565b612f3d90919063ffffffff16565b905060006135556064613547888b612ec290919063ffffffff16565b612f3d90919063ffffffff16565b9050600061357e82613570858c61336090919063ffffffff16565b61336090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135ae8589612ec290919063ffffffff16565b905060006135c58689612ec290919063ffffffff16565b905060006135dc8789612ec290919063ffffffff16565b90506000613605826135f7858761336090919063ffffffff16565b61336090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061362d81614608565b92915050565b60008151905061364281614608565b92915050565b6000813590506136578161461f565b92915050565b60008135905061366c81614636565b92915050565b600060208284031215613688576136876141bd565b5b60006136968482850161361e565b91505092915050565b6000602082840312156136b5576136b46141bd565b5b60006136c384828501613633565b91505092915050565b600080604083850312156136e3576136e26141bd565b5b60006136f18582860161361e565b92505060206137028582860161361e565b9150509250929050565b600080600060608486031215613725576137246141bd565b5b60006137338682870161361e565b93505060206137448682870161361e565b92505060406137558682870161365d565b9150509250925092565b60008060408385031215613776576137756141bd565b5b60006137848582860161361e565b92505060206137958582860161365d565b9150509250929050565b6000602082840312156137b5576137b46141bd565b5b60006137c384828501613648565b91505092915050565b6000602082840312156137e2576137e16141bd565b5b60006137f08482850161365d565b91505092915050565b600080604083850312156138105761380f6141bd565b5b600061381e8582860161365d565b925050602061382f8582860161365d565b9150509250929050565b60006138458383613851565b60208301905092915050565b61385a81614031565b82525050565b61386981614031565b82525050565b600061387a82613ed7565b6138848185613efa565b935061388f83613ec7565b8060005b838110156138c05781516138a78882613839565b97506138b283613eed565b925050600181019050613893565b5085935050505092915050565b6138d681614043565b82525050565b6138e581614086565b82525050565b6138f481614098565b82525050565b600061390582613ee2565b61390f8185613f0b565b935061391f8185602086016140ce565b613928816141c2565b840191505092915050565b6000613940602383613f0b565b915061394b826141d3565b604082019050919050565b6000613963601883613f0b565b915061396e82614222565b602082019050919050565b6000613986602a83613f0b565b91506139918261424b565b604082019050919050565b60006139a9601c83613f0b565b91506139b48261429a565b602082019050919050565b60006139cc602683613f0b565b91506139d7826142c3565b604082019050919050565b60006139ef602283613f0b565b91506139fa82614312565b604082019050919050565b6000613a12600f83613f0b565b9150613a1d82614361565b602082019050919050565b6000613a35601b83613f0b565b9150613a408261438a565b602082019050919050565b6000613a58603483613f0b565b9150613a63826143b3565b604082019050919050565b6000613a7b602183613f0b565b9150613a8682614402565b604082019050919050565b6000613a9e602083613f0b565b9150613aa982614451565b602082019050919050565b6000613ac1602983613f0b565b9150613acc8261447a565b604082019050919050565b6000613ae4602583613f0b565b9150613aef826144c9565b604082019050919050565b6000613b07602383613f0b565b9150613b1282614518565b604082019050919050565b6000613b2a600d83613f0b565b9150613b3582614567565b602082019050919050565b6000613b4d602483613f0b565b9150613b5882614590565b604082019050919050565b6000613b70600c83613f0b565b9150613b7b826145df565b602082019050919050565b613b8f8161406f565b82525050565b613b9e81614079565b82525050565b6000602082019050613bb96000830184613860565b92915050565b6000602082019050613bd460008301846138cd565b92915050565b6000602082019050613bef60008301846138dc565b92915050565b60006020820190508181036000830152613c0f81846138fa565b905092915050565b60006020820190508181036000830152613c3081613933565b9050919050565b60006020820190508181036000830152613c5081613956565b9050919050565b60006020820190508181036000830152613c7081613979565b9050919050565b60006020820190508181036000830152613c908161399c565b9050919050565b60006020820190508181036000830152613cb0816139bf565b9050919050565b60006020820190508181036000830152613cd0816139e2565b9050919050565b60006020820190508181036000830152613cf081613a05565b9050919050565b60006020820190508181036000830152613d1081613a28565b9050919050565b60006020820190508181036000830152613d3081613a4b565b9050919050565b60006020820190508181036000830152613d5081613a6e565b9050919050565b60006020820190508181036000830152613d7081613a91565b9050919050565b60006020820190508181036000830152613d9081613ab4565b9050919050565b60006020820190508181036000830152613db081613ad7565b9050919050565b60006020820190508181036000830152613dd081613afa565b9050919050565b60006020820190508181036000830152613df081613b1d565b9050919050565b60006020820190508181036000830152613e1081613b40565b9050919050565b60006020820190508181036000830152613e3081613b63565b9050919050565b6000602082019050613e4c6000830184613b86565b92915050565b600060a082019050613e676000830188613b86565b613e7460208301876138eb565b8181036040830152613e86818661386f565b9050613e956060830185613860565b613ea26080830184613b86565b9695505050505050565b6000602082019050613ec16000830184613b95565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f278261406f565b9150613f328361406f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f6757613f66614101565b5b828201905092915050565b6000613f7d8261406f565b9150613f888361406f565b925082613f9857613f97614130565b5b828204905092915050565b6000613fae8261406f565b9150613fb98361406f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ff257613ff1614101565b5b828202905092915050565b60006140088261406f565b91506140138361406f565b92508282101561402657614025614101565b5b828203905092915050565b600061403c8261404f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614091826140aa565b9050919050565b60006140a38261406f565b9050919050565b60006140b5826140bc565b9050919050565b60006140c78261404f565b9050919050565b60005b838110156140ec5780820151818401526020810190506140d1565b838111156140fb576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e7420746f6f206d7563680000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3525000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61461181614031565b811461461c57600080fd5b50565b61462881614043565b811461463357600080fd5b50565b61463f8161406f565b811461464a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202950def4d246e20f7cd3f8641346b402484f9ed3face0fc3d56ee1599e30c0fc64736f6c63430008070033

Deployed Bytecode Sourcemap

4784:16237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7622:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8547:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15521:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6362:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7899:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8748:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6230:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6704:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7808:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15363:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20092:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15258:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6410:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20391:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14645:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6759:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19258:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15634:196;;;;;;;;;;;;;:::i;:::-;;8002:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:148;;;;;;;;;;;;;:::i;:::-;;19371:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5545:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6604:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15025:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2049:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14497:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6653:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7713:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20536:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14888:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8148:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19821:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8355:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20854:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19595:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2423:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6319:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7622:83;7659:13;7692:5;;;;;;;;;;;;;;;;;7685:12;;7622:83;:::o;8547:193::-;8649:4;8671:39;8680:12;:10;:12::i;:::-;8694:7;8703:6;8671:8;:39::i;:::-;8728:4;8721:11;;8547:193;;;;:::o;15521:105::-;15578:4;15601:9;:17;15611:6;15601:17;;;;;;;;;;;;;;;;;;;;;;;;;15594:24;;15521:105;;;:::o;6362:41::-;;;;;;;;;;;;;:::o;7899:95::-;7952:7;5389:11;7972:14;;7899:95;:::o;8748:446::-;8880:4;8897:36;8907:6;8915:9;8926:6;8897:9;:36::i;:::-;8944:220;8967:6;8988:12;:10;:12::i;:::-;9015:138;9071:6;9015:138;;;;;;;;;;;;;;;;;:11;:19;9027:6;9015:19;;;;;;;;;;;;;;;:33;9035:12;:10;:12::i;:::-;9015:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8944:8;:220::i;:::-;9182:4;9175:11;;8748:446;;;;;:::o;6230:80::-;6268:42;6230:80;:::o;6704:48::-;;;;:::o;7808:83::-;7849:5;5012:1;7867:16;;7808:83;:::o;15363:150::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15435:9:::1;:17;15445:6;15435:17;;;;;;;;;;;;;;;;;;;;;;;;;15431:75;;;15489:5;15469:9;:17;15479:6;15469:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;15431:75;15363:150:::0;:::o;20092:291::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20210:1:::1;20194:12;:17;;:38;;;;;20231:1;20215:12;:17;;20194:38;20186:47;;;::::0;::::1;;20269:1;20252:13;:18;;:40;;;;;20291:1;20274:13;:18;;20252:40;20244:49;;;::::0;::::1;;20321:12;20304:14;:29;;;;20362:13;20344:15;:31;;;;20092:291:::0;;:::o;15258:97::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15343:4:::1;15323:9;:17;15333:6;15323:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;15258:97:::0;:::o;6410:28::-;;;;;;;;;;;;;:::o;20391:137::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20475:1:::1;20465:6;:11;;:26;;;;;20490:1;20480:6;:11;;20465:26;20457:35;;;::::0;::::1;;20514:6;20503:8;:17;;;;20391:137:::0;:::o;14645:235::-;14743:17;;;;;;;;;;;14727:33;;:12;:10;:12::i;:::-;:33;;;14719:42;;;;;;14800:16;14772:17;;:45;;;;;;;;;;;;;;;;;;14868:4;14828:18;:37;14847:17;;;;;;;;;;;14828:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14645:235;:::o;6759:46::-;;;;:::o;19258:101::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19339:12:::1;19325:11;;:26;;;;;;;;;;;;;;;;;;19258:101:::0;:::o;15634:196::-;15700:17;;;;;;;;;;;15684:33;;:12;:10;:12::i;:::-;:33;;;15676:42;;;;;;15729:26;15758:21;15729:50;;15790:32;15803:18;15790:12;:32::i;:::-;15665:165;15634:196::o;8002:138::-;8068:7;8095:37;8115:7;:16;8123:7;8115:16;;;;;;;;;;;;;;;;8095:19;:37::i;:::-;8088:44;;8002:138;;;:::o;2263:148::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2370:1:::1;2333:40;;2354:6;::::0;::::1;;;;;;;;2333:40;;;;;;;;;;;;2401:1;2384:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2263:148::o:0;19371:212::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19470:11:::1;19455;:26;;19447:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19564:11;19549:12;:26;;;;19371:212:::0;:::o;5545:25::-;;;;:::o;6604:41::-;;;;:::o;15025:225::-;15105:17;;;;;;;;;;;15089:33;;:12;:10;:12::i;:::-;:33;;;15081:42;;;;;;15152:24;15170:4;15152:9;:24::i;:::-;15142:6;:34;;:48;;;;;15189:1;15180:6;:10;15142:48;15134:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15218:24;15235:6;15218:16;:24::i;:::-;15025:225;:::o;2049:79::-;2087:7;2114:6;;;;;;;;;;;2107:13;;2049:79;:::o;14497:140::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14578:12:::1;14564:11;;:26;;;;;;;;;;;;;;;;;;14614:15;14601:10;:28;;;;14497:140:::0;:::o;6653:43::-;;;;:::o;7713:87::-;7752:13;7785:7;;;;;;;;;;;;;;;;;7778:14;;7713:87;:::o;20536:310::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20665:1:::1;20645:16;:21;;:46;;;;;20690:1;20670:16;:21;;20645:46;20637:55;;;::::0;::::1;;20729:1;20711:14;:19;;:42;;;;;20752:1;20734:14;:19;;20711:42;20703:51;;;::::0;::::1;;20782:16;20765:14;:33;;;;20824:14;20809:12;:29;;;;20536:310:::0;;:::o;14888:129::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14991:18:::1;14971:17;;:38;;;;;;;;;;;;;;;;;;14888:129:::0;:::o;8148:199::-;8253:4;8275:42;8285:12;:10;:12::i;:::-;8299:9;8310:6;8275:9;:42::i;:::-;8335:4;8328:11;;8148:199;;;;:::o;19821:263::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19930:1:::1;19917:9;:14;;:32;;;;;19948:1;19935:9;:14;;19917:32;19909:41;;;::::0;::::1;;19983:1;19969:10;:15;;:34;;;;;20002:1;19988:10;:15;;19969:34;19961:43;;;::::0;::::1;;20030:9;20015:12;:24;;;;20066:10;20050:13;:26;;;;19821:263:::0;;:::o;8355:184::-;8472:7;8504:11;:18;8516:5;8504:18;;;;;;;;;;;;;;;:27;8523:7;8504:27;;;;;;;;;;;;;;;;8497:34;;8355:184;;;;:::o;20854:162::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20946:1:::1;20933:9;:14;;:32;;;;;20964:1;20951:9;:14;;20933:32;20925:41;;;::::0;::::1;;21001:7;20989:9;:19;;;;:::i;:::-;20977:9;:31;;;;20854:162:::0;:::o;19595:168::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19699:14:::1;;19682:13;:31;;19674:40;;;::::0;::::1;;19742:13;19725:14;:30;;;;19595:168:::0;:::o;2423:244::-;2186:12;:10;:12::i;:::-;2176:22;;:6;;;;;;;;;;:22;;;2168:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2532:1:::1;2512:22;;:8;:22;;;;2504:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2622:8;2593:38;;2614:6;::::0;::::1;;;;;;;;2593:38;;;;;;;;;;;;2651:8;2642:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2423:244:::0;:::o;6319:36::-;;;;:::o;808:98::-;861:7;888:10;881:17;;808:98;:::o;10013:369::-;10157:1;10140:19;;:5;:19;;;;10132:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10238:1;10219:21;;:7;:21;;;;10211:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10320:6;10290:11;:18;10302:5;10290:18;;;;;;;;;;;;;;;:27;10309:7;10290:27;;;;;;;;;;;;;;;:36;;;;10358:7;10342:32;;10351:5;10342:32;;;10367:6;10342:32;;;;;;:::i;:::-;;;;;;;;10013:369;;;:::o;10390:3375::-;10528:1;10512:18;;:4;:18;;;;10504:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10605:1;10591:16;;:2;:16;;;;10583:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10675:1;10666:6;:10;10658:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10742:9;:13;10752:2;10742:13;;;;;;;;;;;;;;;;;;;;;;;;;10741:14;10733:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10793:9;:15;10803:4;10793:15;;;;;;;;;;;;;;;;;;;;;;;;;10792:16;10784:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10846:9;:23;10856:12;:10;:12::i;:::-;10846:23;;;;;;;;;;;;;;;;;;;;;;;;;10845:24;10837:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10912:7;:5;:7::i;:::-;10904:15;;:4;:15;;;;:32;;;;;10929:7;:5;:7::i;:::-;10923:13;;:2;:13;;;;10904:32;10900:1781;;;10972:11;;;;;;;;;;;10967:87;;11004:34;;;;;;;;;;:::i;:::-;;;;;;;;10967:87;11092:13;;;;;;;;;;;11086:19;;:2;:19;;;:55;;;;;11125:15;;;;;;;;;;;11109:32;;:4;:32;;;;11086:55;11082:307;;;11180:4;11166:19;;:2;:19;;;;:44;;;;;11205:4;11189:21;;:4;:21;;;;11166:44;:71;;;;;11220:17;;;;;;;;;;;11214:23;;:2;:23;;;;11166:71;:100;;;;;11249:17;;;;;;;;;;;11241:25;;:4;:25;;;;11166:100;11162:212;;;11309:12;;11299:6;:22;;11291:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11162:212;11082:307;11415:13;;;;;;;;;;;11409:19;;:2;:19;;;;:46;;;;;11438:17;;;;;;;;;;;11432:23;;:2;:23;;;;11409:46;:69;;;;;11473:4;11459:19;;:2;:19;;;;11409:69;:90;;;;;6268:42;11482:17;;:2;:17;;;;11409:90;11405:455;;;11553:14;;11544:6;11528:13;11538:2;11528:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11520:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11630:17;;;;;;;;;;;11626:219;;;11708:10;11695;;:23;;;;:::i;:::-;11676:15;:42;11672:154;;11765:17;;11755:6;:27;;11747:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11672:154;11626:219;11405:455;11888:28;11919:24;11937:4;11919:9;:24::i;:::-;11888:55;;11958:12;11996:19;;11973:20;:42;11958:57;;12048:7;:18;;;;;12060:6;;;;;;;;;;;12059:7;12048:18;:43;;;;;12078:13;;;;;;;;;;;12070:21;;:4;:21;;;;12048:43;:58;;;;;12095:11;;;;;;;;;;;12048:58;:87;;;;;12111:18;:24;12130:4;12111:24;;;;;;;;;;;;;;;;;;;;;;;;;12110:25;12048:87;:114;;;;;12140:18;:22;12159:2;12140:22;;;;;;;;;;;;;;;;;;;;;;;;;12139:23;12048:114;12044:626;;;12183:19;12240:1;12229:8;;:12;12225:166;;;12280:45;12319:5;12280:34;12305:8;;12280:20;:24;;:34;;;;:::i;:::-;:38;;:45;;;;:::i;:::-;12266:59;;12348:23;12359:11;12348:10;:23::i;:::-;12225:166;12409:52;12449:11;12426:20;:34;;;;:::i;:::-;12409:16;:52::i;:::-;12480:26;12509:21;12480:50;;12574:1;12553:18;:22;12549:106;;;12600:35;12613:21;12600:12;:35::i;:::-;12549:106;12164:506;;12044:626;10938:1743;;10900:1781;12701:12;12716:4;12701:19;;12738:18;:24;12757:4;12738:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12766:18;:22;12785:2;12766:22;;;;;;;;;;;;;;;;;;;;;;;;;12738:50;12737:102;;;;12802:13;;;;;;;;;;;12794:21;;:4;:21;;;;:44;;;;;12825:13;;;;;;;;;;;12819:19;;:2;:19;;;;12794:44;12737:102;12733:971;;;12866:5;12856:15;;12733:971;;;12929:13;;;;;;;;;;;12921:21;;:4;:21;;;:55;;;;;12960:15;;;;;;;;;;;12946:30;;:2;:30;;;;12921:55;12918:350;;;13015:15;13001:7;:11;13009:2;13001:11;;;;;;;;;;;;;;;:29;;;;13065:14;;13053:9;:26;;;;13112:12;;13102:7;:22;;;;13170:10;;13151:15;:29;13147:106;;;13225:4;13209:9;:13;13219:2;13209:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13147:106;12918:350;13298:13;;;;;;;;;;;13292:19;;:2;:19;;;:55;;;;;13331:15;;;;;;;;;;;13315:32;;:4;:32;;;;13292:55;13288:405;;;13389:1;13372:7;:13;13380:4;13372:13;;;;;;;;;;;;;;;;:18;;:68;;;;;13424:15;13411:9;;13395:7;:13;13403:4;13395:13;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;13372:68;13368:310;;;13477:14;;13465:9;:26;;;;13524:12;;13514:7;:22;;;;13368:310;;;13597:15;;13585:9;:27;;;;13645:13;;13635:7;:23;;;;13368:310;13288:405;12733:971;13716:41;13731:4;13737:2;13741:6;13749:7;13716:14;:41::i;:::-;10493:3272;10390:3375;;;:::o;3035:224::-;3155:7;3188:1;3183;:6;;3191:12;3175:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3215:9;3231:1;3227;:5;;;;:::i;:::-;3215:17;;3250:1;3243:8;;;3035:224;;;;;:::o;14390:99::-;14447:17;;;;;;;;;;;:26;;:34;14474:6;14447:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14390:99;:::o;9202:323::-;9297:7;9355;;9344;:18;;9322:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9443:19;9465:10;:8;:10::i;:::-;9443:32;;9493:24;9505:11;9493:7;:11;;:24;;;;:::i;:::-;9486:31;;;9202:323;;;:::o;13899:483::-;6909:4;6900:6;;:13;;;;;;;;;;;;;;;;;;13977:21:::1;14015:1;14001:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13977:40;;14046:4;14028;14033:1;14028:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14072:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14062:4;14067:1;14062:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14105:62;14122:4;14137:15;;;;;;;;;;;14155:11;14105:8;:62::i;:::-;14178:15;;;;;;;;;;;:66;;;14259:11;14285:1;14301:4;14328;14348:15;14178:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13966:416;6945:5:::0;6936:6;;:14;;;;;;;;;;;;;;;;;;13899:483;:::o;3267:246::-;3325:7;3354:1;3349;:6;3345:47;;;3379:1;3372:8;;;;3345:47;3402:9;3418:1;3414;:5;;;;:::i;:::-;3402:17;;3447:1;3442;3438;:5;;;;:::i;:::-;:10;3430:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3504:1;3497:8;;;3267:246;;;;;:::o;3521:132::-;3579:7;3606:39;3610:1;3613;3606:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3599:46;;3521:132;;;;:::o;13773:118::-;13833:50;13851:4;6268:42;13871:11;13833:9;:50::i;:::-;13773:118;:::o;15838:282::-;15994:7;15989:28;;16003:14;:12;:14::i;:::-;15989:28;16028:44;16046:6;16054:9;16065:6;16028:17;:44::i;:::-;16088:7;16083:29;;16097:15;:13;:15::i;:::-;16083:29;15838:282;;;;:::o;18813:166::-;18855:7;18876:15;18893;18912:19;:17;:19::i;:::-;18875:56;;;;18951:20;18963:7;18951;:11;;:20;;;;:::i;:::-;18944:27;;;;18813:166;:::o;3661:223::-;3781:7;3813:1;3809;:5;3816:12;3801:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3840:9;3856:1;3852;:5;;;;:::i;:::-;3840:17;;3875:1;3868:8;;;3661:223;;;;;:::o;9533:309::-;9593:1;9580:9;;:14;:30;;;;;9609:1;9598:7;;:12;9580:30;:47;;;;;9626:1;9614:8;;:13;9580:47;9576:60;;;9629:7;;9576:60;9672:9;;9652:17;:29;;;;9710:7;;9692:15;:25;;;;9747:8;;9728:16;:27;;;;9788:1;9776:9;:13;;;;9810:1;9800:7;:11;;;;9833:1;9822:8;:12;;;;9533:309;:::o;16128:610::-;16275:15;16305:23;16343:12;16370:23;16408:12;16435:13;16462:19;16473:7;16462:10;:19::i;:::-;16260:221;;;;;;;;;;;;16510:28;16530:7;16510;:15;16518:6;16510:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16492:7;:15;16500:6;16492:15;;;;;;;;;;;;;;;:46;;;;16570:39;16593:15;16570:7;:18;16578:9;16570:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16549:7;:18;16557:9;16549:18;;;;;;;;;;;;;;;:60;;;;16620:16;16630:5;16620:9;:16::i;:::-;16647:23;16659:4;16665;16647:11;:23::i;:::-;16703:9;16686:44;;16695:6;16686:44;;;16714:15;16686:44;;;;;;:::i;:::-;;;;;;;;16249:489;;;;;;16128:610;;;:::o;9850:155::-;9906:17;;9894:9;:29;;;;9944:15;;9934:7;:25;;;;9981:16;;9970:8;:27;;;;9850:155::o;18987:263::-;19038:7;19047;19067:15;19085:7;;19067:25;;19103:15;5389:11;19103:25;;19153:20;5389:11;19153:7;;:11;;:20;;;;:::i;:::-;19143:7;:30;19139:61;;;19183:7;;5389:11;19175:25;;;;;;;;19139:61;19225:7;19234;19217:25;;;;;;18987:263;;;:::o;17157:625::-;17257:7;17279;17301;17323;17345;17367;17403:23;17428:12;17442:13;17472:40;17484:7;17493:9;;17504:7;;17472:11;:40::i;:::-;17402:110;;;;;;17523:19;17545:10;:8;:10::i;:::-;17523:32;;17567:15;17584:23;17609:12;17638:46;17650:7;17659:4;17665:5;17672:11;17638;:46::i;:::-;17566:118;;;;;;17713:7;17722:15;17739:4;17745:15;17762:4;17768:5;17705:69;;;;;;;;;;;;;;;;;;;17157:625;;;;;;;:::o;2891:136::-;2949:7;2976:43;2980:1;2983;2976:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2969:50;;2891:136;;;;:::o;2704:179::-;2762:7;2782:9;2798:1;2794;:5;;;;:::i;:::-;2782:17;;2823:1;2818;:6;;2810:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2874:1;2867:8;;;2704:179;;;;:::o;16746:211::-;16799:19;16821:10;:8;:10::i;:::-;16799:32;;16842:13;16858:22;16868:11;16858:5;:9;;:22;;;;:::i;:::-;16842:38;;16916:33;16943:5;16916:7;:22;16932:4;16916:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16891:7;:22;16907:4;16891:22;;;;;;;;;;;;;;;:58;;;;16788:169;;16746:211;:::o;16965:147::-;17043:17;17055:4;17043:7;;:11;;:17;;;;:::i;:::-;17033:7;:27;;;;17084:20;17099:4;17084:10;;:14;;:20;;;;:::i;:::-;17071:10;:33;;;;16965:147;;:::o;17790:471::-;17959:7;17981;18003;18038:12;18053:30;18079:3;18053:21;18065:8;18053:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;18038:45;;18094:13;18110:28;18134:3;18110:19;18122:6;18110:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18094:44;;18149:23;18175:28;18197:5;18175:17;18187:4;18175:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18149:54;;18224:15;18241:4;18247:5;18216:37;;;;;;;;;17790:471;;;;;;;:::o;18269:536::-;18463:7;18485;18507;18542:15;18560:24;18572:11;18560:7;:11;;:24;;;;:::i;:::-;18542:42;;18595:12;18610:21;18619:11;18610:4;:8;;:21;;;;:::i;:::-;18595:36;;18642:13;18658:22;18668:11;18658:5;:9;;:22;;;;:::i;:::-;18642:38;;18691:23;18717:28;18739:5;18717:17;18729:4;18717:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18691:54;;18766:7;18775:15;18792:4;18758:39;;;;;;;;;;18269:536;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:119;;;2513:79;;:::i;:::-;2475:119;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2382:474;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:119;;;2973:79;;:::i;:::-;2935:119;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2862:323;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:119;;;3305:79;;:::i;:::-;3267:119;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3191:329;;;;:::o;3526:474::-;3594:6;3602;3651:2;3639:9;3630:7;3626:23;3622:32;3619:119;;;3657:79;;:::i;:::-;3619:119;3777:1;3802:53;3847:7;3838:6;3827:9;3823:22;3802:53;:::i;:::-;3792:63;;3748:117;3904:2;3930:53;3975:7;3966:6;3955:9;3951:22;3930:53;:::i;:::-;3920:63;;3875:118;3526:474;;;;;:::o;4006:179::-;4075:10;4096:46;4138:3;4130:6;4096:46;:::i;:::-;4174:4;4169:3;4165:14;4151:28;;4006:179;;;;:::o;4191:108::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4191:108;;:::o;4305:118::-;4392:24;4410:5;4392:24;:::i;:::-;4387:3;4380:37;4305:118;;:::o;4459:732::-;4578:3;4607:54;4655:5;4607:54;:::i;:::-;4677:86;4756:6;4751:3;4677:86;:::i;:::-;4670:93;;4787:56;4837:5;4787:56;:::i;:::-;4866:7;4897:1;4882:284;4907:6;4904:1;4901:13;4882:284;;;4983:6;4977:13;5010:63;5069:3;5054:13;5010:63;:::i;:::-;5003:70;;5096:60;5149:6;5096:60;:::i;:::-;5086:70;;4942:224;4929:1;4926;4922:9;4917:14;;4882:284;;;4886:14;5182:3;5175:10;;4583:608;;;4459:732;;;;:::o;5197:109::-;5278:21;5293:5;5278:21;:::i;:::-;5273:3;5266:34;5197:109;;:::o;5312:183::-;5425:63;5482:5;5425:63;:::i;:::-;5420:3;5413:76;5312:183;;:::o;5501:147::-;5596:45;5635:5;5596:45;:::i;:::-;5591:3;5584:58;5501:147;;:::o;5654:364::-;5742:3;5770:39;5803:5;5770:39;:::i;:::-;5825:71;5889:6;5884:3;5825:71;:::i;:::-;5818:78;;5905:52;5950:6;5945:3;5938:4;5931:5;5927:16;5905:52;:::i;:::-;5982:29;6004:6;5982:29;:::i;:::-;5977:3;5973:39;5966:46;;5746:272;5654:364;;;;:::o;6024:366::-;6166:3;6187:67;6251:2;6246:3;6187:67;:::i;:::-;6180:74;;6263:93;6352:3;6263:93;:::i;:::-;6381:2;6376:3;6372:12;6365:19;;6024:366;;;:::o;6396:::-;6538:3;6559:67;6623:2;6618:3;6559:67;:::i;:::-;6552:74;;6635:93;6724:3;6635:93;:::i;:::-;6753:2;6748:3;6744:12;6737:19;;6396:366;;;:::o;6768:::-;6910:3;6931:67;6995:2;6990:3;6931:67;:::i;:::-;6924:74;;7007:93;7096:3;7007:93;:::i;:::-;7125:2;7120:3;7116:12;7109:19;;6768:366;;;:::o;7140:::-;7282:3;7303:67;7367:2;7362:3;7303:67;:::i;:::-;7296:74;;7379:93;7468:3;7379:93;:::i;:::-;7497:2;7492:3;7488:12;7481:19;;7140:366;;;:::o;7512:::-;7654:3;7675:67;7739:2;7734:3;7675:67;:::i;:::-;7668:74;;7751:93;7840:3;7751:93;:::i;:::-;7869:2;7864:3;7860:12;7853:19;;7512:366;;;:::o;7884:::-;8026:3;8047:67;8111:2;8106:3;8047:67;:::i;:::-;8040:74;;8123:93;8212:3;8123:93;:::i;:::-;8241:2;8236:3;8232:12;8225:19;;7884:366;;;:::o;8256:::-;8398:3;8419:67;8483:2;8478:3;8419:67;:::i;:::-;8412:74;;8495:93;8584:3;8495:93;:::i;:::-;8613:2;8608:3;8604:12;8597:19;;8256:366;;;:::o;8628:::-;8770:3;8791:67;8855:2;8850:3;8791:67;:::i;:::-;8784:74;;8867:93;8956:3;8867:93;:::i;:::-;8985:2;8980:3;8976:12;8969:19;;8628:366;;;:::o;9000:::-;9142:3;9163:67;9227:2;9222:3;9163:67;:::i;:::-;9156:74;;9239:93;9328:3;9239:93;:::i;:::-;9357:2;9352:3;9348:12;9341:19;;9000:366;;;:::o;9372:::-;9514:3;9535:67;9599:2;9594:3;9535:67;:::i;:::-;9528:74;;9611:93;9700:3;9611:93;:::i;:::-;9729:2;9724:3;9720:12;9713:19;;9372:366;;;:::o;9744:::-;9886:3;9907:67;9971:2;9966:3;9907:67;:::i;:::-;9900:74;;9983:93;10072:3;9983:93;:::i;:::-;10101:2;10096:3;10092:12;10085:19;;9744:366;;;:::o;10116:::-;10258:3;10279:67;10343:2;10338:3;10279:67;:::i;:::-;10272:74;;10355:93;10444:3;10355:93;:::i;:::-;10473:2;10468:3;10464:12;10457:19;;10116:366;;;:::o;10488:::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:::-;11002:3;11023:67;11087:2;11082:3;11023:67;:::i;:::-;11016:74;;11099:93;11188:3;11099:93;:::i;:::-;11217:2;11212:3;11208:12;11201:19;;10860:366;;;:::o;11232:::-;11374:3;11395:67;11459:2;11454:3;11395:67;:::i;:::-;11388:74;;11471:93;11560:3;11471:93;:::i;:::-;11589:2;11584:3;11580:12;11573:19;;11232:366;;;:::o;11604:::-;11746:3;11767:67;11831:2;11826:3;11767:67;:::i;:::-;11760:74;;11843:93;11932:3;11843:93;:::i;:::-;11961:2;11956:3;11952:12;11945:19;;11604:366;;;:::o;11976:::-;12118:3;12139:67;12203:2;12198:3;12139:67;:::i;:::-;12132:74;;12215:93;12304:3;12215:93;:::i;:::-;12333:2;12328:3;12324:12;12317:19;;11976:366;;;:::o;12348:118::-;12435:24;12453:5;12435:24;:::i;:::-;12430:3;12423:37;12348:118;;:::o;12472:112::-;12555:22;12571:5;12555:22;:::i;:::-;12550:3;12543:35;12472:112;;:::o;12590:222::-;12683:4;12721:2;12710:9;12706:18;12698:26;;12734:71;12802:1;12791:9;12787:17;12778:6;12734:71;:::i;:::-;12590:222;;;;:::o;12818:210::-;12905:4;12943:2;12932:9;12928:18;12920:26;;12956:65;13018:1;13007:9;13003:17;12994:6;12956:65;:::i;:::-;12818:210;;;;:::o;13034:274::-;13153:4;13191:2;13180:9;13176:18;13168:26;;13204:97;13298:1;13287:9;13283:17;13274:6;13204:97;:::i;:::-;13034:274;;;;:::o;13314:313::-;13427:4;13465:2;13454:9;13450:18;13442:26;;13514:9;13508:4;13504:20;13500:1;13489:9;13485:17;13478:47;13542:78;13615:4;13606:6;13542:78;:::i;:::-;13534:86;;13314:313;;;;:::o;13633:419::-;13799:4;13837:2;13826:9;13822:18;13814:26;;13886:9;13880:4;13876:20;13872:1;13861:9;13857:17;13850:47;13914:131;14040:4;13914:131;:::i;:::-;13906:139;;13633:419;;;:::o;14058:::-;14224:4;14262:2;14251:9;14247:18;14239:26;;14311:9;14305:4;14301:20;14297:1;14286:9;14282:17;14275:47;14339:131;14465:4;14339:131;:::i;:::-;14331:139;;14058:419;;;:::o;14483:::-;14649:4;14687:2;14676:9;14672:18;14664:26;;14736:9;14730:4;14726:20;14722:1;14711:9;14707:17;14700:47;14764:131;14890:4;14764:131;:::i;:::-;14756:139;;14483:419;;;:::o;14908:::-;15074:4;15112:2;15101:9;15097:18;15089:26;;15161:9;15155:4;15151:20;15147:1;15136:9;15132:17;15125:47;15189:131;15315:4;15189:131;:::i;:::-;15181:139;;14908:419;;;:::o;15333:::-;15499:4;15537:2;15526:9;15522:18;15514:26;;15586:9;15580:4;15576:20;15572:1;15561:9;15557:17;15550:47;15614:131;15740:4;15614:131;:::i;:::-;15606:139;;15333:419;;;:::o;15758:::-;15924:4;15962:2;15951:9;15947:18;15939:26;;16011:9;16005:4;16001:20;15997:1;15986:9;15982:17;15975:47;16039:131;16165:4;16039:131;:::i;:::-;16031:139;;15758:419;;;:::o;16183:::-;16349:4;16387:2;16376:9;16372:18;16364:26;;16436:9;16430:4;16426:20;16422:1;16411:9;16407:17;16400:47;16464:131;16590:4;16464:131;:::i;:::-;16456:139;;16183:419;;;:::o;16608:::-;16774:4;16812:2;16801:9;16797:18;16789:26;;16861:9;16855:4;16851:20;16847:1;16836:9;16832:17;16825:47;16889:131;17015:4;16889:131;:::i;:::-;16881:139;;16608:419;;;:::o;17033:::-;17199:4;17237:2;17226:9;17222:18;17214:26;;17286:9;17280:4;17276:20;17272:1;17261:9;17257:17;17250:47;17314:131;17440:4;17314:131;:::i;:::-;17306:139;;17033:419;;;:::o;17458:::-;17624:4;17662:2;17651:9;17647:18;17639:26;;17711:9;17705:4;17701:20;17697:1;17686:9;17682:17;17675:47;17739:131;17865:4;17739:131;:::i;:::-;17731:139;;17458:419;;;:::o;17883:::-;18049:4;18087:2;18076:9;18072:18;18064:26;;18136:9;18130:4;18126:20;18122:1;18111:9;18107:17;18100:47;18164:131;18290:4;18164:131;:::i;:::-;18156:139;;17883:419;;;:::o;18308:::-;18474:4;18512:2;18501:9;18497:18;18489:26;;18561:9;18555:4;18551:20;18547:1;18536:9;18532:17;18525:47;18589:131;18715:4;18589:131;:::i;:::-;18581:139;;18308:419;;;:::o;18733:::-;18899:4;18937:2;18926:9;18922:18;18914:26;;18986:9;18980:4;18976:20;18972:1;18961:9;18957:17;18950:47;19014:131;19140:4;19014:131;:::i;:::-;19006:139;;18733:419;;;:::o;19158:::-;19324:4;19362:2;19351:9;19347:18;19339:26;;19411:9;19405:4;19401:20;19397:1;19386:9;19382:17;19375:47;19439:131;19565:4;19439:131;:::i;:::-;19431:139;;19158:419;;;:::o;19583:::-;19749:4;19787:2;19776:9;19772:18;19764:26;;19836:9;19830:4;19826:20;19822:1;19811:9;19807:17;19800:47;19864:131;19990:4;19864:131;:::i;:::-;19856:139;;19583:419;;;:::o;20008:::-;20174:4;20212:2;20201:9;20197:18;20189:26;;20261:9;20255:4;20251:20;20247:1;20236:9;20232:17;20225:47;20289:131;20415:4;20289:131;:::i;:::-;20281:139;;20008:419;;;:::o;20433:::-;20599:4;20637:2;20626:9;20622:18;20614:26;;20686:9;20680:4;20676:20;20672:1;20661:9;20657:17;20650:47;20714:131;20840:4;20714:131;:::i;:::-;20706:139;;20433:419;;;:::o;20858:222::-;20951:4;20989:2;20978:9;20974:18;20966:26;;21002:71;21070:1;21059:9;21055:17;21046:6;21002:71;:::i;:::-;20858:222;;;;:::o;21086:831::-;21349:4;21387:3;21376:9;21372:19;21364:27;;21401:71;21469:1;21458:9;21454:17;21445:6;21401:71;:::i;:::-;21482:80;21558:2;21547:9;21543:18;21534:6;21482:80;:::i;:::-;21609:9;21603:4;21599:20;21594:2;21583:9;21579:18;21572:48;21637:108;21740:4;21731:6;21637:108;:::i;:::-;21629:116;;21755:72;21823:2;21812:9;21808:18;21799:6;21755:72;:::i;:::-;21837:73;21905:3;21894:9;21890:19;21881:6;21837:73;:::i;:::-;21086:831;;;;;;;;:::o;21923:214::-;22012:4;22050:2;22039:9;22035:18;22027:26;;22063:67;22127:1;22116:9;22112:17;22103:6;22063:67;:::i;:::-;21923:214;;;;:::o;22224:132::-;22291:4;22314:3;22306:11;;22344:4;22339:3;22335:14;22327:22;;22224:132;;;:::o;22362:114::-;22429:6;22463:5;22457:12;22447:22;;22362:114;;;:::o;22482:99::-;22534:6;22568:5;22562:12;22552:22;;22482:99;;;:::o;22587:113::-;22657:4;22689;22684:3;22680:14;22672:22;;22587:113;;;:::o;22706:184::-;22805:11;22839:6;22834:3;22827:19;22879:4;22874:3;22870:14;22855:29;;22706:184;;;;:::o;22896:169::-;22980:11;23014:6;23009:3;23002:19;23054:4;23049:3;23045:14;23030:29;;22896:169;;;;:::o;23071:305::-;23111:3;23130:20;23148:1;23130:20;:::i;:::-;23125:25;;23164:20;23182:1;23164:20;:::i;:::-;23159:25;;23318:1;23250:66;23246:74;23243:1;23240:81;23237:107;;;23324:18;;:::i;:::-;23237:107;23368:1;23365;23361:9;23354:16;;23071:305;;;;:::o;23382:185::-;23422:1;23439:20;23457:1;23439:20;:::i;:::-;23434:25;;23473:20;23491:1;23473:20;:::i;:::-;23468:25;;23512:1;23502:35;;23517:18;;:::i;:::-;23502:35;23559:1;23556;23552:9;23547:14;;23382:185;;;;:::o;23573:348::-;23613:7;23636:20;23654:1;23636:20;:::i;:::-;23631:25;;23670:20;23688:1;23670:20;:::i;:::-;23665:25;;23858:1;23790:66;23786:74;23783:1;23780:81;23775:1;23768:9;23761:17;23757:105;23754:131;;;23865:18;;:::i;:::-;23754:131;23913:1;23910;23906:9;23895:20;;23573:348;;;;:::o;23927:191::-;23967:4;23987:20;24005:1;23987:20;:::i;:::-;23982:25;;24021:20;24039:1;24021:20;:::i;:::-;24016:25;;24060:1;24057;24054:8;24051:34;;;24065:18;;:::i;:::-;24051:34;24110:1;24107;24103:9;24095:17;;23927:191;;;;:::o;24124:96::-;24161:7;24190:24;24208:5;24190:24;:::i;:::-;24179:35;;24124:96;;;:::o;24226:90::-;24260:7;24303:5;24296:13;24289:21;24278:32;;24226:90;;;:::o;24322:126::-;24359:7;24399:42;24392:5;24388:54;24377:65;;24322:126;;;:::o;24454:77::-;24491:7;24520:5;24509:16;;24454:77;;;:::o;24537:86::-;24572:7;24612:4;24605:5;24601:16;24590:27;;24537:86;;;:::o;24629:152::-;24705:9;24738:37;24769:5;24738:37;:::i;:::-;24725:50;;24629:152;;;:::o;24787:121::-;24845:9;24878:24;24896:5;24878:24;:::i;:::-;24865:37;;24787:121;;;:::o;24914:126::-;24964:9;24997:37;25028:5;24997:37;:::i;:::-;24984:50;;24914:126;;;:::o;25046:113::-;25096:9;25129:24;25147:5;25129:24;:::i;:::-;25116:37;;25046:113;;;:::o;25165:307::-;25233:1;25243:113;25257:6;25254:1;25251:13;25243:113;;;25342:1;25337:3;25333:11;25327:18;25323:1;25318:3;25314:11;25307:39;25279:2;25276:1;25272:10;25267:15;;25243:113;;;25374:6;25371:1;25368:13;25365:101;;;25454:1;25445:6;25440:3;25436:16;25429:27;25365:101;25214:258;25165:307;;;:::o;25478:180::-;25526:77;25523:1;25516:88;25623:4;25620:1;25613:15;25647:4;25644:1;25637:15;25664:180;25712:77;25709:1;25702:88;25809:4;25806:1;25799:15;25833:4;25830:1;25823:15;25850:180;25898:77;25895:1;25888:88;25995:4;25992:1;25985:15;26019:4;26016:1;26009:15;26036:180;26084:77;26081:1;26074:88;26181:4;26178:1;26171:15;26205:4;26202:1;26195:15;26345:117;26454:1;26451;26444:12;26468:102;26509:6;26560:2;26556:7;26551:2;26544:5;26540:14;26536:28;26526:38;;26468:102;;;:::o;26576:222::-;26716:34;26712:1;26704:6;26700:14;26693:58;26785:5;26780:2;26772:6;26768:15;26761:30;26576:222;:::o;26804:174::-;26944:26;26940:1;26932:6;26928:14;26921:50;26804:174;:::o;26984:229::-;27124:34;27120:1;27112:6;27108:14;27101:58;27193:12;27188:2;27180:6;27176:15;27169:37;26984:229;:::o;27219:178::-;27359:30;27355:1;27347:6;27343:14;27336:54;27219:178;:::o;27403:225::-;27543:34;27539:1;27531:6;27527:14;27520:58;27612:8;27607:2;27599:6;27595:15;27588:33;27403:225;:::o;27634:221::-;27774:34;27770:1;27762:6;27758:14;27751:58;27843:4;27838:2;27830:6;27826:15;27819:29;27634:221;:::o;27861:165::-;28001:17;27997:1;27989:6;27985:14;27978:41;27861:165;:::o;28032:177::-;28172:29;28168:1;28160:6;28156:14;28149:53;28032:177;:::o;28215:239::-;28355:34;28351:1;28343:6;28339:14;28332:58;28424:22;28419:2;28411:6;28407:15;28400:47;28215:239;:::o;28460:220::-;28600:34;28596:1;28588:6;28584:14;28577:58;28669:3;28664:2;28656:6;28652:15;28645:28;28460:220;:::o;28686:182::-;28826:34;28822:1;28814:6;28810:14;28803:58;28686:182;:::o;28874:228::-;29014:34;29010:1;29002:6;28998:14;28991:58;29083:11;29078:2;29070:6;29066:15;29059:36;28874:228;:::o;29108:224::-;29248:34;29244:1;29236:6;29232:14;29225:58;29317:7;29312:2;29304:6;29300:15;29293:32;29108:224;:::o;29338:222::-;29478:34;29474:1;29466:6;29462:14;29455:58;29547:5;29542:2;29534:6;29530:15;29523:30;29338:222;:::o;29566:163::-;29706:15;29702:1;29694:6;29690:14;29683:39;29566:163;:::o;29735:223::-;29875:34;29871:1;29863:6;29859:14;29852:58;29944:6;29939:2;29931:6;29927:15;29920:31;29735:223;:::o;29964:162::-;30104:14;30100:1;30092:6;30088:14;30081:38;29964:162;:::o;30132:122::-;30205:24;30223:5;30205:24;:::i;:::-;30198:5;30195:35;30185:63;;30244:1;30241;30234:12;30185:63;30132:122;:::o;30260:116::-;30330:21;30345:5;30330:21;:::i;:::-;30323:5;30320:32;30310:60;;30366:1;30363;30356:12;30310:60;30260:116;:::o;30382:122::-;30455:24;30473:5;30455:24;:::i;:::-;30448:5;30445:35;30435:63;;30494:1;30491;30484:12;30435:63;30382:122;:::o

Swarm Source

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