ETH Price: $3,364.54 (+0.50%)

Token

Digimon Inu (DIGINU)
 

Overview

Max Total Supply

1,000,000,000,000 DIGINU

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
25,786,186,678.906665842 DIGINU

Value
$0.00
0xe2f9dc2af6914b6a13a4b0c20004e6d18c41995d
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:
DIGIMON

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-17
*/

/**
 *Submitted for verification at Etherscan.io on 2021-11-17
*/

/*
   Digimon Inu - $DIGINU
   
   https://t.me/DigimoninuETH
   
  

                                        
   
*/



// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }

}  

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

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

contract DIGIMON is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Digimon Inu";
    string private constant _symbol = "DIGINU";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x002455164e463F0b2aD64c3deA3F189006ad029e);
        _feeAddrWallet2 = payable(0x002455164e463F0b2aD64c3deA3F189006ad029e);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

    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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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 _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");
        _feeAddr1 = 2;
        _feeAddr2 = 8;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = 10;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 50000000000 * 10 ** 9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function blacklistBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function removeStrictTxLimit() public onlyOwner {
        _maxTxAmount = 1e12 * 10**9;
    }
    
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[{"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":"address[]","name":"bots_","type":"address[]"}],"name":"blacklistBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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":"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":[{"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"}]

60806040526200001b683635c9adc5dea0000060001962000216565b6200002990600019620001f2565b600855600f805462ffffff60a81b19169055683635c9adc5dea000006010553480156200005557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c8054722455164e463f0b2ad64c3dea3f189006ad029e6001600160a01b03199182168117909255600d8054909116909117905560085460026000620000db3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000115620001e360201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54821684528284208054861682179055600d54909116835291208054909216179055620001863390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001d591815260200190565b60405180910390a362000237565b6000546001600160a01b031690565b6000828210156200021157634e487b7160e01b81526011600452602481fd5b500390565b6000826200023257634e487b7160e01b81526012600452602481fd5b500690565b611f4f80620002476000396000f3fe60806040526004361061012d5760003560e01c806370a08231116100a5578063a9059cbb11610074578063c9567bf911610059578063c9567bf914610372578063dd62ed3e14610387578063ff872602146103cd57600080fd5b8063a9059cbb1461033d578063c3c8cd801461035d57600080fd5b806370a082311461029a578063715018a6146102ba5780638da5cb5b146102cf57806395d89b41146102f757600080fd5b806323b872dd116100fc578063313ce567116100e1578063313ce567146102495780635932ead1146102655780636fc3eaec1461028557600080fd5b806323b872dd14610209578063273123b71461022957600080fd5b806306fdde0314610139578063089d566c14610191578063095ea7b3146101b357806318160ddd146101e357600080fd5b3661013457005b600080fd5b34801561014557600080fd5b5060408051808201909152600b81527f446967696d6f6e20496e7500000000000000000000000000000000000000000060208201525b6040516101889190611cb1565b60405180910390f35b34801561019d57600080fd5b506101b16101ac366004611b67565b6103e2565b005b3480156101bf57600080fd5b506101d36101ce366004611b3c565b6104f2565b6040519015158152602001610188565b3480156101ef57600080fd5b50683635c9adc5dea000005b604051908152602001610188565b34801561021557600080fd5b506101d3610224366004611afc565b610509565b34801561023557600080fd5b506101b1610244366004611a8c565b610572565b34801561025557600080fd5b5060405160098152602001610188565b34801561027157600080fd5b506101b1610280366004611c4c565b61060b565b34801561029157600080fd5b506101b16106b2565b3480156102a657600080fd5b506101fb6102b5366004611a8c565b6106df565b3480156102c657600080fd5b506101b1610701565b3480156102db57600080fd5b506000546040516001600160a01b039091168152602001610188565b34801561030357600080fd5b5060408051808201909152600681527f444947494e550000000000000000000000000000000000000000000000000000602082015261017b565b34801561034957600080fd5b506101d3610358366004611b3c565b6107bd565b34801561036957600080fd5b506101b16107ca565b34801561037e57600080fd5b506101b1610800565b34801561039357600080fd5b506101fb6103a2366004611ac4565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103d957600080fd5b506101b1610cc5565b6000546001600160a01b031633146104415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b81518110156104ee5760016006600084848151811061048c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055806104e681611e37565b915050610444565b5050565b60006104ff338484610d2e565b5060015b92915050565b6000610516848484610e86565b610568843361056385604051806060016040528060288152602001611ef2602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611252565b610d2e565b5060019392505050565b6000546001600160a01b031633146105cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b6001600160a01b0316600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000546001600160a01b031633146106655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b600f805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b600c546001600160a01b0316336001600160a01b0316146106d257600080fd5b476106dc8161128c565b50565b6001600160a01b03811660009081526002602052604081205461050390611311565b6000546001600160a01b0316331461075b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60006104ff338484610e86565b600c546001600160a01b0316336001600160a01b0316146107ea57600080fd5b60006107f5306106df565b90506106dc816113a8565b6000546001600160a01b0316331461085a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b600f5474010000000000000000000000000000000000000000900460ff16156108c55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610438565b600e80547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561091a3082683635c9adc5dea00000610d2e565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561095357600080fd5b505afa158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190611aa8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d357600080fd5b505afa1580156109e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0b9190611aa8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa39190611aa8565b600f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055600e541663f305d7194730610aeb816106df565b600080610b006000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b7b57600080fd5b505af1158015610b8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb49190611c84565b5050600f80546802b5e3af16b18800006010557fffffffffffffffff0000ff00ffffffffffffffffffffffffffffffffffffffff81167701010001000000000000000000000000000000000000000017909155600e546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b390604401602060405180830381600087803b158015610c8d57600080fd5b505af1158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190611c68565b6000546001600160a01b03163314610d1f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b683635c9adc5dea00000601055565b6001600160a01b038316610da95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610438565b6001600160a01b038216610e255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610438565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610438565b6001600160a01b038216610f7e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610438565b60008111610ff45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610438565b6002600a556008600b556000546001600160a01b0384811691161480159061102a57506000546001600160a01b03838116911614155b15611242576001600160a01b03831660009081526006602052604090205460ff1615801561107157506001600160a01b03821660009081526006602052604090205460ff16155b61107a57600080fd5b600f546001600160a01b0384811691161480156110a55750600e546001600160a01b03838116911614155b80156110ca57506001600160a01b03821660009081526005602052604090205460ff16155b80156110f35750600f5477010000000000000000000000000000000000000000000000900460ff165b156111505760105481111561110757600080fd5b6001600160a01b038216600090815260076020526040902054421161112b57600080fd5b61113642601e611d92565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b03838116911614801561117b5750600e546001600160a01b03848116911614155b80156111a057506001600160a01b03831660009081526005602052604090205460ff16155b156111b0576002600a908155600b555b60006111bb306106df565b600f549091507501000000000000000000000000000000000000000000900460ff161580156111f85750600f546001600160a01b03858116911614155b80156112205750600f54760100000000000000000000000000000000000000000000900460ff165b156112405761122e816113a8565b47801561123e5761123e4761128c565b505b505b61124d8383836115f9565b505050565b600081848411156112765760405162461bcd60e51b81526004016104389190611cb1565b5060006112838486611e20565b95945050505050565b600c546001600160a01b03166108fc6112a6836002611604565b6040518115909202916000818181858888f193505050501580156112ce573d6000803e3d6000fd5b50600d546001600160a01b03166108fc6112e9836002611604565b6040518115909202916000818181858888f193505050501580156104ee573d6000803e3d6000fd5b600060085482111561138b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610438565b6000611395611646565b90506113a18382611604565b9392505050565b600f80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611444577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156114b157600080fd5b505afa1580156114c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e99190611aa8565b81600181518110611523577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546115499130911684610d2e565b600e546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac9479061159b908590600090869030904290600401611d22565b600060405180830381600087803b1580156115b557600080fd5b505af11580156115c9573d6000803e3d6000fd5b5050600f80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b61124d838383611669565b60006113a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611760565b600080600061165361178e565b90925090506116628282611604565b9250505090565b60008060008060008061167b876117d0565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116ad908761182d565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546116dc908661186f565b6001600160a01b0389166000908152600260205260409020556116fe816118ce565b6117088483611918565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161174d91815260200190565b60405180910390a3505050505050505050565b600081836117815760405162461bcd60e51b81526004016104389190611cb1565b5060006112838486611daa565b6008546000908190683635c9adc5dea000006117aa8282611604565b8210156117c757505060085492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006117ed8a600a54600b5461193c565b92509250925060006117fd611646565b905060008060006118108e878787611991565b919e509c509a509598509396509194505050505091939550919395565b60006113a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611252565b60008061187c8385611d92565b9050838110156113a15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610438565b60006118d8611646565b905060006118e683836119e1565b30600090815260026020526040902054909150611903908261186f565b30600090815260026020526040902055505050565b600854611925908361182d565b600855600954611935908261186f565b6009555050565b6000808080611956606461195089896119e1565b90611604565b9050600061196960646119508a896119e1565b905060006119818261197b8b8661182d565b9061182d565b9992985090965090945050505050565b60008080806119a088866119e1565b905060006119ae88876119e1565b905060006119bc88886119e1565b905060006119ce8261197b868661182d565b939b939a50919850919650505050505050565b6000826119f057506000610503565b60006119fc8385611de3565b905082611a098583611daa565b146113a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610438565b8035611a8781611ece565b919050565b600060208284031215611a9d578081fd5b81356113a181611ece565b600060208284031215611ab9578081fd5b81516113a181611ece565b60008060408385031215611ad6578081fd5b8235611ae181611ece565b91506020830135611af181611ece565b809150509250929050565b600080600060608486031215611b10578081fd5b8335611b1b81611ece565b92506020840135611b2b81611ece565b929592945050506040919091013590565b60008060408385031215611b4e578182fd5b8235611b5981611ece565b946020939093013593505050565b60006020808385031215611b79578182fd5b823567ffffffffffffffff80821115611b90578384fd5b818501915085601f830112611ba3578384fd5b813581811115611bb557611bb5611e9f565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611bf857611bf8611e9f565b604052828152858101935084860182860187018a1015611c16578788fd5b8795505b83861015611c3f57611c2b81611a7c565b855260019590950194938601938601611c1a565b5098975050505050505050565b600060208284031215611c5d578081fd5b81356113a181611ee3565b600060208284031215611c79578081fd5b81516113a181611ee3565b600080600060608486031215611c98578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611cdd57858101830151858201604001528201611cc1565b81811115611cee5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611d715784516001600160a01b031683529383019391830191600101611d4c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611da557611da5611e70565b500190565b600082611dde577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e1b57611e1b611e70565b500290565b600082821015611e3257611e32611e70565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e6957611e69611e70565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b03811681146106dc57600080fd5b80151581146106dc57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122069b1b7a54e21adea95acba6e99155c6bac9638d4cba728f5e50de86aaaceea1364736f6c63430008040033

