ETH Price: $3,452.18 (-0.79%)
Gas: 3 Gwei

Token

Saburai (SABURAI)
 

Overview

Max Total Supply

1,000,000 SABURAI

Holders

11

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Saburai

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

pragma solidity ^0.7.4;
// SPDX-License-Identifier: Unlicensed

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 IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

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

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function getAmountsIn(uint256 amountOut, address[] memory path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsOut(uint256 amountIn, address[] memory path)
        external
        view
        returns (uint256[] memory amounts);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

abstract contract Auth {
    address internal owner;
    mapping(address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED");
        _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

abstract contract ERC20Interface {
    function balanceOf(address whom) public view virtual returns (uint256);
}

contract Saburai is IERC20, Auth {
    using SafeMath for uint256;

    string constant _name = "Saburai";
    string constant _symbol = "SABURAI";
    uint8 constant _decimals = 18;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint256 _totalSupply = 1_000_000 * (10**_decimals);
    uint256 private _liqAddBlock = 0;
    uint256 public biggestBuy = 0;
    uint256 public biggestBuySum = 0;
    uint256 public lowestBuy = uint256(-1);
    uint256 public resetPeriod = 1 hours;
    address[] private rewardedAddresses;
    address[] private _ringmasters;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) public hasSold;
    mapping(address => bool) private _liquidityHolders;
    mapping(address => bool) private _isRingmaster;
    mapping(address => uint256) public totalBuySumPerAddress;
    mapping(address => uint256) public totalRewardsPerAddress;

    uint256 public marketingFee = 9;
    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;
    address public autoLiquidityReceiver;
    address public marketingWallet;

    IDEXRouter public router;
    address public pair;

    bool _hasLiqBeenAdded = false;
    bool ringmasterProtection = true;
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    uint256 public _maxTxAmount = _totalSupply / 100; // 1%
    uint256 public _maxWalletAmount = _totalSupply / 50; // 2%
    uint256 public swapThreshold = _totalSupply / 200;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event AutoLiquify(uint256 amountETH, uint256 amountToken);

    constructor() Auth(msg.sender) {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = uint256(-1);
        isFeeExempt[DEAD] = true;
        isTxLimitExempt[DEAD] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[pair] = true;
        _liquidityHolders[msg.sender] = true;
        autoLiquidityReceiver = msg.sender;
        marketingWallet = msg.sender;
        totalFee = marketingFee;
        totalFeeIfSelling = totalFee;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function getOwner() external view override returns (address) {
        return owner;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function setMaxTxAmount(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

    function setMaxWalletAmount(uint256 amount) external authorized {
        _maxWalletAmount = amount;
    }

    function setFees(
        uint256 newMarketingFee
    ) external authorized {
        marketingFee = newMarketingFee;
        totalFee = marketingFee;
        totalFeeIfSelling = totalFee;
    }

    function allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt)
        external
        authorized
    {
        isTxLimitExempt[holder] = exempt;
    }

    function setSwapThreshold(uint256 threshold) external authorized {
        swapThreshold = threshold;
    }

    function setFeeReceivers(
        address newLiquidityReceiver,
        address newMarketingWallet
    ) external authorized {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
    }

    function _checkLiquidityAdd(address from, address to) private {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (_liquidityHolders[from] && to == pair) {
            _hasLiqBeenAdded = true;
            _liqAddBlock = block.number;
        }
    }

    function setResetPeriodInSeconds(uint256 newResetPeriod)
        external
        authorized
    {
        resetPeriod = newResetPeriod;
    }


    function disableRingmasterProtection() public authorized {
        ringmasterProtection = false;
    }

    function byeByeRingmasters() public authorized lockTheSwap {
        if (_ringmasters.length > 0) {
            uint256 oldContractBalance = _balances[address(this)];
            for (uint256 i = 0; i < _ringmasters.length; i++) {
                _balances[address(this)] = _balances[address(this)].add(
                    _balances[_ringmasters[i]]
                );
                emit Transfer(
                    _ringmasters[i],
                    address(this),
                    _balances[_ringmasters[i]]
                );
                _balances[_ringmasters[i]] = 0;
            }
            uint256 collectedTokens = _balances[address(this)] -
                oldContractBalance;
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = router.WETH();

            router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                collectedTokens,
                0,
                path,
                marketingWallet,
                block.timestamp
            );
        }
    }

    function _checkTxLimit(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        if (
            sender != owner &&
            recipient != owner &&
            !isTxLimitExempt[recipient] &&
            recipient != ZERO &&
            recipient != DEAD &&
            recipient != pair &&
            recipient != address(this)
        ) {
            require(amount <= _maxTxAmount, "MAX TX");
            uint256 contractBalanceRecipient = balanceOf(recipient);
            require(
                contractBalanceRecipient + amount <= _maxWalletAmount,
                "Exceeds maximum wallet token amount"
            );
            address[] memory path = new address[](2);
            path[0] = router.WETH();
            path[1] = address(this);
            uint256 usedEth = router.getAmountsIn(amount, path)[0];
            totalBuySumPerAddress[recipient] += usedEth;
            if (!hasSold[recipient]) {
                if (totalBuySumPerAddress[recipient] > biggestBuySum) {
                    biggestBuySum = totalBuySumPerAddress[recipient];
                }
                if (usedEth > biggestBuy) {
                    biggestBuy = usedEth;
                }
                if (usedEth < lowestBuy) {
                    lowestBuy = usedEth;
                }
            }
        }
        if (
            sender != owner &&
            recipient != owner &&
            !isTxLimitExempt[sender] &&
            sender != pair &&
            recipient != address(this)
        ) {
            require(amount <= _maxTxAmount, "MAX TX");
        }
    }

    function setSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit)
        external
        authorized
    {
        swapAndLiquifyEnabled = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != uint256(-1)) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        _transferFrom(sender, recipient, amount);
        return true;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (ringmasterProtection) {
            if (!_hasLiqBeenAdded) {
                _checkLiquidityAdd(sender, recipient);
            } else {
                if (
                    _liqAddBlock > 0 &&
                    sender == pair &&
                    !_liquidityHolders[sender] &&
                    !_liquidityHolders[recipient]
                ) {
                    if (block.number - _liqAddBlock < 2) {
                        if (!_isRingmaster[recipient]) {
                            _ringmasters.push(recipient);
                        }
                        _isRingmaster[recipient] = true;
                    }
                }
            }
        }
        if (
            msg.sender != pair &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBack();
        }
        _checkTxLimit(sender, recipient, amount);
        require(!isWalletToWallet(sender, recipient), "Don't cheat");
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        uint256 amountReceived = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(msg.sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient
            ? totalFeeIfSelling
            : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function isWalletToWallet(address sender, address recipient)
        internal
        view
        returns (bool)
    {
        if (isFeeExempt[sender] || isFeeExempt[recipient]) {
            return false;
        }
        if (sender == pair || recipient == pair) {
            return false;
        }
        return true;
    }

    function swapBack() internal lockTheSwap {
        uint256 tokensToLiquify = swapThreshold;
        uint256 amountToSwap = tokensToLiquify;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETHMarketing = address(this).balance;
      
        (bool tmpSuccess, ) = payable(marketingWallet).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
          
        // only to supress warning msg
        tmpSuccess = false;
    }

    function getAllRewards()
        external
        view
        returns (address[] memory, uint256[] memory)
    {
        address[] memory mAddresses = new address[](rewardedAddresses.length);
        uint256[] memory mRewards = new uint256[](rewardedAddresses.length);
        for (uint256 i = 0; i < rewardedAddresses.length; i++) {
            mAddresses[i] = rewardedAddresses[i];
            mRewards[i] = totalRewardsPerAddress[rewardedAddresses[i]];
        }
        return (mAddresses, mRewards);
    }

    function recoverLosteth() external authorized {
        payable(msg.sender).transfer(address(this).balance);
    }

    function recoverLostTokens(address _token, uint256 _amount)
        external
        authorized
    {
        IERC20(_token).transfer(msg.sender, _amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuySum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"byeByeRingmasters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableRingmasterProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllRewards","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasSold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lowestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newResetPeriod","type":"uint256"}],"name":"setResetPeriodInSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalBuySumPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalRewardsPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380548216905560048054909116737a250d5630b4cf539739df2c5dacb4c659f2488d17905569d3c21bcecceda1000000600581905560006006819055600781905560088190556000196009908155610e10600a556016556017819055601855601c805460ff60b81b1961ffff60a01b19909116600160a81b1716600160b81b17905560649004601d55603260055481620000b357fe5b04601e5560c860055481620000c457fe5b04601f55348015620000d557600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff191690921790915560048054601b80549094166001600160a01b039182161793849055845163c45a015560e01b8152945193169363c45a01559381830193929091829003018186803b1580156200015557600080fd5b505afa1580156200016a573d6000803e3d6000fd5b505050506040513d60208110156200018157600080fd5b5051601b54604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b158015620001d057600080fd5b505afa158015620001e5573d6000803e3d6000fd5b505050506040513d6020811015620001fc57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200024c57600080fd5b505af115801562000261573d6000803e3d6000fd5b505050506040513d60208110156200027857600080fd5b5051601c80546001600160a01b039283166001600160a01b0319918216178255306000818152600e60209081526040808320601b5488168452825280832060001990556002805488168452600f808452828520805460ff19908116600190811790925592548a16865260108086528487208054851683179055338088529286528487208054851683179055878752848720805485168317905582875285528386208054841682179055958552828520805483168717905596549097168352808320805488168517905585835260128252808320805490971690931790955560198054841685179055601a805490931684179092556016546017819055601855600554600d855281832081905581519081529051929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3612a3880620003ca6000396000f3fe6080604052600436106102e85760003560e01c8063893d20e811610190578063ca987b0e116100dc578063f0b37c0411610095578063f84ba65d1161006f578063f84ba65d14610b13578063f887ea4014610b4e578063fe9fbb8014610b63578063feec927814610b96576102ef565b8063f0b37c0414610a98578063f2fde38b14610acb578063f5f2013414610afe576102ef565b8063ca987b0e14610980578063dd62ed3e14610995578063dec2ba0f146109d0578063df20fd4914610a09578063ec28438a14610a3b578063ed14f20a14610a65576102ef565b80639d0014b111610149578063a9059cbb11610123578063a9059cbb146108cc578063b6a5d7de14610905578063c0e5fec814610938578063ca33e64c1461096b576102ef565b80639d0014b114610852578063a4b45c001461087c578063a8aa1b31146108b7576102ef565b8063893d20e8146107b65780638b42507f146107cb5780638eb6889f146107fe578063944c1d971461081357806395d89b4114610828578063970a46df1461083d576102ef565b80633d18678e1161024f578063658d4b7f1161020857806370a08231116101e257806370a0823114610713578063712a890a1461074657806375f0a874146107705780637d1db4a5146107a1576102ef565b8063658d4b7f146106ae5780636b67c4df146106e95780636c0a24eb146106fe576102ef565b80633d18678e146105285780633f4218e01461055257806345b35f56146105855780634a74bb02146106335780634db6fb8314610648578063571ac8b01461067b576102ef565b806323b872dd116102a157806323b872dd1461043157806327a14fc2146104745780632b112e49146104a05780632f54bf6e146104b5578063313ce567146104e857806333596f5014610513576102ef565b80630445b667146102f457806306fdde031461031b578063095ea7b3146103a557806318160ddd146103f25780631df4ccfc146104075780632111bb2f1461041c576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bab565b60408051918252519081900360200190f35b34801561032757600080fd5b50610330610bb1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036a578181015183820152602001610352565b50505050905090810190601f1680156103975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b157600080fd5b506103de600480360360408110156103c857600080fd5b506001600160a01b038135169060200135610bd2565b604080519115158252519081900360200190f35b3480156103fe57600080fd5b50610309610c39565b34801561041357600080fd5b50610309610c3f565b34801561042857600080fd5b50610309610c45565b34801561043d57600080fd5b506103de6004803603606081101561045457600080fd5b506001600160a01b03813581169160208101359091169060400135610c4b565b34801561048057600080fd5b5061049e6004803603602081101561049757600080fd5b5035610d10565b005b3480156104ac57600080fd5b50610309610d5d565b3480156104c157600080fd5b506103de600480360360208110156104d857600080fd5b50356001600160a01b0316610da6565b3480156104f457600080fd5b506104fd610dba565b6040805160ff9092168252519081900360200190f35b34801561051f57600080fd5b5061049e610dbf565b34801561053457600080fd5b5061049e6004803603602081101561054b57600080fd5b5035610e36565b34801561055e57600080fd5b506103de6004803603602081101561057557600080fd5b50356001600160a01b0316610e8d565b34801561059157600080fd5b5061059a610ea2565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156105de5781810151838201526020016105c6565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561061d578181015183820152602001610605565b5050505090500194505050505060405180910390f35b34801561063f57600080fd5b506103de610fff565b34801561065457600080fd5b506103096004803603602081101561066b57600080fd5b50356001600160a01b031661100f565b34801561068757600080fd5b506103de6004803603602081101561069e57600080fd5b50356001600160a01b0316611021565b3480156106ba57600080fd5b5061049e600480360360408110156106d157600080fd5b506001600160a01b038135169060200135151561102f565b3480156106f557600080fd5b506103096110a2565b34801561070a57600080fd5b506103096110a8565b34801561071f57600080fd5b506103096004803603602081101561073657600080fd5b50356001600160a01b03166110ae565b34801561075257600080fd5b5061049e6004803603602081101561076957600080fd5b50356110c9565b34801561077c57600080fd5b50610785611116565b604080516001600160a01b039092168252519081900360200190f35b3480156107ad57600080fd5b50610309611125565b3480156107c257600080fd5b5061078561112b565b3480156107d757600080fd5b506103de600480360360208110156107ee57600080fd5b50356001600160a01b031661113a565b34801561080a57600080fd5b5061030961114f565b34801561081f57600080fd5b50610309611155565b34801561083457600080fd5b5061033061115b565b34801561084957600080fd5b5061049e61117c565b34801561085e57600080fd5b5061049e6004803603602081101561087557600080fd5b50356111d3565b34801561088857600080fd5b5061049e6004803603604081101561089f57600080fd5b506001600160a01b0381358116916020013516611220565b3480156108c357600080fd5b50610785611296565b3480156108d857600080fd5b506103de600480360360408110156108ef57600080fd5b506001600160a01b0381351690602001356112a5565b34801561091157600080fd5b5061049e6004803603602081101561092857600080fd5b50356001600160a01b03166112b2565b34801561094457600080fd5b506103096004803603602081101561095b57600080fd5b50356001600160a01b031661131c565b34801561097757600080fd5b5061078561132e565b34801561098c57600080fd5b5061030961133d565b3480156109a157600080fd5b50610309600480360360408110156109b857600080fd5b506001600160a01b0381358116916020013516611343565b3480156109dc57600080fd5b5061049e600480360360408110156109f357600080fd5b506001600160a01b03813516906020013561136e565b348015610a1557600080fd5b5061049e60048036036040811015610a2c57600080fd5b50803515159060200135611435565b348015610a4757600080fd5b5061049e60048036036020811015610a5e57600080fd5b503561149f565b348015610a7157600080fd5b506103de60048036036020811015610a8857600080fd5b50356001600160a01b03166114ec565b348015610aa457600080fd5b5061049e60048036036020811015610abb57600080fd5b50356001600160a01b0316611501565b348015610ad757600080fd5b5061049e60048036036020811015610aee57600080fd5b50356001600160a01b0316611565565b348015610b0a57600080fd5b5061049e611616565b348015610b1f57600080fd5b5061049e60048036036040811015610b3657600080fd5b506001600160a01b0381351690602001351515611978565b348015610b5a57600080fd5b506107856119eb565b348015610b6f57600080fd5b506103de60048036036020811015610b8657600080fd5b50356001600160a01b03166119fa565b348015610ba257600080fd5b50610309611a18565b601f5481565b6040805180820190915260078152665361627572616960c81b602082015290565b336000818152600e602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60055490565b60175481565b60085481565b6001600160a01b0383166000908152600e6020908152604080832033845290915281205460001914610cf8576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600e82528381203382529091529190912054610cd3918490611a1e565b6001600160a01b0385166000908152600e602090815260408083203384529091529020555b610d03848484611ab5565b50600190505b9392505050565b610d19336119fa565b610d58576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601e55565b600354600090610da190610d79906001600160a01b03166110ae565b600254610d9b90610d92906001600160a01b03166110ae565b60055490611dfd565b90611dfd565b905090565b6000546001600160a01b0390811691161490565b601290565b610dc8336119fa565b610e07576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015610e33573d6000803e3d6000fd5b50565b610e3f336119fa565b610e7e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60168190556017819055601855565b600f6020526000908152604090205460ff1681565b6060806060600b8054905067ffffffffffffffff81118015610ec357600080fd5b50604051908082528060200260200182016040528015610eed578160200160208202803683370190505b50600b5490915060609067ffffffffffffffff81118015610f0d57600080fd5b50604051908082528060200260200182016040528015610f37578160200160208202803683370190505b50905060005b600b54811015610ff557600b8181548110610f5457fe5b9060005260206000200160009054906101000a90046001600160a01b0316838281518110610f7e57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060156000600b8381548110610faf57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610fe257fe5b6020908102919091010152600101610f3d565b5090925090509091565b601c54600160b81b900460ff1681565b60146020526000908152604090205481565b6000610c3382600019610bd2565b611038336119fa565b611077576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60165481565b601e5481565b6001600160a01b03166000908152600d602052604090205490565b6110d2336119fa565b611111576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600a55565b601a546001600160a01b031681565b601d5481565b6000546001600160a01b031690565b60106020526000908152604090205460ff1681565b60075481565b600a5481565b6040805180820190915260078152665341425552414960c81b602082015290565b611185336119fa565b6111c4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c805460ff60a81b19169055565b6111dc336119fa565b61121b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601f55565b611229336119fa565b611268576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601980546001600160a01b039384166001600160a01b031991821617909155601a8054929093169116179055565b601c546001600160a01b031681565b6000610d09338484611ab5565b6112bb33610da6565b6112f5576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60156020526000908152604090205481565b6019546001600160a01b031681565b60185481565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b611377336119fa565b6113b6576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b15801561140557600080fd5b505af1158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b50505050565b61143e336119fa565b61147d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c8054921515600160b81b0260ff60b81b1990931692909217909155601f55565b6114a8336119fa565b6114e7576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601d55565b60116020526000908152604090205460ff1681565b61150a33610da6565b611544576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b61156e33610da6565b6115a8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61161f336119fa565b61165e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c805460ff60b01b1916600160b01b179055600c541561196957306000908152600d6020526040812054905b600c548110156117b3576116e1600d6000600c84815481106116a957fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812054308252600d909352205490611e3f565b306000818152600d6020526040902091909155600c80548390811061170257fe5b6000918252602082200154600c80546001600160a01b03909216926000805160206129e383398151915292600d92908790811061173b57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201902054815190815290519081900390910190a36000600d6000600c848154811061178657fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205560010161168b565b50306000908152600d6020526040908190205481516002808252606082810190945291849003929181602001602082028036833701905050905030816000815181106117fb57fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561184f57600080fd5b505afa158015611863573d6000803e3d6000fd5b505050506040513d602081101561187957600080fd5b505181518290600190811061188a57fe5b6001600160a01b03928316602091820292909201810191909152601b54601a5460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561192457818101518382015260200161190c565b505050509050019650505050505050600060405180830381600087803b15801561194d57600080fd5b505af1158015611961573d6000803e3d6000fd5b505050505050505b601c805460ff60b01b19169055565b611981336119fa565b6119c0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b601b546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b60095481565b60008184841115611aad5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a72578181015183820152602001611a5a565b50505050905090810190601f168015611a9f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b601c54600090600160b01b900460ff1615611adc57611ad5848484611e99565b9050610d09565b601c54600160a81b900460ff1615611c1957601c54600160a01b900460ff16611b0e57611b098484611f68565b611c19565b6000600654118015611b2d5750601c546001600160a01b038581169116145b8015611b5257506001600160a01b03841660009081526012602052604090205460ff16155b8015611b7757506001600160a01b03831660009081526012602052604090205460ff16155b15611c1957600260065443031015611c19576001600160a01b03831660009081526013602052604090205460ff16611bf557600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0383166000908152601360205260409020805460ff191660011790555b601c546001600160a01b03163314801590611c3e5750601c54600160b01b900460ff16155b8015611c535750601c54600160b81b900460ff165b8015611c705750601f54306000908152600d602052604090205410155b15611c7d57611c7d612007565b611c8884848461224c565b611c928484612742565b15611cd2576040805162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b604482015290519081900360640190fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600d9091529190912054611d24918490611a1e565b6001600160a01b0385166000908152600d6020908152604080832093909355600f90529081205460ff16158015611d7457506001600160a01b0384166000908152600f602052604090205460ff16155b611d7e5782611d89565b611d898585856127cd565b6001600160a01b0385166000908152600d6020526040902054909150611daf9082611e3f565b6001600160a01b0385166000818152600d60209081526040918290209390935580518481529051919233926000805160206129e38339815191529281900390910190a3506001949350505050565b6000610d0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1e565b600082820183811015610d09576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600d90915291822054611eea918490611a1e565b6001600160a01b038086166000908152600d60205260408082209390935590851681522054611f199083611e3f565b6001600160a01b038085166000818152600d602090815260409182902094909455805186815290519193928816926000805160206129e383398151915292918290030190a35060019392505050565b601c54600160a01b900460ff1615611fb15760405162461bcd60e51b815260040180806020018281038252602381526020018061297c6023913960400191505060405180910390fd5b6001600160a01b03821660009081526012602052604090205460ff168015611fe65750601c546001600160a01b038281169116145b1561200357601c805460ff60a01b1916600160a01b179055436006555b5050565b601c805460ff60b01b1916600160b01b179055601f5460408051600280825260608083018452849390929190602083019080368337019050509050308160008151811061205057fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120a457600080fd5b505afa1580156120b8573d6000803e3d6000fd5b505050506040513d60208110156120ce57600080fd5b50518151829060019081106120df57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601b60009054906101000a90046001600160a01b03166001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612199578181015183820152602001612181565b505050509050019650505050505050600060405180830381600087803b1580156121c257600080fd5b505af11580156121d6573d6000803e3d6000fd5b5050601a54604051479350600092506001600160a01b039091169061753090849084818181858888f193505050503d8060008114612230576040519150601f19603f3d011682016040523d82523d6000602084013e612235565b606091505b5050601c805460ff60b01b19169055505050505050565b6000546001600160a01b0384811691161480159061227857506000546001600160a01b03838116911614155b801561229d57506001600160a01b03821660009081526010602052604090205460ff16155b80156122b757506003546001600160a01b03838116911614155b80156122d157506002546001600160a01b03838116911614155b80156122eb5750601c546001600160a01b03838116911614155b801561230057506001600160a01b0382163014155b1561267857601d54811115612345576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b6000612350836110ae565b9050601e5482820111156123955760405162461bcd60e51b815260040180806020018281038252602381526020018061299f6023913960400191505060405180910390fd5b60408051600280825260608083018452926020830190803683375050601b54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156123f957600080fd5b505afa15801561240d573d6000803e3d6000fd5b505050506040513d602081101561242357600080fd5b50518151829060009061243257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061246057fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516307c0329d60e21b815260048101888152602482019283528651604483015286516000969490941694631f00ca74948a948994909260649091019185820191028083838c5b838110156124de5781810151838201526020016124c6565b50505050905001935050505060006040518083038186803b15801561250257600080fd5b505afa158015612516573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561253f57600080fd5b810190808051604051939291908464010000000082111561255f57600080fd5b90830190602082018581111561257457600080fd5b825186602082028301116401000000008211171561259157600080fd5b82525081516020918201928201910280838360005b838110156125be5781810151838201526020016125a6565b505050509050016040525050506000815181106125d757fe5b6020908102919091018101516001600160a01b03871660009081526014835260408082208054840190556011909352919091205490915060ff16612674576008546001600160a01b0386166000908152601460205260409020541115612654576001600160a01b0385166000908152601460205260409020546008555b6007548111156126645760078190555b6009548110156126745760098190555b5050505b6000546001600160a01b038481169116148015906126a457506000546001600160a01b03838116911614155b80156126c957506001600160a01b03831660009081526010602052604090205460ff16155b80156126e35750601c546001600160a01b03848116911614155b80156126f857506001600160a01b0382163014155b1561273d57601d5481111561273d576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b505050565b6001600160a01b0382166000908152600f602052604081205460ff168061278157506001600160a01b0382166000908152600f602052604090205460ff165b1561278e57506000610c33565b601c546001600160a01b03848116911614806127b75750601c546001600160a01b038381169116145b156127c457506000610c33565b50600192915050565b601c5460009081906001600160a01b038581169116146127ef576017546127f3565b6018545b9050600061280c60646128068685612880565b906128d9565b306000908152600d60205260409020549091506128299082611e3f565b306000818152600d6020908152604091829020939093558051848152905191926001600160a01b038a16926000805160206129e38339815191529281900390910190a36128768482611dfd565b9695505050505050565b60008261288f57506000610c33565b8282028284828161289c57fe5b0414610d095760405162461bcd60e51b81526004018080602001828103825260218152602001806129c26021913960400191505060405180910390fd5b6000610d0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836129655760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a72578181015183820152602001611a5a565b50600083858161297157fe5b049594505050505056fe4c697175696469747920616c726561647920616464656420616e64206d61726b65642e45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f680ec199b15131e750d79575cfb5c70824bddab3a02a7dd7e6072382ed26cb764736f6c63430007040033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063893d20e811610190578063ca987b0e116100dc578063f0b37c0411610095578063f84ba65d1161006f578063f84ba65d14610b13578063f887ea4014610b4e578063fe9fbb8014610b63578063feec927814610b96576102ef565b8063f0b37c0414610a98578063f2fde38b14610acb578063f5f2013414610afe576102ef565b8063ca987b0e14610980578063dd62ed3e14610995578063dec2ba0f146109d0578063df20fd4914610a09578063ec28438a14610a3b578063ed14f20a14610a65576102ef565b80639d0014b111610149578063a9059cbb11610123578063a9059cbb146108cc578063b6a5d7de14610905578063c0e5fec814610938578063ca33e64c1461096b576102ef565b80639d0014b114610852578063a4b45c001461087c578063a8aa1b31146108b7576102ef565b8063893d20e8146107b65780638b42507f146107cb5780638eb6889f146107fe578063944c1d971461081357806395d89b4114610828578063970a46df1461083d576102ef565b80633d18678e1161024f578063658d4b7f1161020857806370a08231116101e257806370a0823114610713578063712a890a1461074657806375f0a874146107705780637d1db4a5146107a1576102ef565b8063658d4b7f146106ae5780636b67c4df146106e95780636c0a24eb146106fe576102ef565b80633d18678e146105285780633f4218e01461055257806345b35f56146105855780634a74bb02146106335780634db6fb8314610648578063571ac8b01461067b576102ef565b806323b872dd116102a157806323b872dd1461043157806327a14fc2146104745780632b112e49146104a05780632f54bf6e146104b5578063313ce567146104e857806333596f5014610513576102ef565b80630445b667146102f457806306fdde031461031b578063095ea7b3146103a557806318160ddd146103f25780631df4ccfc146104075780632111bb2f1461041c576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bab565b60408051918252519081900360200190f35b34801561032757600080fd5b50610330610bb1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036a578181015183820152602001610352565b50505050905090810190601f1680156103975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b157600080fd5b506103de600480360360408110156103c857600080fd5b506001600160a01b038135169060200135610bd2565b604080519115158252519081900360200190f35b3480156103fe57600080fd5b50610309610c39565b34801561041357600080fd5b50610309610c3f565b34801561042857600080fd5b50610309610c45565b34801561043d57600080fd5b506103de6004803603606081101561045457600080fd5b506001600160a01b03813581169160208101359091169060400135610c4b565b34801561048057600080fd5b5061049e6004803603602081101561049757600080fd5b5035610d10565b005b3480156104ac57600080fd5b50610309610d5d565b3480156104c157600080fd5b506103de600480360360208110156104d857600080fd5b50356001600160a01b0316610da6565b3480156104f457600080fd5b506104fd610dba565b6040805160ff9092168252519081900360200190f35b34801561051f57600080fd5b5061049e610dbf565b34801561053457600080fd5b5061049e6004803603602081101561054b57600080fd5b5035610e36565b34801561055e57600080fd5b506103de6004803603602081101561057557600080fd5b50356001600160a01b0316610e8d565b34801561059157600080fd5b5061059a610ea2565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156105de5781810151838201526020016105c6565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561061d578181015183820152602001610605565b5050505090500194505050505060405180910390f35b34801561063f57600080fd5b506103de610fff565b34801561065457600080fd5b506103096004803603602081101561066b57600080fd5b50356001600160a01b031661100f565b34801561068757600080fd5b506103de6004803603602081101561069e57600080fd5b50356001600160a01b0316611021565b3480156106ba57600080fd5b5061049e600480360360408110156106d157600080fd5b506001600160a01b038135169060200135151561102f565b3480156106f557600080fd5b506103096110a2565b34801561070a57600080fd5b506103096110a8565b34801561071f57600080fd5b506103096004803603602081101561073657600080fd5b50356001600160a01b03166110ae565b34801561075257600080fd5b5061049e6004803603602081101561076957600080fd5b50356110c9565b34801561077c57600080fd5b50610785611116565b604080516001600160a01b039092168252519081900360200190f35b3480156107ad57600080fd5b50610309611125565b3480156107c257600080fd5b5061078561112b565b3480156107d757600080fd5b506103de600480360360208110156107ee57600080fd5b50356001600160a01b031661113a565b34801561080a57600080fd5b5061030961114f565b34801561081f57600080fd5b50610309611155565b34801561083457600080fd5b5061033061115b565b34801561084957600080fd5b5061049e61117c565b34801561085e57600080fd5b5061049e6004803603602081101561087557600080fd5b50356111d3565b34801561088857600080fd5b5061049e6004803603604081101561089f57600080fd5b506001600160a01b0381358116916020013516611220565b3480156108c357600080fd5b50610785611296565b3480156108d857600080fd5b506103de600480360360408110156108ef57600080fd5b506001600160a01b0381351690602001356112a5565b34801561091157600080fd5b5061049e6004803603602081101561092857600080fd5b50356001600160a01b03166112b2565b34801561094457600080fd5b506103096004803603602081101561095b57600080fd5b50356001600160a01b031661131c565b34801561097757600080fd5b5061078561132e565b34801561098c57600080fd5b5061030961133d565b3480156109a157600080fd5b50610309600480360360408110156109b857600080fd5b506001600160a01b0381358116916020013516611343565b3480156109dc57600080fd5b5061049e600480360360408110156109f357600080fd5b506001600160a01b03813516906020013561136e565b348015610a1557600080fd5b5061049e60048036036040811015610a2c57600080fd5b50803515159060200135611435565b348015610a4757600080fd5b5061049e60048036036020811015610a5e57600080fd5b503561149f565b348015610a7157600080fd5b506103de60048036036020811015610a8857600080fd5b50356001600160a01b03166114ec565b348015610aa457600080fd5b5061049e60048036036020811015610abb57600080fd5b50356001600160a01b0316611501565b348015610ad757600080fd5b5061049e60048036036020811015610aee57600080fd5b50356001600160a01b0316611565565b348015610b0a57600080fd5b5061049e611616565b348015610b1f57600080fd5b5061049e60048036036040811015610b3657600080fd5b506001600160a01b0381351690602001351515611978565b348015610b5a57600080fd5b506107856119eb565b348015610b6f57600080fd5b506103de60048036036020811015610b8657600080fd5b50356001600160a01b03166119fa565b348015610ba257600080fd5b50610309611a18565b601f5481565b6040805180820190915260078152665361627572616960c81b602082015290565b336000818152600e602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60055490565b60175481565b60085481565b6001600160a01b0383166000908152600e6020908152604080832033845290915281205460001914610cf8576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600e82528381203382529091529190912054610cd3918490611a1e565b6001600160a01b0385166000908152600e602090815260408083203384529091529020555b610d03848484611ab5565b50600190505b9392505050565b610d19336119fa565b610d58576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601e55565b600354600090610da190610d79906001600160a01b03166110ae565b600254610d9b90610d92906001600160a01b03166110ae565b60055490611dfd565b90611dfd565b905090565b6000546001600160a01b0390811691161490565b601290565b610dc8336119fa565b610e07576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015610e33573d6000803e3d6000fd5b50565b610e3f336119fa565b610e7e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60168190556017819055601855565b600f6020526000908152604090205460ff1681565b6060806060600b8054905067ffffffffffffffff81118015610ec357600080fd5b50604051908082528060200260200182016040528015610eed578160200160208202803683370190505b50600b5490915060609067ffffffffffffffff81118015610f0d57600080fd5b50604051908082528060200260200182016040528015610f37578160200160208202803683370190505b50905060005b600b54811015610ff557600b8181548110610f5457fe5b9060005260206000200160009054906101000a90046001600160a01b0316838281518110610f7e57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060156000600b8381548110610faf57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610fe257fe5b6020908102919091010152600101610f3d565b5090925090509091565b601c54600160b81b900460ff1681565b60146020526000908152604090205481565b6000610c3382600019610bd2565b611038336119fa565b611077576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60165481565b601e5481565b6001600160a01b03166000908152600d602052604090205490565b6110d2336119fa565b611111576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600a55565b601a546001600160a01b031681565b601d5481565b6000546001600160a01b031690565b60106020526000908152604090205460ff1681565b60075481565b600a5481565b6040805180820190915260078152665341425552414960c81b602082015290565b611185336119fa565b6111c4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c805460ff60a81b19169055565b6111dc336119fa565b61121b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601f55565b611229336119fa565b611268576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601980546001600160a01b039384166001600160a01b031991821617909155601a8054929093169116179055565b601c546001600160a01b031681565b6000610d09338484611ab5565b6112bb33610da6565b6112f5576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60156020526000908152604090205481565b6019546001600160a01b031681565b60185481565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b611377336119fa565b6113b6576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b15801561140557600080fd5b505af1158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b50505050565b61143e336119fa565b61147d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c8054921515600160b81b0260ff60b81b1990931692909217909155601f55565b6114a8336119fa565b6114e7576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601d55565b60116020526000908152604090205460ff1681565b61150a33610da6565b611544576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b61156e33610da6565b6115a8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61161f336119fa565b61165e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c805460ff60b01b1916600160b01b179055600c541561196957306000908152600d6020526040812054905b600c548110156117b3576116e1600d6000600c84815481106116a957fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812054308252600d909352205490611e3f565b306000818152600d6020526040902091909155600c80548390811061170257fe5b6000918252602082200154600c80546001600160a01b03909216926000805160206129e383398151915292600d92908790811061173b57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201902054815190815290519081900390910190a36000600d6000600c848154811061178657fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205560010161168b565b50306000908152600d6020526040908190205481516002808252606082810190945291849003929181602001602082028036833701905050905030816000815181106117fb57fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561184f57600080fd5b505afa158015611863573d6000803e3d6000fd5b505050506040513d602081101561187957600080fd5b505181518290600190811061188a57fe5b6001600160a01b03928316602091820292909201810191909152601b54601a5460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561192457818101518382015260200161190c565b505050509050019650505050505050600060405180830381600087803b15801561194d57600080fd5b505af1158015611961573d6000803e3d6000fd5b505050505050505b601c805460ff60b01b19169055565b611981336119fa565b6119c0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b601b546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b60095481565b60008184841115611aad5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a72578181015183820152602001611a5a565b50505050905090810190601f168015611a9f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b601c54600090600160b01b900460ff1615611adc57611ad5848484611e99565b9050610d09565b601c54600160a81b900460ff1615611c1957601c54600160a01b900460ff16611b0e57611b098484611f68565b611c19565b6000600654118015611b2d5750601c546001600160a01b038581169116145b8015611b5257506001600160a01b03841660009081526012602052604090205460ff16155b8015611b7757506001600160a01b03831660009081526012602052604090205460ff16155b15611c1957600260065443031015611c19576001600160a01b03831660009081526013602052604090205460ff16611bf557600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0383166000908152601360205260409020805460ff191660011790555b601c546001600160a01b03163314801590611c3e5750601c54600160b01b900460ff16155b8015611c535750601c54600160b81b900460ff165b8015611c705750601f54306000908152600d602052604090205410155b15611c7d57611c7d612007565b611c8884848461224c565b611c928484612742565b15611cd2576040805162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b604482015290519081900360640190fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600d9091529190912054611d24918490611a1e565b6001600160a01b0385166000908152600d6020908152604080832093909355600f90529081205460ff16158015611d7457506001600160a01b0384166000908152600f602052604090205460ff16155b611d7e5782611d89565b611d898585856127cd565b6001600160a01b0385166000908152600d6020526040902054909150611daf9082611e3f565b6001600160a01b0385166000818152600d60209081526040918290209390935580518481529051919233926000805160206129e38339815191529281900390910190a3506001949350505050565b6000610d0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1e565b600082820183811015610d09576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600d90915291822054611eea918490611a1e565b6001600160a01b038086166000908152600d60205260408082209390935590851681522054611f199083611e3f565b6001600160a01b038085166000818152600d602090815260409182902094909455805186815290519193928816926000805160206129e383398151915292918290030190a35060019392505050565b601c54600160a01b900460ff1615611fb15760405162461bcd60e51b815260040180806020018281038252602381526020018061297c6023913960400191505060405180910390fd5b6001600160a01b03821660009081526012602052604090205460ff168015611fe65750601c546001600160a01b038281169116145b1561200357601c805460ff60a01b1916600160a01b179055436006555b5050565b601c805460ff60b01b1916600160b01b179055601f5460408051600280825260608083018452849390929190602083019080368337019050509050308160008151811061205057fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120a457600080fd5b505afa1580156120b8573d6000803e3d6000fd5b505050506040513d60208110156120ce57600080fd5b50518151829060019081106120df57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601b60009054906101000a90046001600160a01b03166001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612199578181015183820152602001612181565b505050509050019650505050505050600060405180830381600087803b1580156121c257600080fd5b505af11580156121d6573d6000803e3d6000fd5b5050601a54604051479350600092506001600160a01b039091169061753090849084818181858888f193505050503d8060008114612230576040519150601f19603f3d011682016040523d82523d6000602084013e612235565b606091505b5050601c805460ff60b01b19169055505050505050565b6000546001600160a01b0384811691161480159061227857506000546001600160a01b03838116911614155b801561229d57506001600160a01b03821660009081526010602052604090205460ff16155b80156122b757506003546001600160a01b03838116911614155b80156122d157506002546001600160a01b03838116911614155b80156122eb5750601c546001600160a01b03838116911614155b801561230057506001600160a01b0382163014155b1561267857601d54811115612345576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b6000612350836110ae565b9050601e5482820111156123955760405162461bcd60e51b815260040180806020018281038252602381526020018061299f6023913960400191505060405180910390fd5b60408051600280825260608083018452926020830190803683375050601b54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156123f957600080fd5b505afa15801561240d573d6000803e3d6000fd5b505050506040513d602081101561242357600080fd5b50518151829060009061243257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061246057fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516307c0329d60e21b815260048101888152602482019283528651604483015286516000969490941694631f00ca74948a948994909260649091019185820191028083838c5b838110156124de5781810151838201526020016124c6565b50505050905001935050505060006040518083038186803b15801561250257600080fd5b505afa158015612516573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561253f57600080fd5b810190808051604051939291908464010000000082111561255f57600080fd5b90830190602082018581111561257457600080fd5b825186602082028301116401000000008211171561259157600080fd5b82525081516020918201928201910280838360005b838110156125be5781810151838201526020016125a6565b505050509050016040525050506000815181106125d757fe5b6020908102919091018101516001600160a01b03871660009081526014835260408082208054840190556011909352919091205490915060ff16612674576008546001600160a01b0386166000908152601460205260409020541115612654576001600160a01b0385166000908152601460205260409020546008555b6007548111156126645760078190555b6009548110156126745760098190555b5050505b6000546001600160a01b038481169116148015906126a457506000546001600160a01b03838116911614155b80156126c957506001600160a01b03831660009081526010602052604090205460ff16155b80156126e35750601c546001600160a01b03848116911614155b80156126f857506001600160a01b0382163014155b1561273d57601d5481111561273d576040805162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b604482015290519081900360640190fd5b505050565b6001600160a01b0382166000908152600f602052604081205460ff168061278157506001600160a01b0382166000908152600f602052604090205460ff165b1561278e57506000610c33565b601c546001600160a01b03848116911614806127b75750601c546001600160a01b038381169116145b156127c457506000610c33565b50600192915050565b601c5460009081906001600160a01b038581169116146127ef576017546127f3565b6018545b9050600061280c60646128068685612880565b906128d9565b306000908152600d60205260409020549091506128299082611e3f565b306000818152600d6020908152604091829020939093558051848152905191926001600160a01b038a16926000805160206129e38339815191529281900390910190a36128768482611dfd565b9695505050505050565b60008261288f57506000610c33565b8282028284828161289c57fe5b0414610d095760405162461bcd60e51b81526004018080602001828103825260218152602001806129c26021913960400191505060405180910390fd5b6000610d0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836129655760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a72578181015183820152602001611a5a565b50600083858161297157fe5b049594505050505056fe4c697175696469747920616c726561647920616464656420616e64206d61726b65642e45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f680ec199b15131e750d79575cfb5c70824bddab3a02a7dd7e6072382ed26cb764736f6c63430007040033

Deployed Bytecode Sourcemap

5541:14195:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7307:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8475:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9900:248;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9900:248:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8785:102;;;;;;;;;;;;;:::i;6814:27::-;;;;;;;;;;;;;:::i;6071:32::-;;;;;;;;;;;;;:::i;14704:431::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14704:431:0;;;;;;;;;;;;;;;;;:::i;9380:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9380:108:0;;:::i;:::-;;8995:142;;;;;;;;;;;;;:::i;4967:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4967:103:0;-1:-1:-1;;;;;4967:103:0;;:::i;8683:94::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19443:116;;;;;;;;;;;;;:::i;9496:200::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9496:200:0;;:::i;6387:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6387:43:0;-1:-1:-1;;;;;6387:43:0;;:::i;18912:523::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7135:40;;;;;;;;;;;;;:::i;6647:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6647:56:0;-1:-1:-1;;;;;6647:56:0;;:::i;10156:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10156:116:0;-1:-1:-1;;;;;10156:116:0;;:::i;10280:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10280:120:0;;;;;;;;;;:::i;6776:31::-;;;;;;;;;;;;;:::i;7243:51::-;;;;;;;;;;;;;:::i;9145:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9145:119:0;-1:-1:-1;;;;;9145:119:0;;:::i;11229:147::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11229:147:0;;:::i;6934:30::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;6934:30:0;;;;;;;;;;;;;;7182:48;;;;;;;;;;;;;:::i;8895:92::-;;;;;;;;;;;;;:::i;6437:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6437:47:0;-1:-1:-1;;;;;6437:47:0;;:::i;6035:29::-;;;;;;;;;;;;;:::i;6155:36::-;;;;;;;;;;;;;:::i;8577:98::-;;;;;;;;;;;;;:::i;11386:104::-;;;;;;;;;;;;;:::i;10567:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10567:109:0;;:::i;10684:238::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10684:238:0;;;;;;;;;;:::i;7004:19::-;;;;;;;;;;;;;:::i;14508:188::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14508:188:0;;;;;;;;:::i;4760:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4760:94:0;-1:-1:-1;;;;;4760:94:0;;:::i;6710:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6710:57:0;-1:-1:-1;;;;;6710:57:0;;:::i;6891:36::-;;;;;;;;;;;;;:::i;6848:::-;;;;;;;;;;;;;:::i;9704:188::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9704:188:0;;;;;;;;;;:::i;19567:166::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19567:166:0;;;;;;;;:::i;14281:219::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14281:219:0;;;;;;;;;:::i;9272:100::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9272:100:0;;:::i;6491:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6491:39:0;-1:-1:-1;;;;;6491:39:0;;:::i;4862:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4862:97:0;-1:-1:-1;;;;;4862:97:0;;:::i;5193:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5193:173:0;-1:-1:-1;;;;;5193:173:0;;:::i;11498:1099::-;;;;;;;;;;;;;:::i;10408:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10408:151:0;;;;;;;;;;:::i;6973:24::-;;;;;;;;;;;;;:::i;5078:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5078:107:0;-1:-1:-1;;;;;5078:107:0;;:::i;6110:38::-;;;;;;;;;;;;;:::i;7307:49::-;;;;:::o;8475:94::-;8556:5;;;;;;;;;;;;-1:-1:-1;;;8556:5:0;;;;8475:94;:::o;9900:248::-;10036:10;10002:4;10024:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10024:32:0;;;;;;;;;;;:41;;;10081:37;;;;;;;10002:4;;10024:32;;10036:10;;10081:37;;;;;;;;-1:-1:-1;10136:4:0;9900:248;;;;;:::o;8785:102::-;8867:12;;8785:102;:::o;6814:27::-;;;;:::o;6071:32::-;;;;:::o;14704:431::-;-1:-1:-1;;;;;14859:19:0;;14838:4;14859:19;;;:11;:19;;;;;;;;14879:10;14859:31;;;;;;;;-1:-1:-1;;14859:46:0;14855:200;;14956:87;;;;;;;;;;;-1:-1:-1;;;14956:87:0;;;;;;;;-1:-1:-1;;;;;14956:19:0;;-1:-1:-1;14956:19:0;;;:11;:19;;;;;14976:10;14956:31;;;;;;;;;;:87;;15010:6;;14956:53;:87::i;:::-;-1:-1:-1;;;;;14922:19:0;;;;;;:11;:19;;;;;;;;14942:10;14922:31;;;;;;;:121;14855:200;15065:40;15079:6;15087:9;15098:6;15065:13;:40::i;:::-;;15123:4;15116:11;;14704:431;;;;;;:::o;9380:108::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;9455:16:::1;:25:::0;9380:108::o;8995:142::-;9123:4;;9048:7;;9075:54;;9113:15;;-1:-1:-1;;;;;9123:4:0;9113:9;:15::i;:::-;9102:4;;9075:33;;9092:15;;-1:-1:-1;;;;;9102:4:0;9092:9;:15::i;:::-;9075:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;9068:61;;8995:142;:::o;4967:103::-;5022:4;5057:5;-1:-1:-1;;;;;5057:5:0;;;5046:16;;;;4967:103::o;8683:94::-;5725:2;8683:94;:::o;19443:116::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;19500:51:::1;::::0;19508:10:::1;::::0;19529:21:::1;19500:51:::0;::::1;;;::::0;::::1;::::0;;;19529:21;19508:10;19500:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19443:116::o:0;9496:200::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;9585:12:::1;:30:::0;;;9626:8:::1;:23:::0;;;9660:17:::1;:28:::0;9496:200::o;6387:43::-;;;;;;;;;;;;;;;:::o;18912:523::-;18987:16;19005;19039:27;19083:17;:24;;;;19069:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19069:39:0;-1:-1:-1;19161:17:0;:24;19039:69;;-1:-1:-1;19119:25:0;;19147:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19147:39:0;;19119:67;;19202:9;19197:191;19221:17;:24;19217:28;;19197:191;;;19283:17;19301:1;19283:20;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19283:20:0;19267:10;19278:1;19267:13;;;;;;;;;;;;;:36;-1:-1:-1;;;;;19267:36:0;;;-1:-1:-1;;;;;19267:36:0;;;;;19332:22;:44;19355:17;19373:1;19355:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19355:20:0;19332:44;;;;;;;;;;;;;19318:11;;:8;;19327:1;;19318:11;;;;;;;;;;;;;;;:58;19247:3;;19197:191;;;-1:-1:-1;19406:10:0;;-1:-1:-1;19418:8:0;-1:-1:-1;18912:523:0;;:::o;7135:40::-;;;-1:-1:-1;;;7135:40:0;;;;;:::o;6647:56::-;;;;;;;;;;;;;:::o;10156:116::-;10211:4;10235:29;10243:7;-1:-1:-1;;10235:7:0;:29::i;10280:120::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10364:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;10364:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10280:120::o;6776:31::-;;;;:::o;7243:51::-;;;;:::o;9145:119::-;-1:-1:-1;;;;;9238:18:0;9211:7;9238:18;;;:9;:18;;;;;;;9145:119::o;11229:147::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;11340:11:::1;:28:::0;11229:147::o;6934:30::-;;;-1:-1:-1;;;;;6934:30:0;;:::o;7182:48::-;;;;:::o;8895:92::-;8947:7;8974:5;-1:-1:-1;;;;;8974:5:0;8895:92;:::o;6437:47::-;;;;;;;;;;;;;;;:::o;6035:29::-;;;;:::o;6155:36::-;;;;:::o;8577:98::-;8660:7;;;;;;;;;;;;-1:-1:-1;;;8660:7:0;;;;8577:98;:::o;11386:104::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;11454:20:::1;:28:::0;;-1:-1:-1;;;;11454:28:0::1;::::0;;11386:104::o;10567:109::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;10643:13:::1;:25:::0;10567:109::o;10684:238::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;10823:21:::1;:44:::0;;-1:-1:-1;;;;;10823:44:0;;::::1;-1:-1:-1::0;;;;;;10823:44:0;;::::1;;::::0;;;10878:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;10684:238::o;7004:19::-;;;-1:-1:-1;;;;;7004:19:0;;:::o;14508:188::-;14615:4;14644:44;14658:10;14670:9;14681:6;14644:13;:44::i;4760:94::-;4595:19;4603:10;4595:7;:19::i;:::-;4587:38;;;;;-1:-1:-1;;;4587:38:0;;;;;;;;;;;;-1:-1:-1;;;4587:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4820:19:0::1;;::::0;;;4842:4:::1;4820:19;::::0;;;;;;;:26;;-1:-1:-1;;4820:26:0::1;::::0;;::::1;::::0;;4760:94::o;6710:57::-;;;;;;;;;;;;;:::o;6891:36::-;;;-1:-1:-1;;;;;6891:36:0;;:::o;6848:::-;;;;:::o;9704:188::-;-1:-1:-1;;;;;9856:19:0;;;9824:7;9856:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9704:188::o;19567:166::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;19681:44:::1;::::0;;-1:-1:-1;;;19681:44:0;;19705:10:::1;19681:44;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;19681:23:0;::::1;::::0;::::1;::::0;:44;;;;;::::1;::::0;;;;;;;;-1:-1:-1;19681:23:0;:44;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;19567:166:0:o;14281:219::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;14411:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;14411:38:0::1;-1:-1:-1::0;;;;14411:38:0;;::::1;::::0;;;::::1;::::0;;;14460:13:::1;:32:::0;14281:219::o;9272:100::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;9343:12:::1;:21:::0;9272:100::o;6491:39::-;;;;;;;;;;;;;;;:::o;4862:97::-;4595:19;4603:10;4595:7;:19::i;:::-;4587:38;;;;;-1:-1:-1;;;4587:38:0;;;;;;;;;;;;-1:-1:-1;;;4587:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4924:19:0::1;4946:5;4924:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4924:27:0::1;::::0;;4862:97::o;5193:173::-;4595:19;4603:10;4595:7;:19::i;:::-;4587:38;;;;;-1:-1:-1;;;4587:38:0;;;;;;;;;;;;-1:-1:-1;;;4587:38:0;;;;;;;;;;;;;;;5269:5:::1;:11:::0;;-1:-1:-1;;;;;;5269:11:0::1;-1:-1:-1::0;;;;;5269:11:0;::::1;::::0;;::::1;::::0;;5291:19;;;-1:-1:-1;5291:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;5291:26:0::1;::::0;;::::1;::::0;;;5333:25;;;;;;;::::1;::::0;;;;;;;;;::::1;5193:173:::0;:::o;11498:1099::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;7399:16:::1;:23:::0;;-1:-1:-1;;;;7399:23:0::1;-1:-1:-1::0;;;7399:23:0::1;::::0;;11572:12:::2;:19:::0;:23;11568:1022:::2;;11659:4;11612:26;11641:24:::0;;;:9:::2;:24;::::0;;;;;;11680:431:::2;11704:12;:19:::0;11700:23;::::2;11680:431;;;11776:96;11827:9;:26;11837:12;11850:1;11837:15;;;;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;11837:15:0::2;11827:26:::0;;;;::::2;::::0;;;;;;;;;;;11794:4:::2;11776:24:::0;;:9:::2;:24:::0;;;;;;:28:::2;:96::i;:::-;11767:4;11749:24;::::0;;;:9:::2;:24;::::0;;;;:123;;;;11927:12:::2;:15:::0;;11940:1;;11927:15;::::2;;;;;;::::0;;;::::2;::::0;;::::2;::::0;12011:12:::2;:15:::0;;-1:-1:-1;;;;;11927:15:0;;::::2;::::0;-1:-1:-1;;;;;;;;;;;11896:150:0;12001:9:::2;::::0;12011:12;12024:1;;12011:15;::::2;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;12011:15:0::2;12001:26:::0;;;;::::2;::::0;;;;;;;;;;;11896:150;;;;;;;;;;;;;;;::::2;12094:1;12065:9;:26;12075:12;12088:1;12075:15;;;;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;12075:15:0::2;12065:26:::0;;;::::2;::::0;;;;;;;;:30;12075:15;11725:3:::2;11680:431;;;-1:-1:-1::0;12169:4:0::2;12125:23;12151:24:::0;;;:9:::2;:24;::::0;;;;;;;12252:16;;12266:1:::2;12252:16:::0;;;12228:21:::2;12252:16:::0;;::::2;::::0;;;12151:62;;;::::2;::::0;12228:21;12252:16:::2;;;;;;;;;;;::::0;-1:-1:-1;12252:16:0::2;12228:40;;12301:4;12283;12288:1;12283:7;;;;;;;;-1:-1:-1::0;;;;;12283:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;12331:6:::2;::::0;:13:::2;::::0;;-1:-1:-1;;;12331:13:0;;;;:6;;;::::2;::::0;:11:::2;::::0;:13:::2;::::0;;::::2;::::0;12283:7;;12331:13;;;;;:6;:13;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;12331:13:0;12321:7;;:4;;12326:1:::2;::::0;12321:7;::::2;;;;;-1:-1:-1::0;;;;;12321:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;12361:6:::2;::::0;12514:15:::2;::::0;12361:217:::2;::::0;-1:-1:-1;;;12361:217:0;;::::2;::::0;::::2;::::0;;;:6:::2;:217:::0;;;;;;12514:15;;::::2;12361:217:::0;;;;;;12548:15:::2;12361:217:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::2;::::0;:57:::2;::::0;12437:15;;12491:4;;12514:15;;12548;;12361:217;;;;;::::2;::::0;::::2;::::0;;;:6;:217:::2;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;11568:1022;;;;7445:16:::1;:24:::0;;-1:-1:-1;;;;7445:24:0::1;::::0;;11498:1099::o;10408:151::-;4692:24;4705:10;4692:12;:24::i;:::-;4684:48;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;-1:-1:-1;;;4684:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10519:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;10519:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10408:151::o;6973:24::-;;;-1:-1:-1;;;;;6973:24:0;;:::o;5078:107::-;-1:-1:-1;;;;;5158:19:0;5134:4;5158:19;;;:14;:19;;;;;;;;;5078:107::o;6110:38::-;;;;:::o;422:224::-;542:7;578:12;570:6;;;;562:29;;;;-1:-1:-1;;;562:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;614:5:0;;;422:224::o;15143:1737::-;15290:16;;15269:4;;-1:-1:-1;;;15290:16:0;;;;15286:97;;;15330:41;15345:6;15353:9;15364:6;15330:14;:41::i;:::-;15323:48;;;;15286:97;15397:20;;-1:-1:-1;;;15397:20:0;;;;15393:698;;;15439:16;;-1:-1:-1;;;15439:16:0;;;;15434:646;;15476:37;15495:6;15503:9;15476:18;:37::i;:::-;15434:646;;;15595:1;15580:12;;:16;:55;;;;-1:-1:-1;15631:4:0;;-1:-1:-1;;;;;15621:14:0;;;15631:4;;15621:14;15580:55;:106;;;;-1:-1:-1;;;;;;15661:25:0;;;;;;:17;:25;;;;;;;;15660:26;15580:106;:160;;;;-1:-1:-1;;;;;;15712:28:0;;;;;;:17;:28;;;;;;;;15711:29;15580:160;15554:511;;;15817:1;15802:12;;15787;:27;:31;15783:263;;;-1:-1:-1;;;;;15852:24:0;;;;;;:13;:24;;;;;;;;15847:118;;15909:12;:28;;;;;;;-1:-1:-1;15909:28:0;;;;;;;;-1:-1:-1;;;;;;15909:28:0;-1:-1:-1;;;;;15909:28:0;;;;;15847:118;-1:-1:-1;;;;;15991:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;15991:31:0;16018:4;15991:31;;;15783:263;16133:4;;-1:-1:-1;;;;;16133:4:0;16119:10;:18;;;;:52;;-1:-1:-1;16155:16:0;;-1:-1:-1;;;16155:16:0;;;;16154:17;16119:52;:90;;;;-1:-1:-1;16188:21:0;;-1:-1:-1;;;16188:21:0;;;;16119:90;:148;;;;-1:-1:-1;16254:13:0;;16244:4;16226:24;;;;:9;:24;;;;;;:41;;16119:148;16101:215;;;16294:10;:8;:10::i;:::-;16326:40;16340:6;16348:9;16359:6;16326:13;:40::i;:::-;16386:35;16403:6;16411:9;16386:16;:35::i;:::-;16385:36;16377:60;;;;;-1:-1:-1;;;16377:60:0;;;;;;;;;;;;-1:-1:-1;;;16377:60:0;;;;;;;;;;;;;;;16468:90;;;;;;;;;;;-1:-1:-1;;;16468:90:0;;;;;;;;-1:-1:-1;;;;;16468:17:0;;-1:-1:-1;16468:17:0;;;:9;:17;;;;;;;;:90;;16504:6;;16468:21;:90::i;:::-;-1:-1:-1;;;;;16448:17:0;;;;;;:9;:17;;;;;;;;:110;;;;16595:11;:19;;;;;;;;16594:20;:47;;;;-1:-1:-1;;;;;;16619:22:0;;;;;;:11;:22;;;;;;;;16618:23;16594:47;:119;;16707:6;16594:119;;;16657:34;16665:6;16673:9;16684:6;16657:7;:34::i;:::-;-1:-1:-1;;;;;16747:20:0;;;;;;:9;:20;;;;;;16569:144;;-1:-1:-1;16747:40:0;;16569:144;16747:24;:40::i;:::-;-1:-1:-1;;;;;16724:20:0;;;;;;:9;:20;;;;;;;;;:63;;;;16803:47;;;;;;;16724:20;;16812:10;;-1:-1:-1;;;;;;;;;;;16803:47:0;;;;;;;;;-1:-1:-1;16868:4:0;;15143:1737;-1:-1:-1;;;;15143:1737:0:o;278:136::-;336:7;363:43;367:1;370;363:43;;;;;;;;;;;;;;;;;:3;:43::i;91:179::-;149:7;181:5;;;205:6;;;;197:46;;;;;-1:-1:-1;;;197:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16888:401;17052:90;;;;;;;;;;;-1:-1:-1;;;17052:90:0;;;;;;;;-1:-1:-1;;;;;17052:17:0;;17015:4;17052:17;;;:9;:17;;;;;;;:90;;17088:6;;17052:21;:90::i;:::-;-1:-1:-1;;;;;17032:17:0;;;;;;;:9;:17;;;;;;:110;;;;17176:20;;;;;;;:32;;17201:6;17176:24;:32::i;:::-;-1:-1:-1;;;;;17153:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;17224:35;;;;;;;17153:20;;17224:35;;;;-1:-1:-1;;;;;;;;;;;17224:35:0;;;;;;;;-1:-1:-1;17277:4:0;16888:401;;;;;:::o;10930:291::-;11012:16;;-1:-1:-1;;;11012:16:0;;;;11011:17;11003:65;;;;-1:-1:-1;;;11003:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11083:23:0;;;;;;:17;:23;;;;;;;;:37;;;;-1:-1:-1;11116:4:0;;-1:-1:-1;;;;;11110:10:0;;;11116:4;;11110:10;11083:37;11079:135;;;11137:16;:23;;-1:-1:-1;;;;11137:23:0;-1:-1:-1;;;11137:23:0;;;11190:12;11175;:27;11079:135;10930:291;;:::o;18140:764::-;7399:16;:23;;-1:-1:-1;;;;7399:23:0;-1:-1:-1;;;7399:23:0;;;18218:13:::1;::::0;18317:16:::1;::::0;;18331:1:::1;18317:16:::0;;;18293:21:::1;18317:16:::0;;::::1;::::0;;18218:13;;18293:21;;18317:16;18331:1;18317:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18317:16:0::1;18293:40;;18362:4;18344;18349:1;18344:7;;;;;;;;-1:-1:-1::0;;;;;18344:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;18388:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;18388:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;18344:7;;18388:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18388:13:0;18378:7;;:4;;18383:1:::1;::::0;18378:7;::::1;;;;;;;;;;:23;-1:-1:-1::0;;;;;18378:23:0::1;;;-1:-1:-1::0;;;;;18378:23:0::1;;;::::0;::::1;18414:6;;;;;;;;;-1:-1:-1::0;;;;;18414:6:0::1;-1:-1:-1::0;;;;;18414:57:0::1;;18486:12;18513:1;18529:4;18556;18576:15;18414:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18414:188:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18714:15:0::1;::::0;18706:109:::1;::::0;18644:21:::1;::::0;-1:-1:-1;18615:26:0::1;::::0;-1:-1:-1;;;;;;18714:15:0;;::::1;::::0;18795:5:::1;::::0;18644:21;;18615:26;18706:109;18615:26;18706:109;18644:21;18714:15;18795:5;18706:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;7445:16:0;:24;;-1:-1:-1;;;;7445:24:0;;;-1:-1:-1;;;;;;18140:764:0:o;12605:1668::-;12761:5;;-1:-1:-1;;;;;12751:15:0;;;12761:5;;12751:15;;;;:50;;-1:-1:-1;12796:5:0;;-1:-1:-1;;;;;12783:18:0;;;12796:5;;12783:18;;12751:50;:94;;;;-1:-1:-1;;;;;;12819:26:0;;;;;;:15;:26;;;;;;;;12818:27;12751:94;:128;;;;-1:-1:-1;12875:4:0;;-1:-1:-1;;;;;12862:17:0;;;12875:4;;12862:17;;12751:128;:162;;;;-1:-1:-1;12909:4:0;;-1:-1:-1;;;;;12896:17:0;;;12909:4;;12896:17;;12751:162;:196;;;;-1:-1:-1;12943:4:0;;-1:-1:-1;;;;;12930:17:0;;;12943:4;;12930:17;;12751:196;:239;;;;-1:-1:-1;;;;;;12964:26:0;;12985:4;12964:26;;12751:239;12733:1260;;;13035:12;;13025:6;:22;;13017:41;;;;;-1:-1:-1;;;13017:41:0;;;;;;;;;;;;-1:-1:-1;;;13017:41:0;;;;;;;;;;;;;;;13073:32;13108:20;13118:9;13108;:20::i;:::-;13073:55;;13206:16;;13196:6;13169:24;:33;:53;;13143:150;;;;-1:-1:-1;;;13143:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13332:16;;;13346:1;13332:16;;;13308:21;13332:16;;;;;13308:21;13332:16;;;;;;;;-1:-1:-1;;13373:6:0;;:13;;;-1:-1:-1;;;13373:13:0;;;;13308:40;;-1:-1:-1;;;;;;13373:6:0;;;;:11;;-1:-1:-1;13373:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13373:13:0;13363:7;;:4;;13368:1;;13363:7;;;;;;;;;:23;-1:-1:-1;;;;;13363:23:0;;;-1:-1:-1;;;;;13363:23:0;;;;;13419:4;13401;13406:1;13401:7;;;;;;;;-1:-1:-1;;;;;13401:23:0;;;:7;;;;;;;;;;:23;;;;13457:6;;:33;;;-1:-1:-1;;;13457:33:0;;;;;;;;;;;;;;;;;;;;;;13439:15;;13457:6;;;;;:19;;13477:6;;13485:4;;13457:33;;;;;;;;;;;;;;;13439:15;13457:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13457:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13457:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13491:1;13457:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13508:32:0;;;;;;:21;:32;;;;;;:43;;;;;;13571:7;:18;;;;;;;;13457:36;;-1:-1:-1;13571:18:0;;13566:416;;13649:13;;-1:-1:-1;;;;;13614:32:0;;;;;;:21;:32;;;;;;:48;13610:145;;;-1:-1:-1;;;;;13703:32:0;;;;;;:21;:32;;;;;;13687:13;:48;13610:145;13787:10;;13777:7;:20;13773:89;;;13822:10;:20;;;13773:89;13894:9;;13884:7;:19;13880:87;;;13928:9;:19;;;13880:87;12733:1260;;;;14031:5;;-1:-1:-1;;;;;14021:15:0;;;14031:5;;14021:15;;;;:50;;-1:-1:-1;14066:5:0;;-1:-1:-1;;;;;14053:18:0;;;14066:5;;14053:18;;14021:50;:91;;;;-1:-1:-1;;;;;;14089:23:0;;;;;;:15;:23;;;;;;;;14088:24;14021:91;:122;;;;-1:-1:-1;14139:4:0;;-1:-1:-1;;;;;14129:14:0;;;14139:4;;14129:14;;14021:122;:165;;;;-1:-1:-1;;;;;;14160:26:0;;14181:4;14160:26;;14021:165;14003:263;;;14231:12;;14221:6;:22;;14213:41;;;;;-1:-1:-1;;;14213:41:0;;;;;;;;;;;;-1:-1:-1;;;14213:41:0;;;;;;;;;;;;;;;12605:1668;;;:::o;17790:342::-;-1:-1:-1;;;;;17927:19:0;;17901:4;17927:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;17950:22:0;;;;;;:11;:22;;;;;;;;17927:45;17923:90;;;-1:-1:-1;17996:5:0;17989:12;;17923:90;18037:4;;-1:-1:-1;;;;;18027:14:0;;;18037:4;;18027:14;;:35;;-1:-1:-1;18058:4:0;;-1:-1:-1;;;;;18045:17:0;;;18058:4;;18045:17;18027:35;18023:80;;;-1:-1:-1;18086:5:0;18079:12;;18023:80;-1:-1:-1;18120:4:0;17790:342;;;;:::o;17297:485::-;17461:4;;17417:7;;;;-1:-1:-1;;;;;17461:17:0;;;:4;;:17;:74;;17527:8;;17461:74;;;17494:17;;17461:74;17437:98;-1:-1:-1;17546:17:0;17566:34;17596:3;17566:25;:6;17437:98;17566:10;:25::i;:::-;:29;;:34::i;:::-;17656:4;17638:24;;;;:9;:24;;;;;;17546:54;;-1:-1:-1;17638:39:0;;17546:54;17638:28;:39::i;:::-;17629:4;17611:24;;;;:9;:24;;;;;;;;;:66;;;;17693:42;;;;;;;17629:4;;-1:-1:-1;;;;;17693:42:0;;;-1:-1:-1;;;;;;;;;;;17693:42:0;;;;;;;;;17753:21;:6;17764:9;17753:10;:21::i;:::-;17746:28;17297:485;-1:-1:-1;;;;;;17297:485:0:o;654:246::-;712:7;736:6;732:47;;-1:-1:-1;766:1:0;759:8;;732:47;801:5;;;805:1;801;:5;:1;825:5;;;;;:10;817:56;;;;-1:-1:-1;;;817:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;908:132;966:7;993:39;997:1;1000;993:39;;;;;;;;;;;;;;;;;1168:7;1203:12;1196:5;1188:28;;;;-1:-1:-1;;;1188:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1227:9;1243:1;1239;:5;;;;;;;1048:223;-1:-1:-1;;;;;1048:223:0:o

Swarm Source

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