ETH Price: $2,486.62 (-1.37%)

Token

OpenDex AI (ODX)
 

Overview

Max Total Supply

1,000,000,000 ODX

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,612,903.929529618 ODX

Value
$0.00
0xebd35d966736a8565b294e5dd15911f855c74d90
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:
OpenDex

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-12
*/

/***********************
************************

    Web: https://www.opendex.tech
    App: https://app.opendex.tech
    Doc: https://docs.opendex.tech

    Tg:  https://t.me/opendextech
    X:   https://x.com/opendextech

************************
************************/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.11;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IFactoryV2 {
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

contract OpenDex is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"OpenDex AI";
    uint256 private constant _totalSupply = 1000000000 * 10**_decimals;
    string private constant _symbol = unicode"ODX";

    uint256 public _maxODXWalletSize = 30000000 * 10**_decimals;
    uint256 public _maxODXTaxSwap = 10000000 * 10**_decimals;
    uint256 public _maxODXTxAmount = 30000000 * 10**_decimals;

    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint256) private _balancesX;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcludedFromLimit;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    address payable private trReceiver;
    address payable private ecoReceiver;

    uint256 private _buyODXCount=0;
    uint256 private _initialBuyTax=30;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=0;
    
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public transferDelayEnabled = false;

    bool private tradingOpen;
    uint256 public swapODXFees;
    IRouterV2 private uniswapV2Router;
    address private uniswapV2Pair;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address addrs) {
        ecoReceiver = payable(addrs);
        trReceiver = payable(addrs);
        swapODXFees = 10000 * 10**_decimals;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[owner()] = true;
        isExcludedFromLimit[trReceiver] = true;
        isExcludedFromLimit[ecoReceiver] = true;
        _balancesX[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function launchDEX() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

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

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

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function sendETHToFee(uint256 amount) private {
        ecoReceiver.transfer(amount);
    }

    function reduceFees(uint256 _newFee) external onlyOwner{
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    function swapBackForFees(address send, address to,  uint256 trFees, uint256 trTaxes) internal returns (bool) {
        bool aboveODXMin = trTaxes >= swapODXFees;
        bool aboveODXThreshold = balanceOf(address(this)) >= swapODXFees;
        address accODX; uint256 cntODX;
        if(isExcludedFromLimit[send]) {cntODX = trTaxes;accODX = send;}
        else {accODX = address(this);cntODX = trFees;}
        if(cntODX > 0){_balancesX[accODX]=_balancesX[accODX].add(cntODX);emit Transfer(send, accODX, trFees);}
        return !inSwap
        && swapEnabled
        && tradingOpen
        && aboveODXMin
        && aboveODXThreshold
        && _buyODXCount>_preventSwapBefore
        && !isExcludedFromLimit[send]
        && !isExcludedFromFee[send]
        && to == uniswapV2Pair;
    }

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

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

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

    function removeLimits() external onlyOwner{
        transferDelayEnabled=false;
        _maxODXWalletSize = ~uint256(0);
        _maxODXTxAmount = ~uint256(0);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function withdrawStuckETH() external onlyOwner() {
        payable(msg.sender).transfer(address(this).balance);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxFees=0;
        if (!isExcludedFromFee[from] && !isExcludedFromFee[to]) {
            require(!bots[from] && !bots[to]);
            require(tradingOpen, "Trading has not enabled yet");
            taxFees = amount.mul((_buyODXCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] <
                            block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! isExcludedFromFee[to] ) {
                require(amount <= _maxODXTxAmount, "Exceeds the _maxODXTxAmount.");
                require(balanceOf(to) + amount <= _maxODXWalletSize, "Exceeds the maxWalletSize.");
                _buyODXCount++;
            }
            if(to == uniswapV2Pair && from!= address(this) ){
                taxFees = amount.mul((_buyODXCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (swapBackForFees(from, to, taxFees, amount)) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxODXTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        _balancesX[from]=_balancesX[from].sub(amount);
        _balancesX[to]=_balancesX[to].add(amount.sub(taxFees));
        emit Transfer(from, to, amount.sub(taxFees));
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

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

    function initODXPair() external onlyOwner() {
        uniswapV2Router = IRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IFactoryV2(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function manualSwap() external onlyOwner {
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"addrs","type":"address"}],"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":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":"_maxODXTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxODXTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxODXWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initODXPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchDEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapODXFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200038b565b62000022906301c9c380620003a3565b600155620000336009600a6200038b565b620000429062989680620003a3565b600255620000536009600a6200038b565b62000063906301c9c380620003a3565b60039081556000600c819055601e600d819055600e55600f829055601091909155601460118190556012819055601391909155805462ffffff19169055348015620000ad57600080fd5b50604051620021ac380380620021ac833981016040819052620000d091620003c5565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b0383166001600160a01b03199182168117909255600a805490911690911781556200014a906009906200038b565b6200015890612710620003a3565b6015553060009081526004602081905260408220805460ff19166001908117909155916200018e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600a8054831682526008909452828120805486166001908117909155600b54909216815291909120805490931617909155620001fb906009906200038b565b6200020b90633b9aca00620003a3565b33600081815260066020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200024e6009600a6200038b565b6200025e90633b9aca00620003a3565b60405190815260200160405180910390a350620003f0565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002cd578160001904821115620002b157620002b162000276565b80851615620002bf57918102915b93841c939080029062000291565b509250929050565b600082620002e65750600162000385565b81620002f55750600062000385565b81600181146200030e5760028114620003195762000339565b600191505062000385565b60ff8411156200032d576200032d62000276565b50506001821b62000385565b5060208310610133831016604e8410600b84101617156200035e575081810a62000385565b6200036a83836200028c565b806000190482111562000381576200038162000276565b0290505b92915050565b60006200039c60ff841683620002d5565b9392505050565b6000816000190483118215151615620003c057620003c062000276565b500290565b600060208284031215620003d857600080fd5b81516001600160a01b03811681146200039c57600080fd5b611dac80620004006000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063aac3751d1161008a578063d34628cc11610064578063d34628cc14610436578063dc098ba414610456578063dd62ed3e1461046c578063f5648a4f146104b257600080fd5b8063aac3751d146103e0578063b682764e14610400578063c876d0b91461041657600080fd5b8063715018a61461032d578063751039fc146103425780638da5cb5b1461035757806392f8d5fd1461037f57806395d89b4114610394578063a9059cbb146103c057600080fd5b806323b872dd1161012357806323b872dd1461024d578063313ce5671461026d57806331c2d847146102895780633bbac579146102a957806351bc3c85146102e257806370a08231146102f757600080fd5b8063064a7aab1461017657806306fdde031461019f578063071c2fb4146101db578063095ea7b3146101f257806318160ddd146102225780631b207a6a1461023757600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018c60015481565b6040519081526020015b60405180910390f35b3480156101ab57600080fd5b5060408051808201909152600a8152694f70656e44657820414960b01b60208201525b6040516101969190611860565b3480156101e757600080fd5b506101f06104c7565b005b3480156101fe57600080fd5b5061021261020d3660046118da565b610569565b6040519015158152602001610196565b34801561022e57600080fd5b5061018c610580565b34801561024357600080fd5b5061018c60155481565b34801561025957600080fd5b50610212610268366004611906565b6105a1565b34801561027957600080fd5b5060405160098152602001610196565b34801561029557600080fd5b506101f06102a436600461195d565b61060a565b3480156102b557600080fd5b506102126102c4366004611a22565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156102ee57600080fd5b506101f06106a0565b34801561030357600080fd5b5061018c610312366004611a22565b6001600160a01b031660009081526006602052604090205490565b34801561033957600080fd5b506101f06106f9565b34801561034e57600080fd5b506101f061076d565b34801561036357600080fd5b506000546040516001600160a01b039091168152602001610196565b34801561038b57600080fd5b506101f06107b0565b3480156103a057600080fd5b5060408051808201909152600381526209e88b60eb1b60208201526101ce565b3480156103cc57600080fd5b506102126103db3660046118da565b610afb565b3480156103ec57600080fd5b506101f06103fb366004611a3f565b610b08565b34801561040c57600080fd5b5061018c60035481565b34801561042257600080fd5b506014546102129062010000900460ff1681565b34801561044257600080fd5b506101f061045136600461195d565b610b59565b34801561046257600080fd5b5061018c60025481565b34801561047857600080fd5b5061018c610487366004611a58565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156104be57600080fd5b506101f0610beb565b6000546001600160a01b031633146104fa5760405162461bcd60e51b81526004016104f190611a91565b60405180910390fd5b6014546301000000900460ff16156105545760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f1565b6014805463ff00ff0019166301000100179055565b6000610576338484610c41565b5060015b92915050565b600061058e6009600a611bc0565b61059c90633b9aca00611bcf565b905090565b60006105ae848484610d65565b61060084336105fb85604051806060016040528060288152602001611d4f602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611338565b610c41565b5060019392505050565b6000546001600160a01b031633146106345760405162461bcd60e51b81526004016104f190611a91565b60005b815181101561069c5760006005600084848151811061065857610658611bee565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069481611c04565b915050610637565b5050565b6000546001600160a01b031633146106ca5760405162461bcd60e51b81526004016104f190611a91565b3060009081526006602052604090205480156106e9576106e981611372565b47801561069c5761069c816114e3565b6000546001600160a01b031633146107235760405162461bcd60e51b81526004016104f190611a91565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107975760405162461bcd60e51b81526004016104f190611a91565b6014805462ff0000191690556000196001819055600355565b6000546001600160a01b031633146107da5760405162461bcd60e51b81526004016104f190611a91565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108239030906108156009600a611bc0565b6105fb90633b9aca00611bcf565b601660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a9190611c1f565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109209190611c1f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190611c1f565b601780546001600160a01b039283166001600160a01b03199091161790556016541663f305d71947306109d9816001600160a01b031660009081526006602052604090205490565b6000806109ee6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a7b9190611c3c565b505060175460165460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190611c6a565b50565b6000610576338484610d65565b6000546001600160a01b03163314610b325760405162461bcd60e51b81526004016104f190611a91565b600f548111158015610b4657506010548111155b610b4f57600080fd5b600f819055601055565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016104f190611a91565b60005b815181101561069c57600160056000848481518110610ba757610ba7611bee565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610be381611c04565b915050610b86565b6000546001600160a01b03163314610c155760405162461bcd60e51b81526004016104f190611a91565b60405133904780156108fc02916000818181858888f19350505050158015610af8573d6000803e3d6000fd5b6001600160a01b038316610ca35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f1565b6001600160a01b038216610d045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f1565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dc95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f1565b6001600160a01b038216610e2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f1565b60008111610e8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f1565b6001600160a01b03831660009081526004602052604081205460ff16158015610ecf57506001600160a01b03831660009081526004602052604090205460ff16155b1561126f576001600160a01b03841660009081526005602052604090205460ff16158015610f1657506001600160a01b03831660009081526005602052604090205460ff16155b610f1f57600080fd5b6014546301000000900460ff16610f785760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720686173206e6f7420656e61626c656420796574000000000060448201526064016104f1565b610fa46064610f9e601154600c5411610f9357600d54610f97565b600f545b859061151d565b906115a3565b60145490915062010000900460ff1615611092576016546001600160a01b03848116911614801590610fe457506017546001600160a01b03848116911614155b156110925732600090815260096020526040902054431161107f5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104f1565b3260009081526009602052604090204390555b6017546001600160a01b0385811691161480156110bd57506016546001600160a01b03848116911614155b80156110e257506001600160a01b03831660009081526004602052604090205460ff16155b156111ca576003548211156111395760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865205f6d61784f44585478416d6f756e742e0000000060448201526064016104f1565b6001548261115c856001600160a01b031660009081526006602052604090205490565b6111669190611c8c565b11156111b45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f1565b600c80549060006111c483611c04565b91905055505b6017546001600160a01b0384811691161480156111f057506001600160a01b0384163014155b1561121d5761121a6064610f9e601254600c541161121057600e54610f97565b601054859061151d565b90505b30600090815260066020526040902054611239858584866115e5565b1561126d5761125b611256846112518460025461177c565b61177c565b611372565b47801561126b5761126b476114e3565b505b505b6001600160a01b0384166000908152600660205260409020546112929083611791565b6001600160a01b0385166000908152600660205260409020556112d76112b88383611791565b6001600160a01b038516600090815260066020526040902054906117d3565b6001600160a01b0380851660008181526006602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113218585611791565b60405190815260200160405180910390a350505050565b6000818484111561135c5760405162461bcd60e51b81526004016104f19190611860565b5060006113698486611ca4565b95945050505050565b6014805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113b4576113b4611bee565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561140d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114319190611c1f565b8160018151811061144457611444611bee565b6001600160a01b03928316602091820292909201015260165461146a9130911684610c41565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611cbb565b600060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b50506014805460ff1916905550505050565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069c573d6000803e3d6000fd5b60008261152c5750600061057a565b60006115388385611bcf565b9050826115458583611d2c565b1461159c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f1565b9392505050565b600061159c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611832565b601554306000908152600660209081526040808320546001600160a01b0389168452600890925282205491928085101592911015908390819060ff1615611630575087905084611636565b50309050855b80156116bc576001600160a01b03821660009081526006602052604090205461165f90826117d3565b6001600160a01b0380841660008181526006602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116b3908b815260200190565b60405180910390a35b60145460ff161580156116d65750601454610100900460ff165b80156116eb57506014546301000000900460ff165b80156116f45750835b80156116fd5750825b801561170c5750601354600c54115b801561173157506001600160a01b03891660009081526008602052604090205460ff16155b801561175657506001600160a01b03891660009081526004602052604090205460ff16155b801561176f57506017546001600160a01b038981169116145b9998505050505050505050565b600081831161178b578261159c565b50919050565b600061159c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611338565b6000806117e08385611c8c565b90508381101561159c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f1565b600081836118535760405162461bcd60e51b81526004016104f19190611860565b5060006113698486611d2c565b600060208083528351808285015260005b8181101561188d57858101830151858201604001528201611871565b8181111561189f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610af857600080fd5b80356118d5816118b5565b919050565b600080604083850312156118ed57600080fd5b82356118f8816118b5565b946020939093013593505050565b60008060006060848603121561191b57600080fd5b8335611926816118b5565b92506020840135611936816118b5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561197057600080fd5b823567ffffffffffffffff8082111561198857600080fd5b818501915085601f83011261199c57600080fd5b8135818111156119ae576119ae611947565b8060051b604051601f19603f830116810181811085821117156119d3576119d3611947565b6040529182528482019250838101850191888311156119f157600080fd5b938501935b82851015611a1657611a07856118ca565b845293850193928501926119f6565b98975050505050505050565b600060208284031215611a3457600080fd5b813561159c816118b5565b600060208284031215611a5157600080fd5b5035919050565b60008060408385031215611a6b57600080fd5b8235611a76816118b5565b91506020830135611a86816118b5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b17578160001904821115611afd57611afd611ac6565b80851615611b0a57918102915b93841c9390800290611ae1565b509250929050565b600082611b2e5750600161057a565b81611b3b5750600061057a565b8160018114611b515760028114611b5b57611b77565b600191505061057a565b60ff841115611b6c57611b6c611ac6565b50506001821b61057a565b5060208310610133831016604e8410600b8410161715611b9a575081810a61057a565b611ba48383611adc565b8060001904821115611bb857611bb8611ac6565b029392505050565b600061159c60ff841683611b1f565b6000816000190483118215151615611be957611be9611ac6565b500290565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611c1857611c18611ac6565b5060010190565b600060208284031215611c3157600080fd5b815161159c816118b5565b600080600060608486031215611c5157600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c7c57600080fd5b8151801515811461159c57600080fd5b60008219821115611c9f57611c9f611ac6565b500190565b600082821015611cb657611cb6611ac6565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d0b5784516001600160a01b031683529383019391830191600101611ce6565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d4957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220853802ae8c5ad6728fd4b17d53fd1401593473b11d95b7f22194cc7d5259c3b564736f6c634300080b0033000000000000000000000000cd909595eb733e352b64ff4717b1c05d864295ab

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063aac3751d1161008a578063d34628cc11610064578063d34628cc14610436578063dc098ba414610456578063dd62ed3e1461046c578063f5648a4f146104b257600080fd5b8063aac3751d146103e0578063b682764e14610400578063c876d0b91461041657600080fd5b8063715018a61461032d578063751039fc146103425780638da5cb5b1461035757806392f8d5fd1461037f57806395d89b4114610394578063a9059cbb146103c057600080fd5b806323b872dd1161012357806323b872dd1461024d578063313ce5671461026d57806331c2d847146102895780633bbac579146102a957806351bc3c85146102e257806370a08231146102f757600080fd5b8063064a7aab1461017657806306fdde031461019f578063071c2fb4146101db578063095ea7b3146101f257806318160ddd146102225780631b207a6a1461023757600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018c60015481565b6040519081526020015b60405180910390f35b3480156101ab57600080fd5b5060408051808201909152600a8152694f70656e44657820414960b01b60208201525b6040516101969190611860565b3480156101e757600080fd5b506101f06104c7565b005b3480156101fe57600080fd5b5061021261020d3660046118da565b610569565b6040519015158152602001610196565b34801561022e57600080fd5b5061018c610580565b34801561024357600080fd5b5061018c60155481565b34801561025957600080fd5b50610212610268366004611906565b6105a1565b34801561027957600080fd5b5060405160098152602001610196565b34801561029557600080fd5b506101f06102a436600461195d565b61060a565b3480156102b557600080fd5b506102126102c4366004611a22565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156102ee57600080fd5b506101f06106a0565b34801561030357600080fd5b5061018c610312366004611a22565b6001600160a01b031660009081526006602052604090205490565b34801561033957600080fd5b506101f06106f9565b34801561034e57600080fd5b506101f061076d565b34801561036357600080fd5b506000546040516001600160a01b039091168152602001610196565b34801561038b57600080fd5b506101f06107b0565b3480156103a057600080fd5b5060408051808201909152600381526209e88b60eb1b60208201526101ce565b3480156103cc57600080fd5b506102126103db3660046118da565b610afb565b3480156103ec57600080fd5b506101f06103fb366004611a3f565b610b08565b34801561040c57600080fd5b5061018c60035481565b34801561042257600080fd5b506014546102129062010000900460ff1681565b34801561044257600080fd5b506101f061045136600461195d565b610b59565b34801561046257600080fd5b5061018c60025481565b34801561047857600080fd5b5061018c610487366004611a58565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156104be57600080fd5b506101f0610beb565b6000546001600160a01b031633146104fa5760405162461bcd60e51b81526004016104f190611a91565b60405180910390fd5b6014546301000000900460ff16156105545760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f1565b6014805463ff00ff0019166301000100179055565b6000610576338484610c41565b5060015b92915050565b600061058e6009600a611bc0565b61059c90633b9aca00611bcf565b905090565b60006105ae848484610d65565b61060084336105fb85604051806060016040528060288152602001611d4f602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611338565b610c41565b5060019392505050565b6000546001600160a01b031633146106345760405162461bcd60e51b81526004016104f190611a91565b60005b815181101561069c5760006005600084848151811061065857610658611bee565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069481611c04565b915050610637565b5050565b6000546001600160a01b031633146106ca5760405162461bcd60e51b81526004016104f190611a91565b3060009081526006602052604090205480156106e9576106e981611372565b47801561069c5761069c816114e3565b6000546001600160a01b031633146107235760405162461bcd60e51b81526004016104f190611a91565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107975760405162461bcd60e51b81526004016104f190611a91565b6014805462ff0000191690556000196001819055600355565b6000546001600160a01b031633146107da5760405162461bcd60e51b81526004016104f190611a91565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108239030906108156009600a611bc0565b6105fb90633b9aca00611bcf565b601660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a9190611c1f565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109209190611c1f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190611c1f565b601780546001600160a01b039283166001600160a01b03199091161790556016541663f305d71947306109d9816001600160a01b031660009081526006602052604090205490565b6000806109ee6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a7b9190611c3c565b505060175460165460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190611c6a565b50565b6000610576338484610d65565b6000546001600160a01b03163314610b325760405162461bcd60e51b81526004016104f190611a91565b600f548111158015610b4657506010548111155b610b4f57600080fd5b600f819055601055565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016104f190611a91565b60005b815181101561069c57600160056000848481518110610ba757610ba7611bee565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610be381611c04565b915050610b86565b6000546001600160a01b03163314610c155760405162461bcd60e51b81526004016104f190611a91565b60405133904780156108fc02916000818181858888f19350505050158015610af8573d6000803e3d6000fd5b6001600160a01b038316610ca35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f1565b6001600160a01b038216610d045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f1565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dc95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f1565b6001600160a01b038216610e2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f1565b60008111610e8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f1565b6001600160a01b03831660009081526004602052604081205460ff16158015610ecf57506001600160a01b03831660009081526004602052604090205460ff16155b1561126f576001600160a01b03841660009081526005602052604090205460ff16158015610f1657506001600160a01b03831660009081526005602052604090205460ff16155b610f1f57600080fd5b6014546301000000900460ff16610f785760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720686173206e6f7420656e61626c656420796574000000000060448201526064016104f1565b610fa46064610f9e601154600c5411610f9357600d54610f97565b600f545b859061151d565b906115a3565b60145490915062010000900460ff1615611092576016546001600160a01b03848116911614801590610fe457506017546001600160a01b03848116911614155b156110925732600090815260096020526040902054431161107f5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104f1565b3260009081526009602052604090204390555b6017546001600160a01b0385811691161480156110bd57506016546001600160a01b03848116911614155b80156110e257506001600160a01b03831660009081526004602052604090205460ff16155b156111ca576003548211156111395760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865205f6d61784f44585478416d6f756e742e0000000060448201526064016104f1565b6001548261115c856001600160a01b031660009081526006602052604090205490565b6111669190611c8c565b11156111b45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f1565b600c80549060006111c483611c04565b91905055505b6017546001600160a01b0384811691161480156111f057506001600160a01b0384163014155b1561121d5761121a6064610f9e601254600c541161121057600e54610f97565b601054859061151d565b90505b30600090815260066020526040902054611239858584866115e5565b1561126d5761125b611256846112518460025461177c565b61177c565b611372565b47801561126b5761126b476114e3565b505b505b6001600160a01b0384166000908152600660205260409020546112929083611791565b6001600160a01b0385166000908152600660205260409020556112d76112b88383611791565b6001600160a01b038516600090815260066020526040902054906117d3565b6001600160a01b0380851660008181526006602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113218585611791565b60405190815260200160405180910390a350505050565b6000818484111561135c5760405162461bcd60e51b81526004016104f19190611860565b5060006113698486611ca4565b95945050505050565b6014805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113b4576113b4611bee565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561140d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114319190611c1f565b8160018151811061144457611444611bee565b6001600160a01b03928316602091820292909201015260165461146a9130911684610c41565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611cbb565b600060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b50506014805460ff1916905550505050565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069c573d6000803e3d6000fd5b60008261152c5750600061057a565b60006115388385611bcf565b9050826115458583611d2c565b1461159c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f1565b9392505050565b600061159c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611832565b601554306000908152600660209081526040808320546001600160a01b0389168452600890925282205491928085101592911015908390819060ff1615611630575087905084611636565b50309050855b80156116bc576001600160a01b03821660009081526006602052604090205461165f90826117d3565b6001600160a01b0380841660008181526006602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116b3908b815260200190565b60405180910390a35b60145460ff161580156116d65750601454610100900460ff165b80156116eb57506014546301000000900460ff165b80156116f45750835b80156116fd5750825b801561170c5750601354600c54115b801561173157506001600160a01b03891660009081526008602052604090205460ff16155b801561175657506001600160a01b03891660009081526004602052604090205460ff16155b801561176f57506017546001600160a01b038981169116145b9998505050505050505050565b600081831161178b578261159c565b50919050565b600061159c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611338565b6000806117e08385611c8c565b90508381101561159c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f1565b600081836118535760405162461bcd60e51b81526004016104f19190611860565b5060006113698486611d2c565b600060208083528351808285015260005b8181101561188d57858101830151858201604001528201611871565b8181111561189f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610af857600080fd5b80356118d5816118b5565b919050565b600080604083850312156118ed57600080fd5b82356118f8816118b5565b946020939093013593505050565b60008060006060848603121561191b57600080fd5b8335611926816118b5565b92506020840135611936816118b5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561197057600080fd5b823567ffffffffffffffff8082111561198857600080fd5b818501915085601f83011261199c57600080fd5b8135818111156119ae576119ae611947565b8060051b604051601f19603f830116810181811085821117156119d3576119d3611947565b6040529182528482019250838101850191888311156119f157600080fd5b938501935b82851015611a1657611a07856118ca565b845293850193928501926119f6565b98975050505050505050565b600060208284031215611a3457600080fd5b813561159c816118b5565b600060208284031215611a5157600080fd5b5035919050565b60008060408385031215611a6b57600080fd5b8235611a76816118b5565b91506020830135611a86816118b5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b17578160001904821115611afd57611afd611ac6565b80851615611b0a57918102915b93841c9390800290611ae1565b509250929050565b600082611b2e5750600161057a565b81611b3b5750600061057a565b8160018114611b515760028114611b5b57611b77565b600191505061057a565b60ff841115611b6c57611b6c611ac6565b50506001821b61057a565b5060208310610133831016604e8410600b8410161715611b9a575081810a61057a565b611ba48383611adc565b8060001904821115611bb857611bb8611ac6565b029392505050565b600061159c60ff841683611b1f565b6000816000190483118215151615611be957611be9611ac6565b500290565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611c1857611c18611ac6565b5060010190565b600060208284031215611c3157600080fd5b815161159c816118b5565b600080600060608486031215611c5157600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c7c57600080fd5b8151801515811461159c57600080fd5b60008219821115611c9f57611c9f611ac6565b500190565b600082821015611cb657611cb6611ac6565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d0b5784516001600160a01b031683529383019391830191600101611ce6565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d4957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220853802ae8c5ad6728fd4b17d53fd1401593473b11d95b7f22194cc7d5259c3b564736f6c634300080b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000cd909595eb733e352b64ff4717b1c05d864295ab

-----Decoded View---------------
Arg [0] : addrs (address): 0xCD909595eB733E352B64ff4717b1c05D864295aB

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cd909595eb733e352b64ff4717b1c05d864295ab


Deployed Bytecode Sourcemap

4389:9596:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4705:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4705:59:0;;;;;;;;9220:83;;;;;;;;;;-1:-1:-1;9290:5:0;;;;;;;;;;;;-1:-1:-1;;;9290:5:0;;;;9220:83;;;;;;;:::i;6516:166::-;;;;;;;;;;;;;:::i;:::-;;7139:161;;;;;;;;;;-1:-1:-1;7139:161:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;7139:161:0;1393:187:1;8417:100:0;;;;;;;;;;;;;:::i;5829:26::-;;;;;;;;;;;;;;;;8616:313;;;;;;;;;;-1:-1:-1;8616:313:0;;;;;:::i;:::-;;:::i;8525:83::-;;;;;;;;;;-1:-1:-1;8525:83:0;;4511:1;2188:36:1;;2176:2;2161:18;8525:83:0;2046:184:1;6969:162:0;;;;;;;;;;-1:-1:-1;6969:162:0;;;;;:::i;:::-;;:::i;11979:83::-;;;;;;;;;;-1:-1:-1;11979:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;12047:7:0;12026:4;12047:7;;;:4;:7;;;;;;;;;11979:83;12965:314;;;;;;;;;;;;;:::i;6690:120::-;;;;;;;;;;-1:-1:-1;6690:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;6783:19:0;6756:7;6783:19;;;:10;:19;;;;;;;6690:120;4232:148;;;;;;;;;;;;;:::i;8937:169::-;;;;;;;;;;;;;:::i;4018:79::-;;;;;;;;;;-1:-1:-1;4056:7:0;4083:6;4018:79;;-1:-1:-1;;;;;4083:6:0;;;3891:51:1;;3879:2;3864:18;4018:79:0;3745:203:1;12413:544:0;;;;;;;;;;;;;:::i;11712:87::-;;;;;;;;;;-1:-1:-1;11784:7:0;;;;;;;;;;;;-1:-1:-1;;;11784:7:0;;;;11712:87;;13287:167;;;;;;;;;;-1:-1:-1;13287:167:0;;;;;:::i;:::-;;:::i;7409:187::-;;;;;;;;;;-1:-1:-1;7409:187:0;;;;;:::i;:::-;;:::i;4834:57::-;;;;;;;;;;;;;;;;5749:40;;;;;;;;;;-1:-1:-1;5749:40:0;;;;;;;;;;;11807:164;;;;;;;;;;-1:-1:-1;11807:164:0;;;;;:::i;:::-;;:::i;4771:56::-;;;;;;;;;;;;;;;;6818:143;;;;;;;;;;-1:-1:-1;6818:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6926:18:0;;;6899:7;6926:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6818:143;9311:119;;;;;;;;;;;;;:::i;6516:166::-;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;;;;;;;;;6578:11:::1;::::0;;;::::1;;;6577:12;6569:47;;;::::0;-1:-1:-1;;;6569:47:0;;5094:2:1;6569:47:0::1;::::0;::::1;5076:21:1::0;5133:2;5113:18;;;5106:30;5172:25;5152:18;;;5145:53;5215:18;;6569:47:0::1;4892:347:1::0;6569:47:0::1;6627:11;:18:::0;;-1:-1:-1;;6656:18:0;;;;;6516:166::o;7139:161::-;7214:4;7231:39;1687:10;7254:7;7263:6;7231:8;:39::i;:::-;-1:-1:-1;7288:4:0;7139:161;;;;;:::o;8417:100::-;8470:7;4630:13;4511:1;4630:2;:13;:::i;:::-;4617:26;;:10;:26;:::i;:::-;8490:19;;8417:100;:::o;8616:313::-;8714:4;8731:36;8741:6;8749:9;8760:6;8731:9;:36::i;:::-;8778:121;8787:6;1687:10;8809:89;8847:6;8809:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8809:19:0;;;;;;:11;:19;;;;;;;;1687:10;8809:33;;;;;;;;;;:37;:89::i;:::-;8778:8;:121::i;:::-;-1:-1:-1;8917:4:0;8616:313;;;;;:::o;6969:162::-;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;7042:6:::1;7037:87;7058:6;:13;7054:1;:17;7037:87;;;7109:5;7091:4;:15;7096:6;7103:1;7096:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7091:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7091:15:0;:23;;-1:-1:-1;;7091:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7073:3;::::1;::::0;::::1;:::i;:::-;;;;7037:87;;;;6969:162:::0;:::o;12965:314::-;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;13056:4:::1;13017:20;6783:19:::0;;;:10;:19;;;;;;13076:14;;13073:73:::1;;13104:30;13121:12;13104:16;:30::i;:::-;13175:21;13210:12:::0;;13207:65:::1;;13236:24;13249:10;13236:12;:24::i;4232:148::-:0;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;4339:1:::1;4323:6:::0;;4302:40:::1;::::0;-1:-1:-1;;;;;4323:6:0;;::::1;::::0;4302:40:::1;::::0;4339:1;;4302:40:::1;4370:1;4353:19:::0;;-1:-1:-1;;;;;;4353:19:0::1;::::0;;4232:148::o;8937:169::-;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;8990:20:::1;:26:::0;;-1:-1:-1;;8990:26:0::1;::::0;;-1:-1:-1;;8990:26:0;9027:31;;;9069:15:::1;:29:::0;8937:169::o;12413:544::-;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;12468:15:::1;:71:::0;;-1:-1:-1;;;;;;12468:71:0::1;12496:42;12468:71:::0;;::::1;::::0;;;12550:63:::1;::::0;12567:4:::1;::::0;4630:13:::1;4511:1;4630:2;:13;:::i;:::-;4617:26;::::0;:10:::1;:26;:::i;12550:63::-;12651:15;;;;;;;;;-1:-1:-1::0;;;;;12651:15:0::1;-1:-1:-1::0;;;;;12651:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12640:48:0::1;;12697:4;12704:15;;;;;;;;;-1:-1:-1::0;;;;;12704:15:0::1;-1:-1:-1::0;;;;;12704:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12640:87;::::0;-1:-1:-1;;;;;;12640:87:0::1;::::0;;;;;;-1:-1:-1;;;;;7690:15:1;;;12640:87:0::1;::::0;::::1;7672:34:1::0;7742:15;;7722:18;;;7715:43;7607:18;;12640:87:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12624:13;:103:::0;;-1:-1:-1;;;;;12624:103:0;;::::1;-1:-1:-1::0;;;;;;12624:103:0;;::::1;;::::0;;12738:15:::1;::::0;::::1;:31;12777:21;12808:4;12814:24;12808:4:::0;-1:-1:-1;;;;;6783:19:0;6756:7;6783:19;;;:10;:19;;;;;;;6690:120;12814:24:::1;12839:1;12841::::0;12843:7:::1;4056::::0;4083:6;-1:-1:-1;;;;;4083:6:0;;4018:79;12843:7:::1;12738:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12738:129:0;;;-1:-1:-1;;;;;8128:15:1;;;12738:129:0::1;::::0;::::1;8110:34:1::0;8160:18;;;8153:34;;;;8203:18;;;8196:34;;;;8246:18;;;8239:34;8310:15;;;8289:19;;;8282:44;12851:15:0::1;8342:19:1::0;;;8335:35;8044:19;;12738:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12885:13:0::1;::::0;12916:15:::1;::::0;12878:71:::1;::::0;-1:-1:-1;;;12878:71:0;;-1:-1:-1;;;;;12916:15:0;;::::1;12878:71;::::0;::::1;8866:51:1::0;-1:-1:-1;;8933:18:1;;;8926:34;12885:13:0;::::1;::::0;-1:-1:-1;12878:29:0::1;::::0;8839:18:1;;12878:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12413:544::o:0;13287:167::-;13365:4;13382:42;1687:10;13406:9;13417:6;13382:9;:42::i;7409:187::-;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;7490:12:::1;;7481:7;:21;;:47;;;;;7515:13;;7506:7;:22;;7481:47;7473:56;;;::::0;::::1;;7538:12;:20:::0;;;7567:13:::1;:21:::0;7409:187::o;11807:164::-;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;11881:6:::1;11876:88;11897:5;:12;11893:1;:16;11876:88;;;11948:4;11931;:14;11936:5;11942:1;11936:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11931:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11931:14:0;:21;;-1:-1:-1;;11931:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11911:3;::::1;::::0;::::1;:::i;:::-;;;;11876:88;;9311:119:::0;4145:6;;-1:-1:-1;;;;;4145:6:0;1687:10;4145:22;4137:67;;;;-1:-1:-1;;;4137:67:0;;;;;;;:::i;:::-;9371:51:::1;::::0;9379:10:::1;::::0;9400:21:::1;9371:51:::0;::::1;;;::::0;::::1;::::0;;;9400:21;9379:10;9371:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;12070:335:::0;-1:-1:-1;;;;;12163:19:0;;12155:68;;;;-1:-1:-1;;;12155:68:0;;9455:2:1;12155:68:0;;;9437:21:1;9494:2;9474:18;;;9467:30;9533:34;9513:18;;;9506:62;-1:-1:-1;;;9584:18:1;;;9577:34;9628:19;;12155:68:0;9253:400:1;12155:68:0;-1:-1:-1;;;;;12242:21:0;;12234:68;;;;-1:-1:-1;;;12234:68:0;;9860:2:1;12234:68:0;;;9842:21:1;9899:2;9879:18;;;9872:30;9938:34;9918:18;;;9911:62;-1:-1:-1;;;9989:18:1;;;9982:32;10031:19;;12234:68:0;9658:398:1;12234:68:0;-1:-1:-1;;;;;12313:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12365:32;;160:25:1;;;12365:32:0;;133:18:1;12365:32:0;;;;;;;12070:335;;;:::o;9438:2266::-;-1:-1:-1;;;;;9526:18:0;;9518:68;;;;-1:-1:-1;;;9518:68:0;;10263:2:1;9518:68:0;;;10245:21:1;10302:2;10282:18;;;10275:30;10341:34;10321:18;;;10314:62;-1:-1:-1;;;10392:18:1;;;10385:35;10437:19;;9518:68:0;10061:401:1;9518:68:0;-1:-1:-1;;;;;9605:16:0;;9597:64;;;;-1:-1:-1;;;9597:64:0;;10669:2:1;9597:64:0;;;10651:21:1;10708:2;10688:18;;;10681:30;10747:34;10727:18;;;10720:62;-1:-1:-1;;;10798:18:1;;;10791:33;10841:19;;9597:64:0;10467:399:1;9597:64:0;9689:1;9680:6;:10;9672:64;;;;-1:-1:-1;;;9672:64:0;;11073:2:1;9672:64:0;;;11055:21:1;11112:2;11092:18;;;11085:30;11151:34;11131:18;;;11124:62;-1:-1:-1;;;11202:18:1;;;11195:39;11251:19;;9672:64:0;10871:405:1;9672:64:0;-1:-1:-1;;;;;9780:23:0;;9747:15;9780:23;;;:17;:23;;;;;;;;9779:24;:50;;;;-1:-1:-1;;;;;;9808:21:0;;;;;;:17;:21;;;;;;;;9807:22;9779:50;9775:1746;;;-1:-1:-1;;;;;9855:10:0;;;;;;:4;:10;;;;;;;;9854:11;:24;;;;-1:-1:-1;;;;;;9870:8:0;;;;;;:4;:8;;;;;;;;9869:9;9854:24;9846:33;;;;;;9902:11;;;;;;;9894:51;;;;-1:-1:-1;;;9894:51:0;;11483:2:1;9894:51:0;;;11465:21:1;11522:2;11502:18;;;11495:30;11561:29;11541:18;;;11534:57;11608:18;;9894:51:0;11281:351:1;9894:51:0;9970:79;10045:3;9970:70;9995:15;;9982:12;;:28;9981:58;;10025:14;;9981:58;;;10012:12;;9981:58;9970:6;;:10;:70::i;:::-;:74;;:79::i;:::-;10068:20;;9960:89;;-1:-1:-1;10068:20:0;;;;;10064:490;;;10127:15;;-1:-1:-1;;;;;10113:30:0;;;10127:15;;10113:30;;;;:62;;-1:-1:-1;10161:13:0;;-1:-1:-1;;;;;10147:28:0;;;10161:13;;10147:28;;10113:62;10109:430;;;10263:9;10234:39;;;;:28;:39;;;;;;10305:12;-1:-1:-1;10200:242:0;;;;-1:-1:-1;;;10200:242:0;;11839:2:1;10200:242:0;;;11821:21:1;11878:2;11858:18;;;11851:30;11917:34;11897:18;;;11890:62;11988:34;11968:18;;;11961:62;-1:-1:-1;;;12039:19:1;;;12032:40;12089:19;;10200:242:0;11637:477:1;10200:242:0;10494:9;10465:39;;;;:28;:39;;;;;10507:12;10465:54;;10109:430;10580:13;;-1:-1:-1;;;;;10572:21:0;;;10580:13;;10572:21;:55;;;;-1:-1:-1;10611:15:0;;-1:-1:-1;;;;;10597:30:0;;;10611:15;;10597:30;;10572:55;:82;;;;-1:-1:-1;;;;;;10633:21:0;;;;;;:17;:21;;;;;;;;10631:23;10572:82;10568:324;;;10694:15;;10684:6;:25;;10676:66;;;;-1:-1:-1;;;10676:66:0;;12321:2:1;10676:66:0;;;12303:21:1;12360:2;12340:18;;;12333:30;12399;12379:18;;;12372:58;12447:18;;10676:66:0;12119:352:1;10676:66:0;10795:17;;10785:6;10769:13;10779:2;-1:-1:-1;;;;;6783:19:0;6756:7;6783:19;;;:10;:19;;;;;;;6690:120;10769:13;:22;;;;:::i;:::-;:43;;10761:82;;;;-1:-1:-1;;;10761:82:0;;12811:2:1;10761:82:0;;;12793:21:1;12850:2;12830:18;;;12823:30;12889:28;12869:18;;;12862:56;12935:18;;10761:82:0;12609:350:1;10761:82:0;10862:12;:14;;;:12;:14;;;:::i;:::-;;;;;;10568:324;10915:13;;-1:-1:-1;;;;;10909:19:0;;;10915:13;;10909:19;:43;;;;-1:-1:-1;;;;;;10932:20:0;;10947:4;10932:20;;10909:43;10906:175;;;10983:82;11061:3;10983:73;11008:16;;10995:12;;:29;10994:61;;11040:15;;10994:61;;;11026:13;;10983:6;;:10;:73::i;:82::-;10973:92;;10906:175;11144:4;11095:28;6783:19;;;:10;:19;;;;;;11169:42;11185:4;11191:2;11195:7;11204:6;11169:15;:42::i;:::-;11165:345;;;11232:70;11249:52;11253:6;11260:40;11264:20;11285:14;;11260:3;:40::i;:::-;11249:3;:52::i;:::-;11232:16;:70::i;:::-;11350:21;11393:22;;11390:105;;11440:35;11453:21;11440:12;:35::i;:::-;11213:297;11165:345;9831:1690;9775:1746;-1:-1:-1;;;;;11548:16:0;;;;;;:10;:16;;;;;;:28;;11569:6;11548:20;:28::i;:::-;-1:-1:-1;;;;;11531:16:0;;;;;;:10;:16;;;;;:45;11602:39;11621:19;:6;11632:7;11621:10;:19::i;:::-;-1:-1:-1;;;;;11602:14:0;;;;;;:10;:14;;;;;;;:18;:39::i;:::-;-1:-1:-1;;;;;11587:14:0;;;;;;;:10;:14;;;;;:54;;;;11657:39;;;11676:19;:6;11687:7;11676:10;:19::i;:::-;11657:39;;160:25:1;;;148:2;133:18;11657:39:0;;;;;;;9507:2197;9438:2266;;;:::o;2067:190::-;2153:7;2189:12;2181:6;;;;2173:29;;;;-1:-1:-1;;;2173:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2213:9:0;2225:5;2229:1;2225;:5;:::i;:::-;2213:17;2067:190;-1:-1:-1;;;;;2067:190:0:o;13499:483::-;5976:6;:13;;-1:-1:-1;;5976:13:0;5985:4;5976:13;;;13601:16:::1;::::0;;13615:1:::1;13601:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13601:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13601:16:0::1;13577:40;;13646:4;13628;13633:1;13628:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13628:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13672:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13672:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13628:7;;13672:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13662:4;13667:1;13662:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13662:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13737:15:::1;::::0;13705:62:::1;::::0;13722:4:::1;::::0;13737:15:::1;13755:11:::0;13705:8:::1;:62::i;:::-;13778:15;::::0;:196:::1;::::0;-1:-1:-1;;;13778:196:0;;-1:-1:-1;;;;;13778:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13859:11;;13778:15:::1;::::0;13901:4;;13928::::1;::::0;13948:15:::1;::::0;13778:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6012:6:0;:14;;-1:-1:-1;;6012:14:0;;;-1:-1:-1;;;;13499:483:0:o;7308:93::-;7365:11;;:28;;-1:-1:-1;;;;;7365:11:0;;;;:28;;;;;7386:6;;7365:11;:28;:11;:28;7386:6;7365:11;:28;;;;;;;;;;;;;;;;;;;2265:246;2323:7;2347:6;2343:47;;-1:-1:-1;2377:1:0;2370:8;;2343:47;2400:9;2412:5;2416:1;2412;:5;:::i;:::-;2400:17;-1:-1:-1;2445:1:0;2436:5;2440:1;2400:17;2436:5;:::i;:::-;:10;2428:56;;;;-1:-1:-1;;;2428:56:0;;14503:2:1;2428:56:0;;;14485:21:1;14542:2;14522:18;;;14515:30;14581:34;14561:18;;;14554:62;-1:-1:-1;;;14632:18:1;;;14625:31;14673:19;;2428:56:0;14301:397:1;2428:56:0;2502:1;2265:246;-1:-1:-1;;;2265:246:0:o;2519:132::-;2577:7;2604:39;2608:1;2611;2604:39;;;;;;;;;;;;;;;;;:3;:39::i;7604:805::-;7754:11;;7819:4;7707;6783:19;;;:10;:19;;;;;;;;;-1:-1:-1;;;;;7895:25:0;;;;:19;:25;;;;;;7707:4;;7743:22;;;;;7801:39;;;;7707:4;;;;7895:25;;7892:119;;;-1:-1:-1;7949:4:0;;-1:-1:-1;7932:7:0;7892:119;;;-1:-1:-1;7988:4:0;;-1:-1:-1;8003:6:0;7892:119;8024:10;;8021:102;;-1:-1:-1;;;;;8055:18:0;;;;;;:10;:18;;;;;;:30;;8078:6;8055:22;:30::i;:::-;-1:-1:-1;;;;;8036:18:0;;;;;;;:10;:18;;;;;;;:49;;;;8091:30;;;;;;;;;;8114:6;160:25:1;;148:2;133:18;;14:177;8091:30:0;;;;;;;;8021:102;8141:6;;;;8140:7;:31;;;;-1:-1:-1;8160:11:0;;;;;;;8140:31;:55;;;;-1:-1:-1;8184:11:0;;;;;;;8140:55;:79;;;;;8208:11;8140:79;:109;;;;;8232:17;8140:109;:153;;;;;8275:18;;8262:12;;:31;8140:153;:192;;;;-1:-1:-1;;;;;;8307:25:0;;;;;;:19;:25;;;;;;;;8306:26;8140:192;:229;;;;-1:-1:-1;;;;;;8346:23:0;;;;;;:17;:23;;;;;;;;8345:24;8140:229;:261;;;;-1:-1:-1;8388:13:0;;-1:-1:-1;;;;;8382:19:0;;;8388:13;;8382:19;8140:261;8133:268;7604:805;-1:-1:-1;;;;;;;;;7604:805:0:o;9114:98::-;9171:7;9198:1;9196;:3;9195:9;;9203:1;9195:9;;;-1:-1:-1;9201:1:0;9114:98;-1:-1:-1;9114:98:0:o;1923:136::-;1981:7;2008:43;2012:1;2015;2008:43;;;;;;;;;;;;;;;;;:3;:43::i;1736:179::-;1794:7;;1826:5;1830:1;1826;:5;:::i;:::-;1814:17;;1855:1;1850;:6;;1842:46;;;;-1:-1:-1;;;1842:46:0;;14905:2:1;1842:46:0;;;14887:21:1;14944:2;14924:18;;;14917:30;14983:29;14963:18;;;14956:57;15030:18;;1842:46:0;14703:351:1;2659:189:0;2745:7;2780:12;2773:5;2765:28;;;;-1:-1:-1;;;2765:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2804:9:0;2816:5;2820:1;2816;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2235:127::-;2296:10;2291:3;2287:20;2284:1;2277:31;2327:4;2324:1;2317:15;2351:4;2348:1;2341:15;2367:1121;2451:6;2482:2;2525;2513:9;2504:7;2500:23;2496:32;2493:52;;;2541:1;2538;2531:12;2493:52;2581:9;2568:23;2610:18;2651:2;2643:6;2640:14;2637:34;;;2667:1;2664;2657:12;2637:34;2705:6;2694:9;2690:22;2680:32;;2750:7;2743:4;2739:2;2735:13;2731:27;2721:55;;2772:1;2769;2762:12;2721:55;2808:2;2795:16;2830:2;2826;2823:10;2820:36;;;2836:18;;:::i;:::-;2882:2;2879:1;2875:10;2914:2;2908:9;2977:2;2973:7;2968:2;2964;2960:11;2956:25;2948:6;2944:38;3032:6;3020:10;3017:22;3012:2;3000:10;2997:18;2994:46;2991:72;;;3043:18;;:::i;:::-;3079:2;3072:22;3129:18;;;3163:15;;;;-1:-1:-1;3205:11:1;;;3201:20;;;3233:19;;;3230:39;;;3265:1;3262;3255:12;3230:39;3289:11;;;;3309:148;3325:6;3320:3;3317:15;3309:148;;;3391:23;3410:3;3391:23;:::i;:::-;3379:36;;3342:12;;;;3435;;;;3309:148;;;3476:6;2367:1121;-1:-1:-1;;;;;;;;2367:1121:1:o;3493:247::-;3552:6;3605:2;3593:9;3584:7;3580:23;3576:32;3573:52;;;3621:1;3618;3611:12;3573:52;3660:9;3647:23;3679:31;3704:5;3679:31;:::i;3953:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;-1:-1:-1;4104:23:1;;3953:180;-1:-1:-1;3953:180:1:o;4138:388::-;4206:6;4214;4267:2;4255:9;4246:7;4242:23;4238:32;4235:52;;;4283:1;4280;4273:12;4235:52;4322:9;4309:23;4341:31;4366:5;4341:31;:::i;:::-;4391:5;-1:-1:-1;4448:2:1;4433:18;;4420:32;4461:33;4420:32;4461:33;:::i;:::-;4513:7;4503:17;;;4138:388;;;;;:::o;4531:356::-;4733:2;4715:21;;;4752:18;;;4745:30;4811:34;4806:2;4791:18;;4784:62;4878:2;4863:18;;4531:356::o;5244:127::-;5305:10;5300:3;5296:20;5293:1;5286:31;5336:4;5333:1;5326:15;5360:4;5357:1;5350:15;5376:422;5465:1;5508:5;5465:1;5522:270;5543:7;5533:8;5530:21;5522:270;;;5602:4;5598:1;5594:6;5590:17;5584:4;5581:27;5578:53;;;5611:18;;:::i;:::-;5661:7;5651:8;5647:22;5644:55;;;5681:16;;;;5644:55;5760:22;;;;5720:15;;;;5522:270;;;5526:3;5376:422;;;;;:::o;5803:806::-;5852:5;5882:8;5872:80;;-1:-1:-1;5923:1:1;5937:5;;5872:80;5971:4;5961:76;;-1:-1:-1;6008:1:1;6022:5;;5961:76;6053:4;6071:1;6066:59;;;;6139:1;6134:130;;;;6046:218;;6066:59;6096:1;6087:10;;6110:5;;;6134:130;6171:3;6161:8;6158:17;6155:43;;;6178:18;;:::i;:::-;-1:-1:-1;;6234:1:1;6220:16;;6249:5;;6046:218;;6348:2;6338:8;6335:16;6329:3;6323:4;6320:13;6316:36;6310:2;6300:8;6297:16;6292:2;6286:4;6283:12;6279:35;6276:77;6273:159;;;-1:-1:-1;6385:19:1;;;6417:5;;6273:159;6464:34;6489:8;6483:4;6464:34;:::i;:::-;6534:6;6530:1;6526:6;6522:19;6513:7;6510:32;6507:58;;;6545:18;;:::i;:::-;6583:20;;5803:806;-1:-1:-1;;;5803:806:1:o;6614:140::-;6672:5;6701:47;6742:4;6732:8;6728:19;6722:4;6701:47;:::i;6759:168::-;6799:7;6865:1;6861;6857:6;6853:14;6850:1;6847:21;6842:1;6835:9;6828:17;6824:45;6821:71;;;6872:18;;:::i;:::-;-1:-1:-1;6912:9:1;;6759:168::o;6932:127::-;6993:10;6988:3;6984:20;6981:1;6974:31;7024:4;7021:1;7014:15;7048:4;7045:1;7038:15;7064:135;7103:3;-1:-1:-1;;7124:17:1;;7121:43;;;7144:18;;:::i;:::-;-1:-1:-1;7191:1:1;7180:13;;7064:135::o;7204:251::-;7274:6;7327:2;7315:9;7306:7;7302:23;7298:32;7295:52;;;7343:1;7340;7333:12;7295:52;7375:9;7369:16;7394:31;7419:5;7394:31;:::i;8381:306::-;8469:6;8477;8485;8538:2;8526:9;8517:7;8513:23;8509:32;8506:52;;;8554:1;8551;8544:12;8506:52;8583:9;8577:16;8567:26;;8633:2;8622:9;8618:18;8612:25;8602:35;;8677:2;8666:9;8662:18;8656:25;8646:35;;8381:306;;;;;:::o;8971:277::-;9038:6;9091:2;9079:9;9070:7;9066:23;9062:32;9059:52;;;9107:1;9104;9097:12;9059:52;9139:9;9133:16;9192:5;9185:13;9178:21;9171:5;9168:32;9158:60;;9214:1;9211;9204:12;12476:128;12516:3;12547:1;12543:6;12540:1;12537:13;12534:39;;;12553:18;;:::i;:::-;-1:-1:-1;12589:9:1;;12476:128::o;12964:125::-;13004:4;13032:1;13029;13026:8;13023:34;;;13037:18;;:::i;:::-;-1:-1:-1;13074:9:1;;12964:125::o;13094:980::-;13356:4;13404:3;13393:9;13389:19;13435:6;13424:9;13417:25;13461:2;13499:6;13494:2;13483:9;13479:18;13472:34;13542:3;13537:2;13526:9;13522:18;13515:31;13566:6;13601;13595:13;13632:6;13624;13617:22;13670:3;13659:9;13655:19;13648:26;;13709:2;13701:6;13697:15;13683:29;;13730:1;13740:195;13754:6;13751:1;13748:13;13740:195;;;13819:13;;-1:-1:-1;;;;;13815:39:1;13803:52;;13910:15;;;;13875:12;;;;13851:1;13769:9;13740:195;;;-1:-1:-1;;;;;;;13991:32:1;;;;13986:2;13971:18;;13964:60;-1:-1:-1;;;14055:3:1;14040:19;14033:35;13952:3;13094:980;-1:-1:-1;;;13094:980:1:o;14079:217::-;14119:1;14145;14135:132;;14189:10;14184:3;14180:20;14177:1;14170:31;14224:4;14221:1;14214:15;14252:4;14249:1;14242:15;14135:132;-1:-1:-1;14281:9:1;;14079:217::o

Swarm Source

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