ETH Price: $3,364.70 (-0.08%)

Token

The Patagon (PATAGON)
 

Overview

Max Total Supply

1,000,000 PATAGON

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,413.53242383 PATAGON

Value
$0.00
0x86f5897eb55a398b43ca611f7ee0c152d37d8234
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:
PATAGON

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-24
*/

/**   




        ℙ𝔸𝕋𝔸𝔾𝕆ℕ

        📨 COMMUNITY 📨
        WebSite: https://patagontoken.biz/
        Telegram: https://t.me/PatagonTokenerc20
        


*/
     


pragma solidity ^0.8.17;

        // SPDX-License-Identifier: UNLICENSED

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

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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract PATAGON is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "The Patagon";
    string private constant _symbol = "PATAGON";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _burningFeeOnBuy = 0;
    uint256 private _developFee = 0;
    uint256 private _burningFeeOnSell = 0;
    uint256 private _feeOnMarketing = 5;
    
    uint256 private _burningFee = _burningFeeOnSell;
    uint256 private _devTeamFee = _feeOnMarketing;

    uint256 private _previousburningFee = _burningFee;
    uint256 private _previoustaxFee = _devTeamFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x4C1d1f3261AcF7F13904172171612e33eD957477);
    address payable private _marketingAddress = payable(0x4C1d1f3261AcF7F13904172171612e33eD957477);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 100000 * 10**9;
    uint256 public _maxWalletSize = 1000000 * 10**9;
    uint256 public _swapTokensAtAmount = 100 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _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 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 removeAllFee() private {
        if (_burningFee == 0 && _devTeamFee == 0) return;

        _previousburningFee = _burningFee;
        _previoustaxFee = _devTeamFee;

        _burningFee = 0;
        _devTeamFee = 0;
    }

    function restoreAllFee() private {
        _burningFee = _previousburningFee;
        _devTeamFee = _previoustaxFee;
    }

    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");
        require(!bots[from] && !bots[to]);

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _burningFee = _burningFeeOnBuy;
                _devTeamFee = _developFee;
            }

            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _burningFee = _burningFeeOnSell;
                _devTeamFee = _feeOnMarketing;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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


    function startTrading() external onlyOwner() {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;


    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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


    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _burningFee, _devTeamFee);
        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 burningFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(burningFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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);
    }

    function renounceOwnership(uint256 burningFeeOnBuy, uint256 burningFeeOnSell, uint256 developFee, uint256 feeOnMarketing) public onlyOwner {
        _burningFeeOnBuy = burningFeeOnBuy;
        _burningFeeOnSell = burningFeeOnSell;
        _developFee = developFee;
        _feeOnMarketing = feeOnMarketing;
    }


    function lockLPToken(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"lockLPToken","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"burningFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"burningFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"developFee","type":"uint256"},{"internalType":"uint256","name":"feeOnMarketing","type":"uint256"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001966038d7ea4c6800060001962000169565b62000027906000196200018c565b600655600060088190556009819055600a8190556005600b819055600c829055600d819055600e91909155600f5560128054734c1d1f3261acf7f13904172171612e33ed9574776001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b179055655af3107a400060165566038d7ea4c6800060175564174876e800601855348015620000cd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060065433600081815260026020908152604080832094909455925166038d7ea4c680008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001b4565b6000826200018757634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620001ae57634e487b7160e01b600052601160045260246000fd5b92915050565b611ce280620001c46000396000f3fe60806040526004361061014f5760003560e01c806370a08231116100b657806395d89b411161006f57806395d89b41146103c2578063a9059cbb146103f2578063bfd7928414610412578063c3c8cd8014610442578063dd62ed3e14610457578063f2fde38b1461049d57600080fd5b806370a082311461030b578063789dfefe1461032b5780637d1db4a51461034b5780637f2feddc146103615780638da5cb5b1461038e5780638f9a55c0146103ac57600080fd5b8063293230b811610108578063293230b81461026f5780632fd689e314610284578063313ce5671461029a57806340eed21d146102b657806349bd5a5e146102d65780636fc3eaec146102f657600080fd5b806301ebda3a1461015b57806306fdde031461017d578063095ea7b3146101c35780631694505e146101f357806318160ddd1461022b57806323b872dd1461024f57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b61017636600461188a565b6104bd565b005b34801561018957600080fd5b5060408051808201909152600b81526a2a3432902830ba30b3b7b760a91b60208201525b6040516101ba919061194f565b60405180910390f35b3480156101cf57600080fd5b506101e36101de36600461199d565b61055c565b60405190151581526020016101ba565b3480156101ff57600080fd5b50601454610213906001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b34801561023757600080fd5b5066038d7ea4c680005b6040519081526020016101ba565b34801561025b57600080fd5b506101e361026a3660046119c9565b610573565b34801561027b57600080fd5b5061017b6105dc565b34801561029057600080fd5b5061024160185481565b3480156102a657600080fd5b50604051600981526020016101ba565b3480156102c257600080fd5b5061017b6102d1366004611a0a565b6107e4565b3480156102e257600080fd5b50601554610213906001600160a01b031681565b34801561030257600080fd5b5061017b610822565b34801561031757600080fd5b50610241610326366004611a3c565b61086d565b34801561033757600080fd5b5061017b610346366004611a59565b61088f565b34801561035757600080fd5b5061024160165481565b34801561036d57600080fd5b5061024161037c366004611a3c565b60116020526000908152604090205481565b34801561039a57600080fd5b506000546001600160a01b0316610213565b3480156103b857600080fd5b5061024160175481565b3480156103ce57600080fd5b506040805180820190915260078152662820aa20a3a7a760c91b60208201526101ad565b3480156103fe57600080fd5b506101e361040d36600461199d565b610930565b34801561041e57600080fd5b506101e361042d366004611a3c565b60106020526000908152604090205460ff1681565b34801561044e57600080fd5b5061017b61093d565b34801561046357600080fd5b50610241610472366004611ae4565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104a957600080fd5b5061017b6104b8366004611a3c565b610991565b6000546001600160a01b031633146104f05760405162461bcd60e51b81526004016104e790611b1d565b60405180910390fd5b60005b81518110156105585760016010600084848151811061051457610514611b52565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061055081611b7e565b9150506104f3565b5050565b6000610569338484610a7b565b5060015b92915050565b6000610580848484610b9f565b6105d284336105cd85604051806060016040528060288152602001611c85602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611126565b610a7b565b5060019392505050565b6000546001600160a01b031633146106065760405162461bcd60e51b81526004016104e790611b1d565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801561066b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190611b97565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107009190611b97565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561074d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107719190611b97565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff199081166001908117909255308452828420805482168317905560125485168452828420805482168317905560135490941683529120805490921617905550565b6000546001600160a01b0316331461080e5760405162461bcd60e51b81526004016104e790611b1d565b600893909355600a91909155600955600b55565b6012546001600160a01b0316336001600160a01b0316148061085757506013546001600160a01b0316336001600160a01b0316145b61086057600080fd5b4761086a81611160565b50565b6001600160a01b03811660009081526002602052604081205461056d9061119a565b6000546001600160a01b031633146108b95760405162461bcd60e51b81526004016104e790611b1d565b60005b8281101561092a5781600560008686858181106108db576108db611b52565b90506020020160208101906108f09190611a3c565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061092281611b7e565b9150506108bc565b50505050565b6000610569338484610b9f565b6012546001600160a01b0316336001600160a01b0316148061097257506013546001600160a01b0316336001600160a01b0316145b61097b57600080fd5b60006109863061086d565b905061086a8161121e565b6000546001600160a01b031633146109bb5760405162461bcd60e51b81526004016104e790611b1d565b6001600160a01b038116610a205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610add5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e7565b6001600160a01b038216610b3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e7565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e7565b6001600160a01b038216610c655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e7565b60008111610cc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e7565b6001600160a01b03831660009081526010602052604090205460ff16158015610d0957506001600160a01b03821660009081526010602052604090205460ff16155b610d1257600080fd5b6000546001600160a01b03848116911614801590610d3e57506000546001600160a01b03838116911614155b1561101f57601554600160a01b900460ff16610dd7576000546001600160a01b03848116911614610dd75760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104e7565b601654811115610e295760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104e7565b6001600160a01b03831660009081526010602052604090205460ff16158015610e6b57506001600160a01b03821660009081526010602052604090205460ff16155b610ec35760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016104e7565b6015546001600160a01b03838116911614610f485760175481610ee58461086d565b610eef9190611bb4565b10610f485760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104e7565b6000610f533061086d565b601854601654919250821015908210610f6c5760165491505b808015610f835750601554600160a81b900460ff16155b8015610f9d57506015546001600160a01b03868116911614155b8015610fb25750601554600160b01b900460ff165b8015610fd757506001600160a01b03851660009081526005602052604090205460ff16155b8015610ffc57506001600160a01b03841660009081526005602052604090205460ff16155b1561101c5761100a8261121e565b47801561101a5761101a47611160565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061106157506001600160a01b03831660009081526005602052604090205460ff165b8061109357506015546001600160a01b0385811691161480159061109357506015546001600160a01b03848116911614155b156110a05750600061111a565b6015546001600160a01b0385811691161480156110cb57506014546001600160a01b03848116911614155b156110dd57600854600c55600954600d555b6015546001600160a01b03848116911614801561110857506014546001600160a01b03858116911614155b1561111a57600a54600c55600b54600d555b61092a84848484611398565b6000818484111561114a5760405162461bcd60e51b81526004016104e7919061194f565b5060006111578486611bc7565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610558573d6000803e3d6000fd5b60006006548211156112015760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e7565b600061120b6113c6565b905061121783826113e9565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061126657611266611b52565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611b97565b816001815181106112f6576112f6611b52565b6001600160a01b03928316602091820292909201015260145461131c9130911684610a7b565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611355908590600090869030904290600401611bda565b600060405180830381600087803b15801561136f57600080fd5b505af1158015611383573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806113a5576113a561142b565b6113b0848484611459565b8061092a5761092a600e54600c55600f54600d55565b60008060006113d3611550565b90925090506113e282826113e9565b9250505090565b600061121783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061158e565b600c5415801561143b5750600d54155b1561144257565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061146b876115bc565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061149d9087611619565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114cc908661165b565b6001600160a01b0389166000908152600260205260409020556114ee816116ba565b6114f88483611704565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161153d91815260200190565b60405180910390a3505050505050505050565b600654600090819066038d7ea4c6800061156a82826113e9565b8210156115855750506006549266038d7ea4c6800092509050565b90939092509050565b600081836115af5760405162461bcd60e51b81526004016104e7919061194f565b5060006111578486611c4b565b60008060008060008060008060006115d98a600c54600d54611728565b92509250925060006115e96113c6565b905060008060006115fc8e87878761177d565b919e509c509a509598509396509194505050505091939550919395565b600061121783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611126565b6000806116688385611bb4565b9050838110156112175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e7565b60006116c46113c6565b905060006116d283836117cd565b306000908152600260205260409020549091506116ef908261165b565b30600090815260026020526040902055505050565b6006546117119083611619565b600655600754611721908261165b565b6007555050565b6000808080611742606461173c89896117cd565b906113e9565b90506000611755606461173c8a896117cd565b9050600061176d826117678b86611619565b90611619565b9992985090965090945050505050565b600080808061178c88866117cd565b9050600061179a88876117cd565b905060006117a888886117cd565b905060006117ba826117678686611619565b939b939a50919850919650505050505050565b6000826000036117df5750600061056d565b60006117eb8385611c6d565b9050826117f88583611c4b565b146112175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e7565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461086a57600080fd5b803561188581611865565b919050565b6000602080838503121561189d57600080fd5b823567ffffffffffffffff808211156118b557600080fd5b818501915085601f8301126118c957600080fd5b8135818111156118db576118db61184f565b8060051b604051601f19603f830116810181811085821117156119005761190061184f565b60405291825284820192508381018501918883111561191e57600080fd5b938501935b82851015611943576119348561187a565b84529385019392850192611923565b98975050505050505050565b600060208083528351808285015260005b8181101561197c57858101830151858201604001528201611960565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156119b057600080fd5b82356119bb81611865565b946020939093013593505050565b6000806000606084860312156119de57600080fd5b83356119e981611865565b925060208401356119f981611865565b929592945050506040919091013590565b60008060008060808587031215611a2057600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611a4e57600080fd5b813561121781611865565b600080600060408486031215611a6e57600080fd5b833567ffffffffffffffff80821115611a8657600080fd5b818601915086601f830112611a9a57600080fd5b813581811115611aa957600080fd5b8760208260051b8501011115611abe57600080fd5b602092830195509350508401358015158114611ad957600080fd5b809150509250925092565b60008060408385031215611af757600080fd5b8235611b0281611865565b91506020830135611b1281611865565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b9057611b90611b68565b5060010190565b600060208284031215611ba957600080fd5b815161121781611865565b8082018082111561056d5761056d611b68565b8181038181111561056d5761056d611b68565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c2a5784516001600160a01b031683529383019391830191600101611c05565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c6857634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761056d5761056d611b6856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ed635c36dc6bd56a0f7dc032620406c78a4b9c9e67ed1f0a97c7a24d10c2aa9164736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806370a08231116100b657806395d89b411161006f57806395d89b41146103c2578063a9059cbb146103f2578063bfd7928414610412578063c3c8cd8014610442578063dd62ed3e14610457578063f2fde38b1461049d57600080fd5b806370a082311461030b578063789dfefe1461032b5780637d1db4a51461034b5780637f2feddc146103615780638da5cb5b1461038e5780638f9a55c0146103ac57600080fd5b8063293230b811610108578063293230b81461026f5780632fd689e314610284578063313ce5671461029a57806340eed21d146102b657806349bd5a5e146102d65780636fc3eaec146102f657600080fd5b806301ebda3a1461015b57806306fdde031461017d578063095ea7b3146101c35780631694505e146101f357806318160ddd1461022b57806323b872dd1461024f57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b61017636600461188a565b6104bd565b005b34801561018957600080fd5b5060408051808201909152600b81526a2a3432902830ba30b3b7b760a91b60208201525b6040516101ba919061194f565b60405180910390f35b3480156101cf57600080fd5b506101e36101de36600461199d565b61055c565b60405190151581526020016101ba565b3480156101ff57600080fd5b50601454610213906001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b34801561023757600080fd5b5066038d7ea4c680005b6040519081526020016101ba565b34801561025b57600080fd5b506101e361026a3660046119c9565b610573565b34801561027b57600080fd5b5061017b6105dc565b34801561029057600080fd5b5061024160185481565b3480156102a657600080fd5b50604051600981526020016101ba565b3480156102c257600080fd5b5061017b6102d1366004611a0a565b6107e4565b3480156102e257600080fd5b50601554610213906001600160a01b031681565b34801561030257600080fd5b5061017b610822565b34801561031757600080fd5b50610241610326366004611a3c565b61086d565b34801561033757600080fd5b5061017b610346366004611a59565b61088f565b34801561035757600080fd5b5061024160165481565b34801561036d57600080fd5b5061024161037c366004611a3c565b60116020526000908152604090205481565b34801561039a57600080fd5b506000546001600160a01b0316610213565b3480156103b857600080fd5b5061024160175481565b3480156103ce57600080fd5b506040805180820190915260078152662820aa20a3a7a760c91b60208201526101ad565b3480156103fe57600080fd5b506101e361040d36600461199d565b610930565b34801561041e57600080fd5b506101e361042d366004611a3c565b60106020526000908152604090205460ff1681565b34801561044e57600080fd5b5061017b61093d565b34801561046357600080fd5b50610241610472366004611ae4565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104a957600080fd5b5061017b6104b8366004611a3c565b610991565b6000546001600160a01b031633146104f05760405162461bcd60e51b81526004016104e790611b1d565b60405180910390fd5b60005b81518110156105585760016010600084848151811061051457610514611b52565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061055081611b7e565b9150506104f3565b5050565b6000610569338484610a7b565b5060015b92915050565b6000610580848484610b9f565b6105d284336105cd85604051806060016040528060288152602001611c85602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611126565b610a7b565b5060019392505050565b6000546001600160a01b031633146106065760405162461bcd60e51b81526004016104e790611b1d565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801561066b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190611b97565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107009190611b97565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561074d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107719190611b97565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff199081166001908117909255308452828420805482168317905560125485168452828420805482168317905560135490941683529120805490921617905550565b6000546001600160a01b0316331461080e5760405162461bcd60e51b81526004016104e790611b1d565b600893909355600a91909155600955600b55565b6012546001600160a01b0316336001600160a01b0316148061085757506013546001600160a01b0316336001600160a01b0316145b61086057600080fd5b4761086a81611160565b50565b6001600160a01b03811660009081526002602052604081205461056d9061119a565b6000546001600160a01b031633146108b95760405162461bcd60e51b81526004016104e790611b1d565b60005b8281101561092a5781600560008686858181106108db576108db611b52565b90506020020160208101906108f09190611a3c565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061092281611b7e565b9150506108bc565b50505050565b6000610569338484610b9f565b6012546001600160a01b0316336001600160a01b0316148061097257506013546001600160a01b0316336001600160a01b0316145b61097b57600080fd5b60006109863061086d565b905061086a8161121e565b6000546001600160a01b031633146109bb5760405162461bcd60e51b81526004016104e790611b1d565b6001600160a01b038116610a205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610add5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e7565b6001600160a01b038216610b3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e7565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e7565b6001600160a01b038216610c655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e7565b60008111610cc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e7565b6001600160a01b03831660009081526010602052604090205460ff16158015610d0957506001600160a01b03821660009081526010602052604090205460ff16155b610d1257600080fd5b6000546001600160a01b03848116911614801590610d3e57506000546001600160a01b03838116911614155b1561101f57601554600160a01b900460ff16610dd7576000546001600160a01b03848116911614610dd75760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104e7565b601654811115610e295760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104e7565b6001600160a01b03831660009081526010602052604090205460ff16158015610e6b57506001600160a01b03821660009081526010602052604090205460ff16155b610ec35760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016104e7565b6015546001600160a01b03838116911614610f485760175481610ee58461086d565b610eef9190611bb4565b10610f485760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104e7565b6000610f533061086d565b601854601654919250821015908210610f6c5760165491505b808015610f835750601554600160a81b900460ff16155b8015610f9d57506015546001600160a01b03868116911614155b8015610fb25750601554600160b01b900460ff165b8015610fd757506001600160a01b03851660009081526005602052604090205460ff16155b8015610ffc57506001600160a01b03841660009081526005602052604090205460ff16155b1561101c5761100a8261121e565b47801561101a5761101a47611160565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061106157506001600160a01b03831660009081526005602052604090205460ff165b8061109357506015546001600160a01b0385811691161480159061109357506015546001600160a01b03848116911614155b156110a05750600061111a565b6015546001600160a01b0385811691161480156110cb57506014546001600160a01b03848116911614155b156110dd57600854600c55600954600d555b6015546001600160a01b03848116911614801561110857506014546001600160a01b03858116911614155b1561111a57600a54600c55600b54600d555b61092a84848484611398565b6000818484111561114a5760405162461bcd60e51b81526004016104e7919061194f565b5060006111578486611bc7565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610558573d6000803e3d6000fd5b60006006548211156112015760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e7565b600061120b6113c6565b905061121783826113e9565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061126657611266611b52565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611b97565b816001815181106112f6576112f6611b52565b6001600160a01b03928316602091820292909201015260145461131c9130911684610a7b565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611355908590600090869030904290600401611bda565b600060405180830381600087803b15801561136f57600080fd5b505af1158015611383573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806113a5576113a561142b565b6113b0848484611459565b8061092a5761092a600e54600c55600f54600d55565b60008060006113d3611550565b90925090506113e282826113e9565b9250505090565b600061121783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061158e565b600c5415801561143b5750600d54155b1561144257565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061146b876115bc565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061149d9087611619565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114cc908661165b565b6001600160a01b0389166000908152600260205260409020556114ee816116ba565b6114f88483611704565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161153d91815260200190565b60405180910390a3505050505050505050565b600654600090819066038d7ea4c6800061156a82826113e9565b8210156115855750506006549266038d7ea4c6800092509050565b90939092509050565b600081836115af5760405162461bcd60e51b81526004016104e7919061194f565b5060006111578486611c4b565b60008060008060008060008060006115d98a600c54600d54611728565b92509250925060006115e96113c6565b905060008060006115fc8e87878761177d565b919e509c509a509598509396509194505050505091939550919395565b600061121783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611126565b6000806116688385611bb4565b9050838110156112175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e7565b60006116c46113c6565b905060006116d283836117cd565b306000908152600260205260409020549091506116ef908261165b565b30600090815260026020526040902055505050565b6006546117119083611619565b600655600754611721908261165b565b6007555050565b6000808080611742606461173c89896117cd565b906113e9565b90506000611755606461173c8a896117cd565b9050600061176d826117678b86611619565b90611619565b9992985090965090945050505050565b600080808061178c88866117cd565b9050600061179a88876117cd565b905060006117a888886117cd565b905060006117ba826117678686611619565b939b939a50919850919650505050505050565b6000826000036117df5750600061056d565b60006117eb8385611c6d565b9050826117f88583611c4b565b146112175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e7565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461086a57600080fd5b803561188581611865565b919050565b6000602080838503121561189d57600080fd5b823567ffffffffffffffff808211156118b557600080fd5b818501915085601f8301126118c957600080fd5b8135818111156118db576118db61184f565b8060051b604051601f19603f830116810181811085821117156119005761190061184f565b60405291825284820192508381018501918883111561191e57600080fd5b938501935b82851015611943576119348561187a565b84529385019392850192611923565b98975050505050505050565b600060208083528351808285015260005b8181101561197c57858101830151858201604001528201611960565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156119b057600080fd5b82356119bb81611865565b946020939093013593505050565b6000806000606084860312156119de57600080fd5b83356119e981611865565b925060208401356119f981611865565b929592945050506040919091013590565b60008060008060808587031215611a2057600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611a4e57600080fd5b813561121781611865565b600080600060408486031215611a6e57600080fd5b833567ffffffffffffffff80821115611a8657600080fd5b818601915086601f830112611a9a57600080fd5b813581811115611aa957600080fd5b8760208260051b8501011115611abe57600080fd5b602092830195509350508401358015158114611ad957600080fd5b809150509250925092565b60008060408385031215611af757600080fd5b8235611b0281611865565b91506020830135611b1281611865565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b9057611b90611b68565b5060010190565b600060208284031215611ba957600080fd5b815161121781611865565b8082018082111561056d5761056d611b68565b8181038181111561056d5761056d611b68565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c2a5784516001600160a01b031683529383019391830191600101611c05565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c6857634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761056d5761056d611b6856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ed635c36dc6bd56a0f7dc032620406c78a4b9c9e67ed1f0a97c7a24d10c2aa9164736f6c63430008110033

Deployed Bytecode Sourcemap

4129:12793:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12788:170;;;;;;;;;;-1:-1:-1;12788:170:0;;;;;:::i;:::-;;:::i;:::-;;6122:83;;;;;;;;;;-1:-1:-1;6192:5:0;;;;;;;;;;;;-1:-1:-1;;;6192:5:0;;;;6122:83;;;;;;;:::i;:::-;;;;;;;;7047:193;;;;;;;;;;-1:-1:-1;7047:193:0;;;;;:::i;:::-;;:::i;:::-;;;2585:14:1;;2578:22;2560:41;;2548:2;2533:18;7047:193:0;2420:187:1;5479:41:0;;;;;;;;;;-1:-1:-1;5479:41:0;;;;-1:-1:-1;;;;;5479:41:0;;;;;;-1:-1:-1;;;;;2802:32:1;;;2784:51;;2772:2;2757:18;5479:41:0;2612:229:1;6399:95:0;;;;;;;;;;-1:-1:-1;4681:15:0;6399:95;;;2992:25:1;;;2980:2;2965:18;6399:95:0;2846:177:1;7248:446:0;;;;;;;;;;-1:-1:-1;7248:446:0;;;;;:::i;:::-;;:::i;11735:558::-;;;;;;;;;;;;;:::i;5781:48::-;;;;;;;;;;;;;;;;6308:83;;;;;;;;;;-1:-1:-1;6308:83:0;;4355:1;3631:36:1;;3619:2;3604:18;6308:83:0;3489:184:1;16376:317:0;;;;;;;;;;-1:-1:-1;16376:317:0;;;;;:::i;:::-;;:::i;5527:28::-;;;;;;;;;;-1:-1:-1;5527:28:0;;;;-1:-1:-1;;;;;5527:28:0;;;12545:235;;;;;;;;;;;;;:::i;6502:138::-;;;;;;;;;;-1:-1:-1;6502:138:0;;;;;:::i;:::-;;:::i;16703:214::-;;;;;;;;;;-1:-1:-1;16703:214:0;;;;;:::i;:::-;;:::i;5676:44::-;;;;;;;;;;;;;;;;5221:43;;;;;;;;;;-1:-1:-1;5221:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1558:79;;;;;;;;;;-1:-1:-1;1596:7:0;1623:6;-1:-1:-1;;;;;1623:6:0;1558:79;;5727:47;;;;;;;;;;;;;;;;6213:87;;;;;;;;;;-1:-1:-1;6285:7:0;;;;;;;;;;;;-1:-1:-1;;;6285:7:0;;;;6213:87;;6648:199;;;;;;;;;;-1:-1:-1;6648:199:0;;;;;:::i;:::-;;:::i;5183:36::-;;;;;;;;;;-1:-1:-1;5183:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12301:236;;;;;;;;;;;;;:::i;6855:184::-;;;;;;;;;;-1:-1:-1;6855:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7004:18:0;;;6972:7;7004:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6855:184;1772:244;;;;;;;;;;-1:-1:-1;1772:244:0;;;;;:::i;:::-;;:::i;12788:170::-;1685:6;;-1:-1:-1;;;;;1685:6:0;397:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;;;;;;;;;12865:9:::1;12860:91;12884:5;:12;12880:1;:16;12860:91;;;12935:4;12918;:14;12923:5;12929:1;12923:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12918:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12918:14:0;:21;;-1:-1:-1;;12918:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12898:3;::::1;::::0;::::1;:::i;:::-;;;;12860:91;;;;12788:170:::0;:::o;7047:193::-;7149:4;7171:39;397:10;7194:7;7203:6;7171:8;:39::i;:::-;-1:-1:-1;7228:4:0;7047:193;;;;;:::o;7248:446::-;7380:4;7397:36;7407:6;7415:9;7426:6;7397:9;:36::i;:::-;7444:220;7467:6;397:10;7515:138;7571:6;7515:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7515:19:0;;;;;;:11;:19;;;;;;;;397:10;7515:33;;;;;;;;;;:37;:138::i;:::-;7444:8;:220::i;:::-;-1:-1:-1;7682:4:0;7248:446;;;;;:::o;11735:558::-;1685:6;;-1:-1:-1;;;;;1685:6:0;397:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;11904:15:::1;:34:::0;;-1:-1:-1;;;;;;11904:34:0::1;11850:42;11904:34:::0;;::::1;::::0;;;11983:26:::1;::::0;;-1:-1:-1;;;11983:26:0;;;;11850:42;;11983:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;11850:42;11983:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11965:66:0::1;;12040:4;12047:16;-1:-1:-1::0;;;;;12047:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11965:106;::::0;-1:-1:-1;;;;;;11965:106:0::1;::::0;;;;;;-1:-1:-1;;;;;6959:15:1;;;11965:106:0::1;::::0;::::1;6941:34:1::0;7011:15;;6991:18;;;6984:43;6876:18;;11965:106:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11949:13;:122:::0;;-1:-1:-1;;;;;;11949:122:0::1;-1:-1:-1::0;;;;;11949:122:0;;::::1;;::::0;;-1:-1:-1;1623:6:0;;;;12084:27;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;12084:34:0;;::::1;-1:-1:-1::0;12084:34:0;;::::1;::::0;;;12156:4:::1;12129:33:::0;;;;;:40;;;::::1;::::0;::::1;::::0;;12199:19:::1;::::0;;::::1;12180:39:::0;;;;;:46;;;::::1;::::0;::::1;::::0;;12256:17:::1;::::0;;;::::1;12237:37:::0;;;;:44;;;;::::1;;::::0;;-1:-1:-1;11735:558:0:o;16376:317::-;1685:6;;-1:-1:-1;;;;;1685:6:0;397:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;16526:16:::1;:34:::0;;;;16571:17:::1;:36:::0;;;;16618:11:::1;:24:::0;16653:15:::1;:32:::0;16376:317::o;12545:235::-;12611:19;;-1:-1:-1;;;;;12611:19:0;397:10;-1:-1:-1;;;;;12595:35:0;;:72;;;-1:-1:-1;12650:17:0;;-1:-1:-1;;;;;12650:17:0;397:10;-1:-1:-1;;;;;12634:33:0;;12595:72;12587:81;;;;;;12708:21;12740:32;12708:21;12740:12;:32::i;:::-;12576:204;12545:235::o;6502:138::-;-1:-1:-1;;;;;6615:16:0;;6568:7;6615:16;;;:7;:16;;;;;;6595:37;;:19;:37::i;16703:214::-;1685:6;;-1:-1:-1;;;;;1685:6:0;397:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;16800:9:::1;16796:114;16815:19:::0;;::::1;16796:114;;;16890:8;16856:18;:31;16875:8;;16884:1;16875:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16856:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16856:31:0;:42;;-1:-1:-1;;16856:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16836:3;::::1;::::0;::::1;:::i;:::-;;;;16796:114;;;;16703:214:::0;;;:::o;6648:199::-;6753:4;6775:42;397:10;6799:9;6810:6;6775:9;:42::i;12301:236::-;12367:19;;-1:-1:-1;;;;;12367:19:0;397:10;-1:-1:-1;;;;;12351:35:0;;:72;;;-1:-1:-1;12406:17:0;;-1:-1:-1;;;;;12406:17:0;397:10;-1:-1:-1;;;;;12390:33:0;;12351:72;12343:81;;;;;;12435:23;12461:24;12479:4;12461:9;:24::i;:::-;12435:50;;12496:33;12513:15;12496:16;:33::i;1772:244::-;1685:6;;-1:-1:-1;;;;;1685:6:0;397:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1861:22:0;::::1;1853:73;;;::::0;-1:-1:-1;;;1853:73:0;;7240:2:1;1853:73:0::1;::::0;::::1;7222:21:1::0;7279:2;7259:18;;;7252:30;7318:34;7298:18;;;7291:62;-1:-1:-1;;;7369:18:1;;;7362:36;7415:19;;1853:73:0::1;7038:402:1::0;1853:73:0::1;1963:6;::::0;;1942:38:::1;::::0;-1:-1:-1;;;;;1942:38:0;;::::1;::::0;1963:6;::::1;::::0;1942:38:::1;::::0;::::1;1991:6;:17:::0;;-1:-1:-1;;;;;;1991:17:0::1;-1:-1:-1::0;;;;;1991:17:0;;;::::1;::::0;;;::::1;::::0;;1772:244::o;8413:369::-;-1:-1:-1;;;;;8540:19:0;;8532:68;;;;-1:-1:-1;;;8532:68:0;;7647:2:1;8532:68:0;;;7629:21:1;7686:2;7666:18;;;7659:30;7725:34;7705:18;;;7698:62;-1:-1:-1;;;7776:18:1;;;7769:34;7820:19;;8532:68:0;7445:400:1;8532:68:0;-1:-1:-1;;;;;8619:21:0;;8611:68;;;;-1:-1:-1;;;8611:68:0;;8052:2:1;8611:68:0;;;8034:21:1;8091:2;8071:18;;;8064:30;8130:34;8110:18;;;8103:62;-1:-1:-1;;;8181:18:1;;;8174:32;8223:19;;8611:68:0;7850:398:1;8611:68:0;-1:-1:-1;;;;;8690:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8742:32;;2992:25:1;;;8742:32:0;;2965:18:1;8742:32:0;;;;;;;8413:369;;;:::o;8790:2337::-;-1:-1:-1;;;;;8912:18:0;;8904:68;;;;-1:-1:-1;;;8904:68:0;;8455:2:1;8904:68:0;;;8437:21:1;8494:2;8474:18;;;8467:30;8533:34;8513:18;;;8506:62;-1:-1:-1;;;8584:18:1;;;8577:35;8629:19;;8904:68:0;8253:401:1;8904:68:0;-1:-1:-1;;;;;8991:16:0;;8983:64;;;;-1:-1:-1;;;8983:64:0;;8861:2:1;8983:64:0;;;8843:21:1;8900:2;8880:18;;;8873:30;8939:34;8919:18;;;8912:62;-1:-1:-1;;;8990:18:1;;;8983:33;9033:19;;8983:64:0;8659:399:1;8983:64:0;9075:1;9066:6;:10;9058:64;;;;-1:-1:-1;;;9058:64:0;;9265:2:1;9058:64:0;;;9247:21:1;9304:2;9284:18;;;9277:30;9343:34;9323:18;;;9316:62;-1:-1:-1;;;9394:18:1;;;9387:39;9443:19;;9058:64:0;9063:405:1;9058:64:0;-1:-1:-1;;;;;9142:10:0;;;;;;:4;:10;;;;;;;;9141:11;:24;;;;-1:-1:-1;;;;;;9157:8:0;;;;;;:4;:8;;;;;;;;9156:9;9141:24;9133:33;;;;;;1596:7;1623:6;-1:-1:-1;;;;;9183:15:0;;;1623:6;;9183:15;;;;:32;;-1:-1:-1;1596:7:0;1623:6;-1:-1:-1;;;;;9202:13:0;;;1623:6;;9202:13;;9183:32;9179:1259;;;9272:11;;-1:-1:-1;;;9272:11:0;;;;9267:144;;1596:7;1623:6;-1:-1:-1;;;;;9312:15:0;;;1623:6;;9312:15;9304:91;;;;-1:-1:-1;;;9304:91:0;;9675:2:1;9304:91:0;;;9657:21:1;9714:2;9694:18;;;9687:30;9753:34;9733:18;;;9726:62;9824:33;9804:18;;;9797:61;9875:19;;9304:91:0;9473:427:1;9304:91:0;9445:12;;9435:6;:22;;9427:63;;;;-1:-1:-1;;;9427:63:0;;10107:2:1;9427:63:0;;;10089:21:1;10146:2;10126:18;;;10119:30;10185;10165:18;;;10158:58;10233:18;;9427:63:0;9905:352:1;9427:63:0;-1:-1:-1;;;;;9514:10:0;;;;;;:4;:10;;;;;;;;9513:11;:24;;;;-1:-1:-1;;;;;;9529:8:0;;;;;;:4;:8;;;;;;;;9528:9;9513:24;9505:72;;;;-1:-1:-1;;;9505:72:0;;10464:2:1;9505:72:0;;;10446:21:1;10503:2;10483:18;;;10476:30;10542:34;10522:18;;;10515:62;-1:-1:-1;;;10593:18:1;;;10586:33;10636:19;;9505:72:0;10262:399:1;9505:72:0;9603:13;;-1:-1:-1;;;;;9597:19:0;;;9603:13;;9597:19;9594:146;;9670:14;;9661:6;9645:13;9655:2;9645:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9637:87;;;;-1:-1:-1;;;9637:87:0;;10998:2:1;9637:87:0;;;10980:21:1;11037:2;11017:18;;;11010:30;11076:34;11056:18;;;11049:62;-1:-1:-1;;;11127:18:1;;;11120:33;11170:19;;9637:87:0;10796:399:1;9637:87:0;9756:28;9787:24;9805:4;9787:9;:24::i;:::-;9865:19;;9928:12;;9756:55;;-1:-1:-1;9841:43:0;;;;9904:36;;9901:124;;9997:12;;9974:35;;9901:124;10045:7;:18;;;;-1:-1:-1;10057:6:0;;-1:-1:-1;;;10057:6:0;;;;10056:7;10045:18;:43;;;;-1:-1:-1;10075:13:0;;-1:-1:-1;;;;;10067:21:0;;;10075:13;;10067:21;;10045:43;:58;;;;-1:-1:-1;10092:11:0;;-1:-1:-1;;;10092:11:0;;;;10045:58;:87;;;;-1:-1:-1;;;;;;10108:24:0;;;;;;:18;:24;;;;;;;;10107:25;10045:87;:114;;;;-1:-1:-1;;;;;;10137:22:0;;;;;;:18;:22;;;;;;;;10136:23;10045:114;10041:386;;;10180:38;10197:20;10180:16;:38::i;:::-;10266:21;10310:22;;10306:106;;10357:35;10370:21;10357:12;:35::i;:::-;10161:266;10041:386;9217:1221;;9179:1259;-1:-1:-1;;;;;10497:24:0;;10450:12;10497:24;;;:18;:24;;;;;;10465:4;;10497:24;;;:50;;-1:-1:-1;;;;;;10525:22:0;;;;;;:18;:22;;;;;;;;10497:50;10496:102;;;-1:-1:-1;10561:13:0;;-1:-1:-1;;;;;10553:21:0;;;10561:13;;10553:21;;;;:44;;-1:-1:-1;10584:13:0;;-1:-1:-1;;;;;10578:19:0;;;10584:13;;10578:19;;10553:44;10492:574;;;-1:-1:-1;10625:5:0;10492:574;;;10690:13;;-1:-1:-1;;;;;10682:21:0;;;10690:13;;10682:21;:55;;;;-1:-1:-1;10721:15:0;;-1:-1:-1;;;;;10707:30:0;;;10721:15;;10707:30;;10682:55;10679:169;;;10772:16;;10758:11;:30;10821:11;;10807;:25;10679:169;10888:13;;-1:-1:-1;;;;;10882:19:0;;;10888:13;;10882:19;:55;;;;-1:-1:-1;10921:15:0;;-1:-1:-1;;;;;10905:32:0;;;10921:15;;10905:32;;10882:55;10878:175;;;10972:17;;10958:11;:31;11022:15;;11008:11;:29;10878:175;11078:41;11093:4;11099:2;11103:6;11111:7;11078:14;:41::i;2380:224::-;2500:7;2536:12;2528:6;;;;2520:29;;;;-1:-1:-1;;;2520:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2560:9:0;2572:5;2576:1;2572;:5;:::i;:::-;2560:17;2380:224;-1:-1:-1;;;;;2380:224:0:o;11626:99::-;11683:17;;:34;;-1:-1:-1;;;;;11683:17:0;;;;:34;;;;;11710:6;;11683:17;:34;:17;:34;11710:6;11683:17;:34;;;;;;;;;;;;;;;;;;;7702:323;7797:7;7855;;7844;:18;;7822:110;;;;-1:-1:-1;;;7822:110:0;;11535:2:1;7822:110:0;;;11517:21:1;11574:2;11554:18;;;11547:30;11613:34;11593:18;;;11586:62;-1:-1:-1;;;11664:18:1;;;11657:40;11714:19;;7822:110:0;11333:406:1;7822:110:0;7943:19;7965:10;:8;:10::i;:::-;7943:32;-1:-1:-1;7993:24:0;:7;7943:32;7993:11;:24::i;:::-;7986:31;7702:323;-1:-1:-1;;;7702:323:0:o;11135:483::-;5923:6;:13;;-1:-1:-1;;;;5923:13:0;-1:-1:-1;;;5923:13:0;;;11237:16:::1;::::0;;11251:1:::1;11237:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11237:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11237:16:0::1;11213:40;;11282:4;11264;11269:1;11264:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11264:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11308:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11308:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11264:7;;11308:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11298:4;11303:1;11298:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11298:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11373:15:::1;::::0;11341:62:::1;::::0;11358:4:::1;::::0;11373:15:::1;11391:11:::0;11341:8:::1;:62::i;:::-;11414:15;::::0;:196:::1;::::0;-1:-1:-1;;;11414:196:0;;-1:-1:-1;;;;;11414:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11495:11;;11414:15:::1;::::0;11537:4;;11564::::1;::::0;11584:15:::1;::::0;11414:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5959:6:0;:14;;-1:-1:-1;;;;5959:14:0;;;-1:-1:-1;;;;11135:483:0:o;12968:282::-;13124:7;13119:28;;13133:14;:12;:14::i;:::-;13158:44;13176:6;13184:9;13195:6;13158:17;:44::i;:::-;13218:7;13213:29;;13227:15;8338:19;;8324:11;:33;8382:15;;8368:11;:29;8280:125;15939:164;15981:7;16002:15;16019;16038:19;:17;:19::i;:::-;16001:56;;-1:-1:-1;16001:56:0;-1:-1:-1;16075:20:0;16001:56;;16075:11;:20::i;:::-;16068:27;;;;15939:164;:::o;2866:132::-;2924:7;2951:39;2955:1;2958;2951:39;;;;;;;;;;;;;;;;;:3;:39::i;8033:239::-;8080:11;;:16;:36;;;;-1:-1:-1;8100:11:0;;:16;8080:36;8076:49;;;8033:239::o;8076:49::-;8159:11;;;8137:19;:33;8199:11;;;8181:15;:29;-1:-1:-1;8223:15:0;;;;8249;8033:239::o;13258:610::-;13405:15;13435:23;13473:12;13500:23;13538:12;13565:13;13592:19;13603:7;13592:10;:19::i;:::-;-1:-1:-1;;;;;13640:15:0;;;;;;:7;:15;;;;;;13390:221;;-1:-1:-1;13390:221:0;;-1:-1:-1;13390:221:0;;-1:-1:-1;13390:221:0;-1:-1:-1;13390:221:0;-1:-1:-1;13390:221:0;-1:-1:-1;13640:28:0;;13390:221;13640:19;:28::i;:::-;-1:-1:-1;;;;;13622:15:0;;;;;;;:7;:15;;;;;;:46;;;;13700:18;;;;;;;:39;;13723:15;13700:22;:39::i;:::-;-1:-1:-1;;;;;13679:18:0;;;;;;:7;:18;;;;;:60;13750:16;13760:5;13750:9;:16::i;:::-;13777:23;13789:4;13795;13777:11;:23::i;:::-;13833:9;-1:-1:-1;;;;;13816:44:0;13825:6;-1:-1:-1;;;;;13816:44:0;;13844:15;13816:44;;;;2992:25:1;;2980:2;2965:18;;2846:177;13816:44:0;;;;;;;;13379:489;;;;;;13258:610;;;:::o;16111:257::-;16209:7;;16162;;;;4681:15;16277:20;16209:7;4681:15;16277:11;:20::i;:::-;16267:7;:30;16263:61;;;-1:-1:-1;;16307:7:0;;;4681:15;;-1:-1:-1;16111:257:0;-1:-1:-1;16111:257:0:o;16263:61::-;16343:7;;16352;;-1:-1:-1;16111:257:0;-1:-1:-1;16111:257:0:o;3006:223::-;3126:7;3161:12;3154:5;3146:28;;;;-1:-1:-1;;;3146:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3185:9:0;3197:5;3201:1;3197;:5;:::i;14287:621::-;14387:7;14409;14431;14453;14475;14497;14533:23;14558:12;14572:13;14602:46;14614:7;14623:11;;14636;;14602;:46::i;:::-;14532:116;;;;;;14659:19;14681:10;:8;:10::i;:::-;14659:32;;14703:15;14720:23;14745:12;14774:46;14786:7;14795:4;14801:5;14808:11;14774;:46::i;:::-;14702:118;;-1:-1:-1;14702:118:0;-1:-1:-1;14702:118:0;-1:-1:-1;14871:15:0;;-1:-1:-1;14888:4:0;;-1:-1:-1;14894:5:0;;-1:-1:-1;;;;;14287:621:0;;;;;;;:::o;2236:136::-;2294:7;2321:43;2325:1;2328;2321:43;;;;;;;;;;;;;;;;;:3;:43::i;2049:179::-;2107:7;;2139:5;2143:1;2139;:5;:::i;:::-;2127:17;;2168:1;2163;:6;;2155:46;;;;-1:-1:-1;;;2155:46:0;;13153:2:1;2155:46:0;;;13135:21:1;13192:2;13172:18;;;13165:30;13231:29;13211:18;;;13204:57;13278:18;;2155:46:0;12951:351:1;13876:211:0;13929:19;13951:10;:8;:10::i;:::-;13929:32;-1:-1:-1;13972:13:0;13988:22;:5;13929:32;13988:9;:22::i;:::-;14062:4;14046:22;;;;:7;:22;;;;;;13972:38;;-1:-1:-1;14046:33:0;;13972:38;14046:26;:33::i;:::-;14037:4;14021:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13876:211:0:o;14095:147::-;14173:7;;:17;;14185:4;14173:11;:17::i;:::-;14163:7;:27;14214:10;;:20;;14229:4;14214:14;:20::i;:::-;14201:10;:33;-1:-1:-1;;14095:147:0:o;14916:473::-;15087:7;;;;15181:32;15209:3;15181:23;:7;15193:10;15181:11;:23::i;:::-;:27;;:32::i;:::-;15166:47;-1:-1:-1;15224:13:0;15240:28;15264:3;15240:19;:7;15252:6;15240:11;:19::i;:28::-;15224:44;-1:-1:-1;15279:23:0;15305:28;15224:44;15305:17;:7;15317:4;15305:11;:17::i;:::-;:21;;:28::i;:::-;15279:54;15369:4;;-1:-1:-1;15375:5:0;;-1:-1:-1;14916:473:0;;-1:-1:-1;;;;;14916:473:0:o;15397:534::-;15591:7;;;;15688:24;:7;15700:11;15688;:24::i;:::-;15670:42;-1:-1:-1;15723:12:0;15738:21;:4;15747:11;15738:8;:21::i;:::-;15723:36;-1:-1:-1;15770:13:0;15786:22;:5;15796:11;15786:9;:22::i;:::-;15770:38;-1:-1:-1;15819:23:0;15845:28;15770:38;15845:17;:7;15857:4;15845:11;:17::i;:28::-;15892:7;;;;-1:-1:-1;15918:4:0;;-1:-1:-1;15397:534:0;;-1:-1:-1;;;;;;;15397:534:0:o;2612:246::-;2670:7;2694:1;2699;2694:6;2690:47;;-1:-1:-1;2724:1:0;2717:8;;2690:47;2747:9;2759:5;2763:1;2759;:5;:::i;:::-;2747:17;-1:-1:-1;2792:1:0;2783:5;2787:1;2747:17;2783:5;:::i;:::-;:10;2775:56;;;;-1:-1:-1;;;2775:56:0;;13682:2:1;2775:56:0;;;13664:21:1;13721:2;13701:18;;;13694:30;13760:34;13740:18;;;13733:62;-1:-1:-1;;;13811:18:1;;;13804:31;13852:19;;2775:56:0;13480:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:548::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1831:3;2016:1;2011:2;2002:6;1991:9;1987:22;1983:31;1976:42;2086:2;2079;2075:7;2070:2;2062:6;2058:15;2054:29;2043:9;2039:45;2035:54;2027:62;;;;1547:548;;;;:::o;2100:315::-;2168:6;2176;2229:2;2217:9;2208:7;2204:23;2200:32;2197:52;;;2245:1;2242;2235:12;2197:52;2284:9;2271:23;2303:31;2328:5;2303:31;:::i;:::-;2353:5;2405:2;2390:18;;;;2377:32;;-1:-1:-1;;;2100:315:1:o;3028:456::-;3105:6;3113;3121;3174:2;3162:9;3153:7;3149:23;3145:32;3142:52;;;3190:1;3187;3180:12;3142:52;3229:9;3216:23;3248:31;3273:5;3248:31;:::i;:::-;3298:5;-1:-1:-1;3355:2:1;3340:18;;3327:32;3368:33;3327:32;3368:33;:::i;:::-;3028:456;;3420:7;;-1:-1:-1;;;3474:2:1;3459:18;;;;3446:32;;3028:456::o;3678:385::-;3764:6;3772;3780;3788;3841:3;3829:9;3820:7;3816:23;3812:33;3809:53;;;3858:1;3855;3848:12;3809:53;-1:-1:-1;;3881:23:1;;;3951:2;3936:18;;3923:32;;-1:-1:-1;4002:2:1;3987:18;;3974:32;;4053:2;4038:18;4025:32;;-1:-1:-1;3678:385:1;-1:-1:-1;3678:385:1:o;4276:247::-;4335:6;4388:2;4376:9;4367:7;4363:23;4359:32;4356:52;;;4404:1;4401;4394:12;4356:52;4443:9;4430:23;4462:31;4487:5;4462:31;:::i;4528:782::-;4620:6;4628;4636;4689:2;4677:9;4668:7;4664:23;4660:32;4657:52;;;4705:1;4702;4695:12;4657:52;4745:9;4732:23;4774:18;4815:2;4807:6;4804:14;4801:34;;;4831:1;4828;4821:12;4801:34;4869:6;4858:9;4854:22;4844:32;;4914:7;4907:4;4903:2;4899:13;4895:27;4885:55;;4936:1;4933;4926:12;4885:55;4976:2;4963:16;5002:2;4994:6;4991:14;4988:34;;;5018:1;5015;5008:12;4988:34;5073:7;5066:4;5056:6;5053:1;5049:14;5045:2;5041:23;5037:34;5034:47;5031:67;;;5094:1;5091;5084:12;5031:67;5125:4;5117:13;;;;-1:-1:-1;5149:6:1;-1:-1:-1;;5190:20:1;;5177:34;5247:13;;5240:21;5230:32;;5220:60;;5276:1;5273;5266:12;5220:60;5299:5;5289:15;;;4528:782;;;;;:::o;5315:388::-;5383:6;5391;5444:2;5432:9;5423:7;5419:23;5415:32;5412:52;;;5460:1;5457;5450:12;5412:52;5499:9;5486:23;5518:31;5543:5;5518:31;:::i;:::-;5568:5;-1:-1:-1;5625:2:1;5610:18;;5597:32;5638:33;5597:32;5638:33;:::i;:::-;5690:7;5680:17;;;5315:388;;;;;:::o;5708:356::-;5910:2;5892:21;;;5929:18;;;5922:30;5988:34;5983:2;5968:18;;5961:62;6055:2;6040:18;;5708:356::o;6069:127::-;6130:10;6125:3;6121:20;6118:1;6111:31;6161:4;6158:1;6151:15;6185:4;6182:1;6175:15;6201:127;6262:10;6257:3;6253:20;6250:1;6243:31;6293:4;6290:1;6283:15;6317:4;6314:1;6307:15;6333:135;6372:3;6393:17;;;6390:43;;6413:18;;:::i;:::-;-1:-1:-1;6460:1:1;6449:13;;6333:135::o;6473:251::-;6543:6;6596:2;6584:9;6575:7;6571:23;6567:32;6564:52;;;6612:1;6609;6602:12;6564:52;6644:9;6638:16;6663:31;6688:5;6663:31;:::i;10666:125::-;10731:9;;;10752:10;;;10749:36;;;10765:18;;:::i;11200:128::-;11267:9;;;11288:11;;;11285:37;;;11302:18;;:::i;11744:980::-;12006:4;12054:3;12043:9;12039:19;12085:6;12074:9;12067:25;12111:2;12149:6;12144:2;12133:9;12129:18;12122:34;12192:3;12187:2;12176:9;12172:18;12165:31;12216:6;12251;12245:13;12282:6;12274;12267:22;12320:3;12309:9;12305:19;12298:26;;12359:2;12351:6;12347:15;12333:29;;12380:1;12390:195;12404:6;12401:1;12398:13;12390:195;;;12469:13;;-1:-1:-1;;;;;12465:39:1;12453:52;;12560:15;;;;12525:12;;;;12501:1;12419:9;12390:195;;;-1:-1:-1;;;;;;;12641:32:1;;;;12636:2;12621:18;;12614:60;-1:-1:-1;;;12705:3:1;12690:19;12683:35;12602:3;11744:980;-1:-1:-1;;;11744:980:1:o;12729:217::-;12769:1;12795;12785:132;;12839:10;12834:3;12830:20;12827:1;12820:31;12874:4;12871:1;12864:15;12902:4;12899:1;12892:15;12785:132;-1:-1:-1;12931:9:1;;12729:217::o;13307:168::-;13380:9;;;13411;;13428:15;;;13422:22;;13408:37;13398:71;;13449:18;;:::i

Swarm Source

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