Deployed Bytecode

0x60806040526004361061012d5760003560e01c806370a08231116100a5578063a9059cbb11610074578063c9567bf911610059578063c9567bf914610372578063dd62ed3e14610387578063ff872602146103cd57600080fd5b8063a9059cbb1461033d578063c3c8cd801461035d57600080fd5b806370a082311461029a578063715018a6146102ba5780638da5cb5b146102cf57806395d89b41146102f757600080fd5b806323b872dd116100fc578063313ce567116100e1578063313ce567146102495780635932ead1146102655780636fc3eaec1461028557600080fd5b806323b872dd14610209578063273123b71461022957600080fd5b806306fdde0314610139578063089d566c14610191578063095ea7b3146101b357806318160ddd146101e357600080fd5b3661013457005b600080fd5b34801561014557600080fd5b5060408051808201909152600b81527f446967696d6f6e20496e7500000000000000000000000000000000000000000060208201525b6040516101889190611cb1565b60405180910390f35b34801561019d57600080fd5b506101b16101ac366004611b67565b6103e2565b005b3480156101bf57600080fd5b506101d36101ce366004611b3c565b6104f2565b6040519015158152602001610188565b3480156101ef57600080fd5b50683635c9adc5dea000005b604051908152602001610188565b34801561021557600080fd5b506101d3610224366004611afc565b610509565b34801561023557600080fd5b506101b1610244366004611a8c565b610572565b34801561025557600080fd5b5060405160098152602001610188565b34801561027157600080fd5b506101b1610280366004611c4c565b61060b565b34801561029157600080fd5b506101b16106b2565b3480156102a657600080fd5b506101fb6102b5366004611a8c565b6106df565b3480156102c657600080fd5b506101b1610701565b3480156102db57600080fd5b506000546040516001600160a01b039091168152602001610188565b34801561030357600080fd5b5060408051808201909152600681527f444947494e550000000000000000000000000000000000000000000000000000602082015261017b565b34801561034957600080fd5b506101d3610358366004611b3c565b6107bd565b34801561036957600080fd5b506101b16107ca565b34801561037e57600080fd5b506101b1610800565b34801561039357600080fd5b506101fb6103a2366004611ac4565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103d957600080fd5b506101b1610cc5565b6000546001600160a01b031633146104415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b81518110156104ee5760016006600084848151811061048c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055806104e681611e37565b915050610444565b5050565b60006104ff338484610d2e565b5060015b92915050565b6000610516848484610e86565b610568843361056385604051806060016040528060288152602001611ef2602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611252565b610d2e565b5060019392505050565b6000546001600160a01b031633146105cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b6001600160a01b0316600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000546001600160a01b031633146106655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b600f805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b600c546001600160a01b0316336001600160a01b0316146106d257600080fd5b476106dc8161128c565b50565b6001600160a01b03811660009081526002602052604081205461050390611311565b6000546001600160a01b0316331461075b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60006104ff338484610e86565b600c546001600160a01b0316336001600160a01b0316146107ea57600080fd5b60006107f5306106df565b90506106dc816113a8565b6000546001600160a01b0316331461085a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b600f5474010000000000000000000000000000000000000000900460ff16156108c55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610438565b600e80547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561091a3082683635c9adc5dea00000610d2e565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561095357600080fd5b505afa158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190611aa8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d357600080fd5b505afa1580156109e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0b9190611aa8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa39190611aa8565b600f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055600e541663f305d7194730610aeb816106df565b600080610b006000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b7b57600080fd5b505af1158015610b8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb49190611c84565b5050600f80546802b5e3af16b18800006010557fffffffffffffffff0000ff00ffffffffffffffffffffffffffffffffffffffff81167701010001000000000000000000000000000000000000000017909155600e546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b390604401602060405180830381600087803b158015610c8d57600080fd5b505af1158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190611c68565b6000546001600160a01b03163314610d1f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610438565b683635c9adc5dea00000601055565b6001600160a01b038316610da95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610438565b6001600160a01b038216610e255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610438565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610438565b6001600160a01b038216610f7e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610438565b60008111610ff45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610438565b6002600a556008600b556000546001600160a01b0384811691161480159061102a57506000546001600160a01b03838116911614155b15611242576001600160a01b03831660009081526006602052604090205460ff1615801561107157506001600160a01b03821660009081526006602052604090205460ff16155b61107a57600080fd5b600f546001600160a01b0384811691161480156110a55750600e546001600160a01b03838116911614155b80156110ca57506001600160a01b03821660009081526005602052604090205460ff16155b80156110f35750600f5477010000000000000000000000000000000000000000000000900460ff165b156111505760105481111561110757600080fd5b6001600160a01b038216600090815260076020526040902054421161112b57600080fd5b61113642601e611d92565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b03838116911614801561117b5750600e546001600160a01b03848116911614155b80156111a057506001600160a01b03831660009081526005602052604090205460ff16155b156111b0576002600a908155600b555b60006111bb306106df565b600f549091507501000000000000000000000000000000000000000000900460ff161580156111f85750600f546001600160a01b03858116911614155b80156112205750600f54760100000000000000000000000000000000000000000000900460ff165b156112405761122e816113a8565b47801561123e5761123e4761128c565b505b505b61124d8383836115f9565b505050565b600081848411156112765760405162461bcd60e51b81526004016104389190611cb1565b5060006112838486611e20565b95945050505050565b600c546001600160a01b03166108fc6112a6836002611604565b6040518115909202916000818181858888f193505050501580156112ce573d6000803e3d6000fd5b50600d546001600160a01b03166108fc6112e9836002611604565b6040518115909202916000818181858888f193505050501580156104ee573d6000803e3d6000fd5b600060085482111561138b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610438565b6000611395611646565b90506113a18382611604565b9392505050565b600f80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611444577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156114b157600080fd5b505afa1580156114c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e99190611aa8565b81600181518110611523577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546115499130911684610d2e565b600e546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac9479061159b908590600090869030904290600401611d22565b600060405180830381600087803b1580156115b557600080fd5b505af11580156115c9573d6000803e3d6000fd5b5050600f80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b61124d838383611669565b60006113a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611760565b600080600061165361178e565b90925090506116628282611604565b9250505090565b60008060008060008061167b876117d0565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116ad908761182d565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546116dc908661186f565b6001600160a01b0389166000908152600260205260409020556116fe816118ce565b6117088483611918565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161174d91815260200190565b60405180910390a3505050505050505050565b600081836117815760405162461bcd60e51b81526004016104389190611cb1565b5060006112838486611daa565b6008546000908190683635c9adc5dea000006117aa8282611604565b8210156117c757505060085492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006117ed8a600a54600b5461193c565b92509250925060006117fd611646565b905060008060006118108e878787611991565b919e509c509a509598509396509194505050505091939550919395565b60006113a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611252565b60008061187c8385611d92565b9050838110156113a15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610438565b60006118d8611646565b905060006118e683836119e1565b30600090815260026020526040902054909150611903908261186f565b30600090815260026020526040902055505050565b600854611925908361182d565b600855600954611935908261186f565b6009555050565b6000808080611956606461195089896119e1565b90611604565b9050600061196960646119508a896119e1565b905060006119818261197b8b8661182d565b9061182d565b9992985090965090945050505050565b60008080806119a088866119e1565b905060006119ae88876119e1565b905060006119bc88886119e1565b905060006119ce8261197b868661182d565b939b939a50919850919650505050505050565b6000826119f057506000610503565b60006119fc8385611de3565b905082611a098583611daa565b146113a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610438565b8035611a8781611ece565b919050565b600060208284031215611a9d578081fd5b81356113a181611ece565b600060208284031215611ab9578081fd5b81516113a181611ece565b60008060408385031215611ad6578081fd5b8235611ae181611ece565b91506020830135611af181611ece565b809150509250929050565b600080600060608486031215611b10578081fd5b8335611b1b81611ece565b92506020840135611b2b81611ece565b929592945050506040919091013590565b60008060408385031215611b4e578182fd5b8235611b5981611ece565b946020939093013593505050565b60006020808385031215611b79578182fd5b823567ffffffffffffffff80821115611b90578384fd5b818501915085601f830112611ba3578384fd5b813581811115611bb557611bb5611e9f565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611bf857611bf8611e9f565b604052828152858101935084860182860187018a1015611c16578788fd5b8795505b83861015611c3f57611c2b81611a7c565b855260019590950194938601938601611c1a565b5098975050505050505050565b600060208284031215611c5d578081fd5b81356113a181611ee3565b600060208284031215611c79578081fd5b81516113a181611ee3565b600080600060608486031215611c98578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611cdd57858101830151858201604001528201611cc1565b81811115611cee5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611d715784516001600160a01b031683529383019391830191600101611d4c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611da557611da5611e70565b500190565b600082611dde577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e1b57611e1b611e70565b500290565b600082821015611e3257611e32611e70565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e6957611e69611e70565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b03811681146106dc57600080fd5b80151581146106dc57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122069b1b7a54e21adea95acba6e99155c6bac9638d4cba728f5e50de86aaaceea1364736f6c63430008040033

