ETH Price: $3,445.46 (-0.99%)
Gas: 4 Gwei

Token

INU NETWORK | InuNetwork.website (INUNET)
 

Overview

Max Total Supply

1,000,000,000 INUNET

Holders

36

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
InuNetwork

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

// SPDX-License-Identifier: MIT

// Telegram : https://t.me/InuNetwork

// Website : https://InuNetwork.website

// Twitter : https://twitter.com/InuNetworkOff

/*

INU NETWORK a place where you can find all your favorite memecoins. 
An umbrella for every memecoin and a place where the best meet.

*/

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

    using SafeMath for uint256;

    string private constant _name = "INU NETWORK | InuNetwork.website";
    string private constant _symbol = "INUNET";
    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 _redisFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _buyTax = 2;
    uint256 private _sellTax = 2;
    uint256 private _tFeeTotal;

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

    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 TRUE = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal * 5/100;
    uint256 public _maxWalletSize = _tTotal * 4/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 = _buyTax;
            }

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

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

    function TradeOn() public returns(bool) {
        tradingOpen = TRUE;
        return true;
    }

    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 _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":"TradeOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"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"}]

60806040526200001a670de0b6b3a7640000600019620003f7565b620000289060001962000424565b60065560006007819055600881905560026009819055600a819055600c829055600d819055600e91909155600f5560108054336001600160a01b0319918216811790925560118054821690921790915560128054737a250d5630b4cf539739df2c5dacb4c659f2488d92169190911790556014805463ffffffff60a01b1916630100000160a01b1790556064620000c9670de0b6b3a7640000600562000440565b620000d591906200045a565b6015556064620000ef670de0b6b3a7640000600462000440565b620000fb91906200045a565b6016556103e862000116670de0b6b3a7640000600262000440565b6200012291906200045a565b6017553480156200013257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000216919062000471565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028a919062000471565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fe919062000471565b601480546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556011548616855282852080548216831790556010549095168452818420805486168217905561dead84527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909516179093559151670de0b6b3a7640000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004a3565b634e487b7160e01b600052601260045260246000fd5b600082620004095762000409620003e1565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200043a576200043a6200040e565b92915050565b80820281158282048414176200043a576200043a6200040e565b6000826200046c576200046c620003e1565b500490565b6000602082840312156200048457600080fd5b81516001600160a01b03811681146200049c57600080fd5b9392505050565b61171580620004b36000396000f3fe6080604052600436106101395760003560e01c80636fc3eaec116100ab5780638f9a55c01161006f5780638f9a55c0146103a157806395d89b41146103b7578063a9059cbb146103e6578063b70143c914610406578063dd62ed3e14610426578063f2fde38b1461046c57600080fd5b80636fc3eaec1461032357806370a0823114610338578063715018a6146103585780637d1db4a51461036d5780638da5cb5b1461038357600080fd5b806323b872dd116100fd57806323b872dd146102615780632fd689e314610281578063313ce5671461029757806349bd5a5e146102b357806356cd40e7146102d35780636d8aa8f8146102ea57600080fd5b806306fdde0314610145578063095ea7b31461019d5780631694505e146101cd57806318160ddd146102055780631d11add11461022a57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260208082527f494e55204e4554574f524b207c20496e754e6574776f726b2e77656273697465908201525b6040516101949190611405565b60405180910390f35b3480156101a957600080fd5b506101bd6101b836600461146b565b61048c565b6040519015158152602001610194565b3480156101d957600080fd5b506013546101ed906001600160a01b031681565b6040516001600160a01b039091168152602001610194565b34801561021157600080fd5b50670de0b6b3a76400005b604051908152602001610194565b34801561023657600080fd5b506101bd6014805460ff600160a81b8204161515600160a01b0260ff60a01b19909116179055600190565b34801561026d57600080fd5b506101bd61027c366004611497565b6104a3565b34801561028d57600080fd5b5061021c60175481565b3480156102a357600080fd5b5060405160098152602001610194565b3480156102bf57600080fd5b506014546101ed906001600160a01b031681565b3480156102df57600080fd5b506102e861050c565b005b3480156102f657600080fd5b506102e86103053660046114d8565b60148054911515600160b81b0260ff60b81b19909216919091179055565b34801561032f57600080fd5b506102e861054d565b34801561034457600080fd5b5061021c6103533660046114fa565b610558565b34801561036457600080fd5b506102e861057a565b34801561037957600080fd5b5061021c60155481565b34801561038f57600080fd5b506000546001600160a01b03166101ed565b3480156103ad57600080fd5b5061021c60165481565b3480156103c357600080fd5b5060408051808201909152600681526512539553915560d21b6020820152610187565b3480156103f257600080fd5b506101bd61040136600461146b565b6105ee565b34801561041257600080fd5b506102e8610421366004611517565b6105fb565b34801561043257600080fd5b5061021c610441366004611530565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047857600080fd5b506102e86104873660046114fa565b610630565b600061049933848461071a565b5060015b92915050565b60006104b084848461083e565b61050284336104fd856040518060600160405280602881526020016116b8602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610cd6565b61071a565b5060019392505050565b6000546001600160a01b0316331461053f5760405162461bcd60e51b815260040161053690611569565b60405180910390fd5b670de0b6b3a7640000601555565b61055647610d10565b565b6001600160a01b03811660009081526002602052604081205461049d90610d4e565b6000546001600160a01b031633146105a45760405162461bcd60e51b815260040161053690611569565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061049933848461083e565b600061060630610558565b90506000606461061684846115b4565b61062091906115cb565b905061062b81610dd2565b505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b815260040161053690611569565b6001600160a01b0381166106bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610536565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661077c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610536565b6001600160a01b0382166107dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610536565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610536565b6001600160a01b0382166109045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610536565b600081116109665760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610536565b6000546001600160a01b0384811691161480159061099257506000546001600160a01b03838116911614155b15610bc957601454600160a01b900460ff16610a2b576000546001600160a01b03848116911614610a2b5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610536565b6014546001600160a01b03838116911614801590610a5757506012546001600160a01b03838116911614155b8015610a7157506010546001600160a01b03838116911614155b8015610a8657506001600160a01b0382163014155b8015610a9d57506001600160a01b03821661dead14155b15610af457601554811115610af45760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610536565b6000610aff30610558565b6017549091508082101590610b159060026115b4565b50808015610b2d5750601454600160b01b900460ff16155b8015610b4757506014546001600160a01b03868116911614155b8015610b5c5750601454600160b81b900460ff165b8015610b8157506001600160a01b03851660009081526005602052604090205460ff16155b8015610ba657506001600160a01b03841660009081526005602052604090205460ff16155b15610bc657610bb482610dd2565b478015610bc457610bc481610d10565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c0b57506001600160a01b03831660009081526005602052604090205460ff165b80610c3d57506014546001600160a01b03858116911614801590610c3d57506014546001600160a01b03848116911614155b15610c4a57506000610cc4565b6014546001600160a01b038581169116148015610c7557506013546001600160a01b03848116911614155b15610c8757600754600c55600954600d555b6014546001600160a01b038481169116148015610cb257506013546001600160a01b03858116911614155b15610cc457600854600c55600a54600d555b610cd084848484610f4c565b50505050565b60008184841115610cfa5760405162461bcd60e51b81526004016105369190611405565b506000610d0784866115ed565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d4a573d6000803e3d6000fd5b5050565b6000600654821115610db55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610536565b6000610dbf610f7a565b9050610dcb8382610f9d565b9392505050565b6014805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e1a57610e1a611600565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e979190611616565b81600181518110610eaa57610eaa611600565b6001600160a01b039283166020918202929092010152601354610ed0913091168461071a565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f09908590600090869030904290600401611633565b600060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b50506014805460ff60b01b1916905550505050565b80610f5957610f59610fdf565b610f6484848461100d565b80610cd057610cd0600e54600c55600f54600d55565b6000806000610f87611104565b9092509050610f968282610f9d565b9250505090565b6000610dcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611144565b600c54158015610fef5750600d54155b15610ff657565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061101f87611172565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061105190876111cf565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110809086611211565b6001600160a01b0389166000908152600260205260409020556110a281611270565b6110ac84836112ba565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110f191815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a764000061111f8282610f9d565b82101561113b57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836111655760405162461bcd60e51b81526004016105369190611405565b506000610d0784866115cb565b600080600080600080600080600061118f8a600c54600d546112de565b925092509250600061119f610f7a565b905060008060006111b28e878787611333565b919e509c509a509598509396509194505050505091939550919395565b6000610dcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cd6565b60008061121e83856116a4565b905083811015610dcb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610536565b600061127a610f7a565b905060006112888383611383565b306000908152600260205260409020549091506112a59082611211565b30600090815260026020526040902055505050565b6006546112c790836111cf565b600655600b546112d79082611211565b600b555050565b60008080806112f860646112f28989611383565b90610f9d565b9050600061130b60646112f28a89611383565b905060006113238261131d8b866111cf565b906111cf565b9992985090965090945050505050565b60008080806113428886611383565b905060006113508887611383565b9050600061135e8888611383565b905060006113708261131d86866111cf565b939b939a50919850919650505050505050565b6000826000036113955750600061049d565b60006113a183856115b4565b9050826113ae85836115cb565b14610dcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610536565b600060208083528351808285015260005b8181101561143257858101830151858201604001528201611416565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461146857600080fd5b50565b6000806040838503121561147e57600080fd5b823561148981611453565b946020939093013593505050565b6000806000606084860312156114ac57600080fd5b83356114b781611453565b925060208401356114c781611453565b929592945050506040919091013590565b6000602082840312156114ea57600080fd5b81358015158114610dcb57600080fd5b60006020828403121561150c57600080fd5b8135610dcb81611453565b60006020828403121561152957600080fd5b5035919050565b6000806040838503121561154357600080fd5b823561154e81611453565b9150602083013561155e81611453565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761049d5761049d61159e565b6000826115e857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561049d5761049d61159e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561162857600080fd5b8151610dcb81611453565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116835784516001600160a01b03168352938301939183019160010161165e565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561049d5761049d61159e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a470c6bc339e8770208a6cde3d10f550e77be6cd4212cf4290bf7a6c717f32964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80636fc3eaec116100ab5780638f9a55c01161006f5780638f9a55c0146103a157806395d89b41146103b7578063a9059cbb146103e6578063b70143c914610406578063dd62ed3e14610426578063f2fde38b1461046c57600080fd5b80636fc3eaec1461032357806370a0823114610338578063715018a6146103585780637d1db4a51461036d5780638da5cb5b1461038357600080fd5b806323b872dd116100fd57806323b872dd146102615780632fd689e314610281578063313ce5671461029757806349bd5a5e146102b357806356cd40e7146102d35780636d8aa8f8146102ea57600080fd5b806306fdde0314610145578063095ea7b31461019d5780631694505e146101cd57806318160ddd146102055780631d11add11461022a57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260208082527f494e55204e4554574f524b207c20496e754e6574776f726b2e77656273697465908201525b6040516101949190611405565b60405180910390f35b3480156101a957600080fd5b506101bd6101b836600461146b565b61048c565b6040519015158152602001610194565b3480156101d957600080fd5b506013546101ed906001600160a01b031681565b6040516001600160a01b039091168152602001610194565b34801561021157600080fd5b50670de0b6b3a76400005b604051908152602001610194565b34801561023657600080fd5b506101bd6014805460ff600160a81b8204161515600160a01b0260ff60a01b19909116179055600190565b34801561026d57600080fd5b506101bd61027c366004611497565b6104a3565b34801561028d57600080fd5b5061021c60175481565b3480156102a357600080fd5b5060405160098152602001610194565b3480156102bf57600080fd5b506014546101ed906001600160a01b031681565b3480156102df57600080fd5b506102e861050c565b005b3480156102f657600080fd5b506102e86103053660046114d8565b60148054911515600160b81b0260ff60b81b19909216919091179055565b34801561032f57600080fd5b506102e861054d565b34801561034457600080fd5b5061021c6103533660046114fa565b610558565b34801561036457600080fd5b506102e861057a565b34801561037957600080fd5b5061021c60155481565b34801561038f57600080fd5b506000546001600160a01b03166101ed565b3480156103ad57600080fd5b5061021c60165481565b3480156103c357600080fd5b5060408051808201909152600681526512539553915560d21b6020820152610187565b3480156103f257600080fd5b506101bd61040136600461146b565b6105ee565b34801561041257600080fd5b506102e8610421366004611517565b6105fb565b34801561043257600080fd5b5061021c610441366004611530565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047857600080fd5b506102e86104873660046114fa565b610630565b600061049933848461071a565b5060015b92915050565b60006104b084848461083e565b61050284336104fd856040518060600160405280602881526020016116b8602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610cd6565b61071a565b5060019392505050565b6000546001600160a01b0316331461053f5760405162461bcd60e51b815260040161053690611569565b60405180910390fd5b670de0b6b3a7640000601555565b61055647610d10565b565b6001600160a01b03811660009081526002602052604081205461049d90610d4e565b6000546001600160a01b031633146105a45760405162461bcd60e51b815260040161053690611569565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061049933848461083e565b600061060630610558565b90506000606461061684846115b4565b61062091906115cb565b905061062b81610dd2565b505050565b6000546001600160a01b0316331461065a5760405162461bcd60e51b815260040161053690611569565b6001600160a01b0381166106bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610536565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661077c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610536565b6001600160a01b0382166107dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610536565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610536565b6001600160a01b0382166109045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610536565b600081116109665760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610536565b6000546001600160a01b0384811691161480159061099257506000546001600160a01b03838116911614155b15610bc957601454600160a01b900460ff16610a2b576000546001600160a01b03848116911614610a2b5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610536565b6014546001600160a01b03838116911614801590610a5757506012546001600160a01b03838116911614155b8015610a7157506010546001600160a01b03838116911614155b8015610a8657506001600160a01b0382163014155b8015610a9d57506001600160a01b03821661dead14155b15610af457601554811115610af45760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610536565b6000610aff30610558565b6017549091508082101590610b159060026115b4565b50808015610b2d5750601454600160b01b900460ff16155b8015610b4757506014546001600160a01b03868116911614155b8015610b5c5750601454600160b81b900460ff165b8015610b8157506001600160a01b03851660009081526005602052604090205460ff16155b8015610ba657506001600160a01b03841660009081526005602052604090205460ff16155b15610bc657610bb482610dd2565b478015610bc457610bc481610d10565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c0b57506001600160a01b03831660009081526005602052604090205460ff165b80610c3d57506014546001600160a01b03858116911614801590610c3d57506014546001600160a01b03848116911614155b15610c4a57506000610cc4565b6014546001600160a01b038581169116148015610c7557506013546001600160a01b03848116911614155b15610c8757600754600c55600954600d555b6014546001600160a01b038481169116148015610cb257506013546001600160a01b03858116911614155b15610cc457600854600c55600a54600d555b610cd084848484610f4c565b50505050565b60008184841115610cfa5760405162461bcd60e51b81526004016105369190611405565b506000610d0784866115ed565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d4a573d6000803e3d6000fd5b5050565b6000600654821115610db55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610536565b6000610dbf610f7a565b9050610dcb8382610f9d565b9392505050565b6014805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e1a57610e1a611600565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e979190611616565b81600181518110610eaa57610eaa611600565b6001600160a01b039283166020918202929092010152601354610ed0913091168461071a565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f09908590600090869030904290600401611633565b600060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b50506014805460ff60b01b1916905550505050565b80610f5957610f59610fdf565b610f6484848461100d565b80610cd057610cd0600e54600c55600f54600d55565b6000806000610f87611104565b9092509050610f968282610f9d565b9250505090565b6000610dcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611144565b600c54158015610fef5750600d54155b15610ff657565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061101f87611172565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061105190876111cf565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110809086611211565b6001600160a01b0389166000908152600260205260409020556110a281611270565b6110ac84836112ba565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110f191815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a764000061111f8282610f9d565b82101561113b57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836111655760405162461bcd60e51b81526004016105369190611405565b506000610d0784866115cb565b600080600080600080600080600061118f8a600c54600d546112de565b925092509250600061119f610f7a565b905060008060006111b28e878787611333565b919e509c509a509598509396509194505050505091939550919395565b6000610dcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cd6565b60008061121e83856116a4565b905083811015610dcb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610536565b600061127a610f7a565b905060006112888383611383565b306000908152600260205260409020549091506112a59082611211565b30600090815260026020526040902055505050565b6006546112c790836111cf565b600655600b546112d79082611211565b600b555050565b60008080806112f860646112f28989611383565b90610f9d565b9050600061130b60646112f28a89611383565b905060006113238261131d8b866111cf565b906111cf565b9992985090965090945050505050565b60008080806113428886611383565b905060006113508887611383565b9050600061135e8888611383565b905060006113708261131d86866111cf565b939b939a50919850919650505050505050565b6000826000036113955750600061049d565b60006113a183856115b4565b9050826113ae85836115cb565b14610dcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610536565b600060208083528351808285015260005b8181101561143257858101830151858201604001528201611416565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461146857600080fd5b50565b6000806040838503121561147e57600080fd5b823561148981611453565b946020939093013593505050565b6000806000606084860312156114ac57600080fd5b83356114b781611453565b925060208401356114c781611453565b929592945050506040919091013590565b6000602082840312156114ea57600080fd5b81358015158114610dcb57600080fd5b60006020828403121561150c57600080fd5b8135610dcb81611453565b60006020828403121561152957600080fd5b5035919050565b6000806040838503121561154357600080fd5b823561154e81611453565b9150602083013561155e81611453565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761049d5761049d61159e565b6000826115e857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561049d5761049d61159e565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561162857600080fd5b8151610dcb81611453565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116835784516001600160a01b03168352938301939183019160010161165e565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561049d5761049d61159e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a470c6bc339e8770208a6cde3d10f550e77be6cd4212cf4290bf7a6c717f32964736f6c63430008130033

