ETH Price: $2,189.88 (-4.21%)

Token

Wulf inu (Wulf)
 

Overview

Max Total Supply

100,000,000,000 Wulf

Holders

92

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 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:
WULF

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-15
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.15;

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

abstract contract Auth {
    address internal owner;
    address internal potentialOwner;
    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;
        emit Authorize_Wallet(adr,true);
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
        emit Authorize_Wallet(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) external onlyOwner {
        require(adr != owner, "Already the owner");
        require(adr != address(0), "Can not be zero address.");
        potentialOwner = adr;
        emit OwnershipNominated(adr);
    }

    function renounceOwnership() external onlyOwner {
        authorizations[owner] = false;
        owner = address(0);
    }

    function acceptOwnership() external {
        require(msg.sender == potentialOwner, "You must be nominated as potential owner before you can accept the role.");
        authorizations[owner] = false;
        authorizations[potentialOwner] = true;

        emit Authorize_Wallet(owner,false);
        emit Authorize_Wallet(potentialOwner,true);
        
        owner = potentialOwner;
        potentialOwner = address(0);
        emit OwnershipTransferred(owner);
    }

    event OwnershipTransferred(address owner);
    event OwnershipNominated(address potentialOwner);
    event Authorize_Wallet(address Wallet, bool Status);
}

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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract WULF is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Wulf inu";
    string public constant symbol = "Wulf";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 100 * 10**9 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isPack;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public marketingFee = 5;
    uint256 public operationsFee = 1;
    uint256 public buybackFee = 2;
    uint256 public totalFee = marketingFee + operationsFee + buybackFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 200;
    uint256 sellMultiplier = 200;
    uint256 transferMultiplier = 100;

    address public marketingFeeReceiver;
    address public operationsWallet;
    address public buybackFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;
    bool public tradingPublic = false;

    bool public swapEnabled = false;
    uint256 public swapThreshold = totalSupply / 1000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0xc9866E99e601e8CfE3c155A91865D5F158E19261;
        buybackFeeReceiver = 0x5A54734DdB6105980666E96EE039b46f14749690;
        operationsWallet = msg.sender;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    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, type(uint256).max);
    }

    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] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 5,"Cannot set max wallet less than 0.5%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }

    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 5,"Cannot set max transaction less than 0.5%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"trading not open yet");
            if(!tradingPublic){
            	require(isPack[sender] || isPack[recipient],"trading not open yet");
            }
        }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

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

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

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

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

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }

        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function openTrading(bool _public, bool _enable) external onlyOwner {
        tradingOpen = _enable;
        tradingPublic = _public;
    }

    function swapBack() internal swapping {

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

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

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHOperations = (amountETH * operationsFee) / totalFee;
        uint256 amountETHBuyback = (amountETH * buybackFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(operationsWallet).transfer(amountETHOperations);
        payable(buybackFeeReceiver).transfer(amountETHBuyback);
    }

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
        }
    }

    function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isWalletLimitExempt[addresses[i]] = status;
        }
    }

    function manage_Pack(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isPack[addresses[i]] = status;
        }
    }

    function update_fees() view internal {
        require(totalFee.mul(buyMultiplier).div(100) <= 16, "Buy tax cannot be more than 16%");
        require(totalFee.mul(sellMultiplier).div(100) <= 16, "Sell tax cannot be more than 16%");
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        update_fees();
    }

    function setFees_base100(uint256 _marketingFee, uint256 _operationsFee, uint256 _buybackFee) external onlyOwner {
        marketingFee = _marketingFee;
        operationsFee = _operationsFee;
        buybackFee = _buybackFee;
        totalFee = _marketingFee + _operationsFee + _buybackFee;
        
        update_fees();
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _operationsWallet, address _buybackFeeReceiver ) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
        operationsWallet = _operationsWallet;
        buybackFeeReceiver = _buybackFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

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":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"potentialOwner","type":"address"}],"name":"OwnershipNominated","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"isPack","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":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Pack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_public","type":"bool"},{"internalType":"bool","name":"_enable","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_operationsWallet","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"}],"name":"setFees_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingPublic","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address 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"}]