Deployed Bytecode Sourcemap

3724:10474:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:83;;;;;;;;;;-1:-1:-1;5678:5:0;;;;;;;;;;;;;;;;;5608:83;;;;;;;:::i;:::-;;;;;;;;10631:170;;;;;;;;;;-1:-1:-1;10631:170:0;;;;;:::i;:::-;;:::i;:::-;;6460:161;;;;;;;;;;-1:-1:-1;6460:161:0;;;;;:::i;:::-;;:::i;:::-;;;5628:14:1;;5621:22;5603:41;;5591:2;5576:18;6460:161:0;5558:92:1;5885:95:0;;;;;;;;;;-1:-1:-1;4224:12:0;5885:95;;;10378:25:1;;;10366:2;10351:18;5885:95:0;10333:76:1;6629:313:0;;;;;;;;;;-1:-1:-1;6629:313:0;;;;;:::i;:::-;;:::i;10925:88::-;;;;;;;;;;-1:-1:-1;10925:88:0;;;;;:::i;:::-;;:::i;5794:83::-;;;;;;;;;;-1:-1:-1;5794:83:0;;4636:1;11590:36:1;;11578:2;11563:18;5794:83:0;11545:87:1;6950:103:0;;;;;;;;;;-1:-1:-1;6950:103:0;;;;;:::i;:::-;;:::i;12302:194::-;;;;;;;;;;;;;:::i;5988:138::-;;;;;;;;;;-1:-1:-1;5988:138:0;;;;;:::i;:::-;;:::i;2803:148::-;;;;;;;;;;;;;:::i;2589:79::-;;;;;;;;;;-1:-1:-1;2627:7:0;2654:6;2589:79;;-1:-1:-1;;;;;2654:6:0;;;4109:74:1;;4097:2;4082:18;2589:79:0;4064:125:1;5699:87:0;;;;;;;;;;-1:-1:-1;5771:7:0;;;;;;;;;;;;;;;;;5699:87;;6134:167;;;;;;;;;;-1:-1:-1;6134:167:0;;;;;:::i;:::-;;:::i;12095:195::-;;;;;;;;;;;;;:::i;9801:818::-;;;;;;;;;;;;;:::i;6309:143::-;;;;;;;;;;-1:-1:-1;6309:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6417:18:0;;;6390:7;6417:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6309:143;10813:94;;;;;;;;;;;;;:::i;10631:170::-;2716:6;;-1:-1:-1;;;;;2716:6:0;387:10;2716:22;2708:67;;;;-1:-1:-1;;;2708:67:0;;8500:2:1;2708:67:0;;;8482:21:1;;;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;8630:18;;2708:67:0;;;;;;;;;10711:6:::1;10706:88;10727:5;:12;10723:1;:16;10706:88;;;10778:4;10761;:14;10766:5;10772:1;10766:8;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10761:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10761:14:0;:21;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;10741:3;::::1;::::0;::::1;:::i;:::-;;;;10706:88;;;;10631:170:::0;:::o;6460:161::-;6535:4;6552:39;387:10;6575:7;6584:6;6552:8;:39::i;:::-;-1:-1:-1;6609:4:0;6460:161;;;;;:::o;6629:313::-;6727:4;6744:36;6754:6;6762:9;6773:6;6744:9;:36::i;:::-;6791:121;6800:6;387:10;6822:89;6860:6;6822:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6822:19:0;;;;;;:11;:19;;;;;;;;387:10;6822:33;;;;;;;;;;:37;:89::i;:::-;6791:8;:121::i;:::-;-1:-1:-1;6930:4:0;6629:313;;;;;:::o;10925:88::-;2716:6;;-1:-1:-1;;;;;2716:6:0;387:10;2716:22;2708:67;;;;-1:-1:-1;;;2708:67:0;;8500:2:1;2708:67:0;;;8482:21:1;;;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;8630:18;;2708:67:0;8472:182:1;2708:67:0;-1:-1:-1;;;;;10985:12:0::1;11000:5;10985:12:::0;;;:4:::1;:12;::::0;;;;:20;;;::::1;::::0;;10925:88::o;6950:103::-;2716:6;;-1:-1:-1;;;;;2716:6:0;387:10;2716:22;2708:67;;;;-1:-1:-1;;;2708:67:0;;8500:2:1;2708:67:0;;;8482:21:1;;;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;8630:18;;2708:67:0;8472:182:1;2708:67:0;7022:15:::1;:23:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;6950:103::o;12302:194::-;12368:15;;-1:-1:-1;;;;;12368:15:0;387:10;-1:-1:-1;;;;;12352:31:0;;12344:40;;;;;;12424:21;12456:32;12424:21;12456:12;:32::i;:::-;12302:194;:::o;5988:138::-;-1:-1:-1;;;;;6101:16:0;;6054:7;6101:16;;;:7;:16;;;;;;6081:37;;:19;:37::i;2803:148::-;2716:6;;-1:-1:-1;;;;;2716:6:0;387:10;2716:22;2708:67;;;;-1:-1:-1;;;2708:67:0;;8500:2:1;2708:67:0;;;8482:21:1;;;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;8630:18;;2708:67:0;8472:182:1;2708:67:0;2910:1:::1;2894:6:::0;;2873:40:::1;::::0;-1:-1:-1;;;;;2894:6:0;;::::1;::::0;2873:40:::1;::::0;2910:1;;2873:40:::1;2941:1;2924:19:::0;;;::::1;::::0;;2803:148::o;6134:167::-;6212:4;6229:42;387:10;6253:9;6264:6;6229:9;:42::i;12095:195::-;12161:15;;-1:-1:-1;;;;;12161:15:0;387:10;-1:-1:-1;;;;;12145:31:0;;12137:40;;;;;;12188:23;12214:24;12232:4;12214:9;:24::i;:::-;12188:50;;12249:33;12266:15;12249:16;:33::i;9801:818::-;2716:6;;-1:-1:-1;;;;;2716:6:0;387:10;2716:22;2708:67;;;;-1:-1:-1;;;2708:67:0;;8500:2:1;2708:67:0;;;8482:21:1;;;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;8630:18;;2708:67:0;8472:182:1;2708:67:0;9865:11:::1;::::0;;;::::1;;;9864:12;9856:47;;;::::0;-1:-1:-1;;;9856:47:0;;10082:2:1;9856:47:0::1;::::0;::::1;10064:21:1::0;10121:2;10101:18;;;10094:30;10160:25;10140:18;;;10133:53;10203:18;;9856:47:0::1;10054:173:1::0;9856:47:0::1;10025:15;:34:::0;;;::::1;9971:42;10025:34:::0;;::::1;::::0;;;10070:58:::1;10087:4;9971:42:::0;4224:12:::1;10070:8;:58::i;:::-;10173:16;-1:-1:-1::0;;;;;10173:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10155:56:0::1;;10220:4;10227:16;-1:-1:-1::0;;;;;10227:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10155:96;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;4447:15:1;;;10155:96:0::1;::::0;::::1;4429:34:1::0;4499:15;;4479:18;;;4472:43;4341:18;;10155:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10139:13;:112:::0;;;::::1;-1:-1:-1::0;;;;;10139:112:0;;::::1;;::::0;;10262:15:::1;::::0;::::1;:31;10301:21;10332:4;10338:24;10332:4:::0;10338:9:::1;:24::i;:::-;10363:1;10365::::0;10367:7:::1;2627::::0;2654:6;-1:-1:-1;;;;;2654:6:0;;2589:79;10367:7:::1;10262:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;5210:15:1;;;10262:129:0::1;::::0;::::1;5192:34:1::0;5242:18;;;5235:34;;;;5285:18;;;5278:34;;;;5328:18;;;5321:34;5392:15;;;5371:19;;;5364:44;10375:15:0::1;5424:19:1::0;;;5417:35;5103:19;;10262:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10402:11:0::1;:18:::0;;10479:21:::1;10464:12;:36:::0;10511:18;;;;;;;;10578:15:::1;::::0;10540:71:::1;::::0;;;;-1:-1:-1;;;;;10578:15:0;;::::1;10540:71;::::0;::::1;4700:74:1::0;-1:-1:-1;4790:18:1;;;4783:34;10547:13:0;;;-1:-1:-1;10540:29:0::1;::::0;4673:18:1;;10540:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10813:94::-:0;2716:6;;-1:-1:-1;;;;;2716:6:0;387:10;2716:22;2708:67;;;;-1:-1:-1;;;2708:67:0;;8500:2:1;2708:67:0;;;8482:21:1;;;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;8630:18;;2708:67:0;8472:182:1;2708:67:0;10887:12:::1;10872;:27:::0;10813:94::o;7323:335::-;-1:-1:-1;;;;;7416:19:0;;7408:68;;;;-1:-1:-1;;;7408:68:0;;9677:2:1;7408:68:0;;;9659:21:1;9716:2;9696:18;;;9689:30;9755:34;9735:18;;;9728:62;9826:6;9806:18;;;9799:34;9850:19;;7408:68:0;9649:226:1;7408:68:0;-1:-1:-1;;;;;7495:21:0;;7487:68;;;;-1:-1:-1;;;7487:68:0;;7339:2:1;7487:68:0;;;7321:21:1;7378:2;7358:18;;;7351:30;7417:34;7397:18;;;7390:62;7488:4;7468:18;;;7461:32;7510:19;;7487:68:0;7311:224:1;7487:68:0;-1:-1:-1;;;;;7566:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7618:32;;10378:25:1;;;7618:32:0;;10351:18:1;7618:32:0;;;;;;;7323:335;;;:::o;7666:1462::-;-1:-1:-1;;;;;7754:18:0;;7746:68;;;;-1:-1:-1;;;7746:68:0;;9271:2:1;7746:68:0;;;9253:21:1;9310:2;9290:18;;;9283:30;9349:34;9329:18;;;9322:62;9420:7;9400:18;;;9393:35;9445:19;;7746:68:0;9243:227:1;7746:68:0;-1:-1:-1;;;;;7833:16:0;;7825:64;;;;-1:-1:-1;;;7825:64:0;;6524:2:1;7825:64:0;;;6506:21:1;6563:2;6543:18;;;6536:30;6602:34;6582:18;;;6575:62;6673:5;6653:18;;;6646:33;6696:19;;7825:64:0;6496:225:1;7825:64:0;7917:1;7908:6;:10;7900:64;;;;-1:-1:-1;;;7900:64:0;;8861:2:1;7900:64:0;;;8843:21:1;8900:2;8880:18;;;8873:30;8939:34;8919:18;;;8912:62;9010:11;8990:18;;;8983:39;9039:19;;7900:64:0;8833:231:1;7900:64:0;7987:1;7975:9;:13;8011:1;7999:9;:13;-1:-1:-1;2654:6:0;-1:-1:-1;;;;;8027:15:0;;;2654:6;;8027:15;;;;:32;;-1:-1:-1;2627:7:0;2654:6;-1:-1:-1;;;;;8046:13:0;;;2654:6;;8046:13;;8027:32;8023:1053;;;-1:-1:-1;;;;;8085:10:0;;;;;;:4;:10;;;;;;;;8084:11;:24;;;;-1:-1:-1;;;;;;8100:8:0;;;;;;:4;:8;;;;;;;;8099:9;8084:24;8076:33;;;;;;8136:13;;-1:-1:-1;;;;;8128:21:0;;;8136:13;;8128:21;:55;;;;-1:-1:-1;8167:15:0;;-1:-1:-1;;;;;8153:30:0;;;8167:15;;8153:30;;8128:55;:83;;;;-1:-1:-1;;;;;;8189:22:0;;;;;;:18;:22;;;;;;;;8187:24;8128:83;:102;;;;-1:-1:-1;8215:15:0;;;;;;;8128:102;8124:325;;;8298:12;;8288:6;:22;;8280:31;;;;;;-1:-1:-1;;;;;8338:12:0;;;;;;:8;:12;;;;;;8353:15;-1:-1:-1;8330:39:0;;;;;;8403:30;:15;8422:10;8403:30;:::i;:::-;-1:-1:-1;;;;;8388:12:0;;;;;;:8;:12;;;;;:45;8124:325;8501:13;;-1:-1:-1;;;;;8495:19:0;;;8501:13;;8495:19;:55;;;;-1:-1:-1;8534:15:0;;-1:-1:-1;;;;;8518:32:0;;;8534:15;;8518:32;;8495:55;:85;;;;-1:-1:-1;;;;;;8556:24:0;;;;;;:18;:24;;;;;;;;8554:26;8495:85;8491:172;;;8613:1;8601:9;:13;;;8633:9;:14;8491:172;8677:28;8708:24;8726:4;8708:9;:24::i;:::-;8752:6;;8677:55;;-1:-1:-1;8752:6:0;;;;;8751:7;:32;;;;-1:-1:-1;8770:13:0;;-1:-1:-1;;;;;8762:21:0;;;8770:13;;8762:21;;8751:32;:47;;;;-1:-1:-1;8787:11:0;;;;;;;8751:47;8747:318;;;8819:38;8836:20;8819:16;:38::i;:::-;8905:21;8948:22;;8945:105;;8995:35;9008:21;8995:12;:35::i;:::-;8747:318;;8023:1053;;9090:30;9105:4;9110:2;9113:6;9090:14;:30::i;:::-;7666:1462;;;:::o;1444:190::-;1530:7;1566:12;1558:6;;;;1550:29;;;;-1:-1:-1;;;1550:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1590:9:0;1602:5;1606:1;1602;:5;:::i;:::-;1590:17;1444:190;-1:-1:-1;;;;;1444:190:0:o;9635:154::-;9692:15;;-1:-1:-1;;;;;9692:15:0;:39;9717:13;:6;9728:1;9717:10;:13::i;:::-;9692:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9742:15:0;;-1:-1:-1;;;;;9742:15:0;:39;9767:13;:6;9778:1;9767:10;:13::i;:::-;9742:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7061:254;7128:7;7167;;7156;:18;;7148:73;;;;-1:-1:-1;;;7148:73:0;;6928:2:1;7148:73:0;;;6910:21:1;6967:2;6947:18;;;6940:30;7006:34;6986:18;;;6979:62;7077:12;7057:18;;;7050:40;7107:19;;7148:73:0;6900:232:1;7148:73:0;7232:19;7255:10;:8;:10::i;:::-;7232:33;-1:-1:-1;7283:24:0;:7;7232:33;7283:11;:24::i;:::-;7276:31;7061:254;-1:-1:-1;;;7061:254:0:o;9136:483::-;5009:6;:13;;;;;;;;9238:16:::1;::::0;;9252:1:::1;9238:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9238:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9238:16:0::1;9214:40;;9283:4;9265;9270:1;9265:7;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9265:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9309:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9265:7;;9309:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9299:4;9304:1;9299:7;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9299:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9374:15:::1;::::0;9342:62:::1;::::0;9359:4:::1;::::0;9374:15:::1;9392:11:::0;9342:8:::1;:62::i;:::-;9415:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;9415:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9496:11;;9415:15:::1;::::0;9538:4;;9565::::1;::::0;9585:15:::1;::::0;9415:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5045:6:0;:14;;;;;;-1:-1:-1;;;;9136:483:0:o;11029:146::-;11123:44;11141:6;11149:9;11160:6;11123:17;:44::i;1896:132::-;1954:7;1981:39;1985:1;1988;1981:39;;;;;;;;;;;;;;;;;:3;:39::i;13762:163::-;13803:7;13824:15;13841;13860:19;:17;:19::i;:::-;13823:56;;-1:-1:-1;13823:56:0;-1:-1:-1;13897:20:0;13823:56;;13897:11;:20::i;:::-;13890:27;;;;13762:163;:::o;11183:488::-;11282:15;11299:23;11324:12;11338:23;11363:12;11377:13;11394:19;11405:7;11394:10;:19::i;:::-;-1:-1:-1;;;;;11442:15:0;;;;;;:7;:15;;;;;;11281:132;;-1:-1:-1;11281:132:0;;-1:-1:-1;11281:132:0;;-1:-1:-1;11281:132:0;-1:-1:-1;11281:132:0;-1:-1:-1;11281:132:0;-1:-1:-1;11442:28:0;;11281:132;11442:19;:28::i;:::-;-1:-1:-1;;;;;11424:15:0;;;;;;;:7;:15;;;;;;:46;;;;11502:18;;;;;;;:39;;11525:15;11502:22;:39::i;:::-;-1:-1:-1;;;;;11481:18:0;;;;;;:7;:18;;;;;:60;11553:16;11563:5;11553:9;:16::i;:::-;11580:23;11592:4;11598;11580:11;:23::i;:::-;11636:9;-1:-1:-1;;;;;11619:44:0;11628:6;-1:-1:-1;;;;;11619:44:0;;11647:15;11619:44;;;;10378:25:1;;10366:2;10351:18;;10333:76;11619:44:0;;;;;;;;11183:488;;;;;;;;;:::o;2036:189::-;2122:7;2157:12;2150:5;2142:28;;;;-1:-1:-1;;;2142:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2181:9:0;2193:5;2197:1;2193;:5;:::i;13933:262::-;14030:7;;13983;;;;4224:12;14104:20;14030:7;4224:12;14104:11;:20::i;:::-;14094:7;:30;14090:61;;;-1:-1:-1;;14134:7:0;;;4224:12;;-1:-1:-1;13933:262:0;-1:-1:-1;13933:262:0:o;14090:61::-;14170:7;;14179;;-1:-1:-1;13933:262:0;-1:-1:-1;13933:262:0:o;12510:471::-;12569:7;12578;12587;12596;12605;12614;12635:23;12660:12;12674:13;12691:42;12703:7;12712:9;;12723;;12691:11;:42::i;:::-;12634:99;;;;;;12744:19;12767:10;:8;:10::i;:::-;12744:33;;12789:15;12806:23;12831:12;12847:46;12859:7;12868:4;12874:5;12881:11;12847;:46::i;:::-;12788:105;;-1:-1:-1;12788:105:0;-1:-1:-1;12788:105:0;-1:-1:-1;12944:15:0;;-1:-1:-1;12961:4:0;;-1:-1:-1;12967:5:0;;-1:-1:-1;;;;;12510:471:0;;;;;;;:::o;1300:136::-;1358:7;1385:43;1389:1;1392;1385:43;;;;;;;;;;;;;;;;;:3;:43::i;1113:179::-;1171:7;;1203:5;1207:1;1203;:5;:::i;:::-;1191:17;;1232:1;1227;:6;;1219:46;;;;-1:-1:-1;;;1219:46:0;;7742:2:1;1219:46:0;;;7724:21:1;7781:2;7761:18;;;7754:30;7820:29;7800:18;;;7793:57;7867:18;;1219:46:0;7714:177:1;11679:212:0;11732:19;11755:10;:8;:10::i;:::-;11732:33;-1:-1:-1;11776:13:0;11792:22;:5;11732:33;11792:9;:22::i;:::-;11866:4;11850:22;;;;:7;:22;;;;;;11776:38;;-1:-1:-1;11850:33:0;;11776:38;11850:26;:33::i;:::-;11841:4;11825:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11679:212:0:o;11899:147::-;11977:7;;:17;;11989:4;11977:11;:17::i;:::-;11967:7;:27;12018:10;;:20;;12033:4;12018:14;:20::i;:::-;12005:10;:33;-1:-1:-1;;11899:147:0:o;12989:351::-;13082:7;;;;13135:28;13159:3;13135:19;:7;13147:6;13135:11;:19::i;:::-;:23;;:28::i;:::-;13120:43;-1:-1:-1;13174:13:0;13190:29;13215:3;13190:20;:7;13202;13190:11;:20::i;:29::-;13174:45;-1:-1:-1;13230:23:0;13256:28;13174:45;13256:17;:7;13268:4;13256:11;:17::i;:::-;:21;;:28::i;:::-;13230:54;13320:4;;-1:-1:-1;13326:5:0;;-1:-1:-1;12989:351:0;;-1:-1:-1;;;;;12989:351:0:o;13348:409::-;13458:7;;;;13514:24;:7;13526:11;13514;:24::i;:::-;13496:42;-1:-1:-1;13549:12:0;13564:21;:4;13573:11;13564:8;:21::i;:::-;13549:36;-1:-1:-1;13596:13:0;13612:22;:5;13622:11;13612:9;:22::i;:::-;13596:38;-1:-1:-1;13645:23:0;13671:28;13596:38;13671:17;:7;13683:4;13671:11;:17::i;:28::-;13718:7;;;;-1:-1:-1;13744:4:0;;-1:-1:-1;13348:409:0;;-1:-1:-1;;;;;;;13348:409:0:o;1642:246::-;1700:7;1724:6;1720:47;;-1:-1:-1;1754:1:0;1747:8;;1720:47;1777:9;1789:5;1793:1;1789;:5;:::i;:::-;1777:17;-1:-1:-1;1822:1:0;1813:5;1817:1;1777:17;1813:5;:::i;:::-;:10;1805:56;;;;-1:-1:-1;;;1805:56:0;;8098:2:1;1805:56:0;;;8080:21:1;8137:2;8117:18;;;8110:30;8176:34;8156:18;;;8149:62;8247:3;8227:18;;;8220:31;8268:19;;1805:56:0;8070:223:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:398::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;768:311;;;;;:::o;1084:466::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1251:6;1243;1236:22;1198:2;1295:9;1282:23;1314:31;1339:5;1314:31;:::i;:::-;1364:5;-1:-1:-1;1421:2:1;1406:18;;1393:32;1434:33;1393:32;1434:33;:::i;:::-;1188:362;;1486:7;;-1:-1:-1;;;1540:2:1;1525:18;;;;1512:32;;1188:362::o;1555:325::-;1623:6;1631;1684:2;1672:9;1663:7;1659:23;1655:32;1652:2;;;1705:6;1697;1690:22;1652:2;1749:9;1736:23;1768:31;1793:5;1768:31;:::i;:::-;1818:5;1870:2;1855:18;;;;1842:32;;-1:-1:-1;;;1642:238:1:o;1885:1236::-;1969:6;2000:2;2043;2031:9;2022:7;2018:23;2014:32;2011:2;;;2064:6;2056;2049:22;2011:2;2109:9;2096:23;2138:18;2179:2;2171:6;2168:14;2165:2;;;2200:6;2192;2185:22;2165:2;2243:6;2232:9;2228:22;2218:32;;2288:7;2281:4;2277:2;2273:13;2269:27;2259:2;;2315:6;2307;2300:22;2259:2;2356;2343:16;2378:2;2374;2371:10;2368:2;;;2384:18;;:::i;:::-;2430:2;2427:1;2423:10;2462:2;2456:9;2521:66;2516:2;2512;2508:11;2504:84;2496:6;2492:97;2639:6;2627:10;2624:22;2619:2;2607:10;2604:18;2601:46;2598:2;;;2650:18;;:::i;:::-;2686:2;2679:22;2736:18;;;2770:15;;;;-1:-1:-1;2805:11:1;;;2835;;;2831:20;;2828:33;-1:-1:-1;2825:2:1;;;2879:6;2871;2864:22;2825:2;2906:6;2897:15;;2921:169;2935:2;2932:1;2929:9;2921:169;;;2992:23;3011:3;2992:23;:::i;:::-;2980:36;;2953:1;2946:9;;;;;3036:12;;;;3068;;2921:169;;;-1:-1:-1;3109:6:1;1980:1141;-1:-1:-1;;;;;;;;1980:1141:1:o;3126:251::-;3182:6;3235:2;3223:9;3214:7;3210:23;3206:32;3203:2;;;3256:6;3248;3241:22;3203:2;3300:9;3287:23;3319:28;3341:5;3319:28;:::i;3382:255::-;3449:6;3502:2;3490:9;3481:7;3477:23;3473:32;3470:2;;;3523:6;3515;3508:22;3470:2;3560:9;3554:16;3579:28;3601:5;3579:28;:::i;3642:316::-;3730:6;3738;3746;3799:2;3787:9;3778:7;3774:23;3770:32;3767:2;;;3820:6;3812;3805:22;3767:2;3854:9;3848:16;3838:26;;3904:2;3893:9;3889:18;3883:25;3873:35;;3948:2;3937:9;3933:18;3927:25;3917:35;;3757:201;;;;;:::o;5655:662::-;5767:4;5796:2;5825;5814:9;5807:21;5857:6;5851:13;5900:6;5895:2;5884:9;5880:18;5873:34;5925:4;5938:140;5952:6;5949:1;5946:13;5938:140;;;6047:14;;;6043:23;;6037:30;6013:17;;;6032:2;6009:26;6002:66;5967:10;;5938:140;;;6096:6;6093:1;6090:13;6087:2;;;6166:4;6161:2;6152:6;6141:9;6137:22;6133:31;6126:45;6087:2;-1:-1:-1;6233:2:1;6221:15;6238:66;6217:88;6202:104;;;;6308:2;6198:113;;5776:541;-1:-1:-1;;;5776:541:1:o;10414:1029::-;10676:4;10724:3;10713:9;10709:19;10755:6;10744:9;10737:25;10781:2;10819:6;10814:2;10803:9;10799:18;10792:34;10862:3;10857:2;10846:9;10842:18;10835:31;10886:6;10921;10915:13;10952:6;10944;10937:22;10990:3;10979:9;10975:19;10968:26;;11029:2;11021:6;11017:15;11003:29;;11050:4;11063:218;11077:6;11074:1;11071:13;11063:218;;;11142:13;;-1:-1:-1;;;;;11138:62:1;11126:75;;11256:15;;;;11221:12;;;;11099:1;11092:9;11063:218;;;-1:-1:-1;;;;;;;11337:55:1;;;;11332:2;11317:18;;11310:83;-1:-1:-1;;;11424:3:1;11409:19;11402:35;11298:3;10685:758;-1:-1:-1;;;10685:758:1:o;11637:128::-;11677:3;11708:1;11704:6;11701:1;11698:13;11695:2;;;11714:18;;:::i;:::-;-1:-1:-1;11750:9:1;;11685:80::o;11770:274::-;11810:1;11836;11826:2;;11871:77;11868:1;11861:88;11972:4;11969:1;11962:15;12000:4;11997:1;11990:15;11826:2;-1:-1:-1;12029:9:1;;11816:228::o;12049:::-;12089:7;12215:1;12147:66;12143:74;12140:1;12137:81;12132:1;12125:9;12118:17;12114:105;12111:2;;;12222:18;;:::i;:::-;-1:-1:-1;12262:9:1;;12101:176::o;12282:125::-;12322:4;12350:1;12347;12344:8;12341:2;;;12355:18;;:::i;:::-;-1:-1:-1;12392:9:1;;12331:76::o;12412:195::-;12451:3;12482:66;12475:5;12472:77;12469:2;;;12552:18;;:::i;:::-;-1:-1:-1;12599:1:1;12588:13;;12459:148::o;12612:184::-;12664:77;12661:1;12654:88;12761:4;12758:1;12751:15;12785:4;12782:1;12775:15;12801:184;12853:77;12850:1;12843:88;12950:4;12947:1;12940:15;12974:4;12971:1;12964:15;12990:154;-1:-1:-1;;;;;13069:5:1;13065:54;13058:5;13055:65;13045:2;;13134:1;13131;13124:12;13149:118;13235:5;13228:13;13221:21;13214:5;13211:32;13201:2;;13257:1;13254;13247:12

Swarm Source

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