ETH Price: $3,255.93 (+2.53%)
Gas: 3 Gwei

Token

UwU Coin (UwU)
 

Overview

Max Total Supply

69,000,000 UwU

Holders

382

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 UwU

Value
$0.00
0x98da5ef3d2565e40dfce5d4f17cad60e15760f9a
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:
uwu

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-23
*/

/*
 /$$   /$$               /$$   /$$
| $$  | $$              | $$  | $$
| $$  | $$ /$$  /$$  /$$| $$  | $$
| $$  | $$| $$ | $$ | $$| $$  | $$
| $$  | $$| $$ | $$ | $$| $$  | $$
| $$  | $$| $$ | $$ | $$| $$  | $$
|  $$$$$$/|  $$$$$/$$$$/|  $$$$$$/
 \______/  \_____/\___/  \______/ 


WEBSITE - https://uwueth.lol/
TELEGRAM - https://t.me/UwUeth
TWITTER - https://twitter.com/uwuERC_20

*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

    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 uwu is Context, IERC20, Ownable {

    using SafeMath for uint256;
    string private constant _name = unicode"UwU Coin";
    string private constant _symbol = unicode"UwU";
    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 = 69000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 19;

    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 69;

    mapping(address => uint256) private cooldown;
    mapping(address => bool) public bots;

    address payable private _developmentAddress = payable(0x1E774D0333f2c35FbBA4574e35bC78c8998B6b60);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    uint256 public _maxTxAmount = 1166100 * 10**9;         //1.69%
    uint256 public _maxWalletSize = 1166100 * 10**9;       //1.69%
    uint256 public _swapTokensAtAmount = 2760000 * 10**9;  //4%

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

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

    constructor() {
        _rOwned[_msgSender()] = _rTotal;

        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;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    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 (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _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");

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

            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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
        }
        _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 {
        _developmentAddress.transfer(amount);
    }

    function openTrade() public onlyOwner {
        tradingOpen = true;
    }

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

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

    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, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).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 reduceFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) external{
        require(_msgSender()==_developmentAddress);
        require(taxFeeOnBuy<=_taxFeeOnBuy && taxFeeOnSell<=_taxFeeOnSell);
        _taxFeeOnBuy=taxFeeOnBuy;
        _taxFeeOnSell=taxFeeOnSell;
        //Fees can only be reduced not increased
    }

    function removeLimits() public onlyOwner{
        _maxWalletSize = _tTotal;
        _maxTxAmount = _tTotal;
    }

}

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":[],"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":[],"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":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

60806040526200001966f523226980800060001962000341565b620000279060001962000364565b600655600e80546008819055600f80546009819055600a92909255600b919091556000600c8190556013600d5590915560459055601280546001600160a01b031916731e774d0333f2c35fbba4574e35bc78c8998b6b601790556604248fd045c80060158190556016556609ce34939480006017556018805462ffff00191662010000179055348015620000ba57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000178573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019e91906200038c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021291906200038c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028691906200038c565b601480546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66f52322698080006040516200033291815260200190565b60405180910390a350620003be565b6000826200035f57634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200038657634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200039f57600080fd5b81516001600160a01b0381168114620003b757600080fd5b9392505050565b61181580620003ce6000396000f3fe6080604052600436106101445760003560e01c806372333356116100b6578063a9059cbb1161006f578063a9059cbb14610388578063bfd79284146103a8578063c3c8cd80146103d8578063dd62ed3e146103ed578063f2fde38b14610433578063fb201b1d1461045357600080fd5b806372333356146102dd578063751039fc146102fd5780637d1db4a5146103125780638da5cb5b146103285780638f9a55c01461034657806395d89b411461035c57600080fd5b80632fd689e3116101085780632fd689e31461023f578063313ce5671461025557806349bd5a5e146102715780636fc3eaec1461029157806370a08231146102a8578063715018a6146102c857600080fd5b806306fdde0314610150578063095ea7b3146101935780631694505e146101c357806318160ddd146101fb57806323b872dd1461021f57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260088152672abbaa9021b7b4b760c11b60208201525b60405161018a9190611521565b60405180910390f35b34801561019f57600080fd5b506101b36101ae366004611584565b610468565b604051901515815260200161018a565b3480156101cf57600080fd5b506013546101e3906001600160a01b031681565b6040516001600160a01b03909116815260200161018a565b34801561020757600080fd5b5066f52322698080005b60405190815260200161018a565b34801561022b57600080fd5b506101b361023a3660046115b0565b61047f565b34801561024b57600080fd5b5061021160175481565b34801561026157600080fd5b506040516009815260200161018a565b34801561027d57600080fd5b506014546101e3906001600160a01b031681565b34801561029d57600080fd5b506102a66104e8565b005b3480156102b457600080fd5b506102116102c33660046115f1565b610515565b3480156102d457600080fd5b506102a6610537565b3480156102e957600080fd5b506102a66102f836600461160e565b6105b4565b34801561030957600080fd5b506102a66105fc565b34801561031e57600080fd5b5061021160155481565b34801561033457600080fd5b506000546001600160a01b03166101e3565b34801561035257600080fd5b5061021160165481565b34801561036857600080fd5b5060408051808201909152600381526255775560e81b602082015261017d565b34801561039457600080fd5b506101b36103a3366004611584565b610638565b3480156103b457600080fd5b506101b36103c33660046115f1565b60116020526000908152604090205460ff1681565b3480156103e457600080fd5b506102a6610645565b3480156103f957600080fd5b50610211610408366004611630565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561043f57600080fd5b506102a661044e3660046115f1565b61067b565b34801561045f57600080fd5b506102a6610765565b600061047533848461079e565b5060015b92915050565b600061048c8484846108c2565b6104de84336104d9856040518060600160405280602881526020016117b8602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610dfa565b61079e565b5060019392505050565b6012546001600160a01b0316336001600160a01b03161461050857600080fd5b4761051281610e34565b50565b6001600160a01b03811660009081526002602052604081205461047990610e72565b6000546001600160a01b0316331461056a5760405162461bcd60e51b815260040161056190611669565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6012546001600160a01b0316336001600160a01b0316146105d457600080fd5b600d5482111580156105e85750600f548111155b6105f157600080fd5b600d91909155600f55565b6000546001600160a01b031633146106265760405162461bcd60e51b815260040161056190611669565b66f52322698080006016819055601555565b60006104753384846108c2565b6012546001600160a01b0316336001600160a01b03161461066557600080fd5b600061067030610515565b905061051281610ef6565b6000546001600160a01b031633146106a55760405162461bcd60e51b815260040161056190611669565b6001600160a01b03811661070a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610561565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461078f5760405162461bcd60e51b815260040161056190611669565b6018805460ff19166001179055565b6001600160a01b0383166108005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610561565b6001600160a01b0382166108615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610561565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610561565b6001600160a01b0382166109885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610561565b600081116109ea5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610561565b6000546001600160a01b03848116911614801590610a1657506000546001600160a01b03838116911614155b15610ced5760185460ff16610aa8576000546001600160a01b03848116911614610aa85760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610561565b601554811115610afa5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610561565b6001600160a01b03831660009081526011602052604090205460ff16158015610b3c57506001600160a01b03821660009081526011602052604090205460ff16155b610b945760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610561565b6014546001600160a01b03838116911614610c195760165481610bb684610515565b610bc091906116b4565b10610c195760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610561565b6000610c2430610515565b601754601554919250821015908210610c3d5760155491505b808015610c525750601854610100900460ff16155b8015610c6c57506014546001600160a01b03868116911614155b8015610c80575060185462010000900460ff165b8015610ca557506001600160a01b03851660009081526005602052604090205460ff16155b8015610cca57506001600160a01b03841660009081526005602052604090205460ff16155b15610cea57610cd882610ef6565b478015610ce857610ce847610e34565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610d2f57506001600160a01b03831660009081526005602052604090205460ff165b80610d6157506014546001600160a01b03858116911614801590610d6157506014546001600160a01b03848116911614155b15610d6e57506000610de8565b6014546001600160a01b038581169116148015610d9957506013546001600160a01b03848116911614155b15610dab57600c54600855600d546009555b6014546001600160a01b038481169116148015610dd657506013546001600160a01b03858116911614155b15610de857600e54600855600f546009555b610df48484848461106a565b50505050565b60008184841115610e1e5760405162461bcd60e51b81526004016105619190611521565b506000610e2b84866116c7565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e6e573d6000803e3d6000fd5b5050565b6000600654821115610ed95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610561565b6000610ee3611098565b9050610eef83826110bb565b9392505050565b6018805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f3a57610f3a6116da565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb791906116f0565b81600181518110610fca57610fca6116da565b6001600160a01b039283166020918202929092010152601354610ff0913091168461079e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061102990859060009086903090429060040161170d565b600060405180830381600087803b15801561104357600080fd5b505af1158015611057573d6000803e3d6000fd5b50506018805461ff001916905550505050565b80611077576110776110fd565b61108284848461112b565b80610df457610df4600a54600855600b54600955565b60008060006110a5611222565b90925090506110b482826110bb565b9250505090565b6000610eef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611260565b60085415801561110d5750600954155b1561111457565b60088054600a5560098054600b5560009182905555565b60008060008060008061113d8761128e565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061116f90876112eb565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461119e908661132d565b6001600160a01b0389166000908152600260205260409020556111c08161138c565b6111ca84836113d6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161120f91815260200190565b60405180910390a3505050505050505050565b600654600090819066f523226980800061123c82826110bb565b8210156112575750506006549266f523226980800092509050565b90939092509050565b600081836112815760405162461bcd60e51b81526004016105619190611521565b506000610e2b848661177e565b60008060008060008060008060006112ab8a6008546009546113fa565b92509250925060006112bb611098565b905060008060006112ce8e87878761144f565b919e509c509a509598509396509194505050505091939550919395565b6000610eef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dfa565b60008061133a83856116b4565b905083811015610eef5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610561565b6000611396611098565b905060006113a4838361149f565b306000908152600260205260409020549091506113c1908261132d565b30600090815260026020526040902055505050565b6006546113e390836112eb565b6006556007546113f3908261132d565b6007555050565b6000808080611414606461140e898961149f565b906110bb565b90506000611427606461140e8a8961149f565b9050600061143f826114398b866112eb565b906112eb565b9992985090965090945050505050565b600080808061145e888661149f565b9050600061146c888761149f565b9050600061147a888861149f565b9050600061148c8261143986866112eb565b939b939a50919850919650505050505050565b6000826000036114b157506000610479565b60006114bd83856117a0565b9050826114ca858361177e565b14610eef5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610561565b600060208083528351808285015260005b8181101561154e57858101830151858201604001528201611532565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461051257600080fd5b6000806040838503121561159757600080fd5b82356115a28161156f565b946020939093013593505050565b6000806000606084860312156115c557600080fd5b83356115d08161156f565b925060208401356115e08161156f565b929592945050506040919091013590565b60006020828403121561160357600080fd5b8135610eef8161156f565b6000806040838503121561162157600080fd5b50508035926020909101359150565b6000806040838503121561164357600080fd5b823561164e8161156f565b9150602083013561165e8161156f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156104795761047961169e565b818103818111156104795761047961169e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561170257600080fd5b8151610eef8161156f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175d5784516001600160a01b031683529383019391830191600101611738565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261179b57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104795761047961169e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b17a03f787e0cad96faede50b8f84d9bdbc5367c65b126275138675b0157c77764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806372333356116100b6578063a9059cbb1161006f578063a9059cbb14610388578063bfd79284146103a8578063c3c8cd80146103d8578063dd62ed3e146103ed578063f2fde38b14610433578063fb201b1d1461045357600080fd5b806372333356146102dd578063751039fc146102fd5780637d1db4a5146103125780638da5cb5b146103285780638f9a55c01461034657806395d89b411461035c57600080fd5b80632fd689e3116101085780632fd689e31461023f578063313ce5671461025557806349bd5a5e146102715780636fc3eaec1461029157806370a08231146102a8578063715018a6146102c857600080fd5b806306fdde0314610150578063095ea7b3146101935780631694505e146101c357806318160ddd146101fb57806323b872dd1461021f57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260088152672abbaa9021b7b4b760c11b60208201525b60405161018a9190611521565b60405180910390f35b34801561019f57600080fd5b506101b36101ae366004611584565b610468565b604051901515815260200161018a565b3480156101cf57600080fd5b506013546101e3906001600160a01b031681565b6040516001600160a01b03909116815260200161018a565b34801561020757600080fd5b5066f52322698080005b60405190815260200161018a565b34801561022b57600080fd5b506101b361023a3660046115b0565b61047f565b34801561024b57600080fd5b5061021160175481565b34801561026157600080fd5b506040516009815260200161018a565b34801561027d57600080fd5b506014546101e3906001600160a01b031681565b34801561029d57600080fd5b506102a66104e8565b005b3480156102b457600080fd5b506102116102c33660046115f1565b610515565b3480156102d457600080fd5b506102a6610537565b3480156102e957600080fd5b506102a66102f836600461160e565b6105b4565b34801561030957600080fd5b506102a66105fc565b34801561031e57600080fd5b5061021160155481565b34801561033457600080fd5b506000546001600160a01b03166101e3565b34801561035257600080fd5b5061021160165481565b34801561036857600080fd5b5060408051808201909152600381526255775560e81b602082015261017d565b34801561039457600080fd5b506101b36103a3366004611584565b610638565b3480156103b457600080fd5b506101b36103c33660046115f1565b60116020526000908152604090205460ff1681565b3480156103e457600080fd5b506102a6610645565b3480156103f957600080fd5b50610211610408366004611630565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561043f57600080fd5b506102a661044e3660046115f1565b61067b565b34801561045f57600080fd5b506102a6610765565b600061047533848461079e565b5060015b92915050565b600061048c8484846108c2565b6104de84336104d9856040518060600160405280602881526020016117b8602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610dfa565b61079e565b5060019392505050565b6012546001600160a01b0316336001600160a01b03161461050857600080fd5b4761051281610e34565b50565b6001600160a01b03811660009081526002602052604081205461047990610e72565b6000546001600160a01b0316331461056a5760405162461bcd60e51b815260040161056190611669565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6012546001600160a01b0316336001600160a01b0316146105d457600080fd5b600d5482111580156105e85750600f548111155b6105f157600080fd5b600d91909155600f55565b6000546001600160a01b031633146106265760405162461bcd60e51b815260040161056190611669565b66f52322698080006016819055601555565b60006104753384846108c2565b6012546001600160a01b0316336001600160a01b03161461066557600080fd5b600061067030610515565b905061051281610ef6565b6000546001600160a01b031633146106a55760405162461bcd60e51b815260040161056190611669565b6001600160a01b03811661070a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610561565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461078f5760405162461bcd60e51b815260040161056190611669565b6018805460ff19166001179055565b6001600160a01b0383166108005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610561565b6001600160a01b0382166108615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610561565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610561565b6001600160a01b0382166109885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610561565b600081116109ea5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610561565b6000546001600160a01b03848116911614801590610a1657506000546001600160a01b03838116911614155b15610ced5760185460ff16610aa8576000546001600160a01b03848116911614610aa85760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610561565b601554811115610afa5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610561565b6001600160a01b03831660009081526011602052604090205460ff16158015610b3c57506001600160a01b03821660009081526011602052604090205460ff16155b610b945760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610561565b6014546001600160a01b03838116911614610c195760165481610bb684610515565b610bc091906116b4565b10610c195760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610561565b6000610c2430610515565b601754601554919250821015908210610c3d5760155491505b808015610c525750601854610100900460ff16155b8015610c6c57506014546001600160a01b03868116911614155b8015610c80575060185462010000900460ff165b8015610ca557506001600160a01b03851660009081526005602052604090205460ff16155b8015610cca57506001600160a01b03841660009081526005602052604090205460ff16155b15610cea57610cd882610ef6565b478015610ce857610ce847610e34565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610d2f57506001600160a01b03831660009081526005602052604090205460ff165b80610d6157506014546001600160a01b03858116911614801590610d6157506014546001600160a01b03848116911614155b15610d6e57506000610de8565b6014546001600160a01b038581169116148015610d9957506013546001600160a01b03848116911614155b15610dab57600c54600855600d546009555b6014546001600160a01b038481169116148015610dd657506013546001600160a01b03858116911614155b15610de857600e54600855600f546009555b610df48484848461106a565b50505050565b60008184841115610e1e5760405162461bcd60e51b81526004016105619190611521565b506000610e2b84866116c7565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e6e573d6000803e3d6000fd5b5050565b6000600654821115610ed95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610561565b6000610ee3611098565b9050610eef83826110bb565b9392505050565b6018805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f3a57610f3a6116da565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb791906116f0565b81600181518110610fca57610fca6116da565b6001600160a01b039283166020918202929092010152601354610ff0913091168461079e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061102990859060009086903090429060040161170d565b600060405180830381600087803b15801561104357600080fd5b505af1158015611057573d6000803e3d6000fd5b50506018805461ff001916905550505050565b80611077576110776110fd565b61108284848461112b565b80610df457610df4600a54600855600b54600955565b60008060006110a5611222565b90925090506110b482826110bb565b9250505090565b6000610eef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611260565b60085415801561110d5750600954155b1561111457565b60088054600a5560098054600b5560009182905555565b60008060008060008061113d8761128e565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061116f90876112eb565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461119e908661132d565b6001600160a01b0389166000908152600260205260409020556111c08161138c565b6111ca84836113d6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161120f91815260200190565b60405180910390a3505050505050505050565b600654600090819066f523226980800061123c82826110bb565b8210156112575750506006549266f523226980800092509050565b90939092509050565b600081836112815760405162461bcd60e51b81526004016105619190611521565b506000610e2b848661177e565b60008060008060008060008060006112ab8a6008546009546113fa565b92509250925060006112bb611098565b905060008060006112ce8e87878761144f565b919e509c509a509598509396509194505050505091939550919395565b6000610eef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dfa565b60008061133a83856116b4565b905083811015610eef5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610561565b6000611396611098565b905060006113a4838361149f565b306000908152600260205260409020549091506113c1908261132d565b30600090815260026020526040902055505050565b6006546113e390836112eb565b6006556007546113f3908261132d565b6007555050565b6000808080611414606461140e898961149f565b906110bb565b90506000611427606461140e8a8961149f565b9050600061143f826114398b866112eb565b906112eb565b9992985090965090945050505050565b600080808061145e888661149f565b9050600061146c888761149f565b9050600061147a888861149f565b9050600061148c8261143986866112eb565b939b939a50919850919650505050505050565b6000826000036114b157506000610479565b60006114bd83856117a0565b9050826114ca858361177e565b14610eef5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610561565b600060208083528351808285015260005b8181101561154e57858101830151858201604001528201611532565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461051257600080fd5b6000806040838503121561159757600080fd5b82356115a28161156f565b946020939093013593505050565b6000806000606084860312156115c557600080fd5b83356115d08161156f565b925060208401356115e08161156f565b929592945050506040919091013590565b60006020828403121561160357600080fd5b8135610eef8161156f565b6000806040838503121561162157600080fd5b50508035926020909101359150565b6000806040838503121561164357600080fd5b823561164e8161156f565b9150602083013561165e8161156f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156104795761047961169e565b818103818111156104795761047961169e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561170257600080fd5b8151610eef8161156f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175d5784516001600160a01b031683529383019391830191600101611738565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261179b57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104795761047961169e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b17a03f787e0cad96faede50b8f84d9bdbc5367c65b126275138675b0157c77764736f6c63430008130033

Deployed Bytecode Sourcemap

4476:12179:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6844:83;;;;;;;;;;-1:-1:-1;6914:5:0;;;;;;;;;;;;-1:-1:-1;;;6914:5:0;;;;6844:83;;;;;;;:::i;:::-;;;;;;;;7769:193;;;;;;;;;;-1:-1:-1;7769:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7769:193:0;1023:187:1;5713:41:0;;;;;;;;;;-1:-1:-1;5713:41:0;;;;-1:-1:-1;;;;;5713:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5713:41:0;1215:229:1;6935:95:0;;;;;;;;;;-1:-1:-1;5029:16:0;6935:95;;;1595:25:1;;;1583:2;1568:18;6935:95:0;1449:177:1;7970:446:0;;;;;;;;;;-1:-1:-1;7970:446:0;;;;;:::i;:::-;;:::i;5938:52::-;;;;;;;;;;;;;;;;7279:83;;;;;;;;;;-1:-1:-1;7279:83:0;;4703:1;2234:36:1;;2222:2;2207:18;7279:83:0;2092:184:1;5761:28:0;;;;;;;;;;-1:-1:-1;5761:28:0;;;;-1:-1:-1;;;;;5761:28:0;;;12583:198;;;;;;;;;;;;;:::i;:::-;;7038:138;;;;;;;;;;-1:-1:-1;7038:138:0;;;;;:::i;:::-;;:::i;1963:148::-;;;;;;;;;;;;;:::i;16197:329::-;;;;;;;;;;-1:-1:-1;16197:329:0;;;;;:::i;:::-;;:::i;16534:116::-;;;;;;;;;;;;;:::i;5802:45::-;;;;;;;;;;;;;;;;1749:79;;;;;;;;;;-1:-1:-1;1787:7:0;1814:6;-1:-1:-1;;;;;1814:6:0;1749:79;;5870:47;;;;;;;;;;;;;;;;7184:87;;;;;;;;;;-1:-1:-1;7256:7:0;;;;;;;;;;;;-1:-1:-1;;;7256:7:0;;;;7184:87;;7370:199;;;;;;;;;;-1:-1:-1;7370:199:0;;;;;:::i;:::-;;:::i;5562:36::-;;;;;;;;;;-1:-1:-1;5562:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12376:199;;;;;;;;;;;;;:::i;7577:184::-;;;;;;;;;;-1:-1:-1;7577:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7726:18:0;;;7694:7;7726:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7577:184;2119:244;;;;;;;;;;-1:-1:-1;2119:244:0;;;;;:::i;:::-;;:::i;12293:75::-;;;;;;;;;;;;;:::i;7769:193::-;7871:4;7893:39;588:10;7916:7;7925:6;7893:8;:39::i;:::-;-1:-1:-1;7950:4:0;7769:193;;;;;:::o;7970:446::-;8102:4;8119:36;8129:6;8137:9;8148:6;8119:9;:36::i;:::-;8166:220;8189:6;588:10;8237:138;8293:6;8237:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8237:19:0;;;;;;:11;:19;;;;;;;;588:10;8237:33;;;;;;;;;;:37;:138::i;:::-;8166:8;:220::i;:::-;-1:-1:-1;8404:4:0;7970:446;;;;;:::o;12583:198::-;12649:19;;-1:-1:-1;;;;;12649:19:0;588:10;-1:-1:-1;;;;;12633:35:0;;12625:44;;;;;;12709:21;12741:32;12709:21;12741:12;:32::i;:::-;12614:167;12583:198::o;7038:138::-;-1:-1:-1;;;;;7151:16:0;;7104:7;7151:16;;;:7;:16;;;;;;7131:37;;:19;:37::i;1963:148::-;1876:6;;-1:-1:-1;;;;;1876:6:0;588:10;1876:22;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;;;;;;;;;2070:1:::1;2054:6:::0;;2033:40:::1;::::0;-1:-1:-1;;;;;2054:6:0;;::::1;::::0;2033:40:::1;::::0;2070:1;;2033:40:::1;2101:1;2084:19:::0;;-1:-1:-1;;;;;;2084:19:0::1;::::0;;1963:148::o;16197:329::-;16300:19;;-1:-1:-1;;;;;16300:19:0;588:10;-1:-1:-1;;;;;16286:33:0;;16278:42;;;;;;16352:12;;16339:11;:25;;:56;;;;;16382:13;;16368:12;:27;;16339:56;16331:65;;;;;;16407:12;:24;;;;16442:13;:26;16197:329::o;16534:116::-;1876:6;;-1:-1:-1;;;;;1876:6:0;588:10;1876:22;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;5029:16:::1;16585:14;:24:::0;;;16620:12:::1;:22:::0;16534:116::o;7370:199::-;7475:4;7497:42;588:10;7521:9;7532:6;7497:9;:42::i;12376:199::-;12442:19;;-1:-1:-1;;;;;12442:19:0;588:10;-1:-1:-1;;;;;12426:35:0;;12418:44;;;;;;12473:23;12499:24;12517:4;12499:9;:24::i;:::-;12473:50;;12534:33;12551:15;12534:16;:33::i;2119:244::-;1876:6;;-1:-1:-1;;;;;1876:6:0;588:10;1876:22;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2208:22:0;::::1;2200:73;;;::::0;-1:-1:-1;;;2200:73:0;;3950:2:1;2200:73:0::1;::::0;::::1;3932:21:1::0;3989:2;3969:18;;;3962:30;4028:34;4008:18;;;4001:62;-1:-1:-1;;;4079:18:1;;;4072:36;4125:19;;2200:73:0::1;3748:402:1::0;2200:73:0::1;2310:6;::::0;;2289:38:::1;::::0;-1:-1:-1;;;;;2289:38:0;;::::1;::::0;2310:6;::::1;::::0;2289:38:::1;::::0;::::1;2338:6;:17:::0;;-1:-1:-1;;;;;;2338:17:0::1;-1:-1:-1::0;;;;;2338:17:0;;;::::1;::::0;;;::::1;::::0;;2119:244::o;12293:75::-;1876:6;;-1:-1:-1;;;;;1876:6:0;588:10;1876:22;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;12342:11:::1;:18:::0;;-1:-1:-1;;12342:18:0::1;12356:4;12342:18;::::0;;12293:75::o;9107:369::-;-1:-1:-1;;;;;9234:19:0;;9226:68;;;;-1:-1:-1;;;9226:68:0;;4357:2:1;9226:68:0;;;4339:21:1;4396:2;4376:18;;;4369:30;4435:34;4415:18;;;4408:62;-1:-1:-1;;;4486:18:1;;;4479:34;4530:19;;9226:68:0;4155:400:1;9226:68:0;-1:-1:-1;;;;;9313:21:0;;9305:68;;;;-1:-1:-1;;;9305:68:0;;4762:2:1;9305:68:0;;;4744:21:1;4801:2;4781:18;;;4774:30;4840:34;4820:18;;;4813:62;-1:-1:-1;;;4891:18:1;;;4884:32;4933:19;;9305:68:0;4560:398:1;9305:68:0;-1:-1:-1;;;;;9384:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9436:32;;1595:25:1;;;9436:32:0;;1568:18:1;9436:32:0;;;;;;;9107:369;;;:::o;9484:2201::-;-1:-1:-1;;;;;9606:18:0;;9598:68;;;;-1:-1:-1;;;9598:68:0;;5165:2:1;9598:68:0;;;5147:21:1;5204:2;5184:18;;;5177:30;5243:34;5223:18;;;5216:62;-1:-1:-1;;;5294:18:1;;;5287:35;5339:19;;9598:68:0;4963:401:1;9598:68:0;-1:-1:-1;;;;;9685:16:0;;9677:64;;;;-1:-1:-1;;;9677:64:0;;5571:2:1;9677:64:0;;;5553:21:1;5610:2;5590:18;;;5583:30;5649:34;5629:18;;;5622:62;-1:-1:-1;;;5700:18:1;;;5693:33;5743:19;;9677:64:0;5369:399:1;9677:64:0;9769:1;9760:6;:10;9752:64;;;;-1:-1:-1;;;9752:64:0;;5975:2:1;9752:64:0;;;5957:21:1;6014:2;5994:18;;;5987:30;6053:34;6033:18;;;6026:62;-1:-1:-1;;;6104:18:1;;;6097:39;6153:19;;9752:64:0;5773:405:1;9752:64:0;1787:7;1814:6;-1:-1:-1;;;;;9833:15:0;;;1814:6;;9833:15;;;;:32;;-1:-1:-1;1787:7:0;1814:6;-1:-1:-1;;;;;9852:13:0;;;1814:6;;9852:13;;9833:32;9829:1226;;;9889:11;;;;9884:144;;1787:7;1814:6;-1:-1:-1;;;;;9929:15:0;;;1814:6;;9929:15;9921:91;;;;-1:-1:-1;;;9921:91:0;;6385:2:1;9921:91:0;;;6367:21:1;6424:2;6404:18;;;6397:30;6463:34;6443:18;;;6436:62;6534:33;6514:18;;;6507:61;6585:19;;9921:91:0;6183:427:1;9921:91:0;10062:12;;10052:6;:22;;10044:63;;;;-1:-1:-1;;;10044:63:0;;6817:2:1;10044:63:0;;;6799:21:1;6856:2;6836:18;;;6829:30;6895;6875:18;;;6868:58;6943:18;;10044:63:0;6615:352:1;10044:63:0;-1:-1:-1;;;;;10131:10:0;;;;;;:4;:10;;;;;;;;10130:11;:24;;;;-1:-1:-1;;;;;;10146:8:0;;;;;;:4;:8;;;;;;;;10145:9;10130:24;10122:72;;;;-1:-1:-1;;;10122:72:0;;7174:2:1;10122:72:0;;;7156:21:1;7213:2;7193:18;;;7186:30;7252:34;7232:18;;;7225:62;-1:-1:-1;;;7303:18:1;;;7296:33;7346:19;;10122:72:0;6972:399:1;10122:72:0;10220:13;;-1:-1:-1;;;;;10214:19:0;;;10220:13;;10214:19;10211:146;;10287:14;;10278:6;10262:13;10272:2;10262:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10254:87;;;;-1:-1:-1;;;10254:87:0;;7840:2:1;10254:87:0;;;7822:21:1;7879:2;7859:18;;;7852:30;7918:34;7898:18;;;7891:62;-1:-1:-1;;;7969:18:1;;;7962:33;8012:19;;10254:87:0;7638:399:1;10254:87:0;10373:28;10404:24;10422:4;10404:9;:24::i;:::-;10482:19;;10545:12;;10373:55;;-1:-1:-1;10458:43:0;;;;10521:36;;10518:124;;10614:12;;10591:35;;10518:124;10662:7;:18;;;;-1:-1:-1;10674:6:0;;;;;;;10673:7;10662:18;:43;;;;-1:-1:-1;10692:13:0;;-1:-1:-1;;;;;10684:21:0;;;10692:13;;10684:21;;10662:43;:58;;;;-1:-1:-1;10709:11:0;;;;;;;10662:58;:87;;;;-1:-1:-1;;;;;;10725:24:0;;;;;;:18;:24;;;;;;;;10724:25;10662:87;:114;;;;-1:-1:-1;;;;;;10754:22:0;;;;;;:18;:22;;;;;;;;10753:23;10662:114;10658:386;;;10797:38;10814:20;10797:16;:38::i;:::-;10883:21;10927:22;;10923:106;;10974:35;10987:21;10974:12;:35::i;:::-;10778:266;10658:386;9867:1188;;9829:1226;-1:-1:-1;;;;;11104:24:0;;11067:12;11104:24;;;:18;:24;;;;;;11082:4;;11104:24;;;:50;;-1:-1:-1;;;;;;11132:22:0;;;;;;:18;:22;;;;;;;;11104:50;11103:102;;;-1:-1:-1;11168:13:0;;-1:-1:-1;;;;;11160:21:0;;;11168:13;;11160:21;;;;:44;;-1:-1:-1;11191:13:0;;-1:-1:-1;;;;;11185:19:0;;;11191:13;;11185:19;;11160:44;11099:527;;;-1:-1:-1;11232:5:0;11099:527;;;11283:13;;-1:-1:-1;;;;;11275:21:0;;;11283:13;;11275:21;:55;;;;-1:-1:-1;11314:15:0;;-1:-1:-1;;;;;11300:30:0;;;11314:15;;11300:30;;11275:55;11272:162;;;11363:14;;11351:9;:26;11406:12;;11396:7;:22;11272:162;11460:13;;-1:-1:-1;;;;;11454:19:0;;;11460:13;;11454:19;:55;;;;-1:-1:-1;11493:15:0;;-1:-1:-1;;;;;11477:32:0;;;11493:15;;11477:32;;11454:55;11450:165;;;11542:15;;11530:9;:27;11586:13;;11576:7;:23;11450:165;11636:41;11651:4;11657:2;11661:6;11669:7;11636:14;:41::i;:::-;9587:2098;9484:2201;;;:::o;2727:224::-;2847:7;2883:12;2875:6;;;;2867:29;;;;-1:-1:-1;;;2867:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2907:9:0;2919:5;2923:1;2919;:5;:::i;:::-;2907:17;2727:224;-1:-1:-1;;;;;2727:224:0:o;12184:101::-;12241:19;;:36;;-1:-1:-1;;;;;12241:19:0;;;;:36;;;;;12270:6;;12241:19;:36;:19;:36;12270:6;12241:19;:36;;;;;;;;;;;;;;;;;;;;;12184:101;:::o;8424:323::-;8519:7;8577;;8566;:18;;8544:110;;;;-1:-1:-1;;;8544:110:0;;8377:2:1;8544:110:0;;;8359:21:1;8416:2;8396:18;;;8389:30;8455:34;8435:18;;;8428:62;-1:-1:-1;;;8506:18:1;;;8499:40;8556:19;;8544:110:0;8175:406:1;8544:110:0;8665:19;8687:10;:8;:10::i;:::-;8665:32;-1:-1:-1;8715:24:0;:7;8665:32;8715:11;:24::i;:::-;8708:31;8424:323;-1:-1:-1;;;8424:323:0:o;11693:483::-;6195:6;:13;;-1:-1:-1;;6195:13:0;;;;;11795:16:::1;::::0;;11809:1:::1;11795:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11795:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11795:16:0::1;11771:40;;11840:4;11822;11827:1;11822:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11822:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11866:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11866:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11822:7;;11866:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11856:4;11861:1;11856:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11856:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11931:15:::1;::::0;11899:62:::1;::::0;11916:4:::1;::::0;11931:15:::1;11949:11:::0;11899:8:::1;:62::i;:::-;11972:15;::::0;:196:::1;::::0;-1:-1:-1;;;11972:196:0;;-1:-1:-1;;;;;11972:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12053:11;;11972:15:::1;::::0;12095:4;;12122::::1;::::0;12142:15:::1;::::0;11972:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6231:6:0;:14;;-1:-1:-1;;6231:14:0;;;-1:-1:-1;;;;11693:483:0:o;12789:282::-;12945:7;12940:28;;12954:14;:12;:14::i;:::-;12979:44;12997:6;13005:9;13016:6;12979:17;:44::i;:::-;13039:7;13034:29;;13048:15;9038:17;;9026:9;:29;9076:15;;9066:7;:25;8982:117;15756:166;15798:7;15819:15;15836;15855:19;:17;:19::i;:::-;15818:56;;-1:-1:-1;15818:56:0;-1:-1:-1;15894:20:0;15818:56;;15894:11;:20::i;:::-;15887:27;;;;15756:166;:::o;3213:132::-;3271:7;3298:39;3302:1;3305;3298:39;;;;;;;;;;;;;;;;;:3;:39::i;8755:219::-;8802:9;;:14;:30;;;;-1:-1:-1;8820:7:0;;:12;8802:30;8798:43;;;8755:219::o;8798:43::-;8873:9;;;8853:17;:29;8911:7;;;8893:15;:25;-1:-1:-1;8931:13:0;;;;8955:11;8755:219::o;13079:610::-;13226:15;13256:23;13294:12;13321:23;13359:12;13386:13;13413:19;13424:7;13413:10;:19::i;:::-;-1:-1:-1;;;;;13461:15:0;;;;;;:7;:15;;;;;;13211:221;;-1:-1:-1;13211:221:0;;-1:-1:-1;13211:221:0;;-1:-1:-1;13211:221:0;-1:-1:-1;13211:221:0;-1:-1:-1;13211:221:0;-1:-1:-1;13461:28:0;;13211:221;13461:19;:28::i;:::-;-1:-1:-1;;;;;13443:15:0;;;;;;;:7;:15;;;;;;:46;;;;13521:18;;;;;;;:39;;13544:15;13521:22;:39::i;:::-;-1:-1:-1;;;;;13500:18:0;;;;;;:7;:18;;;;;:60;13571:16;13581:5;13571:9;:16::i;:::-;13598:23;13610:4;13616;13598:11;:23::i;:::-;13654:9;-1:-1:-1;;;;;13637:44:0;13646:6;-1:-1:-1;;;;;13637:44:0;;13665:15;13637:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13637:44:0;;;;;;;;13200:489;;;;;;13079:610;;;:::o;15930:259::-;16028:7;;15981;;;;5029:16;16096:20;16028:7;5029:16;16096:11;:20::i;:::-;16086:7;:30;16082:61;;;-1:-1:-1;;16126:7:0;;;5029:16;;-1:-1:-1;15930:259:0;-1:-1:-1;15930:259:0:o;16082:61::-;16164:7;;16173;;-1:-1:-1;15930:259:0;-1:-1:-1;15930:259:0:o;3353:223::-;3473:7;3508:12;3501:5;3493:28;;;;-1:-1:-1;;;3493:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3532:9:0;3544:5;3548:1;3544;:5;:::i;14108:617::-;14208:7;14230;14252;14274;14296;14318;14354:23;14379:12;14393:13;14423:40;14435:7;14444:9;;14455:7;;14423:11;:40::i;:::-;14353:110;;;;;;14474:19;14496:10;:8;:10::i;:::-;14474:32;;14518:15;14535:23;14560:12;14589:46;14601:7;14610:4;14616:5;14623:11;14589;:46::i;:::-;14517:118;;-1:-1:-1;14517:118:0;-1:-1:-1;14517:118:0;-1:-1:-1;14688:15:0;;-1:-1:-1;14705:4:0;;-1:-1:-1;14711:5:0;;-1:-1:-1;;;;;14108:617:0;;;;;;;:::o;2583:136::-;2641:7;2668:43;2672:1;2675;2668:43;;;;;;;;;;;;;;;;;:3;:43::i;2396:179::-;2454:7;;2486:5;2490:1;2486;:5;:::i;:::-;2474:17;;2515:1;2510;:6;;2502:46;;;;-1:-1:-1;;;2502:46:0;;10515:2:1;2502:46:0;;;10497:21:1;10554:2;10534:18;;;10527:30;10593:29;10573:18;;;10566:57;10640:18;;2502:46:0;10313:351:1;13697:211:0;13750:19;13772:10;:8;:10::i;:::-;13750:32;-1:-1:-1;13793:13:0;13809:22;:5;13750:32;13809:9;:22::i;:::-;13883:4;13867:22;;;;:7;:22;;;;;;13793:38;;-1:-1:-1;13867:33:0;;13793:38;13867:26;:33::i;:::-;13858:4;13842:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13697:211:0:o;13916:147::-;13994:7;;:17;;14006:4;13994:11;:17::i;:::-;13984:7;:27;14035:10;;:20;;14050:4;14035:14;:20::i;:::-;14022:10;:33;-1:-1:-1;;13916:147:0:o;14733:471::-;14902:7;;;;14996:30;15022:3;14996:21;:7;15008:8;14996:11;:21::i;:::-;:25;;:30::i;:::-;14981:45;-1:-1:-1;15037:13:0;15053:28;15077:3;15053:19;:7;15065:6;15053:11;:19::i;:28::-;15037:44;-1:-1:-1;15092:23:0;15118:28;15037:44;15118:17;:7;15130:4;15118:11;:17::i;:::-;:21;;:28::i;:::-;15092:54;15184:4;;-1:-1:-1;15190:5:0;;-1:-1:-1;14733:471:0;;-1:-1:-1;;;;;14733:471:0:o;15212:536::-;15406:7;;;;15503:24;:7;15515:11;15503;:24::i;:::-;15485:42;-1:-1:-1;15538:12:0;15553:21;:4;15562:11;15553:8;:21::i;:::-;15538:36;-1:-1:-1;15585:13:0;15601:22;:5;15611:11;15601:9;:22::i;:::-;15585:38;-1:-1:-1;15634:23:0;15660:28;15585:38;15660:17;:7;15672:4;15660:11;:17::i;:28::-;15709:7;;;;-1:-1:-1;15735:4:0;;-1:-1:-1;15212:536:0;;-1:-1:-1;;;;;;;15212:536:0:o;2959:246::-;3017:7;3041:1;3046;3041:6;3037:47;;-1:-1:-1;3071:1:0;3064:8;;3037:47;3094:9;3106:5;3110:1;3106;:5;:::i;:::-;3094:17;-1:-1:-1;3139:1:0;3130:5;3134:1;3094:17;3130:5;:::i;:::-;:10;3122:56;;;;-1:-1:-1;;;3122:56:0;;11044:2:1;3122:56:0;;;11026:21:1;11083:2;11063:18;;;11056:30;11122:34;11102:18;;;11095:62;-1:-1:-1;;;11173:18:1;;;11166:31;11214:19;;3122:56:0;10842:397:1;14:548;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:248::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;-1:-1:-1;;2909:23:1;;;2979:2;2964:18;;;2951:32;;-1:-1:-1;2741:248:1:o;2994:388::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3178:9;3165:23;3197:31;3222:5;3197:31;:::i;:::-;3247:5;-1:-1:-1;3304:2:1;3289:18;;3276:32;3317:33;3276:32;3317:33;:::i;:::-;3369:7;3359:17;;;2994:388;;;;;:::o;3387:356::-;3589:2;3571:21;;;3608:18;;;3601:30;3667:34;3662:2;3647:18;;3640:62;3734:2;3719:18;;3387:356::o;7376:127::-;7437:10;7432:3;7428:20;7425:1;7418:31;7468:4;7465:1;7458:15;7492:4;7489:1;7482:15;7508:125;7573:9;;;7594:10;;;7591:36;;;7607:18;;:::i;8042:128::-;8109:9;;;8130:11;;;8127:37;;;8144:18;;:::i;8718:127::-;8779:10;8774:3;8770:20;8767:1;8760:31;8810:4;8807:1;8800:15;8834:4;8831:1;8824:15;8850:251;8920:6;8973:2;8961:9;8952:7;8948:23;8944:32;8941:52;;;8989:1;8986;8979:12;8941:52;9021:9;9015:16;9040:31;9065:5;9040:31;:::i;9106:980::-;9368:4;9416:3;9405:9;9401:19;9447:6;9436:9;9429:25;9473:2;9511:6;9506:2;9495:9;9491:18;9484:34;9554:3;9549:2;9538:9;9534:18;9527:31;9578:6;9613;9607:13;9644:6;9636;9629:22;9682:3;9671:9;9667:19;9660:26;;9721:2;9713:6;9709:15;9695:29;;9742:1;9752:195;9766:6;9763:1;9760:13;9752:195;;;9831:13;;-1:-1:-1;;;;;9827:39:1;9815:52;;9922:15;;;;9887:12;;;;9863:1;9781:9;9752:195;;;-1:-1:-1;;;;;;;10003:32:1;;;;9998:2;9983:18;;9976:60;-1:-1:-1;;;10067:3:1;10052:19;10045:35;9964:3;9106:980;-1:-1:-1;;;9106:980:1:o;10091:217::-;10131:1;10157;10147:132;;10201:10;10196:3;10192:20;10189:1;10182:31;10236:4;10233:1;10226:15;10264:4;10261:1;10254:15;10147:132;-1:-1:-1;10293:9:1;;10091:217::o;10669:168::-;10742:9;;;10773;;10790:15;;;10784:22;;10770:37;10760:71;;10811:18;;:::i

Swarm Source

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