60c06040526064620000146009600a6200057c565b620000259064174876e80062000594565b620000319190620005b6565b6003556064620000446009600a6200057c565b620000559064174876e80062000594565b620000619190620005b6565b6004556005600b556001600c556002600d55600d54600c54600b54620000889190620005d9565b620000949190620005d9565b600e5560c8600f81905560105560646011556015805462ffffff60a01b191690556103e8620000c66009600a6200057c565b620000d79064174876e80062000594565b620000e39190620005b6565b601655348015620000f357600080fd5b5060008054336001600160a01b031991821681178355825260026020908152604092839020805460ff1916600117905560158054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000179573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019f9190620005f4565b6001600160a01b039081166080526015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002169190620005f4565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000268573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028e9190620005f4565b6001600160a01b0390811660a052306000818152600660209081526040808320601554909516835293815283822060001990556012805473c9866e99e601e8cfe3c155a91865d5f158e192616001600160a01b03199182161790915560148054735a54734ddb6105980666e96ee039b46f147496909083161790556013805433921682179055825260078152838220805460ff199081166001908117909255600980845286852080548316841790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580548316841790557fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b8054831684179055600a938490528685208054831684179055948452948320805486168217905561dead9092527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054909416909117909255620003eb916200057c565b620003fc9064174876e80062000594565b33600081815260056020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200043f6009600a6200057c565b620004509064174876e80062000594565b60405190815260200160405180910390a36200061f565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004be578160001904821115620004a257620004a262000467565b80851615620004b057918102915b93841c939080029062000482565b509250929050565b600082620004d75750600162000576565b81620004e65750600062000576565b8160018114620004ff57600281146200050a576200052a565b600191505062000576565b60ff8411156200051e576200051e62000467565b50506001821b62000576565b5060208310610133831016604e8410600b84101617156200054f575081810a62000576565b6200055b83836200047d565b806000190482111562000572576200057262000467565b0290505b92915050565b60006200058d60ff841683620004c6565b9392505050565b6000816000190483118215151615620005b157620005b162000467565b500290565b600082620005d457634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005ef57620005ef62000467565b500190565b6000602082840312156200060757600080fd5b81516001600160a01b03811681146200058d57600080fd5b60805160a0516129cf62000661600039600081816107e301528181611a2001528181611e8901528181612149015261217d01526000611f5301526129cf6000f3fe6080604052600436106103015760003560e01c806377b54bad11610190578063bd9ab537116100dc578063e96fada211610095578063f887ea401161006f578063f887ea401461099b578063fd72e22a146109bb578063fe9fbb80146109db578063ffb54a99146109fb57600080fd5b8063e96fada21461093b578063f0b37c041461095b578063f2fde38b1461097b57600080fd5b8063bd9ab53714610845578063c867d60b14610865578063ca439fd914610895578063d7c01032146108b5578063dd62ed3e146108d5578063df20fd491461091b57600080fd5b8063893d20e811610149578063a503160b11610123578063a503160b146107b1578063a8aa1b31146107d1578063a9059cbb14610805578063b6a5d7de1461082557600080fd5b8063893d20e8146107335780638b42507f1461075157806395d89b411461078157600080fd5b806377b54bad1461067a57806378109e541461069a57806379ba5097146106b05780637d1db4a5146106c557806384b1d1ef146106db57806386dc53771461071357600080fd5b80632f54bf6e1161024f578063571ac8b0116102085780636ce46bc3116101e25780636ce46bc3146105f75780636ddd17131461061757806370a0823114610638578063715018a61461066557600080fd5b8063571ac8b0146105a057806361b2620a146105c05780636b67c4df146105e157600080fd5b80632f54bf6e146104b4578063313ce567146104e357806333389e831461050a5780633b2d081c1461053a5780633f4218e0146105505780634be9d8691461058057600080fd5b8063095ea7b3116102bc5780631da1db5e116102965780631da1db5e146104495780631df4ccfc1461046957806323b872dd1461047f5780632b112e491461049f57600080fd5b8063095ea7b3146103ef578063180b0d7e1461041f57806318160ddd1461043457600080fd5b80621086831461030d578062bff4461461032f5780630445b6671461034f57806306fdde0314610378578063090896be146103b957806309302dc6146103cf57600080fd5b3661030857005b600080fd5b34801561031957600080fd5b5061032d61032836600461241c565b610a1c565b005b34801561033b57600080fd5b5061032d61034a36600461241c565b610ae0565b34801561035b57600080fd5b5061036560165481565b6040519081526020015b60405180910390f35b34801561038457600080fd5b506103ac6040518060400160405280600881526020016757756c6620696e7560c01b81525081565b60405161036f91906124a2565b3480156103c557600080fd5b50610365600c5481565b3480156103db57600080fd5b5061032d6103ea3660046124f7565b610b95565b3480156103fb57600080fd5b5061040f61040a366004612525565b610c55565b604051901515815260200161036f565b34801561042b57600080fd5b50610365606481565b34801561044057600080fd5b50610365610cc2565b34801561045557600080fd5b5061032d6104643660046124f7565b610ce0565b34801561047557600080fd5b50610365600e5481565b34801561048b57600080fd5b5061040f61049a366004612551565b610d53565b3480156104ab57600080fd5b50610365610e15565b3480156104c057600080fd5b5061040f6104cf366004612592565b6000546001600160a01b0391821691161490565b3480156104ef57600080fd5b506104f8600981565b60405160ff909116815260200161036f565b34801561051657600080fd5b5061040f610525366004612592565b60086020526000908152604090205460ff1681565b34801561054657600080fd5b50610365600d5481565b34801561055c57600080fd5b5061040f61056b366004612592565b60076020526000908152604090205460ff1681565b34801561058c57600080fd5b5061032d61059b36600461241c565b610e9d565b3480156105ac57600080fd5b5061040f6105bb366004612592565b610f52565b3480156105cc57600080fd5b5060155461040f90600160a81b900460ff1681565b3480156105ed57600080fd5b50610365600b5481565b34801561060357600080fd5b5061032d6106123660046125af565b610f60565b34801561062357600080fd5b5060155461040f90600160b01b900460ff1681565b34801561064457600080fd5b50610365610653366004612592565b60056020526000908152604090205481565b34801561067157600080fd5b5061032d610fa1565b34801561068657600080fd5b5061040f610695366004612525565b610ffb565b3480156106a657600080fd5b5061036560045481565b3480156106bc57600080fd5b5061032d61110a565b3480156106d157600080fd5b5061036560035481565b3480156106e757600080fd5b506014546106fb906001600160a01b031681565b6040516001600160a01b03909116815260200161036f565b34801561071f57600080fd5b5061032d61072e3660046125db565b611292565b34801561073f57600080fd5b506000546001600160a01b03166106fb565b34801561075d57600080fd5b5061040f61076c366004612592565b60096020526000908152604090205460ff1681565b34801561078d57600080fd5b506103ac604051806040016040528060048152602001632bbab63360e11b81525081565b3480156107bd57600080fd5b5061032d6107cc3660046125af565b6112ef565b3480156107dd57600080fd5b506106fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561081157600080fd5b5061040f610820366004612525565b611348565b34801561083157600080fd5b5061032d610840366004612592565b611355565b34801561085157600080fd5b5061032d6108603660046124f7565b6113cf565b34801561087157600080fd5b5061040f610880366004612592565b600a6020526000908152604090205460ff1681565b3480156108a157600080fd5b5061032d6108b036600461241c565b611495565b3480156108c157600080fd5b5061032d6108d0366004612614565b61154a565b3480156108e157600080fd5b506103656108f0366004612654565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561092757600080fd5b5061032d610936366004612682565b6115b3565b34801561094757600080fd5b506012546106fb906001600160a01b031681565b34801561096757600080fd5b5061032d610976366004612592565b611621565b34801561098757600080fd5b5061032d610996366004612592565b6116ee565b3480156109a757600080fd5b506015546106fb906001600160a01b031681565b3480156109c757600080fd5b506013546106fb906001600160a01b031681565b3480156109e757600080fd5b5061040f6109f6366004612592565b61180e565b348015610a0757600080fd5b5060155461040f90600160a01b900460ff1681565b610a253361180e565b610a4a5760405162461bcd60e51b8152600401610a41906126a0565b60405180910390fd5b6101f58210610a6b5760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada5781600a6000868685818110610a8d57610a8d61270a565b9050602002016020810190610aa29190612592565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ad381612736565b9050610a6e565b50505050565b610ae93361180e565b610b055760405162461bcd60e51b8152600401610a41906126a0565b6101f58210610b265760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada578160076000868685818110610b4857610b4861270a565b9050602002016020810190610b5d9190612592565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b8e81612736565b9050610b29565b6000546001600160a01b03163314610bbf5760405162461bcd60e51b8152600401610a419061274f565b6005811015610c1c5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b6064820152608401610a41565b6103e881610c2c6009600a612853565b610c3b9064174876e800612862565b610c459190612862565b610c4f9190612881565b60045550565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cb09086815260200190565b60405180910390a35060015b92915050565b610cce6009600a612853565b610cdd9064174876e800612862565b81565b6000546001600160a01b03163314610d0a5760405162461bcd60e51b8152600401610a419061274f565b4760006064610d198484612862565b610d239190612881565b604051909150339082156108fc029083906000818181858888f19350505050158015610ada573d6000803e3d6000fd5b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610e00576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610ddb91849061182c565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610e0b848484611866565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54909190610e756009600a612853565b610e849064174876e800612862565b610e8e91906128a3565b610e9891906128a3565b905090565b610ea63361180e565b610ec25760405162461bcd60e51b8152600401610a41906126a0565b6101f58210610ee35760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada578160096000868685818110610f0557610f0561270a565b9050602002016020810190610f1a9190612592565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f4b81612736565b9050610ee6565b6000610cbc82600019610c55565b610f693361180e565b610f855760405162461bcd60e51b8152600401610a41906126a0565b6010829055600f8390556011819055610f9c611cb6565b505050565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b8152600401610a419061274f565b600080546001600160a01b03168152600260205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b031633146110265760405162461bcd60e51b8152600401610a419061274f565b81600003611099576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109691906128ba565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156110e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e91906128d3565b6001546001600160a01b0316331461119b5760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610a41565b600080546001600160a01b039081168252600260209081526040808420805460ff199081169091556001805485168652828620805490921617905583548151931683529082019290925260008051602061297a833981519152910160405180910390a160018054604080516001600160a01b039092168252602082019290925260008051602061297a833981519152910160405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610a419061274f565b60158054921515600160a81b0260ff60a81b19921515600160a01b029290921661ffff60a01b1990931692909217179055565b6000546001600160a01b031633146113195760405162461bcd60e51b8152600401610a419061274f565b600b839055600c829055600d8190558061133383856128f0565b61133d91906128f0565b600e55610f9c611cb6565b6000610e0e338484611866565b6000546001600160a01b0316331461137f5760405162461bcd60e51b8152600401610a419061274f565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600190811790915582519384529083015260008051602061297a83398151915291015b60405180910390a150565b6000546001600160a01b031633146113f95760405162461bcd60e51b8152600401610a419061274f565b600581101561145c5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b6064820152608401610a41565b6103e88161146c6009600a612853565b61147b9064174876e800612862565b6114859190612862565b61148f9190612881565b60035550565b61149e3361180e565b6114ba5760405162461bcd60e51b8152600401610a41906126a0565b6101f582106114db5760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada5781600860008686858181106114fd576114fd61270a565b90506020020160208101906115129190612592565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561154381612736565b90506114de565b6000546001600160a01b031633146115745760405162461bcd60e51b8152600401610a419061274f565b601280546001600160a01b039485166001600160a01b031991821617909155601380549385169382169390931790925560148054919093169116179055565b6000546001600160a01b031633146115dd5760405162461bcd60e51b8152600401610a419061274f565b6015805460ff60b01b1916600160b01b84151502179055806116016009600a612853565b6116109064174876e800612862565b61161a9190612881565b6016555050565b6000546001600160a01b0316331461164b5760405162461bcd60e51b8152600401610a419061274f565b6000546001600160a01b03908116908216036116a95760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a41565b6001600160a01b0381166000818152600260209081526040808320805460ff1916905580519384529083019190915260008051602061297a83398151915291016113c4565b6000546001600160a01b031633146117185760405162461bcd60e51b8152600401610a419061274f565b6000546001600160a01b039081169082160361176a5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610a41565b6001600160a01b0381166117c05760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610a41565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef222906020016113c4565b6001600160a01b031660009081526002602052604090205460ff1690565b600081848411156118505760405162461bcd60e51b8152600401610a4191906124a2565b50600061185d84866128a3565b95945050505050565b60175460009060ff16156118865761187f848484611d96565b9050610e0e565b6001600160a01b03841660009081526002602052604090205460ff161580156118c857506001600160a01b03831660009081526002602052604090205460ff16155b156119b057601554600160a01b900460ff1661191d5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a41565b601554600160a81b900460ff166119b0576001600160a01b03841660009081526008602052604090205460ff168061196d57506001600160a01b03831660009081526008602052604090205460ff165b6119b05760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a41565b6001600160a01b03841660009081526002602052604090205460ff161580156119f257506001600160a01b0384166000908152600a602052604090205460ff16155b8015611a1757506001600160a01b0383166000908152600a602052604090205460ff16155b8015611a5557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611acf576004546001600160a01b038416600090815260056020526040902054611a819084906128f0565b1115611acf5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a41565b60035482111580611af857506001600160a01b03841660009081526009602052604090205460ff165b80611b1b57506001600160a01b03831660009081526009602052604090205460ff165b611b5f5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a41565b611b67611e7c565b15611b7457611b74611eef565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054611bc691849061182c565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1680611c1357506001600160a01b03841660009081526007602052604090205460ff165b611c2757611c22858486612121565b611c29565b825b6001600160a01b038516600090815260056020526040902054909150611c4f9082612278565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ca39085815260200190565b60405180910390a3506001949350505050565b6010611cda6064611cd4600f54600e546122d790919063ffffffff16565b90612359565b1115611d285760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313625006044820152606401610a41565b6010611d466064611cd4601054600e546122d790919063ffffffff16565b1115611d945760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203136256044820152606401610a41565b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611de791849061182c565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611e169083612278565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e6a9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611eba575060175460ff16155b8015611ecf5750601554600160b01b900460ff165b8015610e9857505060165430600090815260056020526040902054101590565b6017805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611f3157611f3161270a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611f8557611f8561270a565b6001600160a01b03928316602091820292909201015260155460165460405163791ac94760e01b8152919092169163791ac94791611fcf9190600090869030904290600401612908565b600060405180830381600087803b158015611fe957600080fd5b505af1158015611ffd573d6000803e3d6000fd5b5050600e54600b54479350600092506120169084612862565b6120209190612881565b90506000600e54600c54846120359190612862565b61203f9190612881565b90506000600e54600d54856120549190612862565b61205e9190612881565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015612099573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156120d4573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561210f573d6000803e3d6000fd5b50506017805460ff1916905550505050565b60008215806121305750600e54155b1561213c575081610e0e565b6011546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169084160361217b57506010546121b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036121b95750600f545b60006121e86121c9606480612862565b611cd4846121e2600e548a6122d790919063ffffffff16565b906122d7565b90508015612264573060009081526005602052604090205461220a9082612278565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061225b9085815260200190565b60405180910390a35b61226e858261239b565b9695505050505050565b60008061228583856128f0565b905083811015610e0e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a41565b6000826000036122e957506000610cbc565b60006122f58385612862565b9050826123028583612881565b14610e0e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a41565b6000610e0e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123dd565b6000610e0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061182c565b600081836123fe5760405162461bcd60e51b8152600401610a4191906124a2565b50600061185d8486612881565b801515811461241957600080fd5b50565b60008060006040848603121561243157600080fd5b833567ffffffffffffffff8082111561244957600080fd5b818601915086601f83011261245d57600080fd5b81358181111561246c57600080fd5b8760208260051b850101111561248157600080fd5b602092830195509350508401356124978161240b565b809150509250925092565b600060208083528351808285015260005b818110156124cf578581018301518582016040015282016124b3565b818111156124e1576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561250957600080fd5b5035919050565b6001600160a01b038116811461241957600080fd5b6000806040838503121561253857600080fd5b823561254381612510565b946020939093013593505050565b60008060006060848603121561256657600080fd5b833561257181612510565b9250602084013561258181612510565b929592945050506040919091013590565b6000602082840312156125a457600080fd5b8135610e0e81612510565b6000806000606084860312156125c457600080fd5b505081359360208301359350604090920135919050565b600080604083850312156125ee57600080fd5b82356125f98161240b565b915060208301356126098161240b565b809150509250929050565b60008060006060848603121561262957600080fd5b833561263481612510565b9250602084013561264481612510565b9150604084013561249781612510565b6000806040838503121561266757600080fd5b823561267281612510565b9150602083013561260981612510565b6000806040838503121561269557600080fd5b82356125438161240b565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161274857612748612720565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b808511156127aa57816000190482111561279057612790612720565b8085161561279d57918102915b93841c9390800290612774565b509250929050565b6000826127c157506001610cbc565b816127ce57506000610cbc565b81600181146127e457600281146127ee5761280a565b6001915050610cbc565b60ff8411156127ff576127ff612720565b50506001821b610cbc565b5060208310610133831016604e8410600b841016171561282d575081810a610cbc565b612837838361276f565b806000190482111561284b5761284b612720565b029392505050565b6000610e0e60ff8416836127b2565b600081600019048311821515161561287c5761287c612720565b500290565b60008261289e57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156128b5576128b5612720565b500390565b6000602082840312156128cc57600080fd5b5051919050565b6000602082840312156128e557600080fd5b8151610e0e8161240b565b6000821982111561290357612903612720565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129585784516001600160a01b031683529383019391830191600101612933565b50506001600160a01b0396909616606085015250505060800152939250505056feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a26469706673582212202a310f9521ec7a39820dde4ffbafa8a4c9f59d65062bab37da7076292e589d4964736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106103015760003560e01c806377b54bad11610190578063bd9ab537116100dc578063e96fada211610095578063f887ea401161006f578063f887ea401461099b578063fd72e22a146109bb578063fe9fbb80146109db578063ffb54a99146109fb57600080fd5b8063e96fada21461093b578063f0b37c041461095b578063f2fde38b1461097b57600080fd5b8063bd9ab53714610845578063c867d60b14610865578063ca439fd914610895578063d7c01032146108b5578063dd62ed3e146108d5578063df20fd491461091b57600080fd5b8063893d20e811610149578063a503160b11610123578063a503160b146107b1578063a8aa1b31146107d1578063a9059cbb14610805578063b6a5d7de1461082557600080fd5b8063893d20e8146107335780638b42507f1461075157806395d89b411461078157600080fd5b806377b54bad1461067a57806378109e541461069a57806379ba5097146106b05780637d1db4a5146106c557806384b1d1ef146106db57806386dc53771461071357600080fd5b80632f54bf6e1161024f578063571ac8b0116102085780636ce46bc3116101e25780636ce46bc3146105f75780636ddd17131461061757806370a0823114610638578063715018a61461066557600080fd5b8063571ac8b0146105a057806361b2620a146105c05780636b67c4df146105e157600080fd5b80632f54bf6e146104b4578063313ce567146104e357806333389e831461050a5780633b2d081c1461053a5780633f4218e0146105505780634be9d8691461058057600080fd5b8063095ea7b3116102bc5780631da1db5e116102965780631da1db5e146104495780631df4ccfc1461046957806323b872dd1461047f5780632b112e491461049f57600080fd5b8063095ea7b3146103ef578063180b0d7e1461041f57806318160ddd1461043457600080fd5b80621086831461030d578062bff4461461032f5780630445b6671461034f57806306fdde0314610378578063090896be146103b957806309302dc6146103cf57600080fd5b3661030857005b600080fd5b34801561031957600080fd5b5061032d61032836600461241c565b610a1c565b005b34801561033b57600080fd5b5061032d61034a36600461241c565b610ae0565b34801561035b57600080fd5b5061036560165481565b6040519081526020015b60405180910390f35b34801561038457600080fd5b506103ac6040518060400160405280600881526020016757756c6620696e7560c01b81525081565b60405161036f91906124a2565b3480156103c557600080fd5b50610365600c5481565b3480156103db57600080fd5b5061032d6103ea3660046124f7565b610b95565b3480156103fb57600080fd5b5061040f61040a366004612525565b610c55565b604051901515815260200161036f565b34801561042b57600080fd5b50610365606481565b34801561044057600080fd5b50610365610cc2565b34801561045557600080fd5b5061032d6104643660046124f7565b610ce0565b34801561047557600080fd5b50610365600e5481565b34801561048b57600080fd5b5061040f61049a366004612551565b610d53565b3480156104ab57600080fd5b50610365610e15565b3480156104c057600080fd5b5061040f6104cf366004612592565b6000546001600160a01b0391821691161490565b3480156104ef57600080fd5b506104f8600981565b60405160ff909116815260200161036f565b34801561051657600080fd5b5061040f610525366004612592565b60086020526000908152604090205460ff1681565b34801561054657600080fd5b50610365600d5481565b34801561055c57600080fd5b5061040f61056b366004612592565b60076020526000908152604090205460ff1681565b34801561058c57600080fd5b5061032d61059b36600461241c565b610e9d565b3480156105ac57600080fd5b5061040f6105bb366004612592565b610f52565b3480156105cc57600080fd5b5060155461040f90600160a81b900460ff1681565b3480156105ed57600080fd5b50610365600b5481565b34801561060357600080fd5b5061032d6106123660046125af565b610f60565b34801561062357600080fd5b5060155461040f90600160b01b900460ff1681565b34801561064457600080fd5b50610365610653366004612592565b60056020526000908152604090205481565b34801561067157600080fd5b5061032d610fa1565b34801561068657600080fd5b5061040f610695366004612525565b610ffb565b3480156106a657600080fd5b5061036560045481565b3480156106bc57600080fd5b5061032d61110a565b3480156106d157600080fd5b5061036560035481565b3480156106e757600080fd5b506014546106fb906001600160a01b031681565b6040516001600160a01b03909116815260200161036f565b34801561071f57600080fd5b5061032d61072e3660046125db565b611292565b34801561073f57600080fd5b506000546001600160a01b03166106fb565b34801561075d57600080fd5b5061040f61076c366004612592565b60096020526000908152604090205460ff1681565b34801561078d57600080fd5b506103ac604051806040016040528060048152602001632bbab63360e11b81525081565b3480156107bd57600080fd5b5061032d6107cc3660046125af565b6112ef565b3480156107dd57600080fd5b506106fb7f0000000000000000000000005130d6f40ec59cb3f0daf3cda662c94993f524b281565b34801561081157600080fd5b5061040f610820366004612525565b611348565b34801561083157600080fd5b5061032d610840366004612592565b611355565b34801561085157600080fd5b5061032d6108603660046124f7565b6113cf565b34801561087157600080fd5b5061040f610880366004612592565b600a6020526000908152604090205460ff1681565b3480156108a157600080fd5b5061032d6108b036600461241c565b611495565b3480156108c157600080fd5b5061032d6108d0366004612614565b61154a565b3480156108e157600080fd5b506103656108f0366004612654565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561092757600080fd5b5061032d610936366004612682565b6115b3565b34801561094757600080fd5b506012546106fb906001600160a01b031681565b34801561096757600080fd5b5061032d610976366004612592565b611621565b34801561098757600080fd5b5061032d610996366004612592565b6116ee565b3480156109a757600080fd5b506015546106fb906001600160a01b031681565b3480156109c757600080fd5b506013546106fb906001600160a01b031681565b3480156109e757600080fd5b5061040f6109f6366004612592565b61180e565b348015610a0757600080fd5b5060155461040f90600160a01b900460ff1681565b610a253361180e565b610a4a5760405162461bcd60e51b8152600401610a41906126a0565b60405180910390fd5b6101f58210610a6b5760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada5781600a6000868685818110610a8d57610a8d61270a565b9050602002016020810190610aa29190612592565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ad381612736565b9050610a6e565b50505050565b610ae93361180e565b610b055760405162461bcd60e51b8152600401610a41906126a0565b6101f58210610b265760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada578160076000868685818110610b4857610b4861270a565b9050602002016020810190610b5d9190612592565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b8e81612736565b9050610b29565b6000546001600160a01b03163314610bbf5760405162461bcd60e51b8152600401610a419061274f565b6005811015610c1c5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b6064820152608401610a41565b6103e881610c2c6009600a612853565b610c3b9064174876e800612862565b610c459190612862565b610c4f9190612881565b60045550565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cb09086815260200190565b60405180910390a35060015b92915050565b610cce6009600a612853565b610cdd9064174876e800612862565b81565b6000546001600160a01b03163314610d0a5760405162461bcd60e51b8152600401610a419061274f565b4760006064610d198484612862565b610d239190612881565b604051909150339082156108fc029083906000818181858888f19350505050158015610ada573d6000803e3d6000fd5b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610e00576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610ddb91849061182c565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610e0b848484611866565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54909190610e756009600a612853565b610e849064174876e800612862565b610e8e91906128a3565b610e9891906128a3565b905090565b610ea63361180e565b610ec25760405162461bcd60e51b8152600401610a41906126a0565b6101f58210610ee35760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada578160096000868685818110610f0557610f0561270a565b9050602002016020810190610f1a9190612592565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f4b81612736565b9050610ee6565b6000610cbc82600019610c55565b610f693361180e565b610f855760405162461bcd60e51b8152600401610a41906126a0565b6010829055600f8390556011819055610f9c611cb6565b505050565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b8152600401610a419061274f565b600080546001600160a01b03168152600260205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b031633146110265760405162461bcd60e51b8152600401610a419061274f565b81600003611099576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109691906128ba565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156110e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e91906128d3565b6001546001600160a01b0316331461119b5760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610a41565b600080546001600160a01b039081168252600260209081526040808420805460ff199081169091556001805485168652828620805490921617905583548151931683529082019290925260008051602061297a833981519152910160405180910390a160018054604080516001600160a01b039092168252602082019290925260008051602061297a833981519152910160405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610a419061274f565b60158054921515600160a81b0260ff60a81b19921515600160a01b029290921661ffff60a01b1990931692909217179055565b6000546001600160a01b031633146113195760405162461bcd60e51b8152600401610a419061274f565b600b839055600c829055600d8190558061133383856128f0565b61133d91906128f0565b600e55610f9c611cb6565b6000610e0e338484611866565b6000546001600160a01b0316331461137f5760405162461bcd60e51b8152600401610a419061274f565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600190811790915582519384529083015260008051602061297a83398151915291015b60405180910390a150565b6000546001600160a01b031633146113f95760405162461bcd60e51b8152600401610a419061274f565b600581101561145c5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b6064820152608401610a41565b6103e88161146c6009600a612853565b61147b9064174876e800612862565b6114859190612862565b61148f9190612881565b60035550565b61149e3361180e565b6114ba5760405162461bcd60e51b8152600401610a41906126a0565b6101f582106114db5760405162461bcd60e51b8152600401610a41906126c5565b60005b82811015610ada5781600860008686858181106114fd576114fd61270a565b90506020020160208101906115129190612592565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561154381612736565b90506114de565b6000546001600160a01b031633146115745760405162461bcd60e51b8152600401610a419061274f565b601280546001600160a01b039485166001600160a01b031991821617909155601380549385169382169390931790925560148054919093169116179055565b6000546001600160a01b031633146115dd5760405162461bcd60e51b8152600401610a419061274f565b6015805460ff60b01b1916600160b01b84151502179055806116016009600a612853565b6116109064174876e800612862565b61161a9190612881565b6016555050565b6000546001600160a01b0316331461164b5760405162461bcd60e51b8152600401610a419061274f565b6000546001600160a01b03908116908216036116a95760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610a41565b6001600160a01b0381166000818152600260209081526040808320805460ff1916905580519384529083019190915260008051602061297a83398151915291016113c4565b6000546001600160a01b031633146117185760405162461bcd60e51b8152600401610a419061274f565b6000546001600160a01b039081169082160361176a5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610a41565b6001600160a01b0381166117c05760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610a41565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef222906020016113c4565b6001600160a01b031660009081526002602052604090205460ff1690565b600081848411156118505760405162461bcd60e51b8152600401610a4191906124a2565b50600061185d84866128a3565b95945050505050565b60175460009060ff16156118865761187f848484611d96565b9050610e0e565b6001600160a01b03841660009081526002602052604090205460ff161580156118c857506001600160a01b03831660009081526002602052604090205460ff16155b156119b057601554600160a01b900460ff1661191d5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a41565b601554600160a81b900460ff166119b0576001600160a01b03841660009081526008602052604090205460ff168061196d57506001600160a01b03831660009081526008602052604090205460ff165b6119b05760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a41565b6001600160a01b03841660009081526002602052604090205460ff161580156119f257506001600160a01b0384166000908152600a602052604090205460ff16155b8015611a1757506001600160a01b0383166000908152600a602052604090205460ff16155b8015611a5557507f0000000000000000000000005130d6f40ec59cb3f0daf3cda662c94993f524b26001600160a01b0316836001600160a01b031614155b15611acf576004546001600160a01b038416600090815260056020526040902054611a819084906128f0565b1115611acf5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610a41565b60035482111580611af857506001600160a01b03841660009081526009602052604090205460ff165b80611b1b57506001600160a01b03831660009081526009602052604090205460ff165b611b5f5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610a41565b611b67611e7c565b15611b7457611b74611eef565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054611bc691849061182c565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1680611c1357506001600160a01b03841660009081526007602052604090205460ff165b611c2757611c22858486612121565b611c29565b825b6001600160a01b038516600090815260056020526040902054909150611c4f9082612278565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ca39085815260200190565b60405180910390a3506001949350505050565b6010611cda6064611cd4600f54600e546122d790919063ffffffff16565b90612359565b1115611d285760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313625006044820152606401610a41565b6010611d466064611cd4601054600e546122d790919063ffffffff16565b1115611d945760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203136256044820152606401610a41565b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611de791849061182c565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611e169083612278565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e6a9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000005130d6f40ec59cb3f0daf3cda662c94993f524b21614801590611eba575060175460ff16155b8015611ecf5750601554600160b01b900460ff165b8015610e9857505060165430600090815260056020526040902054101590565b6017805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611f3157611f3161270a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611f8557611f8561270a565b6001600160a01b03928316602091820292909201015260155460165460405163791ac94760e01b8152919092169163791ac94791611fcf9190600090869030904290600401612908565b600060405180830381600087803b158015611fe957600080fd5b505af1158015611ffd573d6000803e3d6000fd5b5050600e54600b54479350600092506120169084612862565b6120209190612881565b90506000600e54600c54846120359190612862565b61203f9190612881565b90506000600e54600d54856120549190612862565b61205e9190612881565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015612099573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156120d4573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561210f573d6000803e3d6000fd5b50506017805460ff1916905550505050565b60008215806121305750600e54155b1561213c575081610e0e565b6011546001600160a01b037f0000000000000000000000005130d6f40ec59cb3f0daf3cda662c94993f524b281169084160361217b57506010546121b9565b7f0000000000000000000000005130d6f40ec59cb3f0daf3cda662c94993f524b26001600160a01b0316856001600160a01b0316036121b95750600f545b60006121e86121c9606480612862565b611cd4846121e2600e548a6122d790919063ffffffff16565b906122d7565b90508015612264573060009081526005602052604090205461220a9082612278565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061225b9085815260200190565b60405180910390a35b61226e858261239b565b9695505050505050565b60008061228583856128f0565b905083811015610e0e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a41565b6000826000036122e957506000610cbc565b60006122f58385612862565b9050826123028583612881565b14610e0e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a41565b6000610e0e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123dd565b6000610e0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061182c565b600081836123fe5760405162461bcd60e51b8152600401610a4191906124a2565b50600061185d8486612881565b801515811461241957600080fd5b50565b60008060006040848603121561243157600080fd5b833567ffffffffffffffff8082111561244957600080fd5b818601915086601f83011261245d57600080fd5b81358181111561246c57600080fd5b8760208260051b850101111561248157600080fd5b602092830195509350508401356124978161240b565b809150509250925092565b600060208083528351808285015260005b818110156124cf578581018301518582016040015282016124b3565b818111156124e1576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561250957600080fd5b5035919050565b6001600160a01b038116811461241957600080fd5b6000806040838503121561253857600080fd5b823561254381612510565b946020939093013593505050565b60008060006060848603121561256657600080fd5b833561257181612510565b9250602084013561258181612510565b929592945050506040919091013590565b6000602082840312156125a457600080fd5b8135610e0e81612510565b6000806000606084860312156125c457600080fd5b505081359360208301359350604090920135919050565b600080604083850312156125ee57600080fd5b82356125f98161240b565b915060208301356126098161240b565b809150509250929050565b60008060006060848603121561262957600080fd5b833561263481612510565b9250602084013561264481612510565b9150604084013561249781612510565b6000806040838503121561266757600080fd5b823561267281612510565b9150602083013561260981612510565b6000806040838503121561269557600080fd5b82356125438161240b565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161274857612748612720565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b808511156127aa57816000190482111561279057612790612720565b8085161561279d57918102915b93841c9390800290612774565b509250929050565b6000826127c157506001610cbc565b816127ce57506000610cbc565b81600181146127e457600281146127ee5761280a565b6001915050610cbc565b60ff8411156127ff576127ff612720565b50506001821b610cbc565b5060208310610133831016604e8410600b841016171561282d575081810a610cbc565b612837838361276f565b806000190482111561284b5761284b612720565b029392505050565b6000610e0e60ff8416836127b2565b600081600019048311821515161561287c5761287c612720565b500290565b60008261289e57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156128b5576128b5612720565b500390565b6000602082840312156128cc57600080fd5b5051919050565b6000602082840312156128e557600080fd5b8151610e0e8161240b565b6000821982111561290357612903612720565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129585784516001600160a01b031683529383019391830191600101612933565b50506001600160a01b0396909616606085015250505060800152939250505056feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a26469706673582212202a310f9521ec7a39820dde4ffbafa8a4c9f59d65062bab37da7076292e589d4964736f6c634300080f0033

