ETH Price: $2,378.33 (+1.10%)

Token

russiaplsdontinvadeukraine (RPDIU)
 

Overview

Max Total Supply

1,000,000,000,000 RPDIU

Holders

97

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,560,293,140.815574793 RPDIU

Value
$0.00
0x165d755C72A7bA2603878Ba0e9F88F9FEe8EEd67
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:
russiaplsdontinvadeukraine

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-15
*/

/**

██████╗ ██╗   ██╗███████╗███████╗ █████╗ ██████╗ ██╗     ███████╗██████╗  ██████╗ ███╗   ██╗████████╗██╗███╗   ██╗██╗   ██╗ █████╗ ██╗██████╗ ██╗   ██╗██╗  ██╗██████╗  █████╗ ██╗███╗   ██╗███████╗
██╔══██╗██║   ██║██╔════╝██╔════╝██╔══██╗██╔══██╗██║     ██╔════╝██╔══██╗██╔═══██╗████╗  ██║╚══██╔══╝██║████╗  ██║██║   ██║██╔══██╗██║██╔══██╗██║   ██║██║ ██╔╝██╔══██╗██╔══██╗██║████╗  ██║██╔════╝
██████╔╝██║   ██║███████╗███████╗███████║██████╔╝██║     ███████╗██║  ██║██║   ██║██╔██╗ ██║   ██║   ██║██╔██╗ ██║██║   ██║███████║██║██║  ██║██║   ██║█████╔╝ ██████╔╝███████║██║██╔██╗ ██║█████╗  
██╔══██╗██║   ██║╚════██║╚════██║██╔══██║██╔═══╝ ██║     ╚════██║██║  ██║██║   ██║██║╚██╗██║   ██║   ██║██║╚██╗██║╚██╗ ██╔╝██╔══██║██║██║  ██║██║   ██║██╔═██╗ ██╔══██╗██╔══██║██║██║╚██╗██║██╔══╝  
██║  ██║╚██████╔╝███████║███████║██║  ██║██║     ███████╗███████║██████╔╝╚██████╔╝██║ ╚████║   ██║   ██║██║ ╚████║ ╚████╔╝ ██║  ██║██║██████╔╝╚██████╔╝██║  ██╗██║  ██║██║  ██║██║██║ ╚████║███████╗
╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝╚═╝  ╚═╝╚═╝     ╚══════╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═══╝   ╚═╝   ╚═╝╚═╝  ╚═══╝  ╚═══╝  ╚═╝  ╚═╝╚═╝╚═════╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝╚══════╝
                                                                                                                                                                                                    
Telegram:
https://t.me/russiaplsdontinvadeukraine

Website:
https://russiaplsdontinvadeukrain.com/

Twitter: 
https://russiaplsdontinvadeukraine.com/

Powered by: 
https://t.me/DegenLP

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

    string private constant _name = "russiaplsdontinvadeukraine";
    string private constant _symbol = "RPDIU";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping (address => bool) public _isExcludedMaxTxAmount;
    mapping(address => bool) private _isExcludedFromReflection;
    address[] private _excludedFromReflection;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 1e9 * 1e9; //1,000,000,000,000
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    mapping(address => bool) public bots;
    
   
    uint256 private _reflectionFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 10;
    
    
    uint256 private _reflectionFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 10;
    
    uint256 private _reflectionFee = _reflectionFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousReflectionFee = _reflectionFee;
    uint256 private _previousTaxFee = _taxFee;
    
    address payable public _RPDIUAddress = payable(0x5438b81EA57885db790ed8689349f4e777A15832); 
    address payable public _mktgAddress = payable(0x5438b81EA57885db790ed8689349f4e777A15832); 
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool public tradingActive = false;
    
    uint256 public _maxTxAmount = 3000 * 1e7 * 1e9; 
    uint256 public _maxWalletSize = 3000 * 1e7 * 1e9; 
    uint256 public _swapTokensAtAmount = 5000 * 1e6 * 1e9; 

    event ExcludeFromReflection(address excludedAddress);
    event IncludeInReflection(address includedAddress);

    event ExcludeFromFee(address excludedAddress);
    event IncludeInFee(address includedAddress);

    event UpdatedMktgAddress(address mktg); 
    event UpdatedRPDIUAddress(address RPDIU); 

    event SetBuyFee(uint256 buyMktgFee, uint256 buyReflectionFee);
    event SetSellFee(uint256 sellMktgFee, uint256 sellReflectionFee);
    
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
               
        _rOwned[_msgSender()] = _rTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_RPDIUAddress] = true;
        _isExcludedFromFee[_mktgAddress] = true;

        excludeFromMaxTxAmount(owner(), true);
        excludeFromMaxTxAmount(address(this), true);
        excludeFromMaxTxAmount(address(_RPDIUAddress), true);
        excludeFromMaxTxAmount(address(_mktgAddress), 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 excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
        emit ExcludeFromFee(account);
    }

    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
        emit IncludeInFee(account);
    }

    function excludeFromReflection(address account) public onlyOwner {
        require(!_isExcludedFromReflection[account], "Account is already excluded");
        require(_excludedFromReflection.length + 1 <= 50, "Cannot exclude more than 50 accounts.  Include a previously excluded address.");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcludedFromReflection[account] = true;
        _excludedFromReflection.push(account);
    }

    function includeInReflection(address account) public onlyOwner {
        require(_isExcludedFromReflection[account], "Account is not excluded from reflection");
        for (uint256 i = 0; i < _excludedFromReflection.length; i++) {
            if (_excludedFromReflection[i] == account) {
                _excludedFromReflection[i] = _excludedFromReflection[_excludedFromReflection.length - 1];
                _tOwned[account] = 0;
                _isExcludedFromReflection[account] = false;
                _excludedFromReflection.pop();
                break;
            }
        }
    }

    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 (_reflectionFee == 0 && _taxFee == 0) return;
    
        _previousReflectionFee = _reflectionFee;
        _previousTaxFee = _taxFee;
        
        _reflectionFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _reflectionFee = _previousReflectionFee;
        _taxFee = _previousTaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        if (from != owner() && to != owner()) {
            
            
            if (!tradingActive) 
              
            if(to != uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                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)) {
                _reflectionFee = _reflectionFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            
            if (!_isExcludedFromFee[from]) {
                        require(amount <= _maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

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

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

    function sendETHToFee(uint256 amount) private {
        _RPDIUAddress.transfer(amount.div(2));
        _mktgAddress.transfer(amount.div(2));
    }

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

    function manualSend() external {
        require(_msgSender() == _RPDIUAddress || _msgSender() == _mktgAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

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

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

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

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

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

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _reflectionFee, _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 reflectionFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(reflectionFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

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

        return (rAmount, rTransferAmount, rFee);
    }

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

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 reflectionFeeOnBuy, uint256 reflectionFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _reflectionFeeOnBuy = reflectionFeeOnBuy;
        _taxFeeOnBuy = taxFeeOnBuy;
        
        _reflectionFeeOnSell = reflectionFeeOnSell;
        _taxFeeOnSell = taxFeeOnSell;
        
        require(_reflectionFeeOnBuy + _taxFeeOnBuy <= 25, "Must keep buy taxes below 25%"); 
        require(_reflectionFeeOnSell + _taxFeeOnSell <= 25, "Must keep buy taxes below 25%"); 
    }

      
    function enableTrading() internal onlyOwner {
        tradingActive = true;        
    }
    
    function airdrop(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner returns (bool){
        require(!tradingActive, "Trading is already active, cannot relaunch.");
        require(airdropWallets.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); 
        for(uint256 i = 0; i < airdropWallets.length; i++){
            address wallet = airdropWallets[i];
            uint256 amount = amounts[i];
            _transfer(msg.sender, wallet, amount);
        }
        enableTrading();
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTxAmount(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTxAmount(address(uniswapV2Pair), true);
        return true;
    }

    
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    
    function setMaxTxAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function excludeFromMaxTxAmount(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTxAmount[updAds] = isEx;
    }
    
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

     
    function _setRPDIUAddress(address RPDIUAddress) external onlyOwner {
        require(_RPDIUAddress != address(0), "_RPDIUAddress cannot be 0");
        _isExcludedFromFee[RPDIUAddress] = false;
        RPDIUAddress = payable(_RPDIUAddress);
        _isExcludedFromFee[RPDIUAddress] = true;
        emit UpdatedRPDIUAddress(_RPDIUAddress);
    }

     
    function _setMktgAddress(address mktgAddress) external onlyOwner {
        require(_mktgAddress != address(0), "_mktgAddress cannot be 0");
        _isExcludedFromFee[mktgAddress] = false;
        mktgAddress = payable(_mktgAddress);
        _isExcludedFromFee[mktgAddress] = true;
        emit UpdatedMktgAddress(_mktgAddress);
    }
}

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":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInReflection","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":false,"internalType":"uint256","name":"buyMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyReflectionFee","type":"uint256"}],"name":"SetBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellReflectionFee","type":"uint256"}],"name":"SetSellFee","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mktg","type":"address"}],"name":"UpdatedMktgAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"RPDIU","type":"address"}],"name":"UpdatedRPDIUAddress","type":"event"},{"inputs":[],"name":"_RPDIUAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":"_mktgAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"mktgAddress","type":"address"}],"name":"_setMktgAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"RPDIUAddress","type":"address"}],"name":"_setRPDIUAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"reflectionFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea00000600019620002c5565b6200002990600019620002a1565b6009556001600c819055600a600d819055600e829055600f81905560108290556011819055601291909155601355601480546001600160a01b0319908116735438b81ea57885db790ed8689349f4e777a158329081179092556015805490911690911790556017805462ffffff60a01b1916600160a81b1790556801a055690d9db800006018819055601955674563918244f40000601a55348015620000ce57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506009543360009081526002602090815260408083209390935581546001600160a01b03908116835260059091528282208054600160ff19918216811790925530845284842080548216831790556014548316845284842080548216831790556015548316845293832080549094161790925554620001919116600162000217565b6200019e30600162000217565b601454620001b7906001600160a01b0316600162000217565b601554620001d0906001600160a01b0316600162000217565b604051683635c9adc5dea00000815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620002e6565b6000546001600160a01b03163314620002765760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600082821015620002c057634e487b7160e01b81526011600452602481fd5b500390565b600082620002e157634e487b7160e01b81526012600452602481fd5b500690565b612a0780620002f66000396000f3fe60806040526004361061021c5760003560e01c80636b99905311610123578063a9059cbb116100ab578063ea1644d51161006f578063ea1644d5146106b2578063ea2f0b37146106d2578063ec28438a146106f2578063f2fde38b14610712578063f42938901461073257600080fd5b8063a9059cbb146105db578063bbc0c742146105fb578063bfd792841461061c578063dd62ed3e1461064c578063e755d0cf1461069257600080fd5b80638da5cb5b116100f25780638da5cb5b146105395780638f9a55c01461055757806395d89b411461056d57806398a5c3151461059b578063a2a957bb146105bb57600080fd5b80636b999053146104c357806370a08231146104e35780637d1db4a5146105035780637ddffed91461051957600080fd5b806327334a08116101a657806349bd5a5e1161017557806349bd5a5e1461041e57806351bc3c851461043e578063563912bd14610453578063595cc84f1461048357806367243482146104a357600080fd5b806327334a08146103ac5780632fd689e3146103cc578063313ce567146103e2578063437823ec146103fe57600080fd5b8063095ea7b3116101ed578063095ea7b3146102f65780631694505e1461032657806318160ddd1461034657806321704d1f1461036c57806323b872dd1461038c57600080fd5b806286803414610228578062b8cf2a1461026557806305f82a451461028757806306fdde03146102a757600080fd5b3661022357005b600080fd5b34801561023457600080fd5b50601554610248906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027157600080fd5b50610285610280366004612652565b610747565b005b34801561029357600080fd5b506102856102a2366004612546565b6107f4565b3480156102b357600080fd5b5060408051808201909152601a81527f727573736961706c73646f6e74696e76616465756b7261696e6500000000000060208201525b60405161025c9190612792565b34801561030257600080fd5b50610316610311366004612627565b6109ef565b604051901515815260200161025c565b34801561033257600080fd5b50601654610248906001600160a01b031681565b34801561035257600080fd5b50683635c9adc5dea000005b60405190815260200161025c565b34801561037857600080fd5b50610285610387366004612546565b610a06565b34801561039857600080fd5b506103166103a73660046125b6565b610aff565b3480156103b857600080fd5b506102856103c7366004612546565b610b68565b3480156103d857600080fd5b5061035e601a5481565b3480156103ee57600080fd5b506040516009815260200161025c565b34801561040a57600080fd5b50610285610419366004612546565b610d56565b34801561042a57600080fd5b50601754610248906001600160a01b031681565b34801561044a57600080fd5b50610285610dd4565b34801561045f57600080fd5b5061031661046e366004612546565b60066020526000908152604090205460ff1681565b34801561048f57600080fd5b5061028561049e3660046125f6565b610e0d565b3480156104af57600080fd5b506103166104be36600461268d565b610e62565b3480156104cf57600080fd5b506102856104de366004612546565b6111e6565b3480156104ef57600080fd5b5061035e6104fe366004612546565b611231565b34801561050f57600080fd5b5061035e60185481565b34801561052557600080fd5b50601454610248906001600160a01b031681565b34801561054557600080fd5b506000546001600160a01b0316610248565b34801561056357600080fd5b5061035e60195481565b34801561057957600080fd5b50604080518082019091526005815264525044495560d81b60208201526102e9565b3480156105a757600080fd5b506102856105b6366004612749565b611253565b3480156105c757600080fd5b506102856105d6366004612761565b611282565b3480156105e757600080fd5b506103166105f6366004612627565b611380565b34801561060757600080fd5b5060175461031690600160b01b900460ff1681565b34801561062857600080fd5b50610316610637366004612546565b600b6020526000908152604090205460ff1681565b34801561065857600080fd5b5061035e61066736600461257e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069e57600080fd5b506102856106ad366004612546565b61138d565b3480156106be57600080fd5b506102856106cd366004612749565b61147f565b3480156106de57600080fd5b506102856106ed366004612546565b6114ae565b3480156106fe57600080fd5b5061028561070d366004612749565b611529565b34801561071e57600080fd5b5061028561072d366004612546565b611558565b34801561073e57600080fd5b50610285611642565b6000546001600160a01b0316331461077a5760405162461bcd60e51b8152600401610771906127e5565b60405180910390fd5b60005b81518110156107f0576001600b60008484815181106107ac57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107e88161294d565b91505061077d565b5050565b6000546001600160a01b0316331461081e5760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03811660009081526007602052604090205460ff166108965760405162461bcd60e51b815260206004820152602760248201527f4163636f756e74206973206e6f74206578636c756465642066726f6d207265666044820152663632b1ba34b7b760c91b6064820152608401610771565b60005b6008548110156107f057816001600160a01b0316600882815481106108ce57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156109dd57600880546108f990600190612936565b8154811061091757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b03909216918390811061095157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600790925220805460ff1916905560088054806109b757634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806109e78161294d565b915050610899565b60006109fc33848461168a565b5060015b92915050565b6000546001600160a01b03163314610a305760405162461bcd60e51b8152600401610771906127e5565b6014546001600160a01b0316610a885760405162461bcd60e51b815260206004820152601960248201527f5f5250444955416464726573732063616e6e6f742062652030000000000000006044820152606401610771565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556014805486168086529483902080549092166001179091555490519316835290917f76ea8f4c7f92a16aeeab7693bdc087d6a936223547eb2f0ece7c91087623c6ae91015b60405180910390a150565b6000610b0c8484846117ae565b610b5e8433610b59856040518060600160405280602881526020016129aa602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611cef565b61168a565b5060019392505050565b6000546001600160a01b03163314610b925760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03811660009081526007602052604090205460ff1615610bfb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610771565b600854603290610c0c9060016128df565b1115610c965760405162461bcd60e51b815260206004820152604d60248201527f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60448201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60648201526c3ab232b21030b2323932b9b99760991b608482015260a401610771565b6001600160a01b03811660009081526002602052604090205415610cf0576001600160a01b038116600090815260026020526040902054610cd690611d29565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610d805760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b629101610af4565b6014546001600160a01b0316336001600160a01b031614610df457600080fd5b6000610dff30611231565b9050610e0a81611dad565b50565b6000546001600160a01b03163314610e375760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610e8d5760405162461bcd60e51b8152600401610771906127e5565b601754600160b01b900460ff1615610efb5760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610771565b60c8835110610f6b5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610771565b60005b8351811015610fef576000848281518110610f9957634e487b7160e01b600052603260045260246000fd5b602002602001015190506000848381518110610fc557634e487b7160e01b600052603260045260246000fd5b60200260200101519050610fda3383836117ae565b50508080610fe79061294d565b915050610f6e565b50610ff8611f52565b737a250d5630b4cf539739df2c5dacb4c659f2488d611018816001610e0d565b601680546001600160a01b0319166001600160a01b03831690811790915561104b903090683635c9adc5dea0000061168a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561108457600080fd5b505afa158015611098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bc9190612562565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561110457600080fd5b505afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190612562565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561118457600080fd5b505af1158015611198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bc9190612562565b601780546001600160a01b0319166001600160a01b03929092169182179055610b5e906001610e0d565b6000546001600160a01b031633146112105760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b6001600160a01b038116600090815260026020526040812054610a0090611d29565b6000546001600160a01b0316331461127d5760405162461bcd60e51b8152600401610771906127e5565b601a55565b6000546001600160a01b031633146112ac5760405162461bcd60e51b8152600401610771906127e5565b600c849055600d829055600e839055600f81905560196112cc83866128df565b111561131a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610771565b6019600f54600e5461132c91906128df565b111561137a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610771565b50505050565b60006109fc3384846117ae565b6000546001600160a01b031633146113b75760405162461bcd60e51b8152600401610771906127e5565b6015546001600160a01b031661140f5760405162461bcd60e51b815260206004820152601860248201527f5f6d6b7467416464726573732063616e6e6f74206265203000000000000000006044820152606401610771565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556015805486168086529483902080549092166001179091555490519316835290917f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b9101610af4565b6000546001600160a01b031633146114a95760405162461bcd60e51b8152600401610771906127e5565b601955565b6000546001600160a01b031633146114d85760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610af4565b6000546001600160a01b031633146115535760405162461bcd60e51b8152600401610771906127e5565b601855565b6000546001600160a01b031633146115825760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b0381166115e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610771565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061167757506015546001600160a01b0316336001600160a01b0316145b61168057600080fd5b47610e0a81611f91565b6001600160a01b0383166116ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610771565b6001600160a01b03821661174d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610771565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610771565b6001600160a01b0382166118745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610771565b600081116118d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610771565b6000546001600160a01b0384811691161480159061190257506000546001600160a01b03838116911614155b15611b5757601754600160b01b900460ff16611aca576017546001600160a01b0383811691161480159061194457506016546001600160a01b03838116911614155b801561196957506001600160a01b03821660009081526005602052604090205460ff16155b15611aca576019548161197b84611231565b61198591906128df565b106119de5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610771565b601854811115611a305760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610771565b6001600160a01b0383166000908152600b602052604090205460ff16158015611a7257506001600160a01b0382166000908152600b602052604090205460ff16155b611aca5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610771565b6000611ad530611231565b601a54601854919250821015908210611aee5760185491505b808015611b055750601754600160a01b900460ff16155b8015611b1f57506017546001600160a01b03868116911614155b8015611b345750601754600160a81b900460ff165b15611b5457611b4282611dad565b478015611b5257611b5247611f91565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b9957506001600160a01b03831660009081526005602052604090205460ff165b80611bcb57506017546001600160a01b03858116911614801590611bcb57506017546001600160a01b03848116911614155b15611bd857506000611ce3565b6017546001600160a01b038581169116148015611c0357506016546001600160a01b03848116911614155b15611c1557600c54601055600d546011555b6001600160a01b03841660009081526005602052604090205460ff16611ca657601854821115611ca65760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610771565b6017546001600160a01b038481169116148015611cd157506016546001600160a01b03858116911614155b15611ce357600e54601055600f546011555b61137a84848484612016565b60008184841115611d135760405162461bcd60e51b81526004016107719190612792565b506000611d208486612936565b95945050505050565b6000600954821115611d905760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610771565b6000611d9a612044565b9050611da68382612067565b9392505050565b6017805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611e0357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e5757600080fd5b505afa158015611e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8f9190612562565b81600181518110611eb057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611ed6913091168461168a565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f0f90859060009086903090429060040161281a565b600060405180830381600087803b158015611f2957600080fd5b505af1158015611f3d573d6000803e3d6000fd5b50506017805460ff60a01b1916905550505050565b6000546001600160a01b03163314611f7c5760405162461bcd60e51b8152600401610771906127e5565b6017805460ff60b01b1916600160b01b179055565b6014546001600160a01b03166108fc611fab836002612067565b6040518115909202916000818181858888f19350505050158015611fd3573d6000803e3d6000fd5b506015546001600160a01b03166108fc611fee836002612067565b6040518115909202916000818181858888f193505050501580156107f0573d6000803e3d6000fd5b80612023576120236120a9565b61202e8484846120d7565b8061137a5761137a601254601055601354601155565b60008060006120516121ce565b90925090506120608282612067565b9250505090565b6000611da683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612210565b6010541580156120b95750601154155b156120c057565b601080546012556011805460135560009182905555565b6000806000806000806120e98761223e565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061211b908761229b565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461214a90866122dd565b6001600160a01b03891660009081526002602052604090205561216c8161233c565b6121768483612386565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121bb91815260200190565b60405180910390a3505050505050505050565b6009546000908190683635c9adc5dea000006121ea8282612067565b82101561220757505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836122315760405162461bcd60e51b81526004016107719190612792565b506000611d2084866128f7565b600080600080600080600080600061225b8a6010546011546123aa565b925092509250600061226b612044565b9050600080600061227e8e8787876123ff565b919e509c509a509598509396509194505050505091939550919395565b6000611da683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cef565b6000806122ea83856128df565b905083811015611da65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610771565b6000612346612044565b90506000612354838361244f565b3060009081526002602052604090205490915061237190826122dd565b30600090815260026020526040902055505050565b600954612393908361229b565b600955600a546123a390826122dd565b600a555050565b60008080806123c460646123be898961244f565b90612067565b905060006123d760646123be8a8961244f565b905060006123ef826123e98b8661229b565b9061229b565b9992985090965090945050505050565b600080808061240e888661244f565b9050600061241c888761244f565b9050600061242a888861244f565b9050600061243c826123e9868661229b565b939b939a50919850919650505050505050565b60008261245e57506000610a00565b600061246a8385612917565b90508261247785836128f7565b14611da65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610771565b600082601f8301126124de578081fd5b813560206124f36124ee836128bb565b61288a565b80838252828201915082860187848660051b8901011115612512578586fd5b855b8581101561253957813561252781612994565b84529284019290840190600101612514565b5090979650505050505050565b600060208284031215612557578081fd5b8135611da681612994565b600060208284031215612573578081fd5b8151611da681612994565b60008060408385031215612590578081fd5b823561259b81612994565b915060208301356125ab81612994565b809150509250929050565b6000806000606084860312156125ca578081fd5b83356125d581612994565b925060208401356125e581612994565b929592945050506040919091013590565b60008060408385031215612608578182fd5b823561261381612994565b9150602083013580151581146125ab578182fd5b60008060408385031215612639578182fd5b823561264481612994565b946020939093013593505050565b600060208284031215612663578081fd5b813567ffffffffffffffff811115612679578182fd5b612685848285016124ce565b949350505050565b6000806040838503121561269f578182fd5b823567ffffffffffffffff808211156126b6578384fd5b6126c2868387016124ce565b93506020915081850135818111156126d8578384fd5b85019050601f810186136126ea578283fd5b80356126f86124ee826128bb565b80828252848201915084840189868560051b8701011115612717578687fd5b8694505b8385101561273957803583526001949094019391850191850161271b565b5080955050505050509250929050565b60006020828403121561275a578081fd5b5035919050565b60008060008060808587031215612776578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127be578581018301518582016040015282016127a2565b818111156127cf5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156128695784516001600160a01b031683529383019391830191600101612844565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128b3576128b361297e565b604052919050565b600067ffffffffffffffff8211156128d5576128d561297e565b5060051b60200190565b600082198211156128f2576128f2612968565b500190565b60008261291257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561293157612931612968565b500290565b60008282101561294857612948612968565b500390565b600060001982141561296157612961612968565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e0a57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2b3b8b787f60bc87f581a29693dabcd9289aac34ffb35bd88e13e6588d4982964736f6c63430008040033

Deployed Bytecode

0x60806040526004361061021c5760003560e01c80636b99905311610123578063a9059cbb116100ab578063ea1644d51161006f578063ea1644d5146106b2578063ea2f0b37146106d2578063ec28438a146106f2578063f2fde38b14610712578063f42938901461073257600080fd5b8063a9059cbb146105db578063bbc0c742146105fb578063bfd792841461061c578063dd62ed3e1461064c578063e755d0cf1461069257600080fd5b80638da5cb5b116100f25780638da5cb5b146105395780638f9a55c01461055757806395d89b411461056d57806398a5c3151461059b578063a2a957bb146105bb57600080fd5b80636b999053146104c357806370a08231146104e35780637d1db4a5146105035780637ddffed91461051957600080fd5b806327334a08116101a657806349bd5a5e1161017557806349bd5a5e1461041e57806351bc3c851461043e578063563912bd14610453578063595cc84f1461048357806367243482146104a357600080fd5b806327334a08146103ac5780632fd689e3146103cc578063313ce567146103e2578063437823ec146103fe57600080fd5b8063095ea7b3116101ed578063095ea7b3146102f65780631694505e1461032657806318160ddd1461034657806321704d1f1461036c57806323b872dd1461038c57600080fd5b806286803414610228578062b8cf2a1461026557806305f82a451461028757806306fdde03146102a757600080fd5b3661022357005b600080fd5b34801561023457600080fd5b50601554610248906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027157600080fd5b50610285610280366004612652565b610747565b005b34801561029357600080fd5b506102856102a2366004612546565b6107f4565b3480156102b357600080fd5b5060408051808201909152601a81527f727573736961706c73646f6e74696e76616465756b7261696e6500000000000060208201525b60405161025c9190612792565b34801561030257600080fd5b50610316610311366004612627565b6109ef565b604051901515815260200161025c565b34801561033257600080fd5b50601654610248906001600160a01b031681565b34801561035257600080fd5b50683635c9adc5dea000005b60405190815260200161025c565b34801561037857600080fd5b50610285610387366004612546565b610a06565b34801561039857600080fd5b506103166103a73660046125b6565b610aff565b3480156103b857600080fd5b506102856103c7366004612546565b610b68565b3480156103d857600080fd5b5061035e601a5481565b3480156103ee57600080fd5b506040516009815260200161025c565b34801561040a57600080fd5b50610285610419366004612546565b610d56565b34801561042a57600080fd5b50601754610248906001600160a01b031681565b34801561044a57600080fd5b50610285610dd4565b34801561045f57600080fd5b5061031661046e366004612546565b60066020526000908152604090205460ff1681565b34801561048f57600080fd5b5061028561049e3660046125f6565b610e0d565b3480156104af57600080fd5b506103166104be36600461268d565b610e62565b3480156104cf57600080fd5b506102856104de366004612546565b6111e6565b3480156104ef57600080fd5b5061035e6104fe366004612546565b611231565b34801561050f57600080fd5b5061035e60185481565b34801561052557600080fd5b50601454610248906001600160a01b031681565b34801561054557600080fd5b506000546001600160a01b0316610248565b34801561056357600080fd5b5061035e60195481565b34801561057957600080fd5b50604080518082019091526005815264525044495560d81b60208201526102e9565b3480156105a757600080fd5b506102856105b6366004612749565b611253565b3480156105c757600080fd5b506102856105d6366004612761565b611282565b3480156105e757600080fd5b506103166105f6366004612627565b611380565b34801561060757600080fd5b5060175461031690600160b01b900460ff1681565b34801561062857600080fd5b50610316610637366004612546565b600b6020526000908152604090205460ff1681565b34801561065857600080fd5b5061035e61066736600461257e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069e57600080fd5b506102856106ad366004612546565b61138d565b3480156106be57600080fd5b506102856106cd366004612749565b61147f565b3480156106de57600080fd5b506102856106ed366004612546565b6114ae565b3480156106fe57600080fd5b5061028561070d366004612749565b611529565b34801561071e57600080fd5b5061028561072d366004612546565b611558565b34801561073e57600080fd5b50610285611642565b6000546001600160a01b0316331461077a5760405162461bcd60e51b8152600401610771906127e5565b60405180910390fd5b60005b81518110156107f0576001600b60008484815181106107ac57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107e88161294d565b91505061077d565b5050565b6000546001600160a01b0316331461081e5760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03811660009081526007602052604090205460ff166108965760405162461bcd60e51b815260206004820152602760248201527f4163636f756e74206973206e6f74206578636c756465642066726f6d207265666044820152663632b1ba34b7b760c91b6064820152608401610771565b60005b6008548110156107f057816001600160a01b0316600882815481106108ce57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156109dd57600880546108f990600190612936565b8154811061091757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b03909216918390811061095157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600790925220805460ff1916905560088054806109b757634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806109e78161294d565b915050610899565b60006109fc33848461168a565b5060015b92915050565b6000546001600160a01b03163314610a305760405162461bcd60e51b8152600401610771906127e5565b6014546001600160a01b0316610a885760405162461bcd60e51b815260206004820152601960248201527f5f5250444955416464726573732063616e6e6f742062652030000000000000006044820152606401610771565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556014805486168086529483902080549092166001179091555490519316835290917f76ea8f4c7f92a16aeeab7693bdc087d6a936223547eb2f0ece7c91087623c6ae91015b60405180910390a150565b6000610b0c8484846117ae565b610b5e8433610b59856040518060600160405280602881526020016129aa602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611cef565b61168a565b5060019392505050565b6000546001600160a01b03163314610b925760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03811660009081526007602052604090205460ff1615610bfb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610771565b600854603290610c0c9060016128df565b1115610c965760405162461bcd60e51b815260206004820152604d60248201527f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60448201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60648201526c3ab232b21030b2323932b9b99760991b608482015260a401610771565b6001600160a01b03811660009081526002602052604090205415610cf0576001600160a01b038116600090815260026020526040902054610cd690611d29565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610d805760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b629101610af4565b6014546001600160a01b0316336001600160a01b031614610df457600080fd5b6000610dff30611231565b9050610e0a81611dad565b50565b6000546001600160a01b03163314610e375760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610e8d5760405162461bcd60e51b8152600401610771906127e5565b601754600160b01b900460ff1615610efb5760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610771565b60c8835110610f6b5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610771565b60005b8351811015610fef576000848281518110610f9957634e487b7160e01b600052603260045260246000fd5b602002602001015190506000848381518110610fc557634e487b7160e01b600052603260045260246000fd5b60200260200101519050610fda3383836117ae565b50508080610fe79061294d565b915050610f6e565b50610ff8611f52565b737a250d5630b4cf539739df2c5dacb4c659f2488d611018816001610e0d565b601680546001600160a01b0319166001600160a01b03831690811790915561104b903090683635c9adc5dea0000061168a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561108457600080fd5b505afa158015611098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bc9190612562565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561110457600080fd5b505afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190612562565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561118457600080fd5b505af1158015611198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bc9190612562565b601780546001600160a01b0319166001600160a01b03929092169182179055610b5e906001610e0d565b6000546001600160a01b031633146112105760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b6001600160a01b038116600090815260026020526040812054610a0090611d29565b6000546001600160a01b0316331461127d5760405162461bcd60e51b8152600401610771906127e5565b601a55565b6000546001600160a01b031633146112ac5760405162461bcd60e51b8152600401610771906127e5565b600c849055600d829055600e839055600f81905560196112cc83866128df565b111561131a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610771565b6019600f54600e5461132c91906128df565b111561137a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610771565b50505050565b60006109fc3384846117ae565b6000546001600160a01b031633146113b75760405162461bcd60e51b8152600401610771906127e5565b6015546001600160a01b031661140f5760405162461bcd60e51b815260206004820152601860248201527f5f6d6b7467416464726573732063616e6e6f74206265203000000000000000006044820152606401610771565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556015805486168086529483902080549092166001179091555490519316835290917f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b9101610af4565b6000546001600160a01b031633146114a95760405162461bcd60e51b8152600401610771906127e5565b601955565b6000546001600160a01b031633146114d85760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610af4565b6000546001600160a01b031633146115535760405162461bcd60e51b8152600401610771906127e5565b601855565b6000546001600160a01b031633146115825760405162461bcd60e51b8152600401610771906127e5565b6001600160a01b0381166115e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610771565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061167757506015546001600160a01b0316336001600160a01b0316145b61168057600080fd5b47610e0a81611f91565b6001600160a01b0383166116ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610771565b6001600160a01b03821661174d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610771565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610771565b6001600160a01b0382166118745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610771565b600081116118d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610771565b6000546001600160a01b0384811691161480159061190257506000546001600160a01b03838116911614155b15611b5757601754600160b01b900460ff16611aca576017546001600160a01b0383811691161480159061194457506016546001600160a01b03838116911614155b801561196957506001600160a01b03821660009081526005602052604090205460ff16155b15611aca576019548161197b84611231565b61198591906128df565b106119de5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610771565b601854811115611a305760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610771565b6001600160a01b0383166000908152600b602052604090205460ff16158015611a7257506001600160a01b0382166000908152600b602052604090205460ff16155b611aca5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610771565b6000611ad530611231565b601a54601854919250821015908210611aee5760185491505b808015611b055750601754600160a01b900460ff16155b8015611b1f57506017546001600160a01b03868116911614155b8015611b345750601754600160a81b900460ff165b15611b5457611b4282611dad565b478015611b5257611b5247611f91565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b9957506001600160a01b03831660009081526005602052604090205460ff165b80611bcb57506017546001600160a01b03858116911614801590611bcb57506017546001600160a01b03848116911614155b15611bd857506000611ce3565b6017546001600160a01b038581169116148015611c0357506016546001600160a01b03848116911614155b15611c1557600c54601055600d546011555b6001600160a01b03841660009081526005602052604090205460ff16611ca657601854821115611ca65760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610771565b6017546001600160a01b038481169116148015611cd157506016546001600160a01b03858116911614155b15611ce357600e54601055600f546011555b61137a84848484612016565b60008184841115611d135760405162461bcd60e51b81526004016107719190612792565b506000611d208486612936565b95945050505050565b6000600954821115611d905760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610771565b6000611d9a612044565b9050611da68382612067565b9392505050565b6017805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611e0357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e5757600080fd5b505afa158015611e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8f9190612562565b81600181518110611eb057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611ed6913091168461168a565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f0f90859060009086903090429060040161281a565b600060405180830381600087803b158015611f2957600080fd5b505af1158015611f3d573d6000803e3d6000fd5b50506017805460ff60a01b1916905550505050565b6000546001600160a01b03163314611f7c5760405162461bcd60e51b8152600401610771906127e5565b6017805460ff60b01b1916600160b01b179055565b6014546001600160a01b03166108fc611fab836002612067565b6040518115909202916000818181858888f19350505050158015611fd3573d6000803e3d6000fd5b506015546001600160a01b03166108fc611fee836002612067565b6040518115909202916000818181858888f193505050501580156107f0573d6000803e3d6000fd5b80612023576120236120a9565b61202e8484846120d7565b8061137a5761137a601254601055601354601155565b60008060006120516121ce565b90925090506120608282612067565b9250505090565b6000611da683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612210565b6010541580156120b95750601154155b156120c057565b601080546012556011805460135560009182905555565b6000806000806000806120e98761223e565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061211b908761229b565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461214a90866122dd565b6001600160a01b03891660009081526002602052604090205561216c8161233c565b6121768483612386565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121bb91815260200190565b60405180910390a3505050505050505050565b6009546000908190683635c9adc5dea000006121ea8282612067565b82101561220757505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836122315760405162461bcd60e51b81526004016107719190612792565b506000611d2084866128f7565b600080600080600080600080600061225b8a6010546011546123aa565b925092509250600061226b612044565b9050600080600061227e8e8787876123ff565b919e509c509a509598509396509194505050505091939550919395565b6000611da683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cef565b6000806122ea83856128df565b905083811015611da65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610771565b6000612346612044565b90506000612354838361244f565b3060009081526002602052604090205490915061237190826122dd565b30600090815260026020526040902055505050565b600954612393908361229b565b600955600a546123a390826122dd565b600a555050565b60008080806123c460646123be898961244f565b90612067565b905060006123d760646123be8a8961244f565b905060006123ef826123e98b8661229b565b9061229b565b9992985090965090945050505050565b600080808061240e888661244f565b9050600061241c888761244f565b9050600061242a888861244f565b9050600061243c826123e9868661229b565b939b939a50919850919650505050505050565b60008261245e57506000610a00565b600061246a8385612917565b90508261247785836128f7565b14611da65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610771565b600082601f8301126124de578081fd5b813560206124f36124ee836128bb565b61288a565b80838252828201915082860187848660051b8901011115612512578586fd5b855b8581101561253957813561252781612994565b84529284019290840190600101612514565b5090979650505050505050565b600060208284031215612557578081fd5b8135611da681612994565b600060208284031215612573578081fd5b8151611da681612994565b60008060408385031215612590578081fd5b823561259b81612994565b915060208301356125ab81612994565b809150509250929050565b6000806000606084860312156125ca578081fd5b83356125d581612994565b925060208401356125e581612994565b929592945050506040919091013590565b60008060408385031215612608578182fd5b823561261381612994565b9150602083013580151581146125ab578182fd5b60008060408385031215612639578182fd5b823561264481612994565b946020939093013593505050565b600060208284031215612663578081fd5b813567ffffffffffffffff811115612679578182fd5b612685848285016124ce565b949350505050565b6000806040838503121561269f578182fd5b823567ffffffffffffffff808211156126b6578384fd5b6126c2868387016124ce565b93506020915081850135818111156126d8578384fd5b85019050601f810186136126ea578283fd5b80356126f86124ee826128bb565b80828252848201915084840189868560051b8701011115612717578687fd5b8694505b8385101561273957803583526001949094019391850191850161271b565b5080955050505050509250929050565b60006020828403121561275a578081fd5b5035919050565b60008060008060808587031215612776578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127be578581018301518582016040015282016127a2565b818111156127cf5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156128695784516001600160a01b031683529383019391830191600101612844565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128b3576128b361297e565b604052919050565b600067ffffffffffffffff8211156128d5576128d561297e565b5060051b60200190565b600082198211156128f2576128f2612968565b500190565b60008261291257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561293157612931612968565b500290565b60008282101561294857612948612968565b500390565b600060001982141561296157612961612968565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e0a57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2b3b8b787f60bc87f581a29693dabcd9289aac34ffb35bd88e13e6588d4982964736f6c63430008040033

Deployed Bytecode Sourcemap

7491:17539:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8966:89;;;;;;;;;;-1:-1:-1;8966:89:0;;;;-1:-1:-1;;;;;8966:89:0;;;;;;-1:-1:-1;;;;;5301:32:1;;;5283:51;;5271:2;5256:18;8966:89:0;;;;;;;;18346:169;;;;;;;;;;-1:-1:-1;18346:169:0;;;;;:::i;:::-;;:::i;:::-;;12241:603;;;;;;;;;;-1:-1:-1;12241:603:0;;;;;:::i;:::-;;:::i;10664:83::-;;;;;;;;;;-1:-1:-1;10734:5:0;;;;;;;;;;;;;;;;;10664:83;;;;;;;:::i;13044:193::-;;;;;;;;;;-1:-1:-1;13044:193:0;;;;;:::i;:::-;;:::i;:::-;;;6259:14:1;;6252:22;6234:41;;6222:2;6207:18;13044:193:0;6189:92:1;9069:41:0;;;;;;;;;;-1:-1:-1;9069:41:0;;;;-1:-1:-1;;;;;9069:41:0;;;10941:95;;;;;;;;;;-1:-1:-1;8256:16:0;10941:95;;;15977:25:1;;;15965:2;15950:18;10941:95:0;15932:76:1;24322:350:0;;;;;;;;;;-1:-1:-1;24322:350:0;;;;;:::i;:::-;;:::i;13245:446::-;;;;;;;;;;-1:-1:-1;13245:446:0;;;;;:::i;:::-;;:::i;11714:519::-;;;;;;;;;;-1:-1:-1;11714:519:0;;;;;:::i;:::-;;:::i;9386:53::-;;;;;;;;;;;;;;;;10850:83;;;;;;;;;;-1:-1:-1;10850:83:0;;7753:1;17143:36:1;;17131:2;17116:18;10850:83:0;17098:87:1;11397:152:0;;;;;;;;;;-1:-1:-1;11397:152:0;;;;;:::i;:::-;;:::i;9117:28::-;;;;;;;;;;-1:-1:-1;9117:28:0;;;;-1:-1:-1;;;;;9117:28:0;;;17909:193;;;;;;;;;;;;;:::i;7995:55::-;;;;;;;;;;-1:-1:-1;7995:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24042:132;;;;;;;;;;-1:-1:-1;24042:132:0;;;;;:::i;:::-;;:::i;22712:1044::-;;;;;;;;;;-1:-1:-1;22712:1044:0;;;;;:::i;:::-;;:::i;18523:92::-;;;;;;;;;;-1:-1:-1;18523:92:0;;;;;:::i;:::-;;:::i;11044:138::-;;;;;;;;;;-1:-1:-1;11044:138:0;;;;;:::i;:::-;;:::i;9276:46::-;;;;;;;;;;;;;;;;8868:90;;;;;;;;;;-1:-1:-1;8868:90:0;;;;-1:-1:-1;;;;;8868:90:0;;;4912:79;;;;;;;;;;-1:-1:-1;4950:7:0;4977:6;-1:-1:-1;;;;;4977:6:0;4912:79;;9330:48;;;;;;;;;;;;;;;;10755:87;;;;;;;;;;-1:-1:-1;10827:7:0;;;;;;;;;;;;-1:-1:-1;;;10827:7:0;;;;10755:87;;23770:139;;;;;;;;;;-1:-1:-1;23770:139:0;;;;;:::i;:::-;;:::i;22062:531::-;;;;;;;;;;-1:-1:-1;22062:531:0;;;;;:::i;:::-;;:::i;11190:199::-;;;;;;;;;;-1:-1:-1;11190:199:0;;;;;:::i;:::-;;:::i;9230:33::-;;;;;;;;;;-1:-1:-1;9230:33:0;;;;-1:-1:-1;;;9230:33:0;;;;;;8394:36;;;;;;;;;;-1:-1:-1;8394:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12852:184;;;;;;;;;;-1:-1:-1;12852:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;13001:18:0;;;12969:7;13001:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12852:184;24687:340;;;;;;;;;;-1:-1:-1;24687:340:0;;;;;:::i;:::-;;:::i;24192:115::-;;;;;;;;;;-1:-1:-1;24192:115:0;;;;;:::i;:::-;;:::i;11557:149::-;;;;;;;;;;-1:-1:-1;11557:149:0;;;;;:::i;:::-;;:::i;23927:107::-;;;;;;;;;;-1:-1:-1;23927:107:0;;;;;:::i;:::-;;:::i;5130:244::-;;;;;;;;;;-1:-1:-1;5130:244:0;;;;;:::i;:::-;;:::i;18110:224::-;;;;;;;;;;;;;:::i;18346:169::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;;;;;;;;;18422:9:::1;18417:91;18441:5;:12;18437:1;:16;18417:91;;;18492:4;18475;:14;18480:5;18486:1;18480:8;;;;;;-1:-1:-1::0;;;18480:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18475:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18475:14:0;:21;;-1:-1:-1;;18475:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18455:3;::::1;::::0;::::1;:::i;:::-;;;;18417:91;;;;18346:169:::0;:::o;12241:603::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12323:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;::::1;;12315:86;;;::::0;-1:-1:-1;;;12315:86:0;;14781:2:1;12315:86:0::1;::::0;::::1;14763:21:1::0;14820:2;14800:18;;;14793:30;14859:34;14839:18;;;14832:62;-1:-1:-1;;;14910:18:1;;;14903:37;14957:19;;12315:86:0::1;14753:229:1::0;12315:86:0::1;12417:9;12412:425;12436:23;:30:::0;12432:34;::::1;12412:425;;;12522:7;-1:-1:-1::0;;;;;12492:37:0::1;:23;12516:1;12492:26;;;;;;-1:-1:-1::0;;;12492:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;12492:26:0::1;:37;12488:338;;;12579:23;12603:30:::0;;:34:::1;::::0;12636:1:::1;::::0;12603:34:::1;:::i;:::-;12579:59;;;;;;-1:-1:-1::0;;;12579:59:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;12550:23:::1;:26:::0;;-1:-1:-1;;;;;12579:59:0;;::::1;::::0;12574:1;;12550:26;::::1;;;-1:-1:-1::0;;;12550:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:88:::0;;-1:-1:-1;;;;;;12550:88:0::1;-1:-1:-1::0;;;;;12550:88:0;;::::1;;::::0;;12657:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;12696:25:::1;:34:::0;;;;:42;;-1:-1:-1;;12696:42:0::1;::::0;;12757:23:::1;:29:::0;;;::::1;;-1:-1:-1::0;;;12757:29:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;12757:29:0;;;;;-1:-1:-1;;;;;;12757:29:0::1;::::0;;;;;18417:91:::1;18346:169:::0;:::o;12488:338::-:1;12468:3:::0;::::1;::::0;::::1;:::i;:::-;;;;12412:425;;13044:193:::0;13146:4;13168:39;3751:10;13191:7;13200:6;13168:8;:39::i;:::-;-1:-1:-1;13225:4:0;13044:193;;;;;:::o;24322:350::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;24408:13:::1;::::0;-1:-1:-1;;;;;24408:13:0::1;24400:65;;;::::0;-1:-1:-1;;;24400:65:0;;14427:2:1;24400:65:0::1;::::0;::::1;14409:21:1::0;14466:2;14446:18;;;14439:30;14505:27;14485:18;;;14478:55;14550:18;;24400:65:0::1;14399:175:1::0;24400:65:0::1;-1:-1:-1::0;;;;;24476:32:0;;::::1;24511:5;24476:32:::0;;;:18:::1;:32;::::0;;;;;;;:40;;-1:-1:-1;;24476:40:0;;::::1;::::0;;;24550:13:::1;::::0;;;::::1;24575:32:::0;;;;;;;:39;;;;::::1;-1:-1:-1::0;24575:39:0::1;::::0;;;24650:13;24630:34;;24650:13;::::1;5283:51:1::0;;24550:13:0;;24630:34:::1;::::0;5256:18:1;24630:34:0::1;;;;;;;;24322:350:::0;:::o;13245:446::-;13377:4;13394:36;13404:6;13412:9;13423:6;13394:9;:36::i;:::-;13441:220;13464:6;3751:10;13512:138;13568:6;13512:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13512:19:0;;;;;;:11;:19;;;;;;;;3751:10;13512:33;;;;;;;;;;:37;:138::i;:::-;13441:8;:220::i;:::-;-1:-1:-1;13679:4:0;13245:446;;;;;:::o;11714:519::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11799:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;::::1;;11798:35;11790:75;;;::::0;-1:-1:-1;;;11790:75:0;;10848:2:1;11790:75:0::1;::::0;::::1;10830:21:1::0;10887:2;10867:18;;;10860:30;10926:29;10906:18;;;10899:57;10973:18;;11790:75:0::1;10820:177:1::0;11790:75:0::1;11884:23;:30:::0;11922:2:::1;::::0;11884:34:::1;::::0;11917:1:::1;11884:34;:::i;:::-;:40;;11876:130;;;::::0;-1:-1:-1;;;11876:130:0;;15189:2:1;11876:130:0::1;::::0;::::1;15171:21:1::0;15228:2;15208:18;;;15201:30;15267:34;15247:18;;;15240:62;15338:34;15318:18;;;15311:62;-1:-1:-1;;;15389:19:1;;;15382:44;15443:19;;11876:130:0::1;15161:307:1::0;11876:130:0::1;-1:-1:-1::0;;;;;12021:16:0;::::1;12040:1;12021:16:::0;;;:7:::1;:16;::::0;;;;;:20;12017:109:::1;;-1:-1:-1::0;;;;;12097:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;12077:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;12058:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;12017:109:::1;-1:-1:-1::0;;;;;12136:34:0::1;;::::0;;;:25:::1;:34;::::0;;;;:41;;-1:-1:-1;;12136:41:0::1;12173:4;12136:41:::0;;::::1;::::0;;;12188:23:::1;:37:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;12188:37:0::1;::::0;;::::1;::::0;;11714:519::o;11397:152::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11468:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:34;;-1:-1:-1;;11468:34:0::1;11498:4;11468:34;::::0;;11518:23;;5283:51:1;;;11518:23:0::1;::::0;5256:18:1;11518:23:0::1;5238:102:1::0;17909:193:0;17975:13;;-1:-1:-1;;;;;17975:13:0;3751:10;-1:-1:-1;;;;;17959:29:0;;17951:38;;;;;;18000:23;18026:24;18044:4;18026:9;:24::i;:::-;18000:50;;18061:33;18078:15;18061:16;:33::i;:::-;17909:193;:::o;24042:132::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24129:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:37;;-1:-1:-1;;24129:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24042:132::o;22712:1044::-;22816:4;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;22841:13:::1;::::0;-1:-1:-1;;;22841:13:0;::::1;;;22840:14;22832:70;;;::::0;-1:-1:-1;;;22832:70:0;;14015:2:1;22832:70:0::1;::::0;::::1;13997:21:1::0;14054:2;14034:18;;;14027:30;14093:34;14073:18;;;14066:62;-1:-1:-1;;;14144:18:1;;;14137:41;14195:19;;22832:70:0::1;13987:233:1::0;22832:70:0::1;22945:3;22921:14;:21;:27;22913:94;;;::::0;-1:-1:-1;;;22913:94:0;;7734:2:1;22913:94:0::1;::::0;::::1;7716:21:1::0;7773:2;7753:18;;;7746:30;7812:34;7792:18;;;7785:62;-1:-1:-1;;;7863:18:1;;;7856:52;7925:19;;22913:94:0::1;7706:244:1::0;22913:94:0::1;23023:9;23019:205;23042:14;:21;23038:1;:25;23019:205;;;23084:14;23101;23116:1;23101:17;;;;;;-1:-1:-1::0;;;23101:17:0::1;;;;;;;;;;;;;;;23084:34;;23133:14;23150:7;23158:1;23150:10;;;;;;-1:-1:-1::0;;;23150:10:0::1;;;;;;;;;;;;;;;23133:27;;23175:37;23185:10;23197:6;23205;23175:9;:37::i;:::-;23019:205;;23065:3;;;;;:::i;:::-;;;;23019:205;;;;23234:15;:13;:15::i;:::-;23317:42;23371:55;23317:42:::0;23421:4:::1;23371:22;:55::i;:::-;23437:15;:34:::0;;-1:-1:-1;;;;;;23437:34:0::1;-1:-1:-1::0;;;;;23437:34:0;::::1;::::0;;::::1;::::0;;;23482:58:::1;::::0;23499:4:::1;::::0;8256:16:::1;23482:8;:58::i;:::-;23585:16;-1:-1:-1::0;;;;;23585:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23567:56:0::1;;23632:4;23639:16;-1:-1:-1::0;;;;;23639:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23567:96;::::0;-1:-1:-1;;;;;;23567:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6015:15:1;;;23567:96:0::1;::::0;::::1;5997:34:1::0;6067:15;;6047:18;;;6040:43;5932:18;;23567:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23551:13;:112:::0;;-1:-1:-1;;;;;;23551:112:0::1;-1:-1:-1::0;;;;;23551:112:0;;;::::1;::::0;;::::1;::::0;;23674:52:::1;::::0;-1:-1:-1;23674:22:0::1;:52::i;18523:92::-:0;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18587:12:0::1;18602:5;18587:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;18587:20:0::1;::::0;;18523:92::o;11044:138::-;-1:-1:-1;;;;;11157:16:0;;11110:7;11157:16;;;:7;:16;;;;;;11137:37;;:19;:37::i;23770:139::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;23861:19:::1;:40:::0;23770:139::o;22062:531::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;22206:19:::1;:40:::0;;;22257:12:::1;:26:::0;;;22304:20:::1;:42:::0;;;22357:13:::1;:28:::0;;;22452:2:::1;22414:34;22272:11:::0;22228:18;22414:34:::1;:::i;:::-;:40;;22406:82;;;::::0;-1:-1:-1;;;22406:82:0;;15675:2:1;22406:82:0::1;::::0;::::1;15657:21:1::0;15714:2;15694:18;;;15687:30;15753:31;15733:18;;;15726:59;15802:18;;22406:82:0::1;15647:179:1::0;22406:82:0::1;22548:2;22531:13;;22508:20;;:36;;;;:::i;:::-;:42;;22500:84;;;::::0;-1:-1:-1;;;22500:84:0;;15675:2:1;22500:84:0::1;::::0;::::1;15657:21:1::0;15714:2;15694:18;;;15687:30;15753:31;15733:18;;;15726:59;15802:18;;22500:84:0::1;15647:179:1::0;22500:84:0::1;22062:531:::0;;;;:::o;11190:199::-;11295:4;11317:42;3751:10;11341:9;11352:6;11317:9;:42::i;24687:340::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;24771:12:::1;::::0;-1:-1:-1;;;;;24771:12:0::1;24763:63;;;::::0;-1:-1:-1;;;24763:63:0;;8157:2:1;24763:63:0::1;::::0;::::1;8139:21:1::0;8196:2;8176:18;;;8169:30;8235:26;8215:18;;;8208:54;8279:18;;24763:63:0::1;8129:174:1::0;24763:63:0::1;-1:-1:-1::0;;;;;24837:31:0;;::::1;24871:5;24837:31:::0;;;:18:::1;:31;::::0;;;;;;;:39;;-1:-1:-1;;24837:39:0;;::::1;::::0;;;24909:12:::1;::::0;;;::::1;24933:31:::0;;;;;;;:38;;;;::::1;-1:-1:-1::0;24933:38:0::1;::::0;;;25006:12;24987:32;;25006:12;::::1;5283:51:1::0;;24909:12:0;;24987:32:::1;::::0;5256:18:1;24987:32:0::1;5238:102:1::0;24192:115:0;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;24269:14:::1;:30:::0;24192:115::o;11557:149::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11626:27:0;::::1;11656:5;11626:27:::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;11626:35:0::1;::::0;;11677:21;;5283:51:1;;;11677:21:0::1;::::0;5256:18:1;11677:21:0::1;5238:102:1::0;23927:107:0;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;24000:12:::1;:26:::0;23927:107::o;5130:244::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5219:22:0;::::1;5211:73;;;::::0;-1:-1:-1;;;5211:73:0;;9278:2:1;5211:73:0::1;::::0;::::1;9260:21:1::0;9317:2;9297:18;;;9290:30;9356:34;9336:18;;;9329:62;-1:-1:-1;;;9407:18:1;;;9400:36;9453:19;;5211:73:0::1;9250:228:1::0;5211:73:0::1;5321:6;::::0;;5300:38:::1;::::0;-1:-1:-1;;;;;5300:38:0;;::::1;::::0;5321:6;::::1;::::0;5300:38:::1;::::0;::::1;5349:6;:17:::0;;-1:-1:-1;;;;;;5349:17:0::1;-1:-1:-1::0;;;;;5349:17:0;;;::::1;::::0;;;::::1;::::0;;5130:244::o;18110:224::-;18176:13;;-1:-1:-1;;;;;18176:13:0;3751:10;-1:-1:-1;;;;;18160:29:0;;:61;;;-1:-1:-1;18209:12:0;;-1:-1:-1;;;;;18209:12:0;3751:10;-1:-1:-1;;;;;18193:28:0;;18160:61;18152:70;;;;;;18262:21;18294:32;18262:21;18294:12;:32::i;14424:369::-;-1:-1:-1;;;;;14551:19:0;;14543:68;;;;-1:-1:-1;;;14543:68:0;;13610:2:1;14543:68:0;;;13592:21:1;13649:2;13629:18;;;13622:30;13688:34;13668:18;;;13661:62;-1:-1:-1;;;13739:18:1;;;13732:34;13783:19;;14543:68:0;13582:226:1;14543:68:0;-1:-1:-1;;;;;14630:21:0;;14622:68;;;;-1:-1:-1;;;14622:68:0;;9685:2:1;14622:68:0;;;9667:21:1;9724:2;9704:18;;;9697:30;9763:34;9743:18;;;9736:62;-1:-1:-1;;;9814:18:1;;;9807:32;9856:19;;14622:68:0;9657:224:1;14622:68:0;-1:-1:-1;;;;;14701:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14753:32;;15977:25:1;;;14753:32:0;;15950:18:1;14753:32:0;;;;;;;14424:369;;;:::o;14801:2450::-;-1:-1:-1;;;;;14923:18:0;;14915:68;;;;-1:-1:-1;;;14915:68:0;;12800:2:1;14915:68:0;;;12782:21:1;12839:2;12819:18;;;12812:30;12878:34;12858:18;;;12851:62;-1:-1:-1;;;12929:18:1;;;12922:35;12974:19;;14915:68:0;12772:227:1;14915:68:0;-1:-1:-1;;;;;15002:16:0;;14994:64;;;;-1:-1:-1;;;14994:64:0;;7330:2:1;14994:64:0;;;7312:21:1;7369:2;7349:18;;;7342:30;7408:34;7388:18;;;7381:62;-1:-1:-1;;;7459:18:1;;;7452:33;7502:19;;14994:64:0;7302:225:1;14994:64:0;15086:1;15077:6;:10;15069:64;;;;-1:-1:-1;;;15069:64:0;;12390:2:1;15069:64:0;;;12372:21:1;12429:2;12409:18;;;12402:30;12468:34;12448:18;;;12441:62;-1:-1:-1;;;12519:18:1;;;12512:39;12568:19;;15069:64:0;12362:231:1;15069:64:0;4950:7;4977:6;-1:-1:-1;;;;;15150:15:0;;;4977:6;;15150:15;;;;:32;;-1:-1:-1;4950:7:0;4977:6;-1:-1:-1;;;;;15169:13:0;;;4977:6;;15169:13;;15150:32;15146:1178;;;15232:13;;-1:-1:-1;;;15232:13:0;;;;15227:431;;15286:13;;-1:-1:-1;;;;;15280:19:0;;;15286:13;;15280:19;;;;:53;;-1:-1:-1;15317:15:0;;-1:-1:-1;;;;;15303:30:0;;;15317:15;;15303:30;;15280:53;:81;;;;-1:-1:-1;;;;;;15339:22:0;;;;;;:18;:22;;;;;;;;15337:24;15280:81;15277:381;;;15415:14;;15406:6;15390:13;15400:2;15390:9;:13::i;:::-;:22;;;;:::i;:::-;:39;15382:87;;;;-1:-1:-1;;;15382:87:0;;13206:2:1;15382:87:0;;;13188:21:1;13245:2;13225:18;;;13218:30;13284:34;13264:18;;;13257:62;-1:-1:-1;;;13335:18:1;;;13328:33;13378:19;;15382:87:0;13178:225:1;15382:87:0;15506:12;;15496:6;:22;;15488:63;;;;-1:-1:-1;;;15488:63:0;;8921:2:1;15488:63:0;;;8903:21:1;8960:2;8940:18;;;8933:30;8999;8979:18;;;8972:58;9047:18;;15488:63:0;8893:178:1;15488:63:0;-1:-1:-1;;;;;15579:10:0;;;;;;:4;:10;;;;;;;;15578:11;:24;;;;-1:-1:-1;;;;;;15594:8:0;;;;;;:4;:8;;;;;;;;15593:9;15578:24;15570:72;;;;-1:-1:-1;;;15570:72:0;;10088:2:1;15570:72:0;;;10070:21:1;10127:2;10107:18;;;10100:30;10166:34;10146:18;;;10139:62;-1:-1:-1;;;10217:18:1;;;10210:33;10260:19;;15570:72:0;10060:225:1;15570:72:0;15686:28;15717:24;15735:4;15717:9;:24::i;:::-;15795:19;;15858:12;;15686:55;;-1:-1:-1;15771:43:0;;;;15834:36;;15831:124;;15927:12;;15904:35;;15831:124;15987:7;:18;;;;-1:-1:-1;15999:6:0;;-1:-1:-1;;;15999:6:0;;;;15998:7;15987:18;:43;;;;-1:-1:-1;16017:13:0;;-1:-1:-1;;;;;16009:21:0;;;16017:13;;16009:21;;15987:43;:58;;;;-1:-1:-1;16034:11:0;;-1:-1:-1;;;16034:11:0;;;;15987:58;15983:330;;;16066:38;16083:20;16066:16;:38::i;:::-;16152:21;16196:22;;16192:106;;16243:35;16256:21;16243:12;:35::i;:::-;15983:330;;15146:1178;;;-1:-1:-1;;;;;16391:24:0;;16344:12;16391:24;;;:18;:24;;;;;;16359:4;;16391:24;;;:50;;-1:-1:-1;;;;;;16419:22:0;;;;;;:18;:22;;;;;;;;16391:50;16390:102;;;-1:-1:-1;16455:13:0;;-1:-1:-1;;;;;16447:21:0;;;16455:13;;16447:21;;;;:44;;-1:-1:-1;16478:13:0;;-1:-1:-1;;;;;16472:19:0;;;16478:13;;16472:19;;16447:44;16386:804;;;-1:-1:-1;16519:5:0;16386:804;;;16596:13;;-1:-1:-1;;;;;16588:21:0;;;16596:13;;16588:21;:55;;;;-1:-1:-1;16627:15:0;;-1:-1:-1;;;;;16613:30:0;;;16627:15;;16613:30;;16588:55;16585:172;;;16681:19;;16664:14;:36;16729:12;;16719:7;:22;16585:172;-1:-1:-1;;;;;16796:24:0;;;;;;:18;:24;;;;;;;;16791:167;;16867:12;;16857:6;:22;;16849:89;;;;-1:-1:-1;;;16849:89:0;;11204:2:1;16849:89:0;;;11186:21:1;11243:2;11223:18;;;11216:30;11282:34;11262:18;;;11255:62;-1:-1:-1;;;11333:18:1;;;11326:52;11395:19;;16849:89:0;11176:244:1;16849:89:0;17000:13;;-1:-1:-1;;;;;16994:19:0;;;17000:13;;16994:19;:55;;;;-1:-1:-1;17033:15:0;;-1:-1:-1;;;;;17017:32:0;;;17033:15;;17017:32;;16994:55;16990:175;;;17087:20;;17070:14;:37;17136:13;;17126:7;:23;16990:175;17202:41;17217:4;17223:2;17227:6;17235:7;17202:14;:41::i;5742:224::-;5862:7;5898:12;5890:6;;;;5882:29;;;;-1:-1:-1;;;5882:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5922:9:0;5934:5;5938:1;5934;:5;:::i;:::-;5922:17;5742:224;-1:-1:-1;;;;;5742:224:0:o;13699:323::-;13794:7;13852;;13841;:18;;13819:110;;;;-1:-1:-1;;;13819:110:0;;8510:2:1;13819:110:0;;;8492:21:1;8549:2;8529:18;;;8522:30;8588:34;8568:18;;;8561:62;-1:-1:-1;;;8639:18:1;;;8632:40;8689:19;;13819:110:0;8482:232:1;13819:110:0;13940:19;13962:10;:8;:10::i;:::-;13940:32;-1:-1:-1;13990:24:0;:7;13940:32;13990:11;:24::i;:::-;13983:31;13699:323;-1:-1:-1;;;13699:323:0:o;17261:483::-;9997:6;:13;;-1:-1:-1;;;;9997:13:0;-1:-1:-1;;;9997:13:0;;;17363:16:::1;::::0;;17377:1:::1;17363:16:::0;;;;;::::1;::::0;;-1:-1:-1;;17363:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17363:16:0::1;17339:40;;17408:4;17390;17395:1;17390:7;;;;;;-1:-1:-1::0;;;17390:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;17390:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17434:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;17434:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;17390:7;;17434:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17424:4;17429:1;17424:7;;;;;;-1:-1:-1::0;;;17424:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;17424:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;17499:15:::1;::::0;17467:62:::1;::::0;17484:4:::1;::::0;17499:15:::1;17517:11:::0;17467:8:::1;:62::i;:::-;17540:15;::::0;:196:::1;::::0;-1:-1:-1;;;17540:196:0;;-1:-1:-1;;;;;17540:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;17621:11;;17540:15:::1;::::0;17663:4;;17690::::1;::::0;17710:15:::1;::::0;17540:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10033:6:0;:14;;-1:-1:-1;;;;10033:14:0;;;-1:-1:-1;;;;17261:483:0:o;22609:91::-;5039:6;;-1:-1:-1;;;;;5039:6:0;3751:10;5039:22;5031:67;;;;-1:-1:-1;;;5031:67:0;;;;;;;:::i;:::-;22664:13:::1;:20:::0;;-1:-1:-1;;;;22664:20:0::1;-1:-1:-1::0;;;22664:20:0::1;::::0;;22609:91::o;17752:149::-;17809:13;;-1:-1:-1;;;;;17809:13:0;:37;17832:13;:6;17843:1;17832:10;:13::i;:::-;17809:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17857:12:0;;-1:-1:-1;;;;;17857:12:0;:36;17879:13;:6;17890:1;17879:10;:13::i;:::-;17857:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18623:282;18779:7;18774:28;;18788:14;:12;:14::i;:::-;18813:44;18831:6;18839:9;18850:6;18813:17;:44::i;:::-;18873:7;18868:29;;18882:15;14350:22;;14333:14;:39;14393:15;;14383:7;:25;14289:127;21613:166;21655:7;21676:15;21693;21712:19;:17;:19::i;:::-;21675:56;;-1:-1:-1;21675:56:0;-1:-1:-1;21751:20:0;21675:56;;21751:11;:20::i;:::-;21744:27;;;;21613:166;:::o;6228:132::-;6286:7;6313:39;6317:1;6320;6313:39;;;;;;;;;;;;;;;;;:3;:39::i;14030:251::-;14077:14;;:19;:35;;;;-1:-1:-1;14100:7:0;;:12;14077:35;14073:48;;;14030:251::o;14073:48::-;14162:14;;;14137:22;:39;14205:7;;;14187:15;:25;-1:-1:-1;14233:18:0;;;;14262:11;14030:251::o;18913:610::-;19060:15;19090:23;19128:12;19155:23;19193:12;19220:13;19247:19;19258:7;19247:10;:19::i;:::-;-1:-1:-1;;;;;19295:15:0;;;;;;:7;:15;;;;;;19045:221;;-1:-1:-1;19045:221:0;;-1:-1:-1;19045:221:0;;-1:-1:-1;19045:221:0;-1:-1:-1;19045:221:0;-1:-1:-1;19045:221:0;-1:-1:-1;19295:28:0;;19045:221;19295:19;:28::i;:::-;-1:-1:-1;;;;;19277:15:0;;;;;;;:7;:15;;;;;;:46;;;;19355:18;;;;;;;:39;;19378:15;19355:22;:39::i;:::-;-1:-1:-1;;;;;19334:18:0;;;;;;:7;:18;;;;;:60;19405:16;19415:5;19405:9;:16::i;:::-;19432:23;19444:4;19450;19432:11;:23::i;:::-;19488:9;-1:-1:-1;;;;;19471:44:0;19480:6;-1:-1:-1;;;;;19471:44:0;;19499:15;19471:44;;;;15977:25:1;;15965:2;15950:18;;15932:76;19471:44:0;;;;;;;;18913:610;;;;;;;;;:::o;21787:263::-;21885:7;;21838;;;;8256:16;21953:20;21885:7;8256:16;21953:11;:20::i;:::-;21943:7;:30;21939:61;;;-1:-1:-1;;21983:7:0;;;8256:16;;-1:-1:-1;21787:263:0;-1:-1:-1;21787:263:0:o;21939:61::-;22025:7;;22034;;-1:-1:-1;21787:263:0;-1:-1:-1;21787:263:0:o;6368:223::-;6488:7;6523:12;6516:5;6508:28;;;;-1:-1:-1;;;6508:28:0;;;;;;;;:::i;:::-;-1:-1:-1;6547:9:0;6559:5;6563:1;6559;:5;:::i;19942:630::-;20042:7;20064;20086;20108;20130;20152;20188:23;20213:12;20227:13;20257:45;20269:7;20278:14;;20294:7;;20257:11;:45::i;:::-;20187:115;;;;;;20313:19;20335:10;:8;:10::i;:::-;20313:32;;20357:15;20374:23;20399:12;20428:46;20440:7;20449:4;20455:5;20462:11;20428;:46::i;:::-;20356:118;;-1:-1:-1;20356:118:0;-1:-1:-1;20356:118:0;-1:-1:-1;20535:15:0;;-1:-1:-1;20552:4:0;;-1:-1:-1;20558:5:0;;-1:-1:-1;;;;;19942:630:0;;;;;;;:::o;5598:136::-;5656:7;5683:43;5687:1;5690;5683:43;;;;;;;;;;;;;;;;;:3;:43::i;5411:179::-;5469:7;;5501:5;5505:1;5501;:5;:::i;:::-;5489:17;;5530:1;5525;:6;;5517:46;;;;-1:-1:-1;;;5517:46:0;;10492:2:1;5517:46:0;;;10474:21:1;10531:2;10511:18;;;10504:30;10570:29;10550:18;;;10543:57;10617:18;;5517:46:0;10464:177:1;19531:211:0;19584:19;19606:10;:8;:10::i;:::-;19584:32;-1:-1:-1;19627:13:0;19643:22;:5;19584:32;19643:9;:22::i;:::-;19717:4;19701:22;;;;:7;:22;;;;;;19627:38;;-1:-1:-1;19701:33:0;;19627:38;19701:26;:33::i;:::-;19692:4;19676:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;19531:211:0:o;19750:147::-;19828:7;;:17;;19840:4;19828:11;:17::i;:::-;19818:7;:27;19869:10;;:20;;19884:4;19869:14;:20::i;:::-;19856:10;:33;-1:-1:-1;;19750:147:0:o;20580:481::-;20754:7;;;;20848:35;20879:3;20848:26;:7;20860:13;20848:11;:26::i;:::-;:30;;:35::i;:::-;20833:50;-1:-1:-1;20894:13:0;20910:28;20934:3;20910:19;:7;20922:6;20910:11;:19::i;:28::-;20894:44;-1:-1:-1;20949:23:0;20975:28;20894:44;20975:17;:7;20987:4;20975:11;:17::i;:::-;:21;;:28::i;:::-;20949:54;21041:4;;-1:-1:-1;21047:5:0;;-1:-1:-1;20580:481:0;;-1:-1:-1;;;;;20580:481:0:o;21069:536::-;21263:7;;;;21360:24;:7;21372:11;21360;:24::i;:::-;21342:42;-1:-1:-1;21395:12:0;21410:21;:4;21419:11;21410:8;:21::i;:::-;21395:36;-1:-1:-1;21442:13:0;21458:22;:5;21468:11;21458:9;:22::i;:::-;21442:38;-1:-1:-1;21491:23:0;21517:28;21442:38;21517:17;:7;21529:4;21517:11;:17::i;:28::-;21566:7;;;;-1:-1:-1;21592:4:0;;-1:-1:-1;21069:536:0;;-1:-1:-1;;;;;;;21069:536:0:o;5974:246::-;6032:7;6056:6;6052:47;;-1:-1:-1;6086:1:0;6079:8;;6052:47;6109:9;6121:5;6125:1;6121;:5;:::i;:::-;6109:17;-1:-1:-1;6154:1:0;6145:5;6149:1;6109:17;6145:5;:::i;:::-;:10;6137:56;;;;-1:-1:-1;;;6137:56:0;;11627:2:1;6137:56:0;;;11609:21:1;11666:2;11646:18;;;11639:30;11705:34;11685:18;;;11678:62;-1:-1:-1;;;11756:18:1;;;11749:31;11797:19;;6137:56:0;11599:223:1;14:768;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;183:6;170:20;209:4;233:60;249:43;289:2;249:43;:::i;:::-;233:60;:::i;:::-;315:3;339:2;334:3;327:15;367:2;362:3;358:12;351:19;;402:2;394:6;390:15;454:3;449:2;443;440:1;436:10;428:6;424:23;420:32;417:41;414:2;;;475:5;468;461:20;414:2;501:5;515:238;529:2;526:1;523:9;515:238;;;600:3;587:17;617:31;642:5;617:31;:::i;:::-;661:18;;699:12;;;;731;;;;547:1;540:9;515:238;;;-1:-1:-1;771:5:1;;78:704;-1:-1:-1;;;;;;;78:704:1:o;787:257::-;846:6;899:2;887:9;878:7;874:23;870:32;867:2;;;920:6;912;905:22;867:2;964:9;951:23;983:31;1008:5;983:31;:::i;1049:261::-;1119:6;1172:2;1160:9;1151:7;1147:23;1143:32;1140:2;;;1193:6;1185;1178:22;1140:2;1230:9;1224:16;1249:31;1274:5;1249:31;:::i;1315:398::-;1383:6;1391;1444:2;1432:9;1423:7;1419:23;1415:32;1412:2;;;1465:6;1457;1450:22;1412:2;1509:9;1496:23;1528:31;1553:5;1528:31;:::i;:::-;1578:5;-1:-1:-1;1635:2:1;1620:18;;1607:32;1648:33;1607:32;1648:33;:::i;:::-;1700:7;1690:17;;;1402:311;;;;;:::o;1718:466::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:2;;;1885:6;1877;1870:22;1832:2;1929:9;1916:23;1948:31;1973:5;1948:31;:::i;:::-;1998:5;-1:-1:-1;2055:2:1;2040:18;;2027:32;2068:33;2027:32;2068:33;:::i;:::-;1822:362;;2120:7;;-1:-1:-1;;;2174:2:1;2159:18;;;;2146:32;;1822:362::o;2189:436::-;2254:6;2262;2315:2;2303:9;2294:7;2290:23;2286:32;2283:2;;;2336:6;2328;2321:22;2283:2;2380:9;2367:23;2399:31;2424:5;2399:31;:::i;:::-;2449:5;-1:-1:-1;2506:2:1;2491:18;;2478:32;2548:15;;2541:23;2529:36;;2519:2;;2584:6;2576;2569:22;2630:325;2698:6;2706;2759:2;2747:9;2738:7;2734:23;2730:32;2727:2;;;2780:6;2772;2765:22;2727:2;2824:9;2811:23;2843:31;2868:5;2843:31;:::i;:::-;2893:5;2945:2;2930:18;;;;2917:32;;-1:-1:-1;;;2717:238:1:o;2960:368::-;3044:6;3097:2;3085:9;3076:7;3072:23;3068:32;3065:2;;;3118:6;3110;3103:22;3065:2;3163:9;3150:23;3196:18;3188:6;3185:30;3182:2;;;3233:6;3225;3218:22;3182:2;3261:61;3314:7;3305:6;3294:9;3290:22;3261:61;:::i;:::-;3251:71;3055:273;-1:-1:-1;;;;3055:273:1:o;3333:1204::-;3451:6;3459;3512:2;3500:9;3491:7;3487:23;3483:32;3480:2;;;3533:6;3525;3518:22;3480:2;3578:9;3565:23;3607:18;3648:2;3640:6;3637:14;3634:2;;;3669:6;3661;3654:22;3634:2;3697:61;3750:7;3741:6;3730:9;3726:22;3697:61;:::i;:::-;3687:71;;3777:2;3767:12;;3832:2;3821:9;3817:18;3804:32;3861:2;3851:8;3848:16;3845:2;;;3882:6;3874;3867:22;3845:2;3910:24;;;-1:-1:-1;3965:4:1;3957:13;;3953:27;-1:-1:-1;3943:2:1;;3999:6;3991;3984:22;3943:2;4040;4027:16;4063:60;4079:43;4119:2;4079:43;:::i;4063:60::-;4145:3;4169:2;4164:3;4157:15;4197:2;4192:3;4188:12;4181:19;;4228:2;4224;4220:11;4276:7;4271:2;4265;4262:1;4258:10;4254:2;4250:19;4246:28;4243:41;4240:2;;;4302:6;4294;4287:22;4240:2;4329:6;4320:15;;4344:163;4358:2;4355:1;4352:9;4344:163;;;4415:17;;4403:30;;4376:1;4369:9;;;;;4453:12;;;;4485;;4344:163;;;4348:3;4526:5;4516:15;;;;;;;3470:1067;;;;;:::o;4542:190::-;4601:6;4654:2;4642:9;4633:7;4629:23;4625:32;4622:2;;;4675:6;4667;4660:22;4622:2;-1:-1:-1;4703:23:1;;4612:120;-1:-1:-1;4612:120:1:o;4737:395::-;4823:6;4831;4839;4847;4900:3;4888:9;4879:7;4875:23;4871:33;4868:2;;;4922:6;4914;4907:22;4868:2;-1:-1:-1;;4950:23:1;;;5020:2;5005:18;;4992:32;;-1:-1:-1;5071:2:1;5056:18;;5043:32;;5122:2;5107:18;5094:32;;-1:-1:-1;4858:274:1;-1:-1:-1;4858:274:1:o;6520:603::-;6632:4;6661:2;6690;6679:9;6672:21;6722:6;6716:13;6765:6;6760:2;6749:9;6745:18;6738:34;6790:4;6803:140;6817:6;6814:1;6811:13;6803:140;;;6912:14;;;6908:23;;6902:30;6878:17;;;6897:2;6874:26;6867:66;6832:10;;6803:140;;;6961:6;6958:1;6955:13;6952:2;;;7031:4;7026:2;7017:6;7006:9;7002:22;6998:31;6991:45;6952:2;-1:-1:-1;7107:2:1;7086:15;-1:-1:-1;;7082:29:1;7067:45;;;;7114:2;7063:54;;6641:482;-1:-1:-1;;;6641:482:1:o;11827:356::-;12029:2;12011:21;;;12048:18;;;12041:30;12107:34;12102:2;12087:18;;12080:62;12174:2;12159:18;;12001:182::o;16013:983::-;16275:4;16323:3;16312:9;16308:19;16354:6;16343:9;16336:25;16380:2;16418:6;16413:2;16402:9;16398:18;16391:34;16461:3;16456:2;16445:9;16441:18;16434:31;16485:6;16520;16514:13;16551:6;16543;16536:22;16589:3;16578:9;16574:19;16567:26;;16628:2;16620:6;16616:15;16602:29;;16649:4;16662:195;16676:6;16673:1;16670:13;16662:195;;;16741:13;;-1:-1:-1;;;;;16737:39:1;16725:52;;16832:15;;;;16797:12;;;;16773:1;16691:9;16662:195;;;-1:-1:-1;;;;;;;16913:32:1;;;;16908:2;16893:18;;16886:60;-1:-1:-1;;;16977:3:1;16962:19;16955:35;16874:3;16284:712;-1:-1:-1;;;16284:712:1:o;17190:275::-;17261:2;17255:9;17326:2;17307:13;;-1:-1:-1;;17303:27:1;17291:40;;17361:18;17346:34;;17382:22;;;17343:62;17340:2;;;17408:18;;:::i;:::-;17444:2;17437:22;17235:230;;-1:-1:-1;17235:230:1:o;17470:183::-;17530:4;17563:18;17555:6;17552:30;17549:2;;;17585:18;;:::i;:::-;-1:-1:-1;17630:1:1;17626:14;17642:4;17622:25;;17539:114::o;17658:128::-;17698:3;17729:1;17725:6;17722:1;17719:13;17716:2;;;17735:18;;:::i;:::-;-1:-1:-1;17771:9:1;;17706:80::o;17791:217::-;17831:1;17857;17847:2;;-1:-1:-1;;;17882:31:1;;17936:4;17933:1;17926:15;17964:4;17889:1;17954:15;17847:2;-1:-1:-1;17993:9:1;;17837:171::o;18013:168::-;18053:7;18119:1;18115;18111:6;18107:14;18104:1;18101:21;18096:1;18089:9;18082:17;18078:45;18075:2;;;18126:18;;:::i;:::-;-1:-1:-1;18166:9:1;;18065:116::o;18186:125::-;18226:4;18254:1;18251;18248:8;18245:2;;;18259:18;;:::i;:::-;-1:-1:-1;18296:9:1;;18235:76::o;18316:135::-;18355:3;-1:-1:-1;;18376:17:1;;18373:2;;;18396:18;;:::i;:::-;-1:-1:-1;18443:1:1;18432:13;;18363:88::o;18456:127::-;18517:10;18512:3;18508:20;18505:1;18498:31;18548:4;18545:1;18538:15;18572:4;18569:1;18562:15;18588:127;18649:10;18644:3;18640:20;18637:1;18630:31;18680:4;18677:1;18670:15;18704:4;18701:1;18694:15;18720:131;-1:-1:-1;;;;;18795:31:1;;18785:42;;18775:2;;18841:1;18838;18831:12

Swarm Source

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