ETH Price: $3,216.56 (-1.18%)
Gas: 1 Gwei

Token

Caryn2D AI (C2D)
 

Overview

Max Total Supply

100,000,000 C2D

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 C2D

Value
$0.00
0x10fd5b54fb227fcdccabecfe7f90ba80023c3774
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:
C2DToken

Compiler Version
v0.8.18+commit.87f61d96

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
*/

// SPDX-License-Identifier: MIT

/**
Name: Caryn2D AI
Ticker: C2D

✅Telegram: https://t.me/CARYN2DCOIN

🕊Twitter: https://twitter.com/AIcaryn2d

🌐Website: https://caryn2d.xyz/

**/


pragma solidity 0.8.18;


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;

    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 C2DToken is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _earlyBirds;
    address payable private _taxWallet;

    uint256 private _preventSwapBefore = 10;
    uint256 private buyTax = 5;
    uint256 private sellTax = 5;
    uint256 public buyCount = 0;
    uint256 public launchTime;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10 ** _decimals;
    string private constant _name = unicode"Caryn2D AI";
    string private constant _symbol = unicode"C2D";
    uint256 public _taxSwapThreshold = (_tTotal * 1) / 10000;
    uint256 public _maxTaxSwap = (_tTotal * 1) / 100;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    mapping(address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = 55000000 * 10 ** _decimals;
        emit Transfer(address(0), _msgSender(), _balances[_msgSender()]);
        _balances[address(this)] = 45000000 * 10 ** _decimals;
        emit Transfer(address(0), address(this), _balances[address(this)]);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _earlyBirds[address(this)] = true;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[account] = excluded;
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public {
        require(_msgSender() == _taxWallet);
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyTax(uint256 _buyTax) external onlyOwner {
        require(_buyTax <= 10, "Tax cannot be higher than 10%");
        buyTax = _buyTax;
    }

    function updateSellTax(uint256 _sellTax) external onlyOwner {
        require(_sellTax <= 10, "Tax cannot be higher than 10%");
        sellTax = _sellTax;
    }

    function setEarlyBird(address account, bool value) public {
        require(_msgSender() == _taxWallet);
        _setEarlyBirds(account, value);
    }

    function setEarlyBirds(address[] calldata accounts, bool value) public {
        require(_msgSender() == _taxWallet);
        for (uint i = 0; i < accounts.length; i++) {
            _setEarlyBirds(accounts[i], value);
        }
    }

    function _setEarlyBirds(address account, bool value) private {
        _earlyBirds[account] = value;
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }


    function setSwapEnabled(bool value) public onlyOwner {
        swapEnabled = value;
    }

    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 _balances[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 _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");
        uint256 taxAmount = 0;

        if (automatedMarketMakerPairs[from] && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
            buyCount++;
        }

        // buy
        if (automatedMarketMakerPairs[from] && !_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
            if (block.timestamp < launchTime + (2 minutes)) {
                require(_earlyBirds[to], "Not early bird!");
            }
            taxAmount = amount.mul(buyTax).div(100);
        }

        // sell
        if (automatedMarketMakerPairs[to] && !_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
            taxAmount = amount.mul(sellTax).div(100);
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (!inSwap && !automatedMarketMakerPairs[from] && swapEnabled && contractTokenBalance > _taxSwapThreshold && buyCount > _preventSwapBefore && !_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(address(this).balance);
            }
        }
        

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    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 {
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        launchTime = block.timestamp;
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function withdrawStuckTokens(address tkn) public {
        require(_msgSender() == _taxWallet);
        if (tkn == address(0)) {
            bool success;
            (success, ) = address(msg.sender).call{value: address(this).balance}(
                ""
            );
        } else {
            require(IERC20(tkn).balanceOf(address(this)) > 0, "No tokens");
            uint256 amount = IERC20(tkn).balanceOf(address(this));
            IERC20(tkn).transfer(msg.sender, amount);
        }
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCount","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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setEarlyBird","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setEarlyBirds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setSwapEnabled","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"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tkn","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a6006556005600755600560085560006009556127106012600a6200002b919062000330565b6200003b906305f5e10062000348565b6200004890600162000348565b62000054919062000362565b600b556064620000676012600a62000330565b62000077906305f5e10062000348565b6200008490600162000348565b62000090919062000362565b600c55600e805461ffff60a81b19169055348015620000ae57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620001106012600a62000330565b62000120906303473bc062000348565b3360008181526001602090815260408083208590555193845291929091600080516020620022cb833981519152910160405180910390a3620001656012600a62000330565b62000175906302aea54062000348565b3060008181526001602090815260408083208590555193845291929091600080516020620022cb833981519152910160405180910390a3600160036000620001c56000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260038352818120805485166001908117909155600490935220805490921617905562000385565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002725781600019048211156200025657620002566200021b565b808516156200026457918102915b93841c939080029062000236565b509250929050565b6000826200028b575060016200032a565b816200029a575060006200032a565b8160018114620002b35760028114620002be57620002de565b60019150506200032a565b60ff841115620002d257620002d26200021b565b50506001821b6200032a565b5060208310610133831016604e8410600b841016171562000303575081810a6200032a565b6200030f838362000231565b80600019048211156200032657620003266200021b565b0290505b92915050565b60006200034160ff8416836200027a565b9392505050565b80820281158282048414176200032a576200032a6200021b565b6000826200038057634e487b7160e01b600052601260045260246000fd5b500490565b611f3680620003956000396000f3fe6080604052600436106101855760003560e01c80638da5cb5b116100d1578063bf474bed1161008a578063ca70307511610064578063ca70307514610482578063cb96372814610498578063dd62ed3e146104b8578063e01af92c146104fe57600080fd5b8063bf474bed14610437578063c02466681461044d578063c9567bf91461046d57600080fd5b80638da5cb5b1461035357806395d89b411461037b5780639a7a23d6146103a7578063a32e9bc7146103c7578063a9059cbb146103e7578063b62496f51461040757600080fd5b8063313ce5671161013e578063632fea1511610118578063632fea15146102d257806370a08231146102f2578063715018a614610328578063790ca4131461033d57600080fd5b8063313ce56714610281578063436d33401461029d57806351bc3c85146102bd57600080fd5b806306fdde0314610191578063095ea7b3146101d65780630faee56f1461020657806312185a391461022a57806318160ddd1461024c57806323b872dd1461026157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600a815269436172796e324420414960b01b60208201525b6040516101cd91906119fc565b60405180910390f35b3480156101e257600080fd5b506101f66101f1366004611a5f565b61051e565b60405190151581526020016101cd565b34801561021257600080fd5b5061021c600c5481565b6040519081526020016101cd565b34801561023657600080fd5b5061024a610245366004611a8b565b610535565b005b34801561025857600080fd5b5061021c6105be565b34801561026d57600080fd5b506101f661027c366004611aa4565b6105df565b34801561028d57600080fd5b50604051601281526020016101cd565b3480156102a957600080fd5b5061024a6102b8366004611a8b565b610648565b3480156102c957600080fd5b5061024a6106c8565b3480156102de57600080fd5b5061024a6102ed366004611af3565b61071b565b3480156102fe57600080fd5b5061021c61030d366004611b79565b6001600160a01b031660009081526001602052604090205490565b34801561033457600080fd5b5061024a61078e565b34801561034957600080fd5b5061021c600a5481565b34801561035f57600080fd5b506000546040516001600160a01b0390911681526020016101cd565b34801561038757600080fd5b5060408051808201909152600381526210cc9160ea1b60208201526101c0565b3480156103b357600080fd5b5061024a6103c2366004611b96565b610802565b3480156103d357600080fd5b5061024a6103e2366004611b96565b6108b0565b3480156103f357600080fd5b506101f6610402366004611a5f565b6108da565b34801561041357600080fd5b506101f6610422366004611b79565b600f6020526000908152604090205460ff1681565b34801561044357600080fd5b5061021c600b5481565b34801561045957600080fd5b5061024a610468366004611b96565b6108e7565b34801561047957600080fd5b5061024a61093c565b34801561048e57600080fd5b5061021c60095481565b3480156104a457600080fd5b5061024a6104b3366004611b79565b610d13565b3480156104c457600080fd5b5061021c6104d3366004611bcf565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561050a57600080fd5b5061024a610519366004611bfd565b610f1b565b600061052b338484610f63565b5060015b92915050565b6000546001600160a01b031633146105685760405162461bcd60e51b815260040161055f90611c1a565b60405180910390fd5b600a8111156105b95760405162461bcd60e51b815260206004820152601d60248201527f5461782063616e6e6f7420626520686967686572207468616e20313025000000604482015260640161055f565b600855565b60006105cc6012600a611d49565b6105da906305f5e100611d58565b905090565b60006105ec848484611087565b61063e843361063985604051806060016040528060288152602001611ed9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906115e0565b610f63565b5060019392505050565b6000546001600160a01b031633146106725760405162461bcd60e51b815260040161055f90611c1a565b600a8111156106c35760405162461bcd60e51b815260206004820152601d60248201527f5461782063616e6e6f7420626520686967686572207468616e20313025000000604482015260640161055f565b600755565b6005546001600160a01b0316336001600160a01b0316146106e857600080fd5b306000908152600160205260409020548015610707576107078161161a565b4780156107175761071781611794565b5050565b6005546001600160a01b0316336001600160a01b03161461073b57600080fd5b60005b828110156107885761077684848381811061075b5761075b611d6f565b90506020020160208101906107709190611b79565b836117ce565b8061078081611d85565b91505061073e565b50505050565b6000546001600160a01b031633146107b85760405162461bcd60e51b815260040161055f90611c1a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6005546001600160a01b0316336001600160a01b03161461082257600080fd5b600e546001600160a01b03908116908316036108a65760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161055f565b61071782826117f9565b6005546001600160a01b0316336001600160a01b0316146108d057600080fd5b61071782826117ce565b600061052b338484611087565b6000546001600160a01b031633146109115760405162461bcd60e51b815260040161055f90611c1a565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109665760405162461bcd60e51b815260040161055f90611c1a565b600e54600160a01b900460ff16156109c05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161055f565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a099030906109fb6012600a611d49565b610639906305f5e100611d58565b600d60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190611d9e565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611d9e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b779190611d9e565b600e80546001600160a01b039283166001600160a01b0319909116179055600d541663f305d7194730610bbf816001600160a01b031660009081526001602052604090205490565b600080610bd46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c619190611dbb565b5050600e54600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610cba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cde9190611de9565b50600e54610cf6906001600160a01b031660016117f9565b42600a55600e805462ff00ff60a01b19166201000160a01b179055565b6005546001600160a01b0316336001600160a01b031614610d3357600080fd5b6001600160a01b038116610d9257604051600090339047908381818185875af1925050503d8060008114610d83576040519150601f19603f3d011682016040523d82523d6000602084013e610d88565b606091505b50610f1892505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611e06565b11610e365760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b604482015260640161055f565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea19190611e06565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f159190611de9565b50505b50565b6000546001600160a01b03163314610f455760405162461bcd60e51b815260040161055f90611c1a565b600e8054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b038316610fc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055f565b6001600160a01b0382166110265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110eb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055f565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055f565b600081116111af5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055f565b6001600160a01b0383166000908152600f602052604081205460ff1680156111e55750600d546001600160a01b03848116911614155b801561120a57506001600160a01b03831660009081526003602052604090205460ff16155b15611225576009805490600061121f83611d85565b91905055505b6001600160a01b0384166000908152600f602052604090205460ff16801561126657506001600160a01b03831660009081526003602052604090205460ff16155b801561128b57506001600160a01b03841660009081526003602052604090205460ff16155b1561132257600a5461129e906078611e1f565b4210156112ff576001600160a01b03831660009081526004602052604090205460ff166112ff5760405162461bcd60e51b815260206004820152600f60248201526e4e6f74206561726c7920626972642160881b604482015260640161055f565b61131f60646113196007548561184d90919063ffffffff16565b906118d6565b90505b6001600160a01b0383166000908152600f602052604090205460ff16801561136357506001600160a01b03831660009081526003602052604090205460ff16155b801561138857506001600160a01b03841660009081526003602052604090205460ff16155b156113aa576113a760646113196008548561184d90919063ffffffff16565b90505b30600090815260016020526040902054600e54600160a81b900460ff161580156113ed57506001600160a01b0385166000908152600f602052604090205460ff16155b80156114025750600e54600160b01b900460ff165b801561140f5750600b5481115b801561141e5750600654600954115b801561144357506001600160a01b03841660009081526003602052604090205460ff16155b801561146857506001600160a01b03851660009081526003602052604090205460ff16155b1561149c5761148a6114858461148084600c54611918565b611918565b61161a565b47801561149a5761149a47611794565b505b811561151657306000908152600160205260409020546114bc908361192d565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061150d9086815260200190565b60405180910390a35b6001600160a01b038516600090815260016020526040902054611539908461198c565b6001600160a01b03861660009081526001602052604090205561157e61155f848461198c565b6001600160a01b0386166000908152600160205260409020549061192d565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115c8868661198c565b60405190815260200160405180910390a35050505050565b600081848411156116045760405162461bcd60e51b815260040161055f91906119fc565b5060006116118486611e32565b95945050505050565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061166257611662611d6f565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116df9190611d9e565b816001815181106116f2576116f2611d6f565b6001600160a01b039283166020918202929092010152600d546117189130911684610f63565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611751908590600090869030904290600401611e45565b600060405180830381600087803b15801561176b57600080fd5b505af115801561177f573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610717573d6000803e3d6000fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60008260000361185f5750600061052f565b600061186b8385611d58565b9050826118788583611eb6565b146118cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055f565b9392505050565b60006118cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119ce565b600081831161192757826118cf565b50919050565b60008061193a8385611e1f565b9050838110156118cf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055f565b60006118cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115e0565b600081836119ef5760405162461bcd60e51b815260040161055f91906119fc565b5060006116118486611eb6565b600060208083528351808285015260005b81811015611a2957858101830151858201604001528201611a0d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f1857600080fd5b60008060408385031215611a7257600080fd5b8235611a7d81611a4a565b946020939093013593505050565b600060208284031215611a9d57600080fd5b5035919050565b600080600060608486031215611ab957600080fd5b8335611ac481611a4a565b92506020840135611ad481611a4a565b929592945050506040919091013590565b8015158114610f1857600080fd5b600080600060408486031215611b0857600080fd5b833567ffffffffffffffff80821115611b2057600080fd5b818601915086601f830112611b3457600080fd5b813581811115611b4357600080fd5b8760208260051b8501011115611b5857600080fd5b60209283019550935050840135611b6e81611ae5565b809150509250925092565b600060208284031215611b8b57600080fd5b81356118cf81611a4a565b60008060408385031215611ba957600080fd5b8235611bb481611a4a565b91506020830135611bc481611ae5565b809150509250929050565b60008060408385031215611be257600080fd5b8235611bed81611a4a565b91506020830135611bc481611a4a565b600060208284031215611c0f57600080fd5b81356118cf81611ae5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ca0578160001904821115611c8657611c86611c4f565b80851615611c9357918102915b93841c9390800290611c6a565b509250929050565b600082611cb75750600161052f565b81611cc45750600061052f565b8160018114611cda5760028114611ce457611d00565b600191505061052f565b60ff841115611cf557611cf5611c4f565b50506001821b61052f565b5060208310610133831016604e8410600b8410161715611d23575081810a61052f565b611d2d8383611c65565b8060001904821115611d4157611d41611c4f565b029392505050565b60006118cf60ff841683611ca8565b808202811582820484141761052f5761052f611c4f565b634e487b7160e01b600052603260045260246000fd5b600060018201611d9757611d97611c4f565b5060010190565b600060208284031215611db057600080fd5b81516118cf81611a4a565b600080600060608486031215611dd057600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611dfb57600080fd5b81516118cf81611ae5565b600060208284031215611e1857600080fd5b5051919050565b8082018082111561052f5761052f611c4f565b8181038181111561052f5761052f611c4f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e955784516001600160a01b031683529383019391830191600101611e70565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ed357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220079bb01cd053f4c27474fa1bf2d5282eb2574cc2651756701d80d2f52182f75464736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101855760003560e01c80638da5cb5b116100d1578063bf474bed1161008a578063ca70307511610064578063ca70307514610482578063cb96372814610498578063dd62ed3e146104b8578063e01af92c146104fe57600080fd5b8063bf474bed14610437578063c02466681461044d578063c9567bf91461046d57600080fd5b80638da5cb5b1461035357806395d89b411461037b5780639a7a23d6146103a7578063a32e9bc7146103c7578063a9059cbb146103e7578063b62496f51461040757600080fd5b8063313ce5671161013e578063632fea1511610118578063632fea15146102d257806370a08231146102f2578063715018a614610328578063790ca4131461033d57600080fd5b8063313ce56714610281578063436d33401461029d57806351bc3c85146102bd57600080fd5b806306fdde0314610191578063095ea7b3146101d65780630faee56f1461020657806312185a391461022a57806318160ddd1461024c57806323b872dd1461026157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600a815269436172796e324420414960b01b60208201525b6040516101cd91906119fc565b60405180910390f35b3480156101e257600080fd5b506101f66101f1366004611a5f565b61051e565b60405190151581526020016101cd565b34801561021257600080fd5b5061021c600c5481565b6040519081526020016101cd565b34801561023657600080fd5b5061024a610245366004611a8b565b610535565b005b34801561025857600080fd5b5061021c6105be565b34801561026d57600080fd5b506101f661027c366004611aa4565b6105df565b34801561028d57600080fd5b50604051601281526020016101cd565b3480156102a957600080fd5b5061024a6102b8366004611a8b565b610648565b3480156102c957600080fd5b5061024a6106c8565b3480156102de57600080fd5b5061024a6102ed366004611af3565b61071b565b3480156102fe57600080fd5b5061021c61030d366004611b79565b6001600160a01b031660009081526001602052604090205490565b34801561033457600080fd5b5061024a61078e565b34801561034957600080fd5b5061021c600a5481565b34801561035f57600080fd5b506000546040516001600160a01b0390911681526020016101cd565b34801561038757600080fd5b5060408051808201909152600381526210cc9160ea1b60208201526101c0565b3480156103b357600080fd5b5061024a6103c2366004611b96565b610802565b3480156103d357600080fd5b5061024a6103e2366004611b96565b6108b0565b3480156103f357600080fd5b506101f6610402366004611a5f565b6108da565b34801561041357600080fd5b506101f6610422366004611b79565b600f6020526000908152604090205460ff1681565b34801561044357600080fd5b5061021c600b5481565b34801561045957600080fd5b5061024a610468366004611b96565b6108e7565b34801561047957600080fd5b5061024a61093c565b34801561048e57600080fd5b5061021c60095481565b3480156104a457600080fd5b5061024a6104b3366004611b79565b610d13565b3480156104c457600080fd5b5061021c6104d3366004611bcf565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561050a57600080fd5b5061024a610519366004611bfd565b610f1b565b600061052b338484610f63565b5060015b92915050565b6000546001600160a01b031633146105685760405162461bcd60e51b815260040161055f90611c1a565b60405180910390fd5b600a8111156105b95760405162461bcd60e51b815260206004820152601d60248201527f5461782063616e6e6f7420626520686967686572207468616e20313025000000604482015260640161055f565b600855565b60006105cc6012600a611d49565b6105da906305f5e100611d58565b905090565b60006105ec848484611087565b61063e843361063985604051806060016040528060288152602001611ed9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906115e0565b610f63565b5060019392505050565b6000546001600160a01b031633146106725760405162461bcd60e51b815260040161055f90611c1a565b600a8111156106c35760405162461bcd60e51b815260206004820152601d60248201527f5461782063616e6e6f7420626520686967686572207468616e20313025000000604482015260640161055f565b600755565b6005546001600160a01b0316336001600160a01b0316146106e857600080fd5b306000908152600160205260409020548015610707576107078161161a565b4780156107175761071781611794565b5050565b6005546001600160a01b0316336001600160a01b03161461073b57600080fd5b60005b828110156107885761077684848381811061075b5761075b611d6f565b90506020020160208101906107709190611b79565b836117ce565b8061078081611d85565b91505061073e565b50505050565b6000546001600160a01b031633146107b85760405162461bcd60e51b815260040161055f90611c1a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6005546001600160a01b0316336001600160a01b03161461082257600080fd5b600e546001600160a01b03908116908316036108a65760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161055f565b61071782826117f9565b6005546001600160a01b0316336001600160a01b0316146108d057600080fd5b61071782826117ce565b600061052b338484611087565b6000546001600160a01b031633146109115760405162461bcd60e51b815260040161055f90611c1a565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109665760405162461bcd60e51b815260040161055f90611c1a565b600e54600160a01b900460ff16156109c05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161055f565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a099030906109fb6012600a611d49565b610639906305f5e100611d58565b600d60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190611d9e565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611d9e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b779190611d9e565b600e80546001600160a01b039283166001600160a01b0319909116179055600d541663f305d7194730610bbf816001600160a01b031660009081526001602052604090205490565b600080610bd46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c619190611dbb565b5050600e54600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610cba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cde9190611de9565b50600e54610cf6906001600160a01b031660016117f9565b42600a55600e805462ff00ff60a01b19166201000160a01b179055565b6005546001600160a01b0316336001600160a01b031614610d3357600080fd5b6001600160a01b038116610d9257604051600090339047908381818185875af1925050503d8060008114610d83576040519150601f19603f3d011682016040523d82523d6000602084013e610d88565b606091505b50610f1892505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611e06565b11610e365760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b604482015260640161055f565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea19190611e06565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f159190611de9565b50505b50565b6000546001600160a01b03163314610f455760405162461bcd60e51b815260040161055f90611c1a565b600e8054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b038316610fc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055f565b6001600160a01b0382166110265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110eb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055f565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055f565b600081116111af5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055f565b6001600160a01b0383166000908152600f602052604081205460ff1680156111e55750600d546001600160a01b03848116911614155b801561120a57506001600160a01b03831660009081526003602052604090205460ff16155b15611225576009805490600061121f83611d85565b91905055505b6001600160a01b0384166000908152600f602052604090205460ff16801561126657506001600160a01b03831660009081526003602052604090205460ff16155b801561128b57506001600160a01b03841660009081526003602052604090205460ff16155b1561132257600a5461129e906078611e1f565b4210156112ff576001600160a01b03831660009081526004602052604090205460ff166112ff5760405162461bcd60e51b815260206004820152600f60248201526e4e6f74206561726c7920626972642160881b604482015260640161055f565b61131f60646113196007548561184d90919063ffffffff16565b906118d6565b90505b6001600160a01b0383166000908152600f602052604090205460ff16801561136357506001600160a01b03831660009081526003602052604090205460ff16155b801561138857506001600160a01b03841660009081526003602052604090205460ff16155b156113aa576113a760646113196008548561184d90919063ffffffff16565b90505b30600090815260016020526040902054600e54600160a81b900460ff161580156113ed57506001600160a01b0385166000908152600f602052604090205460ff16155b80156114025750600e54600160b01b900460ff165b801561140f5750600b5481115b801561141e5750600654600954115b801561144357506001600160a01b03841660009081526003602052604090205460ff16155b801561146857506001600160a01b03851660009081526003602052604090205460ff16155b1561149c5761148a6114858461148084600c54611918565b611918565b61161a565b47801561149a5761149a47611794565b505b811561151657306000908152600160205260409020546114bc908361192d565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061150d9086815260200190565b60405180910390a35b6001600160a01b038516600090815260016020526040902054611539908461198c565b6001600160a01b03861660009081526001602052604090205561157e61155f848461198c565b6001600160a01b0386166000908152600160205260409020549061192d565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115c8868661198c565b60405190815260200160405180910390a35050505050565b600081848411156116045760405162461bcd60e51b815260040161055f91906119fc565b5060006116118486611e32565b95945050505050565b600e805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061166257611662611d6f565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116df9190611d9e565b816001815181106116f2576116f2611d6f565b6001600160a01b039283166020918202929092010152600d546117189130911684610f63565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611751908590600090869030904290600401611e45565b600060405180830381600087803b15801561176b57600080fd5b505af115801561177f573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610717573d6000803e3d6000fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60008260000361185f5750600061052f565b600061186b8385611d58565b9050826118788583611eb6565b146118cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055f565b9392505050565b60006118cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119ce565b600081831161192757826118cf565b50919050565b60008061193a8385611e1f565b9050838110156118cf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055f565b60006118cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115e0565b600081836119ef5760405162461bcd60e51b815260040161055f91906119fc565b5060006116118486611eb6565b600060208083528351808285015260005b81811015611a2957858101830151858201604001528201611a0d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f1857600080fd5b60008060408385031215611a7257600080fd5b8235611a7d81611a4a565b946020939093013593505050565b600060208284031215611a9d57600080fd5b5035919050565b600080600060608486031215611ab957600080fd5b8335611ac481611a4a565b92506020840135611ad481611a4a565b929592945050506040919091013590565b8015158114610f1857600080fd5b600080600060408486031215611b0857600080fd5b833567ffffffffffffffff80821115611b2057600080fd5b818601915086601f830112611b3457600080fd5b813581811115611b4357600080fd5b8760208260051b8501011115611b5857600080fd5b60209283019550935050840135611b6e81611ae5565b809150509250925092565b600060208284031215611b8b57600080fd5b81356118cf81611a4a565b60008060408385031215611ba957600080fd5b8235611bb481611a4a565b91506020830135611bc481611ae5565b809150509250929050565b60008060408385031215611be257600080fd5b8235611bed81611a4a565b91506020830135611bc481611a4a565b600060208284031215611c0f57600080fd5b81356118cf81611ae5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ca0578160001904821115611c8657611c86611c4f565b80851615611c9357918102915b93841c9390800290611c6a565b509250929050565b600082611cb75750600161052f565b81611cc45750600061052f565b8160018114611cda5760028114611ce457611d00565b600191505061052f565b60ff841115611cf557611cf5611c4f565b50506001821b61052f565b5060208310610133831016604e8410600b8410161715611d23575081810a61052f565b611d2d8383611c65565b8060001904821115611d4157611d41611c4f565b029392505050565b60006118cf60ff841683611ca8565b808202811582820484141761052f5761052f611c4f565b634e487b7160e01b600052603260045260246000fd5b600060018201611d9757611d97611c4f565b5060010190565b600060208284031215611db057600080fd5b81516118cf81611a4a565b600080600060608486031215611dd057600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611dfb57600080fd5b81516118cf81611ae5565b600060208284031215611e1857600080fd5b5051919050565b8082018082111561052f5761052f611c4f565b8181038181111561052f5761052f611c4f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e955784516001600160a01b031683529383019391830191600101611e70565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ed357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220079bb01cd053f4c27474fa1bf2d5282eb2574cc2651756701d80d2f52182f75464736f6c63430008120033

Deployed Bytecode Sourcemap

3666:9471:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7111:83;;;;;;;;;;-1:-1:-1;7181:5:0;;;;;;;;;;;;-1:-1:-1;;;7181:5:0;;;;7111:83;;;;;;;:::i;:::-;;;;;;;;7944:161;;;;;;;;;;-1:-1:-1;7944:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7944:161:0;1023:187:1;4498:48:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4498:48:0;1215:177:1;6118:164:0;;;;;;;;;;-1:-1:-1;6118:164:0;;;;;:::i;:::-;;:::i;:::-;;7388:95;;;;;;;;;;;;;:::i;8113:313::-;;;;;;;;;;-1:-1:-1;8113:313:0;;;;;:::i;:::-;;:::i;7297:83::-;;;;;;;;;;-1:-1:-1;7297:83:0;;4246:2;2185:36:1;;2173:2;2158:18;7297:83:0;2043:184:1;5951:159:0;;;;;;;;;;-1:-1:-1;5951:159:0;;;;;:::i;:::-;;:::i;12768:366::-;;;;;;;;;;;;;:::i;6451:239::-;;;;;;;;;;-1:-1:-1;6451:239:0;;;;;:::i;:::-;;:::i;7491:119::-;;;;;;;;;;-1:-1:-1;7491:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7584:18:0;7557:7;7584:18;;;:9;:18;;;;;;;7491:119;2741:148;;;;;;;;;;;;;:::i;4177:25::-;;;;;;;;;;;;;;;;2527:79;;;;;;;;;;-1:-1:-1;2565:7:0;2592:6;2527:79;;-1:-1:-1;;;;;2592:6:0;;;3508:51:1;;3496:2;3481:18;2527:79:0;3362:203:1;7202:87:0;;;;;;;;;;-1:-1:-1;7274:7:0;;;;;;;;;;;;-1:-1:-1;;;7274:7:0;;;;7202:87;;5626:317;;;;;;;;;;-1:-1:-1;5626:317:0;;;;;:::i;:::-;;:::i;6290:153::-;;;;;;;;;;-1:-1:-1;6290:153:0;;;;;:::i;:::-;;:::i;7618:167::-;;;;;;;;;;-1:-1:-1;7618:167:0;;;;;:::i;:::-;;:::i;4744:57::-;;;;;;;;;;-1:-1:-1;4744:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4435:56;;;;;;;;;;;;;;;;5487:131;;;;;;;;;;-1:-1:-1;5487:131:0;;;;;:::i;:::-;;:::i;11417:786::-;;;;;;;;;;;;;:::i;4143:27::-;;;;;;;;;;;;;;;;12248:512;;;;;;;;;;-1:-1:-1;12248:512:0;;;;;:::i;:::-;;:::i;7793:143::-;;;;;;;;;;-1:-1:-1;7793:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7901:18:0;;;7874:7;7901:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7793:143;7012:91;;;;;;;;;;-1:-1:-1;7012:91:0;;;;;:::i;:::-;;:::i;7944:161::-;8019:4;8036:39;348:10;8059:7;8068:6;8036:8;:39::i;:::-;-1:-1:-1;8093:4:0;7944:161;;;;;:::o;6118:164::-;2654:6;;-1:-1:-1;;;;;2654:6:0;348:10;2654:22;2646:67;;;;-1:-1:-1;;;2646:67:0;;;;;;;:::i;:::-;;;;;;;;;6209:2:::1;6197:8;:14;;6189:56;;;::::0;-1:-1:-1;;;6189:56:0;;5159:2:1;6189:56:0::1;::::0;::::1;5141:21:1::0;5198:2;5178:18;;;5171:30;5237:31;5217:18;;;5210:59;5286:18;;6189:56:0::1;4957:353:1::0;6189:56:0::1;6256:7;:18:::0;6118:164::o;7388:95::-;7441:7;4302:15;4246:2;4302;:15;:::i;:::-;4290:27;;:9;:27;:::i;:::-;7461:14;;7388:95;:::o;8113:313::-;8211:4;8228:36;8238:6;8246:9;8257:6;8228:9;:36::i;:::-;8275:121;8284:6;348:10;8306:89;8344:6;8306:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8306:19:0;;;;;;:11;:19;;;;;;;;348:10;8306:33;;;;;;;;;;:37;:89::i;:::-;8275:8;:121::i;:::-;-1:-1:-1;8414:4:0;8113:313;;;;;:::o;5951:159::-;2654:6;;-1:-1:-1;;;;;2654:6:0;348:10;2654:22;2646:67;;;;-1:-1:-1;;;2646:67:0;;;;;;;:::i;:::-;6039:2:::1;6028:7;:13;;6020:55;;;::::0;-1:-1:-1;;;6020:55:0;;5159:2:1;6020:55:0::1;::::0;::::1;5141:21:1::0;5198:2;5178:18;;;5171:30;5237:31;5217:18;;;5210:59;5286:18;;6020:55:0::1;4957:353:1::0;6020:55:0::1;6086:6;:16:::0;5951:159::o;12768:366::-;12834:10;;-1:-1:-1;;;;;12834:10:0;348;-1:-1:-1;;;;;12818:26:0;;12810:35;;;;;;12897:4;12856:20;7584:18;;;:9;:18;;;;;;12918:16;;12914:79;;12951:30;12968:12;12951:16;:30::i;:::-;13024:21;13060:14;;13056:71;;13091:24;13104:10;13091:12;:24::i;:::-;12799:335;;12768:366::o;6451:239::-;6557:10;;-1:-1:-1;;;;;6557:10:0;348;-1:-1:-1;;;;;6541:26:0;;6533:35;;;;;;6584:6;6579:104;6596:19;;;6579:104;;;6637:34;6652:8;;6661:1;6652:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6665:5;6637:14;:34::i;:::-;6617:3;;;;:::i;:::-;;;;6579:104;;;;6451:239;;;:::o;2741:148::-;2654:6;;-1:-1:-1;;;;;2654:6:0;348:10;2654:22;2646:67;;;;-1:-1:-1;;;2646:67:0;;;;;;;:::i;:::-;2848:1:::1;2832:6:::0;;2811:40:::1;::::0;-1:-1:-1;;;;;2832:6:0;;::::1;::::0;2811:40:::1;::::0;2848:1;;2811:40:::1;2879:1;2862:19:::0;;-1:-1:-1;;;;;;2862:19:0::1;::::0;;2741:148::o;5626:317::-;5731:10;;-1:-1:-1;;;;;5731:10:0;348;-1:-1:-1;;;;;5715:26:0;;5707:35;;;;;;5783:13;;-1:-1:-1;;;;;5783:13:0;;;5775:21;;;;5753:128;;;;-1:-1:-1;;;5753:128:0;;7477:2:1;5753:128:0;;;7459:21:1;7516:2;7496:18;;;7489:30;7555:34;7535:18;;;7528:62;7626:27;7606:18;;;7599:55;7671:19;;5753:128:0;7275:421:1;5753:128:0;5894:41;5923:4;5929:5;5894:28;:41::i;6290:153::-;6383:10;;-1:-1:-1;;;;;6383:10:0;348;-1:-1:-1;;;;;6367:26:0;;6359:35;;;;;;6405:30;6420:7;6429:5;6405:14;:30::i;7618:167::-;7696:4;7713:42;348:10;7737:9;7748:6;7713:9;:42::i;5487:131::-;2654:6;;-1:-1:-1;;;;;2654:6:0;348:10;2654:22;2646:67;;;;-1:-1:-1;;;2646:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5572:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;5572:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;5487:131::o;11417:786::-;2654:6;;-1:-1:-1;;;;;2654:6:0;348:10;2654:22;2646:67;;;;-1:-1:-1;;;2646:67:0;;;;;;;:::i;:::-;11481:11:::1;::::0;-1:-1:-1;;;11481:11:0;::::1;;;11480:12;11472:48;;;::::0;-1:-1:-1;;;11472:48:0;;7903:2:1;11472:48:0::1;::::0;::::1;7885:21:1::0;7942:2;7922:18;;;7915:30;7981:25;7961:18;;;7954:53;8024:18;;11472:48:0::1;7701:347:1::0;11472:48:0::1;11531:15;:80:::0;;-1:-1:-1;;;;;;11531:80:0::1;11568:42;11531:80:::0;;::::1;::::0;;;11622:58:::1;::::0;11639:4:::1;::::0;4302:15:::1;4246:2;4302;:15;:::i;:::-;4290:27;::::0;:9:::1;:27;:::i;11622:58::-;11725:15;;;;;;;;;-1:-1:-1::0;;;;;11725:15:0::1;-1:-1:-1::0;;;;;11725:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11707:55:0::1;;11771:4;11778:15;;;;;;;;;-1:-1:-1::0;;;;;11778:15:0::1;-1:-1:-1::0;;;;;11778:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11707:94;::::0;-1:-1:-1;;;;;;11707:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8539:15:1;;;11707:94:0::1;::::0;::::1;8521:34:1::0;8591:15;;8571:18;;;8564:43;8456:18;;11707:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11691:13;:110:::0;;-1:-1:-1;;;;;11691:110:0;;::::1;-1:-1:-1::0;;;;;;11691:110:0;;::::1;;::::0;;11812:15:::1;::::0;::::1;:31;11852:21;11883:4;11890:24;11883:4:::0;-1:-1:-1;;;;;7584:18:0;7557:7;7584:18;;;:9;:18;;;;;;;7491:119;11890:24:::1;11916:1;11919::::0;11922:7:::1;2565::::0;2592:6;-1:-1:-1;;;;;2592:6:0;;2527:79;11922:7:::1;11812:135;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11812:135:0;;;-1:-1:-1;;;;;8977:15:1;;;11812:135:0::1;::::0;::::1;8959:34:1::0;9009:18;;;9002:34;;;;9052:18;;;9045:34;;;;9095:18;;;9088:34;9159:15;;;9138:19;;;9131:44;11931:15:0::1;9191:19:1::0;;;9184:35;8893:19;;11812:135:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11965:13:0::1;::::0;11996:15:::1;::::0;11958:71:::1;::::0;-1:-1:-1;;;11958:71:0;;-1:-1:-1;;;;;11996:15:0;;::::1;11958:71;::::0;::::1;9715:51:1::0;-1:-1:-1;;9782:18:1;;;9775:34;11965:13:0;::::1;::::0;-1:-1:-1;11958:29:0::1;::::0;9688:18:1;;11958:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12077:13:0::1;::::0;12040:58:::1;::::0;-1:-1:-1;;;;;12077:13:0::1;::::0;12040:28:::1;:58::i;:::-;12122:15;12109:10;:28:::0;12148:11:::1;:18:::0;;-1:-1:-1;;;;12177:18:0;-1:-1:-1;;;12177:18:0;;;11417:786::o;12248:512::-;12332:10;;-1:-1:-1;;;;;12332:10:0;348;-1:-1:-1;;;;;12316:26:0;;12308:35;;;;;;-1:-1:-1;;;;;12358:17:0;;12354:399;;12433:90;;12392:12;;12441:10;;12465:21;;12392:12;12433:90;12392:12;12433:90;12465:21;12441:10;12433:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12354:399:0;;-1:-1:-1;;;12354:399:0;;12564:36;;-1:-1:-1;;;12564:36:0;;12594:4;12564:36;;;3508:51:1;12603:1:0;;-1:-1:-1;;;;;12564:21:0;;;;;3481:18:1;;12564:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;12556:62;;;;-1:-1:-1;;;12556:62:0;;10671:2:1;12556:62:0;;;10653:21:1;10710:1;10690:18;;;10683:29;-1:-1:-1;;;10728:18:1;;;10721:39;10777:18;;12556:62:0;10469:332:1;12556:62:0;12650:36;;-1:-1:-1;;;12650:36:0;;12680:4;12650:36;;;3508:51:1;12633:14:0;;-1:-1:-1;;;;;12650:21:0;;;;;3481:18:1;;12650:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12701:40;;-1:-1:-1;;;12701:40:0;;12722:10;12701:40;;;9715:51:1;9782:18;;;9775:34;;;12633:53:0;;-1:-1:-1;;;;;;12701:20:0;;;;;9688:18:1;;12701:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12541:212;12354:399;12248:512;:::o;7012:91::-;2654:6;;-1:-1:-1;;;;;2654:6:0;348:10;2654:22;2646:67;;;;-1:-1:-1;;;2646:67:0;;;;;;;:::i;:::-;7076:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;7076:19:0::1;-1:-1:-1::0;;;;7076:19:0;;::::1;::::0;;;::::1;::::0;;7012:91::o;8434:335::-;-1:-1:-1;;;;;8527:19:0;;8519:68;;;;-1:-1:-1;;;8519:68:0;;11008:2:1;8519:68:0;;;10990:21:1;11047:2;11027:18;;;11020:30;11086:34;11066:18;;;11059:62;-1:-1:-1;;;11137:18:1;;;11130:34;11181:19;;8519:68:0;10806:400:1;8519:68:0;-1:-1:-1;;;;;8606:21:0;;8598:68;;;;-1:-1:-1;;;8598:68:0;;11413:2:1;8598:68:0;;;11395:21:1;11452:2;11432:18;;;11425:30;11491:34;11471:18;;;11464:62;-1:-1:-1;;;11542:18:1;;;11535:32;11584:19;;8598:68:0;11211:398:1;8598:68:0;-1:-1:-1;;;;;8677:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8729:32;;1361:25:1;;;8729:32:0;;1334:18:1;8729:32:0;;;;;;;8434:335;;;:::o;8777:1921::-;-1:-1:-1;;;;;8865:18:0;;8857:68;;;;-1:-1:-1;;;8857:68:0;;11816:2:1;8857:68:0;;;11798:21:1;11855:2;11835:18;;;11828:30;11894:34;11874:18;;;11867:62;-1:-1:-1;;;11945:18:1;;;11938:35;11990:19;;8857:68:0;11614:401:1;8857:68:0;-1:-1:-1;;;;;8944:16:0;;8936:64;;;;-1:-1:-1;;;8936:64:0;;12222:2:1;8936:64:0;;;12204:21:1;12261:2;12241:18;;;12234:30;12300:34;12280:18;;;12273:62;-1:-1:-1;;;12351:18:1;;;12344:33;12394:19;;8936:64:0;12020:399:1;8936:64:0;9028:1;9019:6;:10;9011:64;;;;-1:-1:-1;;;9011:64:0;;12626:2:1;9011:64:0;;;12608:21:1;12665:2;12645:18;;;12638:30;12704:34;12684:18;;;12677:62;-1:-1:-1;;;12755:18:1;;;12748:39;12804:19;;9011:64:0;12424:405:1;9011:64:0;-1:-1:-1;;;;;9124:31:0;;9086:17;9124:31;;;:25;:31;;;;;;;;:65;;;;-1:-1:-1;9173:15:0;;-1:-1:-1;;;;;9159:30:0;;;9173:15;;9159:30;;9124:65;:92;;;;-1:-1:-1;;;;;;9194:22:0;;;;;;:18;:22;;;;;;;;9193:23;9124:92;9120:135;;;9233:8;:10;;;:8;:10;;;:::i;:::-;;;;;;9120:135;-1:-1:-1;;;;;9287:31:0;;;;;;:25;:31;;;;;;;;:58;;;;-1:-1:-1;;;;;;9323:22:0;;;;;;:18;:22;;;;;;;;9322:23;9287:58;:87;;;;-1:-1:-1;;;;;;9350:24:0;;;;;;:18;:24;;;;;;;;9349:25;9287:87;9283:299;;;9413:10;;:24;;9427:9;9413:24;:::i;:::-;9395:15;:42;9391:126;;;-1:-1:-1;;;;;9466:15:0;;;;;;:11;:15;;;;;;;;9458:43;;;;-1:-1:-1;;;9458:43:0;;13166:2:1;9458:43:0;;;13148:21:1;13205:2;13185:18;;;13178:30;-1:-1:-1;;;13224:18:1;;;13217:45;13279:18;;9458:43:0;12964:339:1;9458:43:0;9543:27;9566:3;9543:18;9554:6;;9543;:10;;:18;;;;:::i;:::-;:22;;:27::i;:::-;9531:39;;9283:299;-1:-1:-1;;;;;9615:29:0;;;;;;:25;:29;;;;;;;;:56;;;;-1:-1:-1;;;;;;9649:22:0;;;;;;:18;:22;;;;;;;;9648:23;9615:56;:85;;;;-1:-1:-1;;;;;;9676:24:0;;;;;;:18;:24;;;;;;;;9675:25;9615:85;9611:158;;;9729:28;9753:3;9729:19;9740:7;;9729:6;:10;;:19;;;;:::i;:28::-;9717:40;;9611:158;9830:4;9781:28;7584:18;;;:9;:18;;;;;;9852:6;;-1:-1:-1;;;9852:6:0;;;;9851:7;:43;;;;-1:-1:-1;;;;;;9863:31:0;;;;;;:25;:31;;;;;;;;9862:32;9851:43;:58;;;;-1:-1:-1;9898:11:0;;-1:-1:-1;;;9898:11:0;;;;9851:58;:102;;;;;9936:17;;9913:20;:40;9851:102;:135;;;;;9968:18;;9957:8;;:29;9851:135;:162;;;;-1:-1:-1;;;;;;9991:22:0;;;;;;:18;:22;;;;;;;;9990:23;9851:162;:191;;;;-1:-1:-1;;;;;;10018:24:0;;;;;;:18;:24;;;;;;;;10017:25;9851:191;9847:470;;;10059:69;10076:51;10080:6;10088:38;10092:20;10114:11;;10088:3;:38::i;:::-;10076:3;:51::i;:::-;10059:16;:69::i;:::-;10172:21;10212:22;;10208:98;;10255:35;10268:21;10255:12;:35::i;:::-;10044:273;9847:470;10343:13;;10339:172;;10418:4;10400:24;;;;:9;:24;;;;;;:39;;10429:9;10400:28;:39::i;:::-;10391:4;10373:24;;;;:9;:24;;;;;;;:66;;;;10459:40;;-1:-1:-1;;;;;10459:40:0;;;;;;;10489:9;1361:25:1;;1349:2;1334:18;;1215:177;10459:40:0;;;;;;;;10339:172;-1:-1:-1;;;;;10539:15:0;;;;;;:9;:15;;;;;;:27;;10559:6;10539:19;:27::i;:::-;-1:-1:-1;;;;;10521:15:0;;;;;;:9;:15;;;;;:45;10593:40;10611:21;:6;10622:9;10611:10;:21::i;:::-;-1:-1:-1;;;;;10593:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10577:13:0;;;;;;;:9;:13;;;;;:56;;;;10649:41;;;10668:21;:6;10679:9;10668:10;:21::i;:::-;10649:41;;1361:25:1;;;1349:2;1334:18;10649:41:0;;;;;;;8846:1852;;8777:1921;;;:::o;1417:190::-;1503:7;1539:12;1531:6;;;;1523:29;;;;-1:-1:-1;;;1523:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1563:9:0;1575:5;1579:1;1575;:5;:::i;:::-;1563:17;1417:190;-1:-1:-1;;;;;1417:190:0:o;10822:483::-;4926:6;:13;;-1:-1:-1;;;;4926:13:0;-1:-1:-1;;;4926:13:0;;;10924:16:::1;::::0;;10938:1:::1;10924:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10924:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10924:16:0::1;10900:40;;10969:4;10951;10956:1;10951:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10951:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10995:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10995:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10951:7;;10995:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10985:4;10990:1;10985:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10985:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11060:15:::1;::::0;11028:62:::1;::::0;11045:4:::1;::::0;11060:15:::1;11078:11:::0;11028:8:::1;:62::i;:::-;11101:15;::::0;:196:::1;::::0;-1:-1:-1;;;11101:196:0;;-1:-1:-1;;;;;11101:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11182:11;;11101:15:::1;::::0;11224:4;;11251::::1;::::0;11271:15:::1;::::0;11101:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4962:6:0;:14;;-1:-1:-1;;;;4962:14:0;;;-1:-1:-1;;;;10822:483:0:o;11315:92::-;11372:10;;:27;;-1:-1:-1;;;;;11372:10:0;;;;:27;;;;;11392:6;;11372:10;:27;:10;:27;11392:6;11372:10;:27;;;;;;;;;;;;;;;;;;;6698:108;-1:-1:-1;;;;;6770:20:0;;;;;;;;:11;:20;;;;;:28;;-1:-1:-1;;6770:28:0;;;;;;;;;;6698:108::o;6814:188::-;-1:-1:-1;;;;;6897:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;6897:39:0;;;;;;;;;;6954:40;;6897:39;;:31;6954:40;;;6814:188;;:::o;1615:246::-;1673:7;1697:1;1702;1697:6;1693:47;;-1:-1:-1;1727:1:0;1720:8;;1693:47;1750:9;1762:5;1766:1;1762;:5;:::i;:::-;1750:17;-1:-1:-1;1795:1:0;1786:5;1790:1;1750:17;1786:5;:::i;:::-;:10;1778:56;;;;-1:-1:-1;;;1778:56:0;;14982:2:1;1778:56:0;;;14964:21:1;15021:2;15001:18;;;14994:30;15060:34;15040:18;;;15033:62;-1:-1:-1;;;15111:18:1;;;15104:31;15152:19;;1778:56:0;14780:397:1;1778:56:0;1852:1;1615:246;-1:-1:-1;;;1615:246:0:o;1869:132::-;1927:7;1954:39;1958:1;1961;1954:39;;;;;;;;;;;;;;;;;:3;:39::i;10708:106::-;10765:7;10796:1;10792;:5;10791:15;;10805:1;10791:15;;;-1:-1:-1;10801:1:0;10708:106;-1:-1:-1;10708:106:0:o;1086:179::-;1144:7;;1176:5;1180:1;1176;:5;:::i;:::-;1164:17;;1205:1;1200;:6;;1192:46;;;;-1:-1:-1;;;1192:46:0;;15384:2:1;1192:46:0;;;15366:21:1;15423:2;15403:18;;;15396:30;15462:29;15442:18;;;15435:57;15509:18;;1192:46:0;15182:351:1;1273:136:0;1331:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;2009:189::-;2095:7;2130:12;2123:5;2115:28;;;;-1:-1:-1;;;2115:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2154:9:0;2166:5;2170:1;2166;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:118::-;2318:5;2311:13;2304:21;2297:5;2294:32;2284:60;;2340:1;2337;2330:12;2355:750;2447:6;2455;2463;2516:2;2504:9;2495:7;2491:23;2487:32;2484:52;;;2532:1;2529;2522:12;2484:52;2572:9;2559:23;2601:18;2642:2;2634:6;2631:14;2628:34;;;2658:1;2655;2648:12;2628:34;2696:6;2685:9;2681:22;2671:32;;2741:7;2734:4;2730:2;2726:13;2722:27;2712:55;;2763:1;2760;2753:12;2712:55;2803:2;2790:16;2829:2;2821:6;2818:14;2815:34;;;2845:1;2842;2835:12;2815:34;2900:7;2893:4;2883:6;2880:1;2876:14;2872:2;2868:23;2864:34;2861:47;2858:67;;;2921:1;2918;2911:12;2858:67;2952:4;2944:13;;;;-1:-1:-1;2976:6:1;-1:-1:-1;;3017:20:1;;3004:34;3047:28;3004:34;3047:28;:::i;:::-;3094:5;3084:15;;;2355:750;;;;;:::o;3110:247::-;3169:6;3222:2;3210:9;3201:7;3197:23;3193:32;3190:52;;;3238:1;3235;3228:12;3190:52;3277:9;3264:23;3296:31;3321:5;3296:31;:::i;3570:382::-;3635:6;3643;3696:2;3684:9;3675:7;3671:23;3667:32;3664:52;;;3712:1;3709;3702:12;3664:52;3751:9;3738:23;3770:31;3795:5;3770:31;:::i;:::-;3820:5;-1:-1:-1;3877:2:1;3862:18;;3849:32;3890:30;3849:32;3890:30;:::i;:::-;3939:7;3929:17;;;3570:382;;;;;:::o;3957:388::-;4025:6;4033;4086:2;4074:9;4065:7;4061:23;4057:32;4054:52;;;4102:1;4099;4092:12;4054:52;4141:9;4128:23;4160:31;4185:5;4160:31;:::i;:::-;4210:5;-1:-1:-1;4267:2:1;4252:18;;4239:32;4280:33;4239:32;4280:33;:::i;4350:241::-;4406:6;4459:2;4447:9;4438:7;4434:23;4430:32;4427:52;;;4475:1;4472;4465:12;4427:52;4514:9;4501:23;4533:28;4555:5;4533:28;:::i;4596:356::-;4798:2;4780:21;;;4817:18;;;4810:30;4876:34;4871:2;4856:18;;4849:62;4943:2;4928:18;;4596:356::o;5315:127::-;5376:10;5371:3;5367:20;5364:1;5357:31;5407:4;5404:1;5397:15;5431:4;5428:1;5421:15;5447:422;5536:1;5579:5;5536:1;5593:270;5614:7;5604:8;5601:21;5593:270;;;5673:4;5669:1;5665:6;5661:17;5655:4;5652:27;5649:53;;;5682:18;;:::i;:::-;5732:7;5722:8;5718:22;5715:55;;;5752:16;;;;5715:55;5831:22;;;;5791:15;;;;5593:270;;;5597:3;5447:422;;;;;:::o;5874:806::-;5923:5;5953:8;5943:80;;-1:-1:-1;5994:1:1;6008:5;;5943:80;6042:4;6032:76;;-1:-1:-1;6079:1:1;6093:5;;6032:76;6124:4;6142:1;6137:59;;;;6210:1;6205:130;;;;6117:218;;6137:59;6167:1;6158:10;;6181:5;;;6205:130;6242:3;6232:8;6229:17;6226:43;;;6249:18;;:::i;:::-;-1:-1:-1;;6305:1:1;6291:16;;6320:5;;6117:218;;6419:2;6409:8;6406:16;6400:3;6394:4;6391:13;6387:36;6381:2;6371:8;6368:16;6363:2;6357:4;6354:12;6350:35;6347:77;6344:159;;;-1:-1:-1;6456:19:1;;;6488:5;;6344:159;6535:34;6560:8;6554:4;6535:34;:::i;:::-;6605:6;6601:1;6597:6;6593:19;6584:7;6581:32;6578:58;;;6616:18;;:::i;:::-;6654:20;;5874:806;-1:-1:-1;;;5874:806:1:o;6685:140::-;6743:5;6772:47;6813:4;6803:8;6799:19;6793:4;6772:47;:::i;6830:168::-;6903:9;;;6934;;6951:15;;;6945:22;;6931:37;6921:71;;6972:18;;:::i;7003:127::-;7064:10;7059:3;7055:20;7052:1;7045:31;7095:4;7092:1;7085:15;7119:4;7116:1;7109:15;7135:135;7174:3;7195:17;;;7192:43;;7215:18;;:::i;:::-;-1:-1:-1;7262:1:1;7251:13;;7135:135::o;8053:251::-;8123:6;8176:2;8164:9;8155:7;8151:23;8147:32;8144:52;;;8192:1;8189;8182:12;8144:52;8224:9;8218:16;8243:31;8268:5;8243:31;:::i;9230:306::-;9318:6;9326;9334;9387:2;9375:9;9366:7;9362:23;9358:32;9355:52;;;9403:1;9400;9393:12;9355:52;9432:9;9426:16;9416:26;;9482:2;9471:9;9467:18;9461:25;9451:35;;9526:2;9515:9;9511:18;9505:25;9495:35;;9230:306;;;;;:::o;9820:245::-;9887:6;9940:2;9928:9;9919:7;9915:23;9911:32;9908:52;;;9956:1;9953;9946:12;9908:52;9988:9;9982:16;10007:28;10029:5;10007:28;:::i;10280:184::-;10350:6;10403:2;10391:9;10382:7;10378:23;10374:32;10371:52;;;10419:1;10416;10409:12;10371:52;-1:-1:-1;10442:16:1;;10280:184;-1:-1:-1;10280:184:1:o;12834:125::-;12899:9;;;12920:10;;;12917:36;;;12933:18;;:::i;13308:128::-;13375:9;;;13396:11;;;13393:37;;;13410:18;;:::i;13573:980::-;13835:4;13883:3;13872:9;13868:19;13914:6;13903:9;13896:25;13940:2;13978:6;13973:2;13962:9;13958:18;13951:34;14021:3;14016:2;14005:9;14001:18;13994:31;14045:6;14080;14074:13;14111:6;14103;14096:22;14149:3;14138:9;14134:19;14127:26;;14188:2;14180:6;14176:15;14162:29;;14209:1;14219:195;14233:6;14230:1;14227:13;14219:195;;;14298:13;;-1:-1:-1;;;;;14294:39:1;14282:52;;14389:15;;;;14354:12;;;;14330:1;14248:9;14219:195;;;-1:-1:-1;;;;;;;14470:32:1;;;;14465:2;14450:18;;14443:60;-1:-1:-1;;;14534:3:1;14519:19;14512:35;14431:3;13573:980;-1:-1:-1;;;13573:980:1:o;14558:217::-;14598:1;14624;14614:132;;14668:10;14663:3;14659:20;14656:1;14649:31;14703:4;14700:1;14693:15;14731:4;14728:1;14721:15;14614:132;-1:-1:-1;14760:9:1;;14558:217::o

Swarm Source

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