Deployed Bytecode Sourcemap

4448:11104:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13487:311;;;;;;;;;;-1:-1:-1;13487:311:0;;;;;:::i;:::-;;:::i;:::-;;12873:295;;;;;;;;;;-1:-1:-1;12873:295:0;;;;;:::i;:::-;;:::i;6015:49::-;;;;;;;;;;;;;;;;;;;1038:25:1;;;1026:2;1011:18;6015:49:0;;;;;;;;4696:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4696:40:0;;;;;;;;;;;;:::i;5390:32::-;;;;;;;;;;;;;;;;8236:261;;;;;;;;;;-1:-1:-1;8236:261:0;;;;;:::i;:::-;;:::i;7340:216::-;;;;;;;;;;-1:-1:-1;7340:216:0;;;;;:::i;:::-;;:::i;:::-;;;2482:14:1;;2475:22;2457:41;;2445:2;2430:18;7340:216:0;2317:187:1;5539:44:0;;;;;;;;;;;;5580:3;5539:44;;4831:64;;;;;;;;;;;;;:::i;11307:259::-;;;;;;;;;;-1:-1:-1;11307:259:0;;;;;:::i;:::-;;:::i;5465:67::-;;;;;;;;;;;;;;;;7858:370;;;;;;;;;;-1:-1:-1;7858:370:0;;;;;:::i;:::-;;:::i;15412:137::-;;;;;;;;;;;;;:::i;2693:103::-;;;;;;;;;;-1:-1:-1;2693:103:0;;;;;:::i;:::-;2748:4;2783:5;-1:-1:-1;;;;;2772:16:0;;;2783:5;;2772:16;;2693:103;4788:34;;;;;;;;;;;;4821:1;4788:34;;;;;3394:4:1;3382:17;;;3364:36;;3352:2;3337:18;4788:34:0;3222:184:1;5190:39:0;;;;;;;;;;-1:-1:-1;5190:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5429:29;;;;;;;;;;;;;;;;5139:44;;;;;;;;;;-1:-1:-1;5139:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13176:303;;;;;;;;;;-1:-1:-1;13176:303:0;;;;;:::i;:::-;;:::i;7564:122::-;;;;;;;;;;-1:-1:-1;7564:122:0;;;;;:::i;:::-;;:::i;5935:33::-;;;;;;;;;;-1:-1:-1;5935:33:0;;;;-1:-1:-1;;;5935:33:0;;;;;;5352:31;;;;;;;;;;;;;;;;14348:225;;;;;;;;;;-1:-1:-1;14348:225:0;;;;;:::i;:::-;;:::i;5977:31::-;;;;;;;;;;-1:-1:-1;5977:31:0;;;;-1:-1:-1;;;5977:31:0;;;;;;5017:45;;;;;;;;;;-1:-1:-1;5017:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;3190:125;;;;;;;;;;;;;:::i;11574:286::-;;;;;;;;;;-1:-1:-1;11574:286:0;;;;;:::i;:::-;;:::i;4958:50::-;;;;;;;;;;;;;;;;3323:480;;;;;;;;;;;;;:::i;4904:47::-;;;;;;;;;;;;;;;;5786:33;;;;;;;;;;-1:-1:-1;5786:33:0;;;;-1:-1:-1;;;;;5786:33:0;;;;;;-1:-1:-1;;;;;3896:32:1;;;3878:51;;3866:2;3851:18;5786:33:0;3732:203:1;11868:142:0;;;;;;;;;;-1:-1:-1;11868:142:0;;;;;:::i;:::-;;:::i;7115:78::-;;;;;;;;;;-1:-1:-1;7167:7:0;7185:5;-1:-1:-1;;;;;7185:5:0;7115:78;;5236:48;;;;;;;;;;-1:-1:-1;5236:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4743:38;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4743:38:0;;;;;14581:335;;;;;;;;;;-1:-1:-1;14581:335:0;;;;;:::i;:::-;;:::i;5859:29::-;;;;;;;;;;;;;;;7694:156;;;;;;;;;;-1:-1:-1;7694:156:0;;;;;:::i;:::-;;:::i;2337:136::-;;;;;;;;;;-1:-1:-1;2337:136:0;;;;;:::i;:::-;;:::i;8505:262::-;;;;;;;;;;-1:-1:-1;8505:262:0;;;;;:::i;:::-;;:::i;5291:52::-;;;;;;;;;;-1:-1:-1;5291:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13806:285;;;;;;;;;;-1:-1:-1;13806:285:0;;;;;:::i;:::-;;:::i;14924:293::-;;;;;;;;;;-1:-1:-1;14924:293:0;;;;;:::i;:::-;;:::i;7199:133::-;;;;;;;;;;-1:-1:-1;7199:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7301:19:0;;;7283:7;7301:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7199:133;15225:179;;;;;;;;;;-1:-1:-1;15225:179:0;;;;;:::i;:::-;;:::i;5706:35::-;;;;;;;;;;-1:-1:-1;5706:35:0;;;;-1:-1:-1;;;;;5706:35:0;;;2481:204;;;;;;;;;;-1:-1:-1;2481:204:0;;;;;:::i;:::-;;:::i;2919:263::-;;;;;;;;;;-1:-1:-1;2919:263:0;;;;;:::i;:::-;;:::i;5828:24::-;;;;;;;;;;-1:-1:-1;5828:24:0;;;;-1:-1:-1;;;;;5828:24:0;;;5748:31;;;;;;;;;;-1:-1:-1;5748:31:0;;;;-1:-1:-1;;;;;5748:31:0;;;2804:107;;;;;;;;;;-1:-1:-1;2804:107:0;;;;;:::i;:::-;;:::i;5897:31::-;;;;;;;;;;-1:-1:-1;5897:31:0;;;;-1:-1:-1;;;5897:31:0;;;;;;13487:311;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;;;;;;;;;13622:3:::1;13603:22:::0;::::1;13595:71;;;;-1:-1:-1::0;;;13595:71:0::1;;;;;;;:::i;:::-;13682:9;13677:114;13695:20:::0;;::::1;13677:114;;;13773:6;13737:19;:33;13757:9;;13767:1;13757:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13737:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13737:33:0;:42;;-1:-1:-1;;13737:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13717:3:::1;::::0;::::1;:::i;:::-;;;13677:114;;;;13487:311:::0;;;:::o;12873:295::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;13000:3:::1;12981:22:::0;::::1;12973:71;;;;-1:-1:-1::0;;;12973:71:0::1;;;;;;;:::i;:::-;13060:9;13055:106;13073:20:::0;;::::1;13055:106;;;13143:6;13115:11;:25;13127:9;;13137:1;13127:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13115:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13115:25:0;:34;;-1:-1:-1;;13115:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13095:3:::1;::::0;::::1;:::i;:::-;;;13055:106;;8236:261:::0;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;8372:1:::1;8345:23;:28;;8337:76;;;::::0;-1:-1:-1;;;8337:76:0;;7734:2:1;8337:76:0::1;::::0;::::1;7716:21:1::0;7773:2;7753:18;;;7746:30;7812:34;7792:18;;;7785:62;-1:-1:-1;;;7863:18:1;;;7856:34;7907:19;;8337:76:0::1;7532:400:1::0;8337:76:0::1;8485:4;8457:23:::0;4883:12:::1;4821:1;4883:2;:12;:::i;:::-;4869:26;::::0;:11:::1;:26;:::i;:::-;8443:37;;;;:::i;:::-;8442:47;;;;:::i;:::-;8424:15;:65:::0;-1:-1:-1;8236:261:0:o;7340:216::-;7444:10;7415:4;7432:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7432:32:0;;;;;;;;;;:41;;;7489:37;7415:4;;7432:32;;7489:37;;;;7467:6;1038:25:1;;1026:2;1011:18;;892:177;7489:37:0;;;;;;;;-1:-1:-1;7544:4:0;7340:216;;;;;:::o;4831:64::-;4883:12;4821:1;4883:2;:12;:::i;:::-;4869:26;;:11;:26;:::i;:::-;4831:64;:::o;11307:259::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;11410:21:::1;11390:17;11501:3;11468:28;11480:16:::0;11410:21;11468:28:::1;:::i;:::-;11466:38;;;;:::i;:::-;11515:43;::::0;11442:62;;-1:-1:-1;11523:10:0::1;::::0;11515:43;::::1;;;::::0;11442:62;;11515:43:::1;::::0;;;11442:62;11523:10;11515:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;7858:370:::0;-1:-1:-1;;;;;7978:19:0;;7958:4;7978:19;;;:11;:19;;;;;;;;7998:10;7978:31;;;;;;;;-1:-1:-1;;7978:52:0;7975:186;;8080:69;;;;;;;;;;;-1:-1:-1;;;8080:69:0;;;;;;;;-1:-1:-1;;;;;8080:19:0;;-1:-1:-1;8080:19:0;;;:11;:19;;;;;8100:10;8080:31;;;;;;;;;;:69;;8116:6;;8080:35;:69::i;:::-;-1:-1:-1;;;;;8046:19:0;;;;;;:11;:19;;;;;;;;8066:10;8046:31;;;;;;;:103;7975:186;8180:40;8194:6;8202:9;8213:6;8180:13;:40::i;:::-;8173:47;;7858:370;;;;;;:::o;15412:137::-;15525:9;:15;;;;4572:42;15465:7;15507:15;;;;;15465:7;;15525:15;4883:12;4821:1;4883:2;:12;:::i;:::-;4869:26;;:11;:26;:::i;:::-;15493:29;;;;:::i;:::-;:47;;;;:::i;:::-;15485:56;;15412:137;:::o;13176:303::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;13307:3:::1;13288:22:::0;::::1;13280:71;;;;-1:-1:-1::0;;;13280:71:0::1;;;;;;;:::i;:::-;13367:9;13362:110;13380:20:::0;;::::1;13362:110;;;13454:6;13422:15;:29;13438:9;;13448:1;13438:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13422:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13422:29:0;:38;;-1:-1:-1;;13422:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13402:3:::1;::::0;::::1;:::i;:::-;;;13362:110;;7564:122:::0;7619:4;7643:35;7651:7;-1:-1:-1;;7643:7:0;:35::i;14348:225::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;14448:14:::1;:22:::0;;;14481:13:::1;:20:::0;;;14512:18:::1;:27:::0;;;14552:13:::1;:11;:13::i;:::-;14348:225:::0;;;:::o;3190:125::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;3273:5:::1;3264::::0;;-1:-1:-1;;;;;3264:5:0::1;3249:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;3249:29:0::1;::::0;;3289:18;;-1:-1:-1;;;;;;3289:18:0::1;::::0;;3190:125::o;11574:286::-;11665:12;2783:5;;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;11693:6:::1;11703:1;11693:11:::0;11690:95:::1;;11729:44;::::0;-1:-1:-1;;;11729:44:0;;11767:4:::1;11729:44;::::0;::::1;3878:51:1::0;-1:-1:-1;;;;;11729:29:0;::::1;::::0;::::1;::::0;3851:18:1;;11729:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11720:53;;11690:95;11804:48;::::0;-1:-1:-1;;;11804:48:0;;11833:10:::1;11804:48;::::0;::::1;10208:51:1::0;10275:18;;;10268:34;;;-1:-1:-1;;;;;11804:28:0;::::1;::::0;::::1;::::0;10181:18:1;;11804:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:480::-:0;3392:14;;-1:-1:-1;;;;;3392:14:0;3378:10;:28;3370:113;;;;-1:-1:-1;;;3370:113:0;;10765:2:1;3370:113:0;;;10747:21:1;10804:2;10784:18;;;10777:30;10843:34;10823:18;;;10816:62;10914:34;10894:18;;;10887:62;-1:-1:-1;;;10965:19:1;;;10958:39;11014:19;;3370:113:0;10563:476:1;3370:113:0;3518:5;3509;;-1:-1:-1;;;;;3509:5:0;;;3494:21;;:14;:21;;;;;;;;:29;;-1:-1:-1;;3494:29:0;;;;;;-1:-1:-1;3549:14:0;;;;3534:30;;;;;:37;;;;;;;;3606:5;;3589:29;;3606:5;;11212:51:1;;11279:18;;;11272:50;;;;-1:-1:-1;;;;;;;;;;;3589:29:0;11185:18:1;3589:29:0;;;;;;;3651:14;;;3634:37;;;-1:-1:-1;;;;;3651:14:0;;;11212:51:1;;11294:2;11279:18;;11272:50;;;;-1:-1:-1;;;;;;;;;;;3634:37:0;11185:18:1;3634:37:0;;;;;;;3700:14;;;;3692:22;;-1:-1:-1;;;;;3700:14:0;;-1:-1:-1;;;;;;3692:22:0;;;;;;;;3725:27;;;;;;3768;;3878:51:1;;;3768:27:0;;3866:2:1;3851:18;3768:27:0;;;;;;;3323:480::o;11868:142::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;11947:11:::1;:21:::0;;11979:23;::::1;;-1:-1:-1::0;;;11979:23:0::1;-1:-1:-1::0;;;;11947:21:0;::::1;;-1:-1:-1::0;;;11947:21:0::1;11979:23:::0;;;;-1:-1:-1;;;;11979:23:0;;;;;;;::::1;::::0;;11868:142::o;14581:335::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;14704:12:::1;:28:::0;;;14743:13:::1;:30:::0;;;14784:10:::1;:24:::0;;;14797:11;14830:30:::1;14759:14:::0;14719:13;14830:30:::1;:::i;:::-;:44;;;;:::i;:::-;14819:8;:55:::0;14895:13:::1;:11;:13::i;7694:156::-:0;7774:4;7798:44;7812:10;7824:9;7835:6;7798:13;:44::i;2337:136::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2397:19:0;::::1;;::::0;;;:14:::1;:19;::::0;;;;;;;;:26;;-1:-1:-1;;2397:26:0::1;2419:4;2397:26:::0;;::::1;::::0;;;2439;;11212:51:1;;;11279:18;;;11272:50;-1:-1:-1;;;;;;;;;;;2439:26:0;11185:18:1;2439:26:0::1;;;;;;;;2337:136:::0;:::o;8505:262::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;8639:1:::1;8611:24;:29;;8603:82;;;::::0;-1:-1:-1;;;8603:82:0;;11668:2:1;8603:82:0::1;::::0;::::1;11650:21:1::0;11707:2;11687:18;;;11680:30;11746:34;11726:18;;;11719:62;-1:-1:-1;;;11797:18:1;;;11790:39;11846:19;;8603:82:0::1;11466:405:1::0;8603:82:0::1;8755:4;8726:24:::0;4883:12:::1;4821:1;4883:2;:12;:::i;:::-;4869:26;::::0;:11:::1;:26;:::i;:::-;8712:38;;;;:::i;:::-;8711:48;;;;:::i;:::-;8696:12;:63:::0;-1:-1:-1;8505:262:0:o;13806:285::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;13928:3:::1;13909:22:::0;::::1;13901:71;;;;-1:-1:-1::0;;;13901:71:0::1;;;;;;;:::i;:::-;13988:9;13983:101;14001:20:::0;;::::1;13983:101;;;14066:6;14043;:20;14050:9;;14060:1;14050:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14043:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14043:20:0;:29;;-1:-1:-1;;14043:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14023:3:::1;::::0;::::1;:::i;:::-;;;13983:101;;14924:293:::0;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;15067:20:::1;:44:::0;;-1:-1:-1;;;;;15067:44:0;;::::1;-1:-1:-1::0;;;;;;15067:44:0;;::::1;;::::0;;;15122:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;15169:18:::1;:40:::0;;;;;::::1;::::0;::::1;;::::0;;14924:293::o;15225:179::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;15321:11:::1;:22:::0;;-1:-1:-1;;;;15321:22:0::1;-1:-1:-1::0;;;15321:22:0;::::1;;;;::::0;;15384:12;4883::::1;4821:1;4883:2;:12;:::i;:::-;4869:26;::::0;:11:::1;:26;:::i;:::-;15370;;;;:::i;:::-;15354:13;:42:::0;-1:-1:-1;;15225:179:0:o;2481:204::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;2560:5:::1;::::0;-1:-1:-1;;;;;2560:5:0;;::::1;2553:12:::0;;::::1;::::0;2545:51:::1;;;::::0;-1:-1:-1;;;2545:51:0;;12078:2:1;2545:51:0::1;::::0;::::1;12060:21:1::0;12117:2;12097:18;;;12090:30;12156:28;12136:18;;;12129:56;12202:18;;2545:51:0::1;11876:350:1::0;2545:51:0::1;-1:-1:-1::0;;;;;2607:19:0;::::1;2629:5;2607:19:::0;;;:14:::1;:19;::::0;;;;;;;:27;;-1:-1:-1;;2607:27:0::1;::::0;;2650;;11212:51:1;;;11279:18;;;11272:50;;;;-1:-1:-1;;;;;;;;;;;2650:27:0;11185:18:1;2650:27:0::1;11044:284:1::0;2919:263:0;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;3012:5:::1;::::0;-1:-1:-1;;;;;3012:5:0;;::::1;3005:12:::0;;::::1;::::0;2997:42:::1;;;::::0;-1:-1:-1;;;2997:42:0;;12433:2:1;2997:42:0::1;::::0;::::1;12415:21:1::0;12472:2;12452:18;;;12445:30;-1:-1:-1;;;12491:18:1;;;12484:47;12548:18;;2997:42:0::1;12231:341:1::0;2997:42:0::1;-1:-1:-1::0;;;;;3058:17:0;::::1;3050:54;;;::::0;-1:-1:-1;;;3050:54:0;;12779:2:1;3050:54:0::1;::::0;::::1;12761:21:1::0;12818:2;12798:18;;;12791:30;12857:26;12837:18;;;12830:54;12901:18;;3050:54:0::1;12577:348:1::0;3050:54:0::1;3115:14;:20:::0;;-1:-1:-1;;;;;;3115:20:0::1;-1:-1:-1::0;;;;;3115:20:0;::::1;::::0;;::::1;::::0;;;3151:23:::1;::::0;3878:51:1;;;3151:23:0::1;::::0;3866:2:1;3851:18;3151:23:0::1;3732:203:1::0;2804:107:0;-1:-1:-1;;;;;2884:19:0;2860:4;2884:19;;;:14;:19;;;;;;;;;2804:107::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;8775:1246::-;8887:6;;8867:4;;8887:6;;8884:63;;;8903:41;8918:6;8926:9;8937:6;8903:14;:41::i;:::-;8896:48;;;;8884:63;-1:-1:-1;;;;;8963:22:0;;;;;;:14;:22;;;;;;;;8962:23;:53;;;;-1:-1:-1;;;;;;8990:25:0;;;;;;:14;:25;;;;;;;;8989:26;8962:53;8959:258;;;9039:11;;-1:-1:-1;;;9039:11:0;;;;9031:43;;;;-1:-1:-1;;;9031:43:0;;13348:2:1;9031:43:0;;;13330:21:1;13387:2;13367:18;;;13360:30;-1:-1:-1;;;13406:18:1;;;13399:50;13466:18;;9031:43:0;13146:344:1;9031:43:0;9093:13;;-1:-1:-1;;;9093:13:0;;;;9089:117;;-1:-1:-1;;;;;9131:14:0;;;;;;:6;:14;;;;;;;;;:35;;-1:-1:-1;;;;;;9149:17:0;;;;;;:6;:17;;;;;;;;9131:35;9123:67;;;;-1:-1:-1;;;9123:67:0;;13348:2:1;9123:67:0;;;13330:21:1;13387:2;13367:18;;;13360:30;-1:-1:-1;;;13406:18:1;;;13399:50;13466:18;;9123:67:0;13146:344:1;9123:67:0;-1:-1:-1;;;;;9234:22:0;;;;;;:14;:22;;;;;;;;9233:23;:55;;;;-1:-1:-1;;;;;;9261:27:0;;;;;;:19;:27;;;;;;;;9260:28;9233:55;:90;;;;-1:-1:-1;;;;;;9293:30:0;;;;;;:19;:30;;;;;;;;9292:31;9233:90;:111;;;;;9340:4;-1:-1:-1;;;;;9327:17:0;:9;-1:-1:-1;;;;;9327:17:0;;;9233:111;9229:230;;;9404:15;;-1:-1:-1;;;;;9370:20:0;;;;;;:9;:20;;;;;;:29;;9393:6;;9370:29;:::i;:::-;9369:50;;9361:86;;;;-1:-1:-1;;;9361:86:0;;13697:2:1;9361:86:0;;;13679:21:1;13736:2;13716:18;;;13709:30;13775:26;13755:18;;;13748:54;13819:18;;9361:86:0;13495:348:1;9361:86:0;9494:12;;9484:6;:22;;9483:51;;;-1:-1:-1;;;;;;9511:23:0;;;;;;:15;:23;;;;;;;;9483:51;:81;;;-1:-1:-1;;;;;;9538:26:0;;;;;;:15;:26;;;;;;;;9483:81;9475:115;;;;-1:-1:-1;;;9475:115:0;;14050:2:1;9475:115:0;;;14032:21:1;14089:2;14069:18;;;14062:30;-1:-1:-1;;;14108:18:1;;;14101:51;14169:18;;9475:115:0;13848:345:1;9475:115:0;9606:16;:14;:16::i;:::-;9603:35;;;9625:10;:8;:10::i;:::-;9670:53;;;;;;;;;;;-1:-1:-1;;;9670:53:0;;;;;;;;-1:-1:-1;;;;;9670:17:0;;-1:-1:-1;9670:17:0;;;:9;:17;;;;;;;;:53;;9692:6;;9670:21;:53::i;:::-;-1:-1:-1;;;;;9650:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9762:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9785:22:0;;;;;;:11;:22;;;;;;;;9762:45;9761:93;;9820:34;9828:6;9836;9844:9;9820:7;:34::i;:::-;9761:93;;;9811:6;9761:93;-1:-1:-1;;;;;9890:20:0;;;;;;:9;:20;;;;;;9736:118;;-1:-1:-1;9890:40:0;;9736:118;9890:24;:40::i;:::-;-1:-1:-1;;;;;9867:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9948:43;;;;;;;;;;9976:14;1038:25:1;;1026:2;1011:18;;892:177;9948:43:0;;;;;;;;-1:-1:-1;10009:4:0;;8775:1246;-1:-1:-1;;;;8775:1246:0:o;14099:241::-;14195:2;14155:36;14187:3;14155:27;14168:13;;14155:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;:42;;14147:86;;;;-1:-1:-1;;;14147:86:0;;14400:2:1;14147:86:0;;;14382:21:1;14439:2;14419:18;;;14412:30;14478:33;14458:18;;;14451:61;14529:18;;14147:86:0;14198:355:1;14147:86:0;14293:2;14252:37;14285:3;14252:28;14265:14;;14252:8;;:12;;:28;;;;:::i;:37::-;:43;;14244:88;;;;-1:-1:-1;;;14244:88:0;;14760:2:1;14244:88:0;;;14742:21:1;;;14779:18;;;14772:30;14838:34;14818:18;;;14811:62;14890:18;;14244:88:0;14558:356:1;14244:88:0;14099:241::o;10033:330::-;10163:53;;;;;;;;;;;-1:-1:-1;;;10163:53:0;;;;;;;;-1:-1:-1;;;;;10163:17:0;;10126:4;10163:17;;;:9;:17;;;;;;;:53;;10185:6;;10163:21;:53::i;:::-;-1:-1:-1;;;;;10143:17:0;;;;;;;:9;:17;;;;;;:73;;;;10250:20;;;;;;;:32;;10275:6;10250:24;:32::i;:::-;-1:-1:-1;;;;;10227:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10298:35;;;;;;;;;;10326:6;1038:25:1;;1026:2;1011:18;;892:177;10298:35:0;;;;;;;;-1:-1:-1;10351:4:0;10033:330;;;;;:::o;11102:197::-;11151:4;11175:10;-1:-1:-1;;;;;11189:4:0;11175:18;;;;;:38;;-1:-1:-1;11207:6:0;;;;11206:7;11175:38;:62;;;;-1:-1:-1;11226:11:0;;-1:-1:-1;;;11226:11:0;;;;11175:62;:116;;;;-1:-1:-1;;11278:13:0;;11268:4;11250:24;;;;:9;:24;;;;;;:41;;;11102:197::o;12018:847::-;6111:6;:13;;-1:-1:-1;;6111:13:0;6120:4;6111:13;;;12093:16:::1;::::0;;12107:1:::1;12093:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12093:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12093:16:0::1;12069:40;;12138:4;12120;12125:1;12120:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12120:23:0::1;;;-1:-1:-1::0;;;;;12120:23:0::1;;;::::0;::::1;12164:4;12154;12159:1;12154:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12154:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;12181:6:::1;::::0;12253:13:::1;::::0;12181:189:::1;::::0;-1:-1:-1;;;12181:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;12253:13;12181:6:::1;::::0;12297:4;;12324::::1;::::0;12344:15:::1;::::0;12181:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12495:8:0::1;::::0;12479:12:::1;::::0;12403:21:::1;::::0;-1:-1:-1;12383:17:0::1;::::0;-1:-1:-1;12467:24:0::1;::::0;12403:21;12467:24:::1;:::i;:::-;12466:37;;;;:::i;:::-;12437:66;;12514:27;12574:8;;12557:13;;12545:9;:25;;;;:::i;:::-;12544:38;;;;:::i;:::-;12514:68;;12593:24;12647:8;;12633:10;;12621:9;:22;;;;:::i;:::-;12620:35;;;;:::i;:::-;12676:20;::::0;12668:58:::1;::::0;12593:62;;-1:-1:-1;;;;;;12676:20:0::1;::::0;12668:58;::::1;;;::::0;12707:18;;12676:20:::1;12668:58:::0;12676:20;12668:58;12707:18;12676:20;12668:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12745:16:0::1;::::0;12737:55:::1;::::0;-1:-1:-1;;;;;12745:16:0;;::::1;::::0;12737:55;::::1;;;::::0;12772:19;;12745:16:::1;12737:55:::0;12745:16;12737:55;12772:19;12745:16;12737:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12811:18:0::1;::::0;12803:54:::1;::::0;-1:-1:-1;;;;;12811:18:0;;::::1;::::0;12803:54;::::1;;;::::0;12840:16;;12811:18:::1;12803:54:::0;12811:18;12803:54;12840:16;12811:18;12803:54;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6129:6:0;:14;;-1:-1:-1;;6129:14:0;;;-1:-1:-1;;;;12018:847:0:o;10371:723::-;10457:7;10480:11;;;:28;;-1:-1:-1;10495:8:0;;:13;10480:28;10477:72;;;-1:-1:-1;10531:6:0;10524:13;;10477:72;10582:18;;-1:-1:-1;;;;;10629:4:0;10616:17;;;;;;10613:154;;-1:-1:-1;10663:14:0;;10613:154;;;10708:4;-1:-1:-1;;;;;10698:14:0;:6;-1:-1:-1;;;;;10698:14:0;;10695:72;;-1:-1:-1;10742:13:0;;10695:72;10779:17;10799:62;10840:20;5580:3;;10840:20;:::i;:::-;10799:36;10824:10;10799:20;10810:8;;10799:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;10779:82;-1:-1:-1;10877:13:0;;10874:172;;10951:4;10933:24;;;;:9;:24;;;;;;:39;;10962:9;10933:28;:39::i;:::-;10924:4;10906:24;;;;:9;:24;;;;;;;:66;;;;10992:42;;-1:-1:-1;;;;;10992:42:0;;;;;;;11024:9;1038:25:1;;1026:2;1011:18;;892:177;10992:42:0;;;;;;;;10874:172;11065:21;:6;11076:9;11065:10;:21::i;:::-;11058:28;10371:723;-1:-1:-1;;;;;;10371:723:0:o;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;16238:2:1;199:46:0;;;16220:21:1;16277:2;16257:18;;;16250:30;16316:29;16296:18;;;16289:57;16363:18;;199:46:0;16036:351:1;620:250:0;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;16594:2:1;785:56:0;;;16576:21:1;16633:2;16613:18;;;16606:30;16672:34;16652:18;;;16645:62;-1:-1:-1;;;16723:18:1;;;16716:31;16764:19;;785:56:0;16392:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:750::-;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;383:18;424:2;416:6;413:14;410:34;;;440:1;437;430:12;410:34;478:6;467:9;463:22;453:32;;523:7;516:4;512:2;508:13;504:27;494:55;;545:1;542;535:12;494:55;585:2;572:16;611:2;603:6;600:14;597:34;;;627:1;624;617:12;597:34;682:7;675:4;665:6;662:1;658:14;654:2;650:23;646:34;643:47;640:67;;;703:1;700;693:12;640:67;734:4;726:13;;;;-1:-1:-1;758:6:1;-1:-1:-1;;799:20:1;;786:34;829:28;786:34;829:28;:::i;:::-;876:5;866:15;;;137:750;;;;;:::o;1074:597::-;1186:4;1215:2;1244;1233:9;1226:21;1276:6;1270:13;1319:6;1314:2;1303:9;1299:18;1292:34;1344:1;1354:140;1368:6;1365:1;1362:13;1354:140;;;1463:14;;;1459:23;;1453:30;1429:17;;;1448:2;1425:26;1418:66;1383:10;;1354:140;;;1512:6;1509:1;1506:13;1503:91;;;1582:1;1577:2;1568:6;1557:9;1553:22;1549:31;1542:42;1503:91;-1:-1:-1;1655:2:1;1634:15;-1:-1:-1;;1630:29:1;1615:45;;;;1662:2;1611:54;;1074:597;-1:-1:-1;;;1074:597:1:o;1676:180::-;1735:6;1788:2;1776:9;1767:7;1763:23;1759:32;1756:52;;;1804:1;1801;1794:12;1756:52;-1:-1:-1;1827:23:1;;1676:180;-1:-1:-1;1676:180:1:o;1861:131::-;-1:-1:-1;;;;;1936:31:1;;1926:42;;1916:70;;1982:1;1979;1972:12;1997:315;2065:6;2073;2126:2;2114:9;2105:7;2101:23;2097:32;2094:52;;;2142:1;2139;2132:12;2094:52;2181:9;2168:23;2200:31;2225:5;2200:31;:::i;:::-;2250:5;2302:2;2287:18;;;;2274:32;;-1:-1:-1;;;1997:315:1:o;2509:456::-;2586:6;2594;2602;2655:2;2643:9;2634:7;2630:23;2626:32;2623:52;;;2671:1;2668;2661:12;2623:52;2710:9;2697:23;2729:31;2754:5;2729:31;:::i;:::-;2779:5;-1:-1:-1;2836:2:1;2821:18;;2808:32;2849:33;2808:32;2849:33;:::i;:::-;2509:456;;2901:7;;-1:-1:-1;;;2955:2:1;2940:18;;;;2927:32;;2509:456::o;2970:247::-;3029:6;3082:2;3070:9;3061:7;3057:23;3053:32;3050:52;;;3098:1;3095;3088:12;3050:52;3137:9;3124:23;3156:31;3181:5;3156:31;:::i;3411:316::-;3488:6;3496;3504;3557:2;3545:9;3536:7;3532:23;3528:32;3525:52;;;3573:1;3570;3563:12;3525:52;-1:-1:-1;;3596:23:1;;;3666:2;3651:18;;3638:32;;-1:-1:-1;3717:2:1;3702:18;;;3689:32;;3411:316;-1:-1:-1;3411:316:1:o;3940:376::-;4002:6;4010;4063:2;4051:9;4042:7;4038:23;4034:32;4031:52;;;4079:1;4076;4069:12;4031:52;4118:9;4105:23;4137:28;4159:5;4137:28;:::i;:::-;4184:5;-1:-1:-1;4241:2:1;4226:18;;4213:32;4254:30;4213:32;4254:30;:::i;:::-;4303:7;4293:17;;;3940:376;;;;;:::o;4321:529::-;4398:6;4406;4414;4467:2;4455:9;4446:7;4442:23;4438:32;4435:52;;;4483:1;4480;4473:12;4435:52;4522:9;4509:23;4541:31;4566:5;4541:31;:::i;:::-;4591:5;-1:-1:-1;4648:2:1;4633:18;;4620:32;4661:33;4620:32;4661:33;:::i;:::-;4713:7;-1:-1:-1;4772:2:1;4757:18;;4744:32;4785:33;4744:32;4785:33;:::i;4855:388::-;4923:6;4931;4984:2;4972:9;4963:7;4959:23;4955:32;4952:52;;;5000:1;4997;4990:12;4952:52;5039:9;5026:23;5058:31;5083:5;5058:31;:::i;:::-;5108:5;-1:-1:-1;5165:2:1;5150:18;;5137:32;5178:33;5137:32;5178:33;:::i;5248:309::-;5313:6;5321;5374:2;5362:9;5353:7;5349:23;5345:32;5342:52;;;5390:1;5387;5380:12;5342:52;5429:9;5416:23;5448:28;5470:5;5448:28;:::i;6048:335::-;6250:2;6232:21;;;6289:2;6269:18;;;6262:30;-1:-1:-1;;;6323:2:1;6308:18;;6301:41;6374:2;6359:18;;6048:335::o;6388:401::-;6590:2;6572:21;;;6629:2;6609:18;;;6602:30;6668:34;6663:2;6648:18;;6641:62;-1:-1:-1;;;6734:2:1;6719:18;;6712:35;6779:3;6764:19;;6388:401::o;6794:127::-;6855:10;6850:3;6846:20;6843:1;6836:31;6886:4;6883:1;6876:15;6910:4;6907:1;6900:15;6926:127;6987:10;6982:3;6978:20;6975:1;6968:31;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7058:135;7097:3;7118:17;;;7115:43;;7138:18;;:::i;:::-;-1:-1:-1;7185:1:1;7174:13;;7058:135::o;7198:329::-;7400:2;7382:21;;;7439:1;7419:18;;;7412:29;-1:-1:-1;;;7472:2:1;7457:18;;7450:36;7518:2;7503:18;;7198:329::o;7937:422::-;8026:1;8069:5;8026:1;8083:270;8104:7;8094:8;8091:21;8083:270;;;8163:4;8159:1;8155:6;8151:17;8145:4;8142:27;8139:53;;;8172:18;;:::i;:::-;8222:7;8212:8;8208:22;8205:55;;;8242:16;;;;8205:55;8321:22;;;;8281:15;;;;8083:270;;;8087:3;7937:422;;;;;:::o;8364:806::-;8413:5;8443:8;8433:80;;-1:-1:-1;8484:1:1;8498:5;;8433:80;8532:4;8522:76;;-1:-1:-1;8569:1:1;8583:5;;8522:76;8614:4;8632:1;8627:59;;;;8700:1;8695:130;;;;8607:218;;8627:59;8657:1;8648:10;;8671:5;;;8695:130;8732:3;8722:8;8719:17;8716:43;;;8739:18;;:::i;:::-;-1:-1:-1;;8795:1:1;8781:16;;8810:5;;8607:218;;8909:2;8899:8;8896:16;8890:3;8884:4;8881:13;8877:36;8871:2;8861:8;8858:16;8853:2;8847:4;8844:12;8840:35;8837:77;8834:159;;;-1:-1:-1;8946:19:1;;;8978:5;;8834:159;9025:34;9050:8;9044:4;9025:34;:::i;:::-;9095:6;9091:1;9087:6;9083:19;9074:7;9071:32;9068:58;;;9106:18;;:::i;:::-;9144:20;;8364:806;-1:-1:-1;;;8364:806:1:o;9175:140::-;9233:5;9262:47;9303:4;9293:8;9289:19;9283:4;9262:47;:::i;9320:168::-;9360:7;9426:1;9422;9418:6;9414:14;9411:1;9408:21;9403:1;9396:9;9389:17;9385:45;9382:71;;;9433:18;;:::i;:::-;-1:-1:-1;9473:9:1;;9320:168::o;9493:217::-;9533:1;9559;9549:132;;9603:10;9598:3;9594:20;9591:1;9584:31;9638:4;9635:1;9628:15;9666:4;9663:1;9656:15;9549:132;-1:-1:-1;9695:9:1;;9493:217::o;9715:125::-;9755:4;9783:1;9780;9777:8;9774:34;;;9788:18;;:::i;:::-;-1:-1:-1;9825:9:1;;9715:125::o;9845:184::-;9915:6;9968:2;9956:9;9947:7;9943:23;9939:32;9936:52;;;9984:1;9981;9974:12;9936:52;-1:-1:-1;10007:16:1;;9845:184;-1:-1:-1;9845:184:1:o;10313:245::-;10380:6;10433:2;10421:9;10412:7;10408:23;10404:32;10401:52;;;10449:1;10446;10439:12;10401:52;10481:9;10475:16;10500:28;10522:5;10500:28;:::i;11333:128::-;11373:3;11404:1;11400:6;11397:1;11394:13;11391:39;;;11410:18;;:::i;:::-;-1:-1:-1;11446:9:1;;11333:128::o;15051:980::-;15313:4;15361:3;15350:9;15346:19;15392:6;15381:9;15374:25;15418:2;15456:6;15451:2;15440:9;15436:18;15429:34;15499:3;15494:2;15483:9;15479:18;15472:31;15523:6;15558;15552:13;15589:6;15581;15574:22;15627:3;15616:9;15612:19;15605:26;;15666:2;15658:6;15654:15;15640:29;;15687:1;15697:195;15711:6;15708:1;15705:13;15697:195;;;15776:13;;-1:-1:-1;;;;;15772:39:1;15760:52;;15867:15;;;;15832:12;;;;15808:1;15726:9;15697:195;;;-1:-1:-1;;;;;;;15948:32:1;;;;15943:2;15928:18;;15921:60;-1:-1:-1;;;16012:3:1;15997:19;15990:35;15909:3;15051:980;-1:-1:-1;;;15051:980:1:o

Swarm Source

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