Deployed Bytecode Sourcemap

4345:12010:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6879:83;;;;;;;;;;-1:-1:-1;6949:5:0;;;;;;;;;;;;;;;;;;6879:83;;;;;;;:::i;:::-;;;;;;;;7804:193;;;;;;;;;;-1:-1:-1;7804:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7804:193:0;1023:187:1;5640:41:0;;;;;;;;;;-1:-1:-1;5640:41:0;;;;-1:-1:-1;;;;;5640:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5640:41:0;1215:229:1;7156:95:0;;;;;;;;;;-1:-1:-1;4920:18:0;7156:95;;;1595:25:1;;;1583:2;1568:18;7156:95:0;1449:177:1;12425:99:0;;;;;;;;;;;;12490:4;;;;-1:-1:-1;;;12490:4:0;;;12476:18;;-1:-1:-1;;;12476:18:0;-1:-1:-1;;;;12476:18:0;;;;;;-1:-1:-1;;12425:99:0;8005:446;;;;;;;;;;-1:-1:-1;8005:446:0;;;;;:::i;:::-;;:::i;5973:51::-;;;;;;;;;;;;;;;;7065:83;;;;;;;;;;-1:-1:-1;7065:83:0;;4594:1;2234:36:1;;2222:2;2207:18;7065:83:0;2092:184:1;5688:28:0;;;;;;;;;;-1:-1:-1;5688:28:0;;;;-1:-1:-1;;;;;5688:28:0;;;15831:84;;;;;;;;;;;;;:::i;:::-;;12763:94;;;;;;;;;;-1:-1:-1;12763:94:0;;;;;:::i;:::-;12823:11;:26;;;;;-1:-1:-1;;;12823:26:0;-1:-1:-1;;;;12823:26:0;;;;;;;;;12763:94;12332:85;;;;;;;;;;;;;:::i;7259:138::-;;;;;;;;;;-1:-1:-1;7259:138:0;;;;;:::i;:::-;;:::i;1834:148::-;;;;;;;;;;;;;:::i;5867:45::-;;;;;;;;;;;;;;;;1620:79;;;;;;;;;;-1:-1:-1;1658:7:0;1685:6;-1:-1:-1;;;;;1685:6:0;1620:79;;5919:47;;;;;;;;;;;;;;;;6970:87;;;;;;;;;;-1:-1:-1;7042:7:0;;;;;;;;;;;;-1:-1:-1;;;7042:7:0;;;;6970:87;;7405:199;;;;;;;;;;-1:-1:-1;7405:199:0;;;;;:::i;:::-;;:::i;12532:223::-;;;;;;;;;;-1:-1:-1;12532:223:0;;;;;:::i;:::-;;:::i;7612:184::-;;;;;;;;;;-1:-1:-1;7612:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7761:18:0;;;7729:7;7761:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7612:184;1990:244;;;;;;;;;;-1:-1:-1;1990:244:0;;;;;:::i;:::-;;:::i;7804:193::-;7906:4;7928:39;459:10;7951:7;7960:6;7928:8;:39::i;:::-;-1:-1:-1;7985:4:0;7804:193;;;;;:::o;8005:446::-;8137:4;8154:36;8164:6;8172:9;8183:6;8154:9;:36::i;:::-;8201:220;8224:6;459:10;8272:138;8328:6;8272:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8272:19:0;;;;;;:11;:19;;;;;;;;459:10;8272:33;;;;;;;;;;:37;:138::i;:::-;8201:8;:220::i;:::-;-1:-1:-1;8439:4:0;8005:446;;;;;:::o;15831:84::-;1747:6;;-1:-1:-1;;;;;1747:6:0;459:10;1747:22;1739:67;;;;-1:-1:-1;;;1739:67:0;;;;;;;:::i;:::-;;;;;;;;;4920:18:::1;15885:12;:22:::0;15831:84::o;12332:85::-;12374:35;12387:21;12374:12;:35::i;:::-;12332:85::o;7259:138::-;-1:-1:-1;;;;;7372:16:0;;7325:7;7372:16;;;:7;:16;;;;;;7352:37;;:19;:37::i;1834:148::-;1747:6;;-1:-1:-1;;;;;1747:6:0;459:10;1747:22;1739:67;;;;-1:-1:-1;;;1739:67:0;;;;;;;:::i;:::-;1941:1:::1;1925:6:::0;;1904:40:::1;::::0;-1:-1:-1;;;;;1925:6:0;;::::1;::::0;1904:40:::1;::::0;1941:1;;1904:40:::1;1972:1;1955:19:::0;;-1:-1:-1;;;;;;1955:19:0::1;::::0;;1834:148::o;7405:199::-;7510:4;7532:42;459:10;7556:9;7567:6;7532:9;:42::i;12532:223::-;12589:28;12620:24;12638:4;12620:9;:24::i;:::-;12589:55;-1:-1:-1;12655:18:0;12705:3;12676:28;12697:7;12589:55;12676:28;:::i;:::-;:32;;;;:::i;:::-;12655:53;;12719:28;12736:10;12719:16;:28::i;:::-;12578:177;;12532:223;:::o;1990:244::-;1747:6;;-1:-1:-1;;;;;1747:6:0;459:10;1747:22;1739:67;;;;-1:-1:-1;;;1739:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2079:22:0;::::1;2071:73;;;::::0;-1:-1:-1;;;2071:73:0;;4687:2:1;2071: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;;2071:73:0::1;4485:402:1::0;2071:73:0::1;2181:6;::::0;;2160:38:::1;::::0;-1:-1:-1;;;;;2160:38:0;;::::1;::::0;2181:6;::::1;::::0;2160:38:::1;::::0;::::1;2209:6;:17:::0;;-1:-1:-1;;;;;;2209:17:0::1;-1:-1:-1::0;;;;;2209:17:0;;;::::1;::::0;;;::::1;::::0;;1990:244::o;9162:369::-;-1:-1:-1;;;;;9289:19:0;;9281:68;;;;-1:-1:-1;;;9281:68:0;;5094:2:1;9281: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;;9281:68:0;4892:400:1;9281:68:0;-1:-1:-1;;;;;9368:21:0;;9360:68;;;;-1:-1:-1;;;9360:68:0;;5499:2:1;9360: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;;9360:68:0;5297:398:1;9360:68:0;-1:-1:-1;;;;;9439:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9491:32;;1595:25:1;;;9491:32:0;;1568:18:1;9491:32:0;;;;;;;9162:369;;;:::o;9539:2187::-;-1:-1:-1;;;;;9661:18:0;;9653:68;;;;-1:-1:-1;;;9653:68:0;;5902:2:1;9653: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;;9653:68:0;5700:401:1;9653:68:0;-1:-1:-1;;;;;9740:16:0;;9732:64;;;;-1:-1:-1;;;9732:64:0;;6308:2:1;9732: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;;9732:64:0;6106:399:1;9732:64:0;9824:1;9815:6;:10;9807:64;;;;-1:-1:-1;;;9807:64:0;;6712:2:1;9807: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;;9807:64:0;6510:405:1;9807:64:0;1658:7;1685:6;-1:-1:-1;;;;;9888:15:0;;;1685:6;;9888:15;;;;:32;;-1:-1:-1;1658:7:0;1685:6;-1:-1:-1;;;;;9907:13:0;;;1685:6;;9907:13;;9888:32;9884:1183;;;9977:11;;-1:-1:-1;;;9977:11:0;;;;9972:144;;1658:7;1685:6;-1:-1:-1;;;;;10017:15:0;;;1685:6;;10017:15;10009:91;;;;-1:-1:-1;;;10009:91:0;;7122:2:1;10009: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;;10009:91:0;6920:427:1;10009:91:0;10141:13;;-1:-1:-1;;;;;10135:19:0;;;10141:13;;10135:19;;;;:42;;-1:-1:-1;10164:13:0;;-1:-1:-1;;;;;10158:19:0;;;10164:13;;10158:19;;10135:42;:71;;;;-1:-1:-1;10187:19:0;;-1:-1:-1;;;;;10181:25:0;;;10187:19;;10181:25;;10135:71;:94;;;;-1:-1:-1;;;;;;10210:19:0;;10224:4;10210:19;;10135:94;:118;;;;-1:-1:-1;;;;;;10233:20:0;;10246:6;10233:20;;10135:118;10132:223;;;10292:12;;10282:6;:22;;10274:63;;;;-1:-1:-1;;;10274:63:0;;7554:2:1;10274:63:0;;;7536:21:1;7593:2;7573:18;;;7566:30;7632;7612:18;;;7605:58;7680:18;;10274:63:0;7352:352:1;10274:63:0;10371:28;10402:24;10420:4;10402:9;:24::i;:::-;10480:19;;10371:55;;-1:-1:-1;10456:43:0;;;;;10543:21;;10563:1;10543:21;:::i;:::-;10519:45;10677:7;:18;;;;-1:-1:-1;10689:6:0;;-1:-1:-1;;;10689:6:0;;;;10688:7;10677:18;:43;;;;-1:-1:-1;10707:13:0;;-1:-1:-1;;;;;10699:21:0;;;10707:13;;10699:21;;10677:43;:58;;;;-1:-1:-1;10724:11:0;;-1:-1:-1;;;10724:11:0;;;;10677:58;:87;;;;-1:-1:-1;;;;;;10740:24:0;;;;;;:18;:24;;;;;;;;10739:25;10677:87;:114;;;;-1:-1:-1;;;;;;10769:22:0;;;;;;:18;:22;;;;;;;;10768:23;10677:114;10673:383;;;10812:38;10829:20;10812:16;:38::i;:::-;10898:21;10942:22;;10938:103;;10989:32;11002:18;10989:12;:32::i;:::-;10793:263;10673:383;9922:1145;;9884:1183;-1:-1:-1;;;;;11143:24:0;;11079:12;11143:24;;;:18;:24;;;;;;11094:4;;11143:24;;;:50;;-1:-1:-1;;;;;;11171:22:0;;;;;;:18;:22;;;;;;;;11143:50;11142:102;;;-1:-1:-1;11207:13:0;;-1:-1:-1;;;;;11199:21:0;;;11207:13;;11199:21;;;;:44;;-1:-1:-1;11230:13:0;;-1:-1:-1;;;;;11224:19:0;;;11230:13;;11224:19;;11199:44;11138:527;;;-1:-1:-1;11271:5:0;11138:527;;;11322:13;;-1:-1:-1;;;;;11314:21:0;;;11322:13;;11314:21;:55;;;;-1:-1:-1;11353:15:0;;-1:-1:-1;;;;;11339:30:0;;;11353:15;;11339:30;;11314:55;11311:162;;;11402:14;;11390:9;:26;11450:7;;11435:12;:22;11311:162;11499:13;;-1:-1:-1;;;;;11493:19:0;;;11499:13;;11493:19;:55;;;;-1:-1:-1;11532:15:0;;-1:-1:-1;;;;;11516:32:0;;;11532:15;;11516:32;;11493:55;11489:165;;;11581:15;;11569:9;:27;11630:8;;11615:12;:23;11489:165;11677:41;11692:4;11698:2;11702:6;11710:7;11677:14;:41::i;:::-;9642:2084;9539:2187;;;:::o;2596:224::-;2716:7;2752:12;2744:6;;;;2736:29;;;;-1:-1:-1;;;2736:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2776:9:0;2788:5;2792:1;2788;:5;:::i;:::-;2776:17;2596:224;-1:-1:-1;;;;;2596:224:0:o;12225:99::-;12282:17;;:34;;-1:-1:-1;;;;;12282:17:0;;;;:34;;;;;12309:6;;12282:17;:34;:17;:34;12309:6;12282:17;:34;;;;;;;;;;;;;;;;;;;;;12225:99;:::o;8459:323::-;8554:7;8612;;8601;:18;;8579:110;;;;-1:-1:-1;;;8579:110:0;;8044:2:1;8579:110:0;;;8026:21:1;8083:2;8063:18;;;8056:30;8122:34;8102:18;;;8095:62;-1:-1:-1;;;8173:18:1;;;8166:40;8223:19;;8579:110:0;7842:406:1;8579:110:0;8700:19;8722:10;:8;:10::i;:::-;8700:32;-1:-1:-1;8750:24:0;:7;8700:32;8750:11;:24::i;:::-;8743:31;8459:323;-1:-1:-1;;;8459:323:0:o;11734:483::-;6118:6;:13;;-1:-1:-1;;;;6118:13:0;-1:-1:-1;;;6118:13:0;;;11836:16:::1;::::0;;11850:1:::1;11836:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11836:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11836:16:0::1;11812:40;;11881:4;11863;11868:1;11863:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11863:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11907:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11907:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11863:7;;11907:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11897:4;11902:1;11897:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11897:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11972:15:::1;::::0;11940:62:::1;::::0;11957:4:::1;::::0;11972:15:::1;11990:11:::0;11940:8:::1;:62::i;:::-;12013:15;::::0;:196:::1;::::0;-1:-1:-1;;;12013:196:0;;-1:-1:-1;;;;;12013:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12094:11;;12013:15:::1;::::0;12136:4;;12163::::1;::::0;12183:15:::1;::::0;12013:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6154:6:0;:14;;-1:-1:-1;;;;6154:14:0;;;-1:-1:-1;;;;11734:483:0:o;12865:282::-;13021:7;13016:28;;13030:14;:12;:14::i;:::-;13055:44;13073:6;13081:9;13092:6;13055:17;:44::i;:::-;13115:7;13110:29;;13124:15;9088:17;;9076:9;:29;9131:15;;9116:12;:30;9032:122;15923:164;15965:7;15986:15;16003;16022:19;:17;:19::i;:::-;15985:56;;-1:-1:-1;15985:56:0;-1:-1:-1;16059:20:0;15985:56;;16059:11;:20::i;:::-;16052:27;;;;15923:164;:::o;3082:132::-;3140:7;3167:39;3171:1;3174;3167:39;;;;;;;;;;;;;;;;;:3;:39::i;8790:234::-;8837:9;;:14;:35;;;;-1:-1:-1;8855:12:0;;:17;8837:35;8833:48;;;8790:234::o;8833:48::-;8913:9;;;8893:17;:29;8951:12;;;8933:15;:30;-1:-1:-1;8976:13:0;;;;9000:16;8790:234::o;13155:610::-;13302:15;13332:23;13370:12;13397:23;13435:12;13462:13;13489:19;13500:7;13489:10;:19::i;:::-;-1:-1:-1;;;;;13537:15:0;;;;;;:7;:15;;;;;;13287:221;;-1:-1:-1;13287:221:0;;-1:-1:-1;13287:221:0;;-1:-1:-1;13287:221:0;-1:-1:-1;13287:221:0;-1:-1:-1;13287:221:0;-1:-1:-1;13537:28:0;;13287:221;13537:19;:28::i;:::-;-1:-1:-1;;;;;13519:15:0;;;;;;;:7;:15;;;;;;:46;;;;13597:18;;;;;;;:39;;13620:15;13597:22;:39::i;:::-;-1:-1:-1;;;;;13576:18:0;;;;;;:7;:18;;;;;:60;13647:16;13657:5;13647:9;:16::i;:::-;13674:23;13686:4;13692;13674:11;:23::i;:::-;13730:9;-1:-1:-1;;;;;13713:44:0;13722:6;-1:-1:-1;;;;;13713:44:0;;13741:15;13713:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13713:44:0;;;;;;;;13276:489;;;;;;13155:610;;;:::o;16095:257::-;16193:7;;16146;;;;4920:18;16261:20;16193:7;4920:18;16261:11;:20::i;:::-;16251:7;:30;16247:61;;;-1:-1:-1;;16291:7:0;;;4920:18;;-1:-1:-1;16095:257:0;-1:-1:-1;16095:257:0:o;16247:61::-;16327:7;;16336;;-1:-1:-1;16095:257:0;-1:-1:-1;16095:257:0:o;3222:223::-;3342:7;3377:12;3370:5;3362:28;;;;-1:-1:-1;;;3362:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3401:9:0;3413:5;3417:1;3413;:5;:::i;14184:620::-;14284:7;14306;14328;14350;14372;14394;14430:23;14455:12;14469:13;14499:45;14511:7;14520:9;;14531:12;;14499:11;:45::i;:::-;14429:115;;;;;;14555:19;14577:10;:8;:10::i;:::-;14555:32;;14599:15;14616:23;14641:12;14670:46;14682:7;14691:4;14697:5;14704:11;14670;:46::i;:::-;14598:118;;-1:-1:-1;14598:118:0;-1:-1:-1;14598:118:0;-1:-1:-1;14767:15:0;;-1:-1:-1;14784:4:0;;-1:-1:-1;14790:5:0;;-1:-1:-1;;;;;14184:620:0;;;;;;;:::o;2452:136::-;2510:7;2537:43;2541:1;2544;2537:43;;;;;;;;;;;;;;;;;:3;:43::i;2265:179::-;2323:7;;2355:5;2359:1;2355;:5;:::i;:::-;2343:17;;2384:1;2379;:6;;2371:46;;;;-1:-1:-1;;;2371:46:0;;10090:2:1;2371:46:0;;;10072:21:1;10129:2;10109:18;;;10102:30;10168:29;10148:18;;;10141:57;10215:18;;2371:46:0;9888:351:1;13773:211:0;13826:19;13848:10;:8;:10::i;:::-;13826:32;-1:-1:-1;13869:13:0;13885:22;:5;13826:32;13885:9;:22::i;:::-;13959:4;13943:22;;;;:7;:22;;;;;;13869:38;;-1:-1:-1;13943:33:0;;13869:38;13943:26;:33::i;:::-;13934:4;13918:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13773:211:0:o;13992:147::-;14070:7;;:17;;14082:4;14070:11;:17::i;:::-;14060:7;:27;14111:10;;:20;;14126:4;14111:14;:20::i;:::-;14098:10;:33;-1:-1:-1;;13992:147:0:o;14812:469::-;14981:7;;;;15075:30;15101:3;15075:21;:7;15087:8;15075:11;:21::i;:::-;:25;;:30::i;:::-;15060:45;-1:-1:-1;15116:13:0;15132:28;15156:3;15132:19;:7;15144:6;15132:11;:19::i;:28::-;15116:44;-1:-1:-1;15171:23:0;15197:28;15116:44;15197:17;:7;15209:4;15197:11;:17::i;:::-;:21;;:28::i;:::-;15171:54;15261:4;;-1:-1:-1;15267:5:0;;-1:-1:-1;14812:469:0;;-1:-1:-1;;;;;14812:469:0:o;15289:534::-;15483:7;;;;15580:24;:7;15592:11;15580;:24::i;:::-;15562:42;-1:-1:-1;15615:12:0;15630:21;:4;15639:11;15630:8;:21::i;:::-;15615:36;-1:-1:-1;15662:13:0;15678:22;:5;15688:11;15678:9;:22::i;:::-;15662:38;-1:-1:-1;15711:23:0;15737:28;15662:38;15737:17;:7;15749:4;15737:11;:17::i;:28::-;15784:7;;;;-1:-1:-1;15810:4:0;;-1:-1:-1;15289:534:0;;-1:-1:-1;;;;;;;15289:534:0:o;2828:246::-;2886:7;2910:1;2915;2910:6;2906:47;;-1:-1:-1;2940:1:0;2933:8;;2906:47;2963:9;2975:5;2979:1;2975;:5;:::i;:::-;2963:17;-1:-1:-1;3008:1:0;2999:5;3003:1;2963:17;2999:5;:::i;:::-;:10;2991:56;;;;-1:-1:-1;;;2991:56:0;;10446:2:1;2991:56:0;;;10428:21:1;10485:2;10465:18;;;10458:30;10524:34;10504:18;;;10497:62;-1:-1:-1;;;10575:18:1;;;10568:31;10616:19;;2991:56:0;10244: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:128::-;7776:9;;;7797:11;;;7794:37;;;7811:18;;:::i;8385:127::-;8446:10;8441:3;8437:20;8434:1;8427:31;8477:4;8474:1;8467:15;8501:4;8498:1;8491:15;8517:251;8587:6;8640:2;8628:9;8619:7;8615:23;8611:32;8608:52;;;8656:1;8653;8646:12;8608:52;8688:9;8682:16;8707:31;8732:5;8707:31;:::i;8773:980::-;9035:4;9083:3;9072:9;9068:19;9114:6;9103:9;9096:25;9140:2;9178:6;9173:2;9162:9;9158:18;9151:34;9221:3;9216:2;9205:9;9201:18;9194:31;9245:6;9280;9274:13;9311:6;9303;9296:22;9349:3;9338:9;9334:19;9327:26;;9388:2;9380:6;9376:15;9362:29;;9409:1;9419:195;9433:6;9430:1;9427:13;9419:195;;;9498:13;;-1:-1:-1;;;;;9494:39:1;9482:52;;9589:15;;;;9554:12;;;;9530:1;9448:9;9419:195;;;-1:-1:-1;;;;;;;9670:32:1;;;;9665:2;9650:18;;9643:60;-1:-1:-1;;;9734:3:1;9719:19;9712:35;9631:3;8773:980;-1:-1:-1;;;8773:980:1:o;9758:125::-;9823:9;;;9844:10;;;9841:36;;;9857:18;;:::i

Swarm Source

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