BNB Price: $598.38 (+2.44%)
Gas: 1 GWei
 

Overview

Max Total Supply

78,970,349,486.88453TITANO

Holders

81,292 ( -1.260%)

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

Contract Source Code Verified (Exact Match)

Contract Name:
Titano

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Titano.sol
pragma solidity ^0.7.4;

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != -1 || a != MIN_INT256);

        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

interface InterfaceLP {
    function sync() external;
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * @dev Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * @dev Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

contract MinterRole {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender), "MinterRole: caller does not have the Minter role");
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

abstract contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(
        string memory name,
        string memory symbol,
        uint8 decimals
    ) {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

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

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

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

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

    function WETH() external pure returns (address);

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

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

contract Ownable {
    address private _owner;

    event OwnershipRenounced(address indexed previousOwner);

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipRenounced(_owner);
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Titano is ERC20Detailed, Ownable, MinterRole {
    using SafeMath for uint256;
    using SafeMathInt for int256;

    event LogRebase(uint256 indexed epoch, uint256 totalSupply);

    InterfaceLP public pairContract;

    bool public initialDistributionFinished;

    mapping(address => bool) allowTransfer;
    mapping(address => bool) _isFeeExempt;

    modifier initialDistributionLock() {
        require(
            initialDistributionFinished ||
                isOwner() ||
                allowTransfer[msg.sender]
        );
        _;
    }

    modifier validRecipient(address to) {
        require(to != address(0x0));
        _;
    }

    uint256 private constant DECIMALS = 18;
    uint256 private constant MAX_UINT256 = ~uint256(0);

    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 4 * 10**9 * 10**DECIMALS;

    uint256 public liquidityFee = 5;
    uint256 public Treasury = 3;
    uint256 public RiskFreeValue = 5;
    uint256 public sellFee = 5;
    uint256 public totalFee =
        liquidityFee.add(Treasury).add(RiskFreeValue);
    uint256 public feeDenominator = 100;

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

    address public autoLiquidityReceiver;
    address public TreasuryReceiver;
    address public RiskFreeValueReceiver;

    uint256 targetLiquidity = 50;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 private gonSwapThreshold = (TOTAL_GONS * 10) / 10000;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    uint256 private constant TOTAL_GONS =
        MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);

    uint256 private constant MAX_SUPPLY = ~uint128(0);

    uint256 private _totalSupply;
    uint256 private _gonsPerFragment;
    mapping(address => uint256) private _gonBalances;

    mapping(address => mapping(address => uint256)) private _allowedFragments;
    mapping(address => bool) public blacklist;

    constructor() ERC20Detailed("Titano", "TITANO", uint8(DECIMALS)) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E); //Sushi 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506 // Cake 0x10ED43C718714eb63d5aA57B78B54704E256024E

        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );

        autoLiquidityReceiver = 0xfa1D544D46c7c50d7B7d7D2e85915F1b129a9386;
        TreasuryReceiver = 0x4DD90D3cE962039A3c66d613207aC2d449dFa04F;
        RiskFreeValueReceiver = 0x00dE99c90E8971D3E1c9cBA724381B537F6e88C1;

        _allowedFragments[address(this)][address(router)] = uint256(-1);
        pairContract = InterfaceLP(pair);

        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        _gonBalances[TreasuryReceiver] = TOTAL_GONS;
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);

        initialDistributionFinished = false;
        _isFeeExempt[TreasuryReceiver] = true;
        _isFeeExempt[address(this)] = true;

        _transferOwnership(TreasuryReceiver);
        emit Transfer(address(0x0), TreasuryReceiver, _totalSupply);
    }

    function updateBlacklist(address _user, bool _flag) public onlyOwner{
        blacklist[_user] = _flag;
    }

    function rebase(uint256 epoch, int256 supplyDelta)
        external
        onlyOwner
        returns (uint256)
    {
        require(!inSwap, "Try again");
        if (supplyDelta == 0) {
            emit LogRebase(epoch, _totalSupply);
            return _totalSupply;
        }

        if (supplyDelta < 0) {
            _totalSupply = _totalSupply.sub(uint256(-supplyDelta));
        } else {
            _totalSupply = _totalSupply.add(uint256(supplyDelta));
        }

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
        pairContract.sync();

        emit LogRebase(epoch, _totalSupply);
        return _totalSupply;
    }

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

    function transfer(address to, uint256 value)
        external
        override
        validRecipient(to)
        initialDistributionLock
        returns (bool)
    {
        _transferFrom(msg.sender, to, value);
        return true;
    }

    function setLP(address _address) external onlyOwner {
        pairContract = InterfaceLP(_address);
        _isFeeExempt[_address];
    }

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

    function balanceOf(address who) external view override returns (uint256) {
        return _gonBalances[who].div(_gonsPerFragment);
    }

    function _basicTransfer(
        address from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        uint256 gonAmount = amount.mul(_gonsPerFragment);
        _gonBalances[from] = _gonBalances[from].sub(gonAmount);
        _gonBalances[to] = _gonBalances[to].add(gonAmount);
        return true;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(!blacklist[sender] && !blacklist[recipient], 'in_blacklist');
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        uint256 gonAmount = amount.mul(_gonsPerFragment);

        if (shouldSwapBack()) {
            swapBack();
        }

        _gonBalances[sender] = _gonBalances[sender].sub(gonAmount);

        uint256 gonAmountReceived = shouldTakeFee(sender, recipient)
            ? takeFee(sender, recipient, gonAmount)
            : gonAmount;
        _gonBalances[recipient] = _gonBalances[recipient].add(
            gonAmountReceived
        );

        emit Transfer(
            sender,
            recipient,
            gonAmountReceived.div(_gonsPerFragment)
        );
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external override validRecipient(to) returns (bool) {
        if (_allowedFragments[from][msg.sender] != uint256(-1)) {
            _allowedFragments[from][msg.sender] = _allowedFragments[from][
                msg.sender
            ].sub(value, "Insufficient Allowance");
        }

        _transferFrom(from, to, value);
        return true;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(
            targetLiquidity,
            targetLiquidityDenominator
        )
            ? 0
            : liquidityFee;
        uint256 contractTokenBalance = _gonBalances[address(this)].div(
            _gonsPerFragment
        );
        uint256 amountToLiquify = contractTokenBalance
            .mul(dynamicLiquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(dynamicLiquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHRiskFreeValue = amountETH.mul(RiskFreeValue).div(totalETHFee);
        uint256 amountETHTreasury = amountETH.mul(Treasury).div(
            totalETHFee
        );

        (bool success, ) = payable(TreasuryReceiver).call{
            value: amountETHTreasury,
            gas: 30000
        }("");
        (success, ) = payable(RiskFreeValueReceiver).call{
            value: amountETHRiskFreeValue,
            gas: 30000
        }("");

        success = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
        }
    }

    function takeFee(address sender, address recipient, uint256 gonAmount)
        internal
        returns (uint256)
    {
        uint256 _totalFee = totalFee;
        if(recipient == pair) _totalFee = _totalFee.add(sellFee);

        uint256 feeAmount = gonAmount.mul(_totalFee).div(feeDenominator);

        _gonBalances[address(this)] = _gonBalances[address(this)].add(
            feeAmount
        );
        emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment));

        return gonAmount.sub(feeAmount);
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue)
        external
        initialDistributionLock
        returns (bool)
    {
        uint256 oldValue = _allowedFragments[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedFragments[msg.sender][spender] = 0;
        } else {
            _allowedFragments[msg.sender][spender] = oldValue.sub(
                subtractedValue
            );
        }
        emit Approval(
            msg.sender,
            spender,
            _allowedFragments[msg.sender][spender]
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        external
        initialDistributionLock
        returns (bool)
    {
        _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][
            spender
        ].add(addedValue);
        emit Approval(
            msg.sender,
            spender,
            _allowedFragments[msg.sender][spender]
        );
        return true;
    }

    function approve(address spender, uint256 value)
        external
        override
        initialDistributionLock
        returns (bool)
    {
        _allowedFragments[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function checkFeeExempt(address _addr) external view returns (bool) {
        return _isFeeExempt[_addr];
    }

    function setInitialDistributionFinished() external onlyOwner {
        initialDistributionFinished = true;
    }

    function enableTransfer(address _addr) external onlyOwner {
        allowTransfer[_addr] = true;
    }

    function setFeeExempt(address _addr) external onlyOwner {
        _isFeeExempt[_addr] = true;
    }

    function shouldTakeFee(address from, address to) internal view returns (bool) {
        return (pair == from || pair == to) && (!_isFeeExempt[from]);
    }

    function mint(address recipient, uint256 amount) external onlyMinter {
        _totalSupply = _totalSupply.add(uint256(amount));

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
        pairContract.sync();

        _gonBalances[recipient] = _gonBalances[recipient].add(amount);
    }

    function setSwapBackSettings(
        bool _enabled,
        uint256 _num,
        uint256 _denom
    ) external onlyOwner {
        swapEnabled = _enabled;
        gonSwapThreshold = TOTAL_GONS.div(_denom).mul(_num);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _gonBalances[address(this)] >= gonSwapThreshold;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return
            (TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div(
                _gonsPerFragment
            );
    }

    function setTargetLiquidity(uint256 target, uint256 accuracy) external onlyOwner {
        targetLiquidity = target;
        targetLiquidityDenominator = accuracy;
    }

    function addMinter(address account) public onlyOwner {
        _addMinter(account);
    }

    function removeMinter(address account) public onlyOwner {
        _removeMinter(account);
    }

    function isNotInSwap() external view returns (bool) {
        return !inSwap;
    }

    function sendPresale(address[] calldata recipients, uint256[] calldata values)
        external
        onlyOwner
    {
      for (uint256 i = 0; i < recipients.length; i++) {
        _transferFrom(msg.sender, recipients[i], values[i]);
      }
    }

    function checkSwapThreshold() external view returns (uint256) {
        return gonSwapThreshold.div(_gonsPerFragment);
    }

    function manualSync() external {
        InterfaceLP(pair).sync();
    }

    function setFeeReceivers(
        address _autoLiquidityReceiver,
        address _TreasuryReceiver,
        address _RiskFreeValueReceiver
    ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        TreasuryReceiver = _TreasuryReceiver;
        RiskFreeValueReceiver = _RiskFreeValueReceiver;
    }

    function setFees(
        uint256 _liquidityFee,
        uint256 _RiskFreeValue,
        uint256 _Treasury,
        uint256 _sellFee,
        uint256 _feeDenominator
    ) external onlyOwner {
        liquidityFee = _liquidityFee;
        RiskFreeValue = _RiskFreeValue;
        Treasury = _Treasury;
        sellFee = _sellFee;
        totalFee = liquidityFee.add(Treasury).add(RiskFreeValue);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 4);
    }

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer(
            (amountETH * amountPercentage) / 100
        );
    }

    function rescueToken(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        return ERC20Detailed(tokenAddress).transfer(msg.sender, tokens);
    }

    function transferToAddressETH(address payable recipient, uint256 amount)
        private
    {
        recipient.transfer(amount);
    }

    function getLiquidityBacking(uint256 accuracy)
        public
        view
        returns (uint256)
    {
        uint256 liquidityBalance = _gonBalances[pair].div(_gonsPerFragment);
        return
            accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply());
    }
    
    function isOverLiquified(uint256 target, uint256 accuracy)
        public
        view
        returns (bool)
    {
        return getLiquidityBacking(accuracy) > target;
    }

    receive() external payable {}
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"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":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"RiskFreeValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RiskFreeValueReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Treasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TreasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"enableTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialDistributionFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"sendPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_TreasuryReceiver","type":"address"},{"internalType":"address","name":"_RiskFreeValueReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_RiskFreeValue","type":"uint256"},{"internalType":"uint256","name":"_Treasury","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_num","type":"uint256"},{"internalType":"uint256","name":"_denom","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"updateBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005600755600360085560056009556005600a55620000516009546200003d6008546007546200048f60201b62001b8f1790919060201c565b6200048f60201b62001b8f1790919060201c565b600b556064600c819055600d80546001600160a01b031990811661dead17909155600e8054909116905560326012556013556015805460ff60a01b1916600160a01b1790556127106b1239a002a3db32d57fffffff1904601655348015620000b857600080fd5b5060405180604001604052806006815260200165546974616e6f60d01b81525060405180604001604052806006815260200165544954414e4f60d01b81525060128260009080519060200190620001119291906200079c565b508151620001279060019060208501906200079c565b5060028054336101008102610100600160a81b031960ff90951660ff1990931692909217939093161790556200016092509050620004f1565b601480546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17908190556040805163c45a015560e01b815290516001600160a01b03929092169163c45a015591600480820192602092909190829003018186803b158015620001cc57600080fd5b505afa158015620001e1573d6000803e3d6000fd5b505050506040513d6020811015620001f857600080fd5b5051601454604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b1580156200024757600080fd5b505afa1580156200025c573d6000803e3d6000fd5b505050506040513d60208110156200027357600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b158015620002c357600080fd5b505af1158015620002d8573d6000803e3d6000fd5b505050506040513d6020811015620002ef57600080fd5b5051601580546001600160a01b039283166001600160a01b0319918216178255600f8054821673fa1d544d46c7c50d7b7d7d2e85915f1b129a9386179055601080548216734dd90d3ce962039a3c66d613207ac2d449dfa04f17815560118054831672de99c90e8971d3e1c9cba724381b537f6e88c1179055306000908152601b602090815260408083206014548816845282528083206000199055945460048054909516908716179093556b0cecb8f27f4200f3a0000000601890815591549094168452601a8252919092206b01d290004395eb7bbfffffff19908190559054620003e49262000543811b62001be917901c565b6019556004805460ff60a01b19169055601080546001600160a01b03908116600090815260066020526040808220805460ff199081166001908117909255308452919092208054909116909117905590546200044191166200058d565b60105460185460408051918252516001600160a01b03909216916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a362000848565b600082820183811015620004ea576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200050c8160036200060860201b62001c2b1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6000620004ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200068c60201b60201c565b6001600160a01b038116620005a157600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b62000614828262000733565b1562000667576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600081836200071c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620006e0578181015183820152602001620006c6565b50505050905090810190601f1680156200070e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200072957fe5b0495945050505050565b60006001600160a01b0382166200077c5760405162461bcd60e51b8152600401808060200182810382526022815260200180620031186022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620007d457600085556200081f565b82601f10620007ef57805160ff19168380011785556200081f565b828001600101855582156200081f579182015b828111156200081f57825182559160200191906001019062000802565b506200082d92915062000831565b5090565b5b808211156200082d576000815560010162000832565b6128c080620008586000396000f3fe6080604052600436106103545760003560e01c80637a43e23f116101c6578063bda5c8bb116100f7578063d5938aac11610095578063dd62ed3e1161006f578063dd62ed3e14610c3e578063f2fde38b14610c79578063f887ea4014610cac578063f9f92be414610cc15761035b565b8063d5938aac14610bb1578063d7ac658514610be4578063d7c0103214610bf95761035b565b8063d1fce264116100d1578063d1fce26414610a70578063d37e219d14610a85578063d439979014610b54578063d51ed1c814610b875761035b565b8063bda5c8bb14610a0e578063ca33e64c14610a23578063d088935814610a385761035b565b806398118cb411610164578063a457c2d71161013e578063a457c2d714610954578063a8aa1b311461098d578063a9059cbb146109a2578063aa271e1a146109db5761035b565b806398118cb4146108f7578063983b2d561461090c578063986502751461093f5761035b565b80638da5cb5b116101a05780638da5cb5b1461087d5780638f32d59b146108925780639155e083146108a757806395d89b41146108e25761035b565b80637a43e23f14610823578063800cee511461085357806383b4ac68146108685761035b565b80633092afd5116102a057806356a227f21161023e57806370a082311161021857806370a0823114610793578063715018a6146107c6578063749796a5146107db578063753d02a11461080e5761035b565b806356a227f2146107305780636d351d1a146107695780636ddd17131461077e5761035b565b8063395093511161027a578063395093511461067857806340c10f19146106b15780634d709adf146106ea578063563df32f1461071b5761035b565b80633092afd5146105e1578063313ce5671461061457806333f3d6281461063f5761035b565b80631df4ccfc1161030d5780632b112e49116102e75780632b112e491461056f5780632b14ca56146105845780632be6937d146105995780632f34d282146105ae5761035b565b80631df4ccfc146104e7578063201e7991146104fc57806323b872dd1461052c5761035b565b806304a66b481461036057806306fdde03146103a4578063095ea7b31461042e5780631161ae391461047b578063180b0d7e146104ab57806318160ddd146104d25761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b506103a2600480360360a081101561038357600080fd5b5080359060208101359060408101359060608101359060800135610cf4565b005b3480156103b057600080fd5b506103b9610d4d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103f35781810151838201526020016103db565b50505050905090810190601f1680156104205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043a57600080fd5b506104676004803603604081101561045157600080fd5b506001600160a01b038135169060200135610de3565b604080519115158252519081900360200190f35b34801561048757600080fd5b506104676004803603604081101561049e57600080fd5b5080359060200135610e8c565b3480156104b757600080fd5b506104c0610ea0565b60408051918252519081900360200190f35b3480156104de57600080fd5b506104c0610ea6565b3480156104f357600080fd5b506104c0610eac565b34801561050857600080fd5b506103a26004803603604081101561051f57600080fd5b5080359060200135610eb2565b34801561053857600080fd5b506104676004803603606081101561054f57600080fd5b506001600160a01b03813581169160208101359091169060400135610ece565b34801561057b57600080fd5b506104c0610fa8565b34801561059057600080fd5b506104c061100a565b3480156105a557600080fd5b506103a2611010565b3480156105ba57600080fd5b506103a2600480360360208110156105d157600080fd5b50356001600160a01b0316611036565b3480156105ed57600080fd5b506103a26004803603602081101561060457600080fd5b50356001600160a01b0316611070565b34801561062057600080fd5b5061062961108d565b6040805160ff9092168252519081900360200190f35b34801561064b57600080fd5b506104676004803603604081101561066257600080fd5b506001600160a01b038135169060200135611096565b34801561068457600080fd5b506104676004803603604081101561069b57600080fd5b506001600160a01b03813516906020013561112b565b3480156106bd57600080fd5b506103a2600480360360408110156106d457600080fd5b506001600160a01b0381351690602001356111ff565b3480156106f657600080fd5b506106ff611333565b604080516001600160a01b039092168252519081900360200190f35b34801561072757600080fd5b506104c0611342565b34801561073c57600080fd5b506103a26004803603604081101561075357600080fd5b50803590602001356001600160a01b0316611348565b34801561077557600080fd5b506104c061139b565b34801561078a57600080fd5b506104676113b4565b34801561079f57600080fd5b506104c0600480360360208110156107b657600080fd5b50356001600160a01b03166113c4565b3480156107d257600080fd5b506103a26113ec565b3480156107e757600080fd5b506103a2600480360360208110156107fe57600080fd5b50356001600160a01b031661144c565b34801561081a57600080fd5b506103a2611481565b34801561082f57600080fd5b506104c06004803603604081101561084657600080fd5b50803590602001356114e5565b34801561085f57600080fd5b506106ff611691565b34801561087457600080fd5b506104676116a0565b34801561088957600080fd5b506106ff6116aa565b34801561089e57600080fd5b506104676116be565b3480156108b357600080fd5b506103a2600480360360408110156108ca57600080fd5b506001600160a01b03813516906020013515156116d4565b3480156108ee57600080fd5b506103b9611710565b34801561090357600080fd5b506104c0611770565b34801561091857600080fd5b506103a26004803603602081101561092f57600080fd5b50356001600160a01b0316611776565b34801561094b57600080fd5b506103a2611790565b34801561096057600080fd5b506104676004803603604081101561097757600080fd5b506001600160a01b03813516906020013561179b565b34801561099957600080fd5b506106ff6118c5565b3480156109ae57600080fd5b50610467600480360360408110156109c557600080fd5b506001600160a01b0381351690602001356118d4565b3480156109e757600080fd5b50610467600480360360208110156109fe57600080fd5b50356001600160a01b031661193e565b348015610a1a57600080fd5b506104c061194b565b348015610a2f57600080fd5b506106ff611951565b348015610a4457600080fd5b506103a260048036036060811015610a5b57600080fd5b50803515159060208101359060400135611960565b348015610a7c57600080fd5b506104676119b3565b348015610a9157600080fd5b506103a260048036036040811015610aa857600080fd5b810190602081018135640100000000811115610ac357600080fd5b820183602082011115610ad557600080fd5b80359060200191846020830284011164010000000083111715610af757600080fd5b919390929091602081019035640100000000811115610b1557600080fd5b820183602082011115610b2757600080fd5b80359060200191846020830284011164010000000083111715610b4957600080fd5b5090925090506119c3565b348015610b6057600080fd5b5061046760048036036020811015610b7757600080fd5b50356001600160a01b0316611a20565b348015610b9357600080fd5b506104c060048036036020811015610baa57600080fd5b5035611a3e565b348015610bbd57600080fd5b506103a260048036036020811015610bd457600080fd5b50356001600160a01b0316611a92565b348015610bf057600080fd5b506106ff611ac7565b348015610c0557600080fd5b506103a260048036036060811015610c1c57600080fd5b506001600160a01b038135811691602081013582169160409091013516611ad6565b348015610c4a57600080fd5b506104c060048036036040811015610c6157600080fd5b506001600160a01b0381358116916020013516611b26565b348015610c8557600080fd5b506103a260048036036020811015610c9c57600080fd5b50356001600160a01b0316611b51565b348015610cb857600080fd5b506106ff611b6b565b348015610ccd57600080fd5b5061046760048036036020811015610ce457600080fd5b50356001600160a01b0316611b7a565b610cfc6116be565b610d0557600080fd5b600785905560098490556008839055600a829055610d2d84610d278786611b8f565b90611b8f565b600b55600c81905560048104600b5410610d4657600080fd5b5050505050565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b5050505050905090565b600454600090600160a01b900460ff1680610e015750610e016116be565b80610e1b57503360009081526005602052604090205460ff165b610e2457600080fd5b336000818152601b602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600082610e9883611a3e565b119392505050565b600c5481565b60185490565b600b5481565b610eba6116be565b610ec357600080fd5b601291909155601355565b6000826001600160a01b038116610ee457600080fd5b6001600160a01b0385166000908152601b6020908152604080832033845290915290205460001914610f91576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601b82528381203382529091529190912054610f6c918590611cac565b6001600160a01b0386166000908152601b602090815260408083203384529091529020555b610f9c858585611d43565b50600195945050505050565b601954600e546001600160a01b039081166000908152601a602052604080822054600d5490931682528120549092611005929091610fff9190610ff9906b01d290004395eb7bbfffffff1990611f02565b90611f02565b90611be9565b905090565b600a5481565b6110186116be565b61102157600080fd5b6004805460ff60a01b1916600160a01b179055565b61103e6116be565b61104757600080fd5b600480546001600160a01b039092166001600160a01b0319909216821790556000526006602052565b6110786116be565b61108157600080fd5b61108a81611f44565b50565b60025460ff1690565b60006110a06116be565b6110a957600080fd5b6040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b1580156110f857600080fd5b505af115801561110c573d6000803e3d6000fd5b505050506040513d602081101561112257600080fd5b50519392505050565b600454600090600160a01b900460ff168061114957506111496116be565b8061116357503360009081526005602052604090205460ff165b61116c57600080fd5b336000908152601b602090815260408083206001600160a01b038716845290915290205461119a9083611b8f565b336000818152601b602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6112083361193e565b6112435760405162461bcd60e51b81526004018080602001828103825260308152602001806127f76030913960400191505060405180910390fd5b6018546112509082611b8f565b60188190556001600160801b03101561126f576001600160801b036018555b60185461128f906b0cecb8f27f4200f3a00000006000195b061990611be9565b601955600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b1580156112d857600080fd5b505af11580156112ec573d6000803e3d6000fd5b5050506001600160a01b0383166000908152601a6020526040902054611313915082611b8f565b6001600160a01b039092166000908152601a602052604090209190915550565b6004546001600160a01b031681565b60085481565b6113506116be565b61135957600080fd5b60405147906001600160a01b0383169060648584020480156108fc02916000818181858888f19350505050158015611395573d6000803e3d6000fd5b50505050565b6000611005601954601654611be990919063ffffffff16565b601554600160a01b900460ff1681565b6019546001600160a01b0382166000908152601a60205260408120549091610e869190611be9565b6113f46116be565b6113fd57600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b6114546116be565b61145d57600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b601560009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156114d157600080fd5b505af1158015611395573d6000803e3d6000fd5b60006114ef6116be565b6114f857600080fd5b60175460ff161561153c576040805162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b604482015290519081900360640190fd5b8161158257601854604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250601854610e86565b60008212156115a45760185461159c906000849003611f02565b6018556115b5565b6018546115b19083611b8f565b6018555b6018546001600160801b0310156115d2576001600160801b036018555b6018546115ee906b0cecb8f27f4200f3a0000000600019611287565b601955600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b15801561163757600080fd5b505af115801561164b573d6000803e3d6000fd5b505060185460408051918252518693507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a25060185492915050565b6010546001600160a01b031681565b60175460ff161590565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b6116dc6116be565b6116e557600080fd5b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610dd95780601f10610dae57610100808354040283529160200191610dd9565b60075481565b61177e6116be565b61178757600080fd5b61108a81611f86565b61179933611f44565b565b600454600090600160a01b900460ff16806117b957506117b96116be565b806117d357503360009081526005602052604090205460ff165b6117dc57600080fd5b336000908152601b602090815260408083206001600160a01b038716845290915290205480831061183057336000908152601b602090815260408083206001600160a01b038816845290915281205561185f565b61183a8184611f02565b336000908152601b602090815260408083206001600160a01b03891684529091529020555b336000818152601b602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6015546001600160a01b031681565b6000826001600160a01b0381166118ea57600080fd5b600454600160a01b900460ff168061190557506119056116be565b8061191f57503360009081526005602052604090205460ff165b61192857600080fd5b611933338585611d43565b506001949350505050565b6000610e86600383611fc8565b60095481565b600f546001600160a01b031681565b6119686116be565b61197157600080fd5b6015805460ff60a01b1916600160a01b851515021790556119ab826119a5836b0cecb8f27f4200f3a0000000600019611287565b9061202f565b601655505050565b600454600160a01b900460ff1681565b6119cb6116be565b6119d457600080fd5b60005b83811015610d4657611a17338686848181106119ef57fe5b905060200201356001600160a01b0316858585818110611a0b57fe5b90506020020135611d43565b506001016119d7565b6001600160a01b031660009081526006602052604090205460ff1690565b6019546015546001600160a01b03166000908152601a602052604081205490918291611a6991611be9565b9050611a8b611a76610fa8565b610fff611a8484600261202f565b869061202f565b9392505050565b611a9a6116be565b611aa357600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6011546001600160a01b031681565b611ade6116be565b611ae757600080fd5b600f80546001600160a01b039485166001600160a01b031991821617909155601080549385169382169390931790925560118054919093169116179055565b6001600160a01b039182166000908152601b6020908152604080832093909416825291909152205490565b611b596116be565b611b6257600080fd5b61108a81612088565b6014546001600160a01b031681565b601c6020526000908152604090205460ff1681565b600082820183811015611a8b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611a8b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612102565b611c358282611fc8565b15611c87576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008184841115611d3b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d00578181015183820152602001611ce8565b50505050905090810190601f168015611d2d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601c602052604081205460ff16158015611d8557506001600160a01b0383166000908152601c602052604090205460ff16155b611dc5576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b60175460ff1615611de257611ddb848484612167565b9050611a8b565b6000611df96019548461202f90919063ffffffff16565b9050611e036121f9565b15611e1057611e1061224f565b6001600160a01b0385166000908152601a6020526040902054611e339082611f02565b6001600160a01b0386166000908152601a6020526040812091909155611e598686612669565b611e635781611e6e565b611e6e8686846126bd565b6001600160a01b0386166000908152601a6020526040902054909150611e949082611b8f565b6001600160a01b038087166000818152601a6020526040902092909255601954908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ee5908590611be9565b60408051918252519081900360200190a350600195945050505050565b6000611a8b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cac565b611f4f60038261278f565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b611f91600382611c2b565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b03821661200f5760405162461bcd60e51b81526004018080602001828103825260228152602001806128696022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008261203e57506000610e86565b8282028284828161204b57fe5b0414611a8b5760405162461bcd60e51b81526004018080602001828103825260218152602001806128486021913960400191505060405180910390fd5b6001600160a01b03811661209b57600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081836121515760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611d00578181015183820152602001611ce8565b50600083858161215d57fe5b0495945050505050565b60008061217f6019548461202f90919063ffffffff16565b6001600160a01b0386166000908152601a60205260409020549091506121a59082611f02565b6001600160a01b038087166000908152601a602052604080822093909355908616815220546121d49082611b8f565b6001600160a01b0385166000908152601a602052604090205550600190509392505050565b6015546000906001600160a01b0316331480159061221a575060175460ff16155b801561222f5750601554600160a01b900460ff165b8015611005575050601654306000908152601a6020526040902054101590565b6017805460ff1916600117905560125460135460009161226e91610e8c565b61227a5760075461227d565b60005b601954306000908152601a60205260408120549293509161229d91611be9565b905060006122bf6002610fff600b54610fff878761202f90919063ffffffff16565b905060006122cd8383611f02565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061230157fe5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561235557600080fd5b505afa158015612369573d6000803e3d6000fd5b505050506040513d602081101561237f57600080fd5b505181518290600190811061239057fe5b6001600160a01b0392831660209182029290920181019190915260145460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561242a578181015183820152602001612412565b505050509050019650505050505050600060405180830381600087803b15801561245357600080fd5b505af1158015612467573d6000803e3d6000fd5b5050505060006124808247611f0290919063ffffffff16565b9050600061249b612492896002611be9565b600b5490611f02565b905060006124b06002610fff8481878e61202f565b905060006124cd83610fff6009548761202f90919063ffffffff16565b905060006124ea84610fff6008548861202f90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114612541576040519150601f19603f3d011682016040523d82523d6000602084013e612546565b606091505b50506011546040519192506001600160a01b0316906175309085906000818181858888f193505050503d806000811461259b576040519150601f19603f3d011682016040523d82523d6000602084013e6125a0565b606091505b5060009250508a15905061265157601454600f546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561262357600080fd5b505af1158015612637573d6000803e3d6000fd5b50505050506040513d606081101561264e57600080fd5b50505b50506017805460ff1916905550505050505050505050565b6015546000906001600160a01b038481169116148061269557506015546001600160a01b038381169116145b8015611a8b575050506001600160a01b031660009081526006602052604090205460ff161590565b600b54601554600091906001600160a01b03858116911614156126eb57600a546126e8908290611b8f565b90505b600c546000906126ff90610fff868561202f565b306000908152601a602052604090205490915061271c9082611b8f565b306000818152601a60205260409020919091556019546001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061276a908590611be9565b60408051918252519081900360200190a36127858482611f02565b9695505050505050565b6127998282611fc8565b6127d45760405162461bcd60e51b81526004018080602001828103825260218152602001806128276021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220a167c5ca88cda6b6f9ccc9a1e7683ca1a626bfb5502aeea4cf9a6d426c9ee50064736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373

Deployed Bytecode

0x6080604052600436106103545760003560e01c80637a43e23f116101c6578063bda5c8bb116100f7578063d5938aac11610095578063dd62ed3e1161006f578063dd62ed3e14610c3e578063f2fde38b14610c79578063f887ea4014610cac578063f9f92be414610cc15761035b565b8063d5938aac14610bb1578063d7ac658514610be4578063d7c0103214610bf95761035b565b8063d1fce264116100d1578063d1fce26414610a70578063d37e219d14610a85578063d439979014610b54578063d51ed1c814610b875761035b565b8063bda5c8bb14610a0e578063ca33e64c14610a23578063d088935814610a385761035b565b806398118cb411610164578063a457c2d71161013e578063a457c2d714610954578063a8aa1b311461098d578063a9059cbb146109a2578063aa271e1a146109db5761035b565b806398118cb4146108f7578063983b2d561461090c578063986502751461093f5761035b565b80638da5cb5b116101a05780638da5cb5b1461087d5780638f32d59b146108925780639155e083146108a757806395d89b41146108e25761035b565b80637a43e23f14610823578063800cee511461085357806383b4ac68146108685761035b565b80633092afd5116102a057806356a227f21161023e57806370a082311161021857806370a0823114610793578063715018a6146107c6578063749796a5146107db578063753d02a11461080e5761035b565b806356a227f2146107305780636d351d1a146107695780636ddd17131461077e5761035b565b8063395093511161027a578063395093511461067857806340c10f19146106b15780634d709adf146106ea578063563df32f1461071b5761035b565b80633092afd5146105e1578063313ce5671461061457806333f3d6281461063f5761035b565b80631df4ccfc1161030d5780632b112e49116102e75780632b112e491461056f5780632b14ca56146105845780632be6937d146105995780632f34d282146105ae5761035b565b80631df4ccfc146104e7578063201e7991146104fc57806323b872dd1461052c5761035b565b806304a66b481461036057806306fdde03146103a4578063095ea7b31461042e5780631161ae391461047b578063180b0d7e146104ab57806318160ddd146104d25761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b506103a2600480360360a081101561038357600080fd5b5080359060208101359060408101359060608101359060800135610cf4565b005b3480156103b057600080fd5b506103b9610d4d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103f35781810151838201526020016103db565b50505050905090810190601f1680156104205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043a57600080fd5b506104676004803603604081101561045157600080fd5b506001600160a01b038135169060200135610de3565b604080519115158252519081900360200190f35b34801561048757600080fd5b506104676004803603604081101561049e57600080fd5b5080359060200135610e8c565b3480156104b757600080fd5b506104c0610ea0565b60408051918252519081900360200190f35b3480156104de57600080fd5b506104c0610ea6565b3480156104f357600080fd5b506104c0610eac565b34801561050857600080fd5b506103a26004803603604081101561051f57600080fd5b5080359060200135610eb2565b34801561053857600080fd5b506104676004803603606081101561054f57600080fd5b506001600160a01b03813581169160208101359091169060400135610ece565b34801561057b57600080fd5b506104c0610fa8565b34801561059057600080fd5b506104c061100a565b3480156105a557600080fd5b506103a2611010565b3480156105ba57600080fd5b506103a2600480360360208110156105d157600080fd5b50356001600160a01b0316611036565b3480156105ed57600080fd5b506103a26004803603602081101561060457600080fd5b50356001600160a01b0316611070565b34801561062057600080fd5b5061062961108d565b6040805160ff9092168252519081900360200190f35b34801561064b57600080fd5b506104676004803603604081101561066257600080fd5b506001600160a01b038135169060200135611096565b34801561068457600080fd5b506104676004803603604081101561069b57600080fd5b506001600160a01b03813516906020013561112b565b3480156106bd57600080fd5b506103a2600480360360408110156106d457600080fd5b506001600160a01b0381351690602001356111ff565b3480156106f657600080fd5b506106ff611333565b604080516001600160a01b039092168252519081900360200190f35b34801561072757600080fd5b506104c0611342565b34801561073c57600080fd5b506103a26004803603604081101561075357600080fd5b50803590602001356001600160a01b0316611348565b34801561077557600080fd5b506104c061139b565b34801561078a57600080fd5b506104676113b4565b34801561079f57600080fd5b506104c0600480360360208110156107b657600080fd5b50356001600160a01b03166113c4565b3480156107d257600080fd5b506103a26113ec565b3480156107e757600080fd5b506103a2600480360360208110156107fe57600080fd5b50356001600160a01b031661144c565b34801561081a57600080fd5b506103a2611481565b34801561082f57600080fd5b506104c06004803603604081101561084657600080fd5b50803590602001356114e5565b34801561085f57600080fd5b506106ff611691565b34801561087457600080fd5b506104676116a0565b34801561088957600080fd5b506106ff6116aa565b34801561089e57600080fd5b506104676116be565b3480156108b357600080fd5b506103a2600480360360408110156108ca57600080fd5b506001600160a01b03813516906020013515156116d4565b3480156108ee57600080fd5b506103b9611710565b34801561090357600080fd5b506104c0611770565b34801561091857600080fd5b506103a26004803603602081101561092f57600080fd5b50356001600160a01b0316611776565b34801561094b57600080fd5b506103a2611790565b34801561096057600080fd5b506104676004803603604081101561097757600080fd5b506001600160a01b03813516906020013561179b565b34801561099957600080fd5b506106ff6118c5565b3480156109ae57600080fd5b50610467600480360360408110156109c557600080fd5b506001600160a01b0381351690602001356118d4565b3480156109e757600080fd5b50610467600480360360208110156109fe57600080fd5b50356001600160a01b031661193e565b348015610a1a57600080fd5b506104c061194b565b348015610a2f57600080fd5b506106ff611951565b348015610a4457600080fd5b506103a260048036036060811015610a5b57600080fd5b50803515159060208101359060400135611960565b348015610a7c57600080fd5b506104676119b3565b348015610a9157600080fd5b506103a260048036036040811015610aa857600080fd5b810190602081018135640100000000811115610ac357600080fd5b820183602082011115610ad557600080fd5b80359060200191846020830284011164010000000083111715610af757600080fd5b919390929091602081019035640100000000811115610b1557600080fd5b820183602082011115610b2757600080fd5b80359060200191846020830284011164010000000083111715610b4957600080fd5b5090925090506119c3565b348015610b6057600080fd5b5061046760048036036020811015610b7757600080fd5b50356001600160a01b0316611a20565b348015610b9357600080fd5b506104c060048036036020811015610baa57600080fd5b5035611a3e565b348015610bbd57600080fd5b506103a260048036036020811015610bd457600080fd5b50356001600160a01b0316611a92565b348015610bf057600080fd5b506106ff611ac7565b348015610c0557600080fd5b506103a260048036036060811015610c1c57600080fd5b506001600160a01b038135811691602081013582169160409091013516611ad6565b348015610c4a57600080fd5b506104c060048036036040811015610c6157600080fd5b506001600160a01b0381358116916020013516611b26565b348015610c8557600080fd5b506103a260048036036020811015610c9c57600080fd5b50356001600160a01b0316611b51565b348015610cb857600080fd5b506106ff611b6b565b348015610ccd57600080fd5b5061046760048036036020811015610ce457600080fd5b50356001600160a01b0316611b7a565b610cfc6116be565b610d0557600080fd5b600785905560098490556008839055600a829055610d2d84610d278786611b8f565b90611b8f565b600b55600c81905560048104600b5410610d4657600080fd5b5050505050565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b5050505050905090565b600454600090600160a01b900460ff1680610e015750610e016116be565b80610e1b57503360009081526005602052604090205460ff165b610e2457600080fd5b336000818152601b602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600082610e9883611a3e565b119392505050565b600c5481565b60185490565b600b5481565b610eba6116be565b610ec357600080fd5b601291909155601355565b6000826001600160a01b038116610ee457600080fd5b6001600160a01b0385166000908152601b6020908152604080832033845290915290205460001914610f91576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601b82528381203382529091529190912054610f6c918590611cac565b6001600160a01b0386166000908152601b602090815260408083203384529091529020555b610f9c858585611d43565b50600195945050505050565b601954600e546001600160a01b039081166000908152601a602052604080822054600d5490931682528120549092611005929091610fff9190610ff9906b01d290004395eb7bbfffffff1990611f02565b90611f02565b90611be9565b905090565b600a5481565b6110186116be565b61102157600080fd5b6004805460ff60a01b1916600160a01b179055565b61103e6116be565b61104757600080fd5b600480546001600160a01b039092166001600160a01b0319909216821790556000526006602052565b6110786116be565b61108157600080fd5b61108a81611f44565b50565b60025460ff1690565b60006110a06116be565b6110a957600080fd5b6040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b1580156110f857600080fd5b505af115801561110c573d6000803e3d6000fd5b505050506040513d602081101561112257600080fd5b50519392505050565b600454600090600160a01b900460ff168061114957506111496116be565b8061116357503360009081526005602052604090205460ff165b61116c57600080fd5b336000908152601b602090815260408083206001600160a01b038716845290915290205461119a9083611b8f565b336000818152601b602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6112083361193e565b6112435760405162461bcd60e51b81526004018080602001828103825260308152602001806127f76030913960400191505060405180910390fd5b6018546112509082611b8f565b60188190556001600160801b03101561126f576001600160801b036018555b60185461128f906b0cecb8f27f4200f3a00000006000195b061990611be9565b601955600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b1580156112d857600080fd5b505af11580156112ec573d6000803e3d6000fd5b5050506001600160a01b0383166000908152601a6020526040902054611313915082611b8f565b6001600160a01b039092166000908152601a602052604090209190915550565b6004546001600160a01b031681565b60085481565b6113506116be565b61135957600080fd5b60405147906001600160a01b0383169060648584020480156108fc02916000818181858888f19350505050158015611395573d6000803e3d6000fd5b50505050565b6000611005601954601654611be990919063ffffffff16565b601554600160a01b900460ff1681565b6019546001600160a01b0382166000908152601a60205260408120549091610e869190611be9565b6113f46116be565b6113fd57600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b6114546116be565b61145d57600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b601560009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156114d157600080fd5b505af1158015611395573d6000803e3d6000fd5b60006114ef6116be565b6114f857600080fd5b60175460ff161561153c576040805162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b604482015290519081900360640190fd5b8161158257601854604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250601854610e86565b60008212156115a45760185461159c906000849003611f02565b6018556115b5565b6018546115b19083611b8f565b6018555b6018546001600160801b0310156115d2576001600160801b036018555b6018546115ee906b0cecb8f27f4200f3a0000000600019611287565b601955600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b15801561163757600080fd5b505af115801561164b573d6000803e3d6000fd5b505060185460408051918252518693507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a25060185492915050565b6010546001600160a01b031681565b60175460ff161590565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b6116dc6116be565b6116e557600080fd5b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610dd95780601f10610dae57610100808354040283529160200191610dd9565b60075481565b61177e6116be565b61178757600080fd5b61108a81611f86565b61179933611f44565b565b600454600090600160a01b900460ff16806117b957506117b96116be565b806117d357503360009081526005602052604090205460ff165b6117dc57600080fd5b336000908152601b602090815260408083206001600160a01b038716845290915290205480831061183057336000908152601b602090815260408083206001600160a01b038816845290915281205561185f565b61183a8184611f02565b336000908152601b602090815260408083206001600160a01b03891684529091529020555b336000818152601b602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6015546001600160a01b031681565b6000826001600160a01b0381166118ea57600080fd5b600454600160a01b900460ff168061190557506119056116be565b8061191f57503360009081526005602052604090205460ff165b61192857600080fd5b611933338585611d43565b506001949350505050565b6000610e86600383611fc8565b60095481565b600f546001600160a01b031681565b6119686116be565b61197157600080fd5b6015805460ff60a01b1916600160a01b851515021790556119ab826119a5836b0cecb8f27f4200f3a0000000600019611287565b9061202f565b601655505050565b600454600160a01b900460ff1681565b6119cb6116be565b6119d457600080fd5b60005b83811015610d4657611a17338686848181106119ef57fe5b905060200201356001600160a01b0316858585818110611a0b57fe5b90506020020135611d43565b506001016119d7565b6001600160a01b031660009081526006602052604090205460ff1690565b6019546015546001600160a01b03166000908152601a602052604081205490918291611a6991611be9565b9050611a8b611a76610fa8565b610fff611a8484600261202f565b869061202f565b9392505050565b611a9a6116be565b611aa357600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6011546001600160a01b031681565b611ade6116be565b611ae757600080fd5b600f80546001600160a01b039485166001600160a01b031991821617909155601080549385169382169390931790925560118054919093169116179055565b6001600160a01b039182166000908152601b6020908152604080832093909416825291909152205490565b611b596116be565b611b6257600080fd5b61108a81612088565b6014546001600160a01b031681565b601c6020526000908152604090205460ff1681565b600082820183811015611a8b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611a8b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612102565b611c358282611fc8565b15611c87576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008184841115611d3b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d00578181015183820152602001611ce8565b50505050905090810190601f168015611d2d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601c602052604081205460ff16158015611d8557506001600160a01b0383166000908152601c602052604090205460ff16155b611dc5576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b60175460ff1615611de257611ddb848484612167565b9050611a8b565b6000611df96019548461202f90919063ffffffff16565b9050611e036121f9565b15611e1057611e1061224f565b6001600160a01b0385166000908152601a6020526040902054611e339082611f02565b6001600160a01b0386166000908152601a6020526040812091909155611e598686612669565b611e635781611e6e565b611e6e8686846126bd565b6001600160a01b0386166000908152601a6020526040902054909150611e949082611b8f565b6001600160a01b038087166000818152601a6020526040902092909255601954908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ee5908590611be9565b60408051918252519081900360200190a350600195945050505050565b6000611a8b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cac565b611f4f60038261278f565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b611f91600382611c2b565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b03821661200f5760405162461bcd60e51b81526004018080602001828103825260228152602001806128696022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008261203e57506000610e86565b8282028284828161204b57fe5b0414611a8b5760405162461bcd60e51b81526004018080602001828103825260218152602001806128486021913960400191505060405180910390fd5b6001600160a01b03811661209b57600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081836121515760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611d00578181015183820152602001611ce8565b50600083858161215d57fe5b0495945050505050565b60008061217f6019548461202f90919063ffffffff16565b6001600160a01b0386166000908152601a60205260409020549091506121a59082611f02565b6001600160a01b038087166000908152601a602052604080822093909355908616815220546121d49082611b8f565b6001600160a01b0385166000908152601a602052604090205550600190509392505050565b6015546000906001600160a01b0316331480159061221a575060175460ff16155b801561222f5750601554600160a01b900460ff165b8015611005575050601654306000908152601a6020526040902054101590565b6017805460ff1916600117905560125460135460009161226e91610e8c565b61227a5760075461227d565b60005b601954306000908152601a60205260408120549293509161229d91611be9565b905060006122bf6002610fff600b54610fff878761202f90919063ffffffff16565b905060006122cd8383611f02565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061230157fe5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561235557600080fd5b505afa158015612369573d6000803e3d6000fd5b505050506040513d602081101561237f57600080fd5b505181518290600190811061239057fe5b6001600160a01b0392831660209182029290920181019190915260145460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561242a578181015183820152602001612412565b505050509050019650505050505050600060405180830381600087803b15801561245357600080fd5b505af1158015612467573d6000803e3d6000fd5b5050505060006124808247611f0290919063ffffffff16565b9050600061249b612492896002611be9565b600b5490611f02565b905060006124b06002610fff8481878e61202f565b905060006124cd83610fff6009548761202f90919063ffffffff16565b905060006124ea84610fff6008548861202f90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114612541576040519150601f19603f3d011682016040523d82523d6000602084013e612546565b606091505b50506011546040519192506001600160a01b0316906175309085906000818181858888f193505050503d806000811461259b576040519150601f19603f3d011682016040523d82523d6000602084013e6125a0565b606091505b5060009250508a15905061265157601454600f546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561262357600080fd5b505af1158015612637573d6000803e3d6000fd5b50505050506040513d606081101561264e57600080fd5b50505b50506017805460ff1916905550505050505050505050565b6015546000906001600160a01b038481169116148061269557506015546001600160a01b038381169116145b8015611a8b575050506001600160a01b031660009081526006602052604090205460ff161590565b600b54601554600091906001600160a01b03858116911614156126eb57600a546126e8908290611b8f565b90505b600c546000906126ff90610fff868561202f565b306000908152601a602052604090205490915061271c9082611b8f565b306000818152601a60205260409020919091556019546001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061276a908590611be9565b60408051918252519081900360200190a36127858482611f02565b9695505050505050565b6127998282611fc8565b6127d45760405162461bcd60e51b81526004018080602001828103825260218152602001806128276021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220a167c5ca88cda6b6f9ccc9a1e7683ca1a626bfb5502aeea4cf9a6d426c9ee50064736f6c63430007060033

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.