Token Kawakami

MEME 
 

Overview [ERC-20]

Price
$0.00 @ 0.000000 Eth (-7.03%)
Fully Diluted Market Cap
Max Total Supply:
999,999,999,999 KAWA

Holders:
2,168 ( -0.092%)

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

Kawakami Inu is a community-driven cryptocurrency with a goal to become a decentralized meme token ecosystem.

Market

Volume (24H):$32,173.00
Market Capitalization:$722,731.00
Circulating Supply:988,566,548,288.00 KAWA
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Kawakami

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-23
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.7;


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

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



}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    address constant private multiSigWallet  = address(0x93837577c98E01CFde883c23F64a0f608A70B90F);
    constructor () {
        _owner = multiSigWallet;
        emit OwnershipTransferred(address(0), multiSigWallet);
    }

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

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

    function transferOwnership(address _address) external onlyOwner notLocked(Functions.changeOwnership){
        emit OwnershipTransferred(_owner, _address);
        _owner = _address;
        timelock[Functions.changeOwnership] = 0;
    }
    enum Functions {changeOwnership,changeMarketWallet,pause }
    mapping(Functions => uint256) public timelock;

    modifier notLocked(Functions _func) {
    require(
        timelock[_func] != 0 && timelock[_func] <= block.timestamp,
        "Function is timelocked"
    );
    _;
    }
}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Kawakami is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private balance;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    
    uint256 private constant _tTotal = 9.99999999999e20; //999,999,999,999.000000000
    uint256 private constant maxWallet = _tTotal/50; 
    uint256 private buyTax = 5;
    uint256 private constant sellTax = 9;
    uint256 private tax = 0;
    uint256 private tradingEnableTime;
    uint256 private constant _TIMELOCK = 2 days;
    address payable private marketingWallet;
    address payable private devWallet;
    string private constant _name = "Kawakami";
    string private constant _symbol = "KAWA";
    uint8 private constant _decimals = 9;
    bool private inSwap = false;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private paused;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    
    function unlockFunction(Functions _func) external onlyOwner {
        require(timelock[_func] == 0);
        timelock[_func] = block.timestamp + _TIMELOCK;
    } 

    function lockFunction(Functions _func) external onlyOwner {
        timelock[_func] = 0;
    }
    
    constructor (address payable _add1, address payable _add2) { 
        require(_add1 != address(0),"Marketing Wallet can not be zero");
        require(_add2 != address(0),"Marketing Wallet can not be zero");
        marketingWallet = _add1;
        devWallet = _add2;
        balance[owner()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;
        emit Transfer(address(0),owner(), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address holder, address spender) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function isWhitelisted(address _addr) external view returns(bool){
        return _isExcludedFromFee[_addr];
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address holder, address spender, uint256 amount) private {
        require(holder != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[holder][spender] = amount;
        emit Approval(holder, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(balanceOf(from) >= amount,"Balance less then transfer");
        require(!bots[from],"Blacklisted can't trade");
        tax = 0;
        if (!(_isExcludedFromFee[from] || _isExcludedFromFee[to]) ) {            
            require(!paused,"Trading is paused");
            require(amount <= _maxTxAmount,"Amount exceed max trnx amount");

            if(to != uniswapV2Pair){   //can't have tokens over maxWallet 
            require(balanceOf(to) + amount*(1-(buyTax/100)) <= maxWallet,"max Wallet limit exceeded");
            }
            uint256 contractETHBalance = address(this).balance;
            if(contractETHBalance > 1 ether) { // Minimum 1 eth before sending to marketing wallet
                sendETHToFee(address(this).balance);
            }
            if(from == uniswapV2Pair){ // Buy transaction
                tax = buyTax;
            } 
            else if(to == uniswapV2Pair){ // Only Swap taxes on a sell
                tax = sellTax;
                uint256 contractTokenBalance = balanceOf(address(this));
                if(!inSwap){
                    if(contractTokenBalance > _tTotal/1000){ // 0.01%
                        swapTokensForEth(contractTokenBalance);
                    }
                }
            }
               
        }
        _tokenTransfer(from,to,amount);
    }


    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 liftMaxTx() external{
        require(tradingOpen,"Trading is not enabled yet");
        require(tradingEnableTime+ 10 minutes <  block.timestamp,"Transaction limit can only be lifted 10 mins after trading is enanbled");
        _maxTxAmount = _tTotal ;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        devWallet.transfer((amount*14)/100);
        marketingWallet.transfer(address(this).balance);        
    }
    
    
    function openTrading() external onlyOwner {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _maxTxAmount = _tTotal/1000;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingEnableTime = block.timestamp;
    }
    
    function blacklistBot(address _address) external onlyOwner{
            bots[_address] = true;
    }
    
    function changeMarketingWallet( address payable _address) external onlyOwner notLocked(Functions.changeMarketWallet){
        require(_address != address(0),"Marketing Wallet can not be zero");
        marketingWallet = _address;
        timelock[Functions.changeMarketWallet] = 0;
    }

    function removeFromBlacklist(address notbot) external onlyOwner{
        bots[notbot] = false;
    }

    function emergencyPause() external onlyOwner notLocked(Functions.pause){
        paused = !paused;
        timelock[Functions.pause] = 0;
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        
        uint256 tTeam = amount*tax/100;    // tax amount
        uint256 remainingAmount = amount - tTeam; // to Send
        balance[sender] = balance[sender].sub(amount); // deduct from sender
        balance[recipient] = balance[recipient].add(remainingAmount); // add to recipient
        balance[address(this)] = balance[address(this)].add(tTeam); // add team Take to address
        emit Transfer(sender, recipient, remainingAmount);
    }

    function whitelistAddress(address _addr,bool _bool) external onlyOwner{    //add or remove address from whitelist
        _isExcludedFromFee[_addr] = _bool;
    }

    receive() external payable {}
    
    function transferERC20(IERC20 token, uint256 amount) external onlyOwner{ //function to transfer stuck erc20 tokens
        require(token != IERC20(address(this)),"You can't withdraw kawa tokens from owned by contract."); 
        uint256 erc20balance = token.balanceOf(address(this));
        require(amount <= erc20balance, "balance is low");
        token.transfer(marketingWallet, amount);
    }
    event buyTaxUpdated(uint256 _newTaxAmount);   
    function changeBuyTax(uint256 _newBuyTax) external onlyOwner{
        require(_newBuyTax < 6,"New Buy tax have to be under 6");
        buyTax = _newBuyTax;
        emit buyTaxUpdated(_newBuyTax);
    }

    function manualswap() external onlyOwner{
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner{
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"_add1","type":"address"},{"internalType":"address payable","name":"_add2","type":"address"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newTaxAmount","type":"uint256"}],"name":"buyTaxUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"blacklistBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyTax","type":"uint256"}],"name":"changeBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"emergencyPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum Ownable.Functions","name":"_func","type":"uint8"}],"name":"lockFunction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum Ownable.Functions","name":"","type":"uint8"}],"name":"timelock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferERC20","outputs":[],"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":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum Ownable.Functions","name":"_func","type":"uint8"}],"name":"unlockFunction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"whitelistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260056006556000600755600a805460ff60a01b19169055683635c9adc5a3053600600d553480156200003557600080fd5b506040516200231b3803806200231b8339810160408190526200005891620002bd565b600080546001600160a01b0319167393837577c98e01cfde883c23f64a0f608a70b90f90811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160a01b038216620000f65760405162461bcd60e51b81526020600482018190526024820152600080516020620022fb83398151915260448201526064015b60405180910390fd5b6001600160a01b0381166200013d5760405162461bcd60e51b81526020600482018190526024820152600080516020620022fb8339815191526044820152606401620000ed565b600980546001600160a01b038085166001600160a01b031992831617909255600a805492841692909116919091179055683635c9adc5a3053600600260006200018e6000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620001c86200029160201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155600954909116835291208054909216179055620002326000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5a30536006040516200028191815260200190565b60405180910390a35050620002f5565b6000546001600160a01b031690565b80516001600160a01b0381168114620002b857600080fd5b919050565b60008060408385031215620002d157600080fd5b620002dc83620002a0565b9150620002ec60208401620002a0565b90509250929050565b611ff680620003056000396000f3fe6080604052600436106101855760003560e01c80638da5cb5b116100d1578063bb85c6d11161008a578063c9567bf911610064578063c9567bf9146104ad578063dd62ed3e146104c2578063f2fde38b14610508578063f7448a311461052857600080fd5b8063bb85c6d11461044b578063c17bae2a1461046b578063c3c8cd801461049857600080fd5b80638da5cb5b1461037657806395d89b411461039e578063a9059cbb146103cb578063aa53099d146103eb578063b4fa3b981461040b578063b9a45aac1461042b57600080fd5b80632ab308381161013e57806351858e271161011857806351858e27146102f6578063537df3b61461030b5780636fc3eaec1461032b57806370a082311461034057600080fd5b80632ab308381461028c578063313ce567146102a15780633af32abf146102bd57600080fd5b806306fdde031461019157806308aad1f1146101d4578063095ea7b3146101f657806318160ddd1461022657806323b872dd1461024c57806324c16b7f1461026c57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506040805180820190915260088152674b6177616b616d6960c01b60208201525b6040516101cb9190611d98565b60405180910390f35b3480156101e057600080fd5b506101f46101ef366004611bec565b610548565b005b34801561020257600080fd5b50610216610211366004611cce565b61059f565b60405190151581526020016101cb565b34801561023257600080fd5b50683635c9adc5a30536005b6040519081526020016101cb565b34801561025857600080fd5b50610216610267366004611c5f565b6105b5565b34801561027857600080fd5b506101f4610287366004611d38565b61061e565b34801561029857600080fd5b506101f46106d3565b3480156102ad57600080fd5b50604051600981526020016101cb565b3480156102c957600080fd5b506102166102d8366004611bec565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561030257600080fd5b506101f4610803565b34801561031757600080fd5b506101f4610326366004611bec565b610906565b34801561033757600080fd5b506101f4610951565b34801561034c57600080fd5b5061023e61035b366004611bec565b6001600160a01b031660009081526002602052604090205490565b34801561038257600080fd5b506000546040516001600160a01b0390911681526020016101cb565b3480156103aa57600080fd5b506040805180820190915260048152634b41574160e01b60208201526101be565b3480156103d757600080fd5b506102166103e6366004611cce565b610988565b3480156103f757600080fd5b506101f4610406366004611d17565b610995565b34801561041757600080fd5b506101f4610426366004611d17565b610a24565b34801561043757600080fd5b506101f4610446366004611ca0565b610a66565b34801561045757600080fd5b506101f4610466366004611bec565b610abb565b34801561047757600080fd5b5061023e610486366004611d17565b60016020526000908152604090205481565b3480156104a457600080fd5b506101f4610c10565b3480156104b957600080fd5b506101f4610c53565b3480156104ce57600080fd5b5061023e6104dd366004611c26565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561051457600080fd5b506101f4610523366004611bec565b61103e565b34801561053457600080fd5b506101f4610543366004611cce565b611150565b6000546001600160a01b0316331461057b5760405162461bcd60e51b815260040161057290611e1d565b60405180910390fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b60006105ac33848461133b565b50600192915050565b60006105c284848461145f565b610614843361060f85604051806060016040528060288152602001611f99602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906117ed565b61133b565b5060019392505050565b6000546001600160a01b031633146106485760405162461bcd60e51b815260040161057290611e1d565b600681106106985760405162461bcd60e51b815260206004820152601e60248201527f4e65772042757920746178206861766520746f20626520756e646572203600006044820152606401610572565b60068190556040518181527f7dcc5c536517abaa6eb281914d04431307a734c37f1f9d4a0b6ea5776a455a2d9060200160405180910390a150565b600c54600160a01b900460ff1661072c5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610572565b4260085461025861073d9190611ec3565b106107bf5760405162461bcd60e51b815260206004820152604660248201527f5472616e73616374696f6e206c696d69742063616e206f6e6c79206265206c6960448201527f66746564203130206d696e732061667465722074726164696e6720697320656e606482015265185b989b195960d21b608482015260a401610572565b683635c9adc5a3053600600d8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b6000546001600160a01b0316331461082d5760405162461bcd60e51b815260040161057290611e1d565b6002600081905260016020527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f541580159061089e5750426001600083600281111561087b5761087b611f49565b600281111561088c5761088c611f49565b81526020019081526020016000205411155b6108ba5760405162461bcd60e51b815260040161057290611ded565b600c805460ff60a81b198116600160a81b9182900460ff1615909102179055600060018160025b60028111156108f2576108f2611f49565b815260208101919091526040016000205550565b6000546001600160a01b031633146109305760405162461bcd60e51b815260040161057290611e1d565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b0316331461097b5760405162461bcd60e51b815260040161057290611e1d565b4761098581611827565b50565b60006105ac33848461145f565b6000546001600160a01b031633146109bf5760405162461bcd60e51b815260040161057290611e1d565b600160008260028111156109d5576109d5611f49565b60028111156109e6576109e6611f49565b815260200190815260200160002054600014610a0157600080fd5b610a0e6202a30042611ec3565b600160008360028111156108e1576108e1611f49565b6000546001600160a01b03163314610a4e5760405162461bcd60e51b815260040161057290611e1d565b6000600160008360028111156108e1576108e1611f49565b6000546001600160a01b03163314610a905760405162461bcd60e51b815260040161057290611e1d565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae55760405162461bcd60e51b815260040161057290611e1d565b6001600081905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5415801590610b5657504260016000836002811115610b3357610b33611f49565b6002811115610b4457610b44611f49565b81526020019081526020016000205411155b610b725760405162461bcd60e51b815260040161057290611ded565b6001600160a01b038216610bc85760405162461bcd60e51b815260206004820181905260248201527f4d61726b6574696e672057616c6c65742063616e206e6f74206265207a65726f6044820152606401610572565b600980546001600160a01b0319166001600160a01b0384161790556000600181815b6002811115610bfb57610bfb611f49565b81526020810191909152604001600020555050565b6000546001600160a01b03163314610c3a5760405162461bcd60e51b815260040161057290611e1d565b30600090815260026020526040902054610985816118b3565b6000546001600160a01b03163314610c7d5760405162461bcd60e51b815260040161057290611e1d565b600c54600160a01b900460ff1615610cd75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610572565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610d143082683635c9adc5a305360061133b565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4d57600080fd5b505afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d859190611c09565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dcd57600080fd5b505afa158015610de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e059190611c09565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610e4d57600080fd5b505af1158015610e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e859190611c09565b600c80546001600160a01b039283166001600160a01b0319909116179055600b541663f305d7194730610ecd816001600160a01b031660009081526002602052604090205490565b600080610ee26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7e9190611d6a565b5050506103e8683635c9adc5a3053600610f989190611edb565b600d55600c8054600160a01b60ff60a01b19821617909155600b5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610ffe57600080fd5b505af1158015611012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110369190611cfa565b505042600855565b6000546001600160a01b031633146110685760405162461bcd60e51b815260040161057290611e1d565b600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4954158015906110d7575042600160008360028111156110b4576110b4611f49565b60028111156110c5576110c5611f49565b81526020019081526020016000205411155b6110f35760405162461bcd60e51b815260040161057290611ded565b600080546040516001600160a01b03808616939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b03841617815560018180610bea565b6000546001600160a01b0316331461117a5760405162461bcd60e51b815260040161057290611e1d565b6001600160a01b0382163014156111f25760405162461bcd60e51b815260206004820152603660248201527f596f752063616e2774207769746864726177206b61776120746f6b656e7320666044820152753937b69037bbb732b210313c9031b7b73a3930b1ba1760511b6064820152608401610572565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b15801561123457600080fd5b505afa158015611248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126c9190611d51565b9050808211156112af5760405162461bcd60e51b815260206004820152600e60248201526d62616c616e6365206973206c6f7760901b6044820152606401610572565b60095460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb90604401602060405180830381600087803b1580156112fd57600080fd5b505af1158015611311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113359190611cfa565b50505050565b6001600160a01b03831661139d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610572565b6001600160a01b0382166113fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610572565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114c15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610572565b806114e1846001600160a01b031660009081526002602052604090205490565b101561152f5760405162461bcd60e51b815260206004820152601a60248201527f42616c616e6365206c657373207468656e207472616e736665720000000000006044820152606401610572565b6001600160a01b03831660009081526005602052604090205460ff16156115985760405162461bcd60e51b815260206004820152601760248201527f426c61636b6c69737465642063616e27742074726164650000000000000000006044820152606401610572565b600060078190556001600160a01b03841681526004602052604090205460ff16806115db57506001600160a01b03821660009081526004602052604090205460ff165b6117dd57600c54600160a81b900460ff161561162d5760405162461bcd60e51b8152602060048201526011602482015270151c98591a5b99c81a5cc81c185d5cd959607a1b6044820152606401610572565b600d5481111561167f5760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e7420657863656564206d61782074726e7820616d6f756e740000006044820152606401610572565b600c546001600160a01b0383811691161461173d576116a86032683635c9adc5a3053600611edb565b60646006546116b79190611edb565b6116c2906001611f1c565b6116cc9083611efd565b6001600160a01b0384166000908152600260205260409020546116ef9190611ec3565b111561173d5760405162461bcd60e51b815260206004820152601960248201527f6d61782057616c6c6574206c696d6974206578636565646564000000000000006044820152606401610572565b47670de0b6b3a76400008111156117575761175747611827565b600c546001600160a01b0385811691161415611778576006546007556117db565b600c546001600160a01b03848116911614156117db57600960075530600090815260026020526040902054600a54600160a01b900460ff166117d9576117c96103e8683635c9adc5a3053600611edb565b8111156117d9576117d9816118b3565b505b505b6117e8838383611a3c565b505050565b600081848411156118115760405162461bcd60e51b81526004016105729190611d98565b50600061181e8486611f1c565b95945050505050565b600a546001600160a01b03166108fc606461184384600e611efd565b61184d9190611edb565b6040518115909202916000818181858888f19350505050158015611875573d6000803e3d6000fd5b506009546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156118af573d6000803e3d6000fd5b5050565b600a805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118fb576118fb611f5f565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119879190611c09565b8160018151811061199a5761199a611f5f565b6001600160a01b039283166020918202929092010152600b546119c0913091168461133b565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906119f9908590600090869030904290600401611e52565b600060405180830381600087803b158015611a1357600080fd5b505af1158015611a27573d6000803e3d6000fd5b5050600a805460ff60a01b1916905550505050565b6000606460075483611a4e9190611efd565b611a589190611edb565b90506000611a668284611f1c565b6001600160a01b038616600090815260026020526040902054909150611a8c9084611b44565b6001600160a01b038087166000908152600260205260408082209390935590861681522054611abb9082611b8d565b6001600160a01b038516600090815260026020526040808220929092553081522054611ae79083611b8d565b3060009081526002602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000611b8683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117ed565b9392505050565b600080611b9a8385611ec3565b905083811015611b865760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610572565b600060208284031215611bfe57600080fd5b8135611b8681611f75565b600060208284031215611c1b57600080fd5b8151611b8681611f75565b60008060408385031215611c3957600080fd5b8235611c4481611f75565b91506020830135611c5481611f75565b809150509250929050565b600080600060608486031215611c7457600080fd5b8335611c7f81611f75565b92506020840135611c8f81611f75565b929592945050506040919091013590565b60008060408385031215611cb357600080fd5b8235611cbe81611f75565b91506020830135611c5481611f8a565b60008060408385031215611ce157600080fd5b8235611cec81611f75565b946020939093013593505050565b600060208284031215611d0c57600080fd5b8151611b8681611f8a565b600060208284031215611d2957600080fd5b813560038110611b8657600080fd5b600060208284031215611d4a57600080fd5b5035919050565b600060208284031215611d6357600080fd5b5051919050565b600080600060608486031215611d7f57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611dc557858101830151858201604001528201611da9565b81811115611dd7576000604083870101525b50601f01601f1916929092016040019392505050565b602080825260169082015275119d5b98dd1a5bdb881a5cc81d1a5b595b1bd8dad95960521b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea25784516001600160a01b031683529383019391830191600101611e7d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ed657611ed6611f33565b500190565b600082611ef857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f1757611f17611f33565b500290565b600082821015611f2e57611f2e611f33565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461098557600080fd5b801515811461098557600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d0a32cd3daf9cb8a89fc0b5a827e53bc9cee971447c40faea0527f9ed0622c664736f6c634300080700334d61726b6574696e672057616c6c65742063616e206e6f74206265207a65726f000000000000000000000000d0b84202bd02eb1b9f62b30de1d8985f65d8dfb3000000000000000000000000d6bd989bebdb03c95a4a6922bdb4f4ee5f1cf495

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000d0b84202bd02eb1b9f62b30de1d8985f65d8dfb3000000000000000000000000d6bd989bebdb03c95a4a6922bdb4f4ee5f1cf495

-----Decoded View---------------
Arg [0] : _add1 (address): 0xd0b84202bd02eb1b9f62b30de1d8985f65d8dfb3
Arg [1] : _add2 (address): 0xd6bd989bebdb03c95a4a6922bdb4f4ee5f1cf495

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d0b84202bd02eb1b9f62b30de1d8985f65d8dfb3
Arg [1] : 000000000000000000000000d6bd989bebdb03c95a4a6922bdb4f4ee5f1cf495


Deployed ByteCode Sourcemap

3351:9655:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5421:85;;;;;;;;;;-1:-1:-1;5493:5:0;;;;;;;;;;;;-1:-1:-1;;;5493:5:0;;;;5421:85;;;;;;;:::i;:::-;;;;;;;;10566:102;;;;;;;;;;-1:-1:-1;10566:102:0;;;;;:::i;:::-;;:::i;:::-;;6266:163;;;;;;;;;;-1:-1:-1;6266:163:0;;;;;:::i;:::-;;:::i;:::-;;;5745:14:1;;5738:22;5720:41;;5708:2;5693:18;6266:163:0;5580:187:1;5704:97:0;;;;;;;;;;-1:-1:-1;3709:16:0;5704:97;;;13243:25:1;;;13231:2;13216:18;5704:97:0;13097:177:1;6561:315:0;;;;;;;;;;-1:-1:-1;6561:315:0;;;;;:::i;:::-;;:::i;12472:206::-;;;;;;;;;;-1:-1:-1;12472:206:0;;;;;:::i;:::-;;:::i;9256:315::-;;;;;;;;;;;;;:::i;5611:85::-;;;;;;;;;;-1:-1:-1;5611:85:0;;4228:1;14406:36:1;;14394:2;14379:18;5611:85:0;14264:184:1;6437:116:0;;;;;;;;;;-1:-1:-1;6437:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;6520:25:0;6497:4;6520:25;;;:18;:25;;;;;;;;;6437:116;11089:146;;;;;;;;;;;;;:::i;10979:102::-;;;;;;;;;;-1:-1:-1;10979:102:0;;;;;:::i;:::-;;:::i;12851:152::-;;;;;;;;;;;;;:::i;5809:117::-;;;;;;;;;;-1:-1:-1;5809:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;5902:16:0;5875:7;5902:16;;;:7;:16;;;;;;;5809:117;1825:79;;;;;;;;;;-1:-1:-1;1863:7:0;1890:6;1825:79;;-1:-1:-1;;;;;1890:6:0;;;4031:51:1;;4019:2;4004:18;1825:79:0;3885:203:1;5514:89:0;;;;;;;;;;-1:-1:-1;5588:7:0;;;;;;;;;;;;-1:-1:-1;;;5588:7:0;;;;5514:89;;5934:169;;;;;;;;;;-1:-1:-1;5934:169:0;;;;;:::i;:::-;;:::i;4615:164::-;;;;;;;;;;-1:-1:-1;4615:164:0;;;;;:::i;:::-;;:::i;4788:96::-;;;;;;;;;;-1:-1:-1;4788:96:0;;;;;:::i;:::-;;:::i;11798:164::-;;;;;;;;;;-1:-1:-1;11798:164:0;;;;;:::i;:::-;;:::i;10680:291::-;;;;;;;;;;-1:-1:-1;10680:291:0;;;;;:::i;:::-;;:::i;2349:45::-;;;;;;;;;;-1:-1:-1;2349:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;12686:153;;;;;;;;;;;;;:::i;9763:791::-;;;;;;;;;;;;;:::i;6111:147::-;;;;;;;;;;-1:-1:-1;6111:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;6222:19:0;;;6195:7;6222:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6111:147;2039:240;;;;;;;;;;-1:-1:-1;2039:240:0;;;;;:::i;:::-;;:::i;12011:403::-;;;;;;;;;;-1:-1:-1;12011:403:0;;;;;:::i;:::-;;:::i;10566:102::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10639:14:0::1;;::::0;;;:4:::1;:14;::::0;;;;:21;;-1:-1:-1;;10639:21:0::1;10656:4;10639:21;::::0;;10566:102::o;6266:163::-;6343:4;6360:39;181:10;6383:7;6392:6;6360:8;:39::i;:::-;-1:-1:-1;6417:4:0;6266:163;;;;:::o;6561:315::-;6661:4;6678:36;6688:6;6696:9;6707:6;6678:9;:36::i;:::-;6725:121;6734:6;181:10;6756:89;6794:6;6756:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6756:19:0;;;;;;:11;:19;;;;;;;;181:10;6756:33;;;;;;;;;;:37;:89::i;:::-;6725:8;:121::i;:::-;-1:-1:-1;6864:4:0;6561:315;;;;;:::o;12472:206::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;12564:1:::1;12551:10;:14;12543:56;;;::::0;-1:-1:-1;;;12543:56:0;;11051:2:1;12543:56:0::1;::::0;::::1;11033:21:1::0;11090:2;11070:18;;;11063:30;11129:32;11109:18;;;11102:60;11179:18;;12543:56:0::1;10849:354:1::0;12543:56:0::1;12610:6;:19:::0;;;12645:25:::1;::::0;13243::1;;;12645::0::1;::::0;13231:2:1;13216:18;12645:25:0::1;;;;;;;12472:206:::0;:::o;9256:315::-;9304:11;;-1:-1:-1;;;9304:11:0;;;;9296:49;;;;-1:-1:-1;;;9296:49:0;;6576:2:1;9296:49:0;;;6558:21:1;6615:2;6595:18;;;6588:30;6654:28;6634:18;;;6627:56;6700:18;;9296:49:0;6374:350:1;9296:49:0;9397:15;9364:17;;9383:10;9364:29;;;;:::i;:::-;:48;9356:130;;;;-1:-1:-1;;;9356:130:0;;7685:2:1;9356:130:0;;;7667:21:1;7724:2;7704:18;;;7697:30;7763:34;7743:18;;;7736:62;7834:34;7814:18;;;7807:62;-1:-1:-1;;;7885:19:1;;;7878:37;7932:19;;9356:130:0;7483:474:1;9356:130:0;3709:16;9497:12;:22;;;9536:27;;13243:25:1;;;9536:27:0;;13231:2:1;13216:18;9536:27:0;;;;;;;9256:315::o;11089:146::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;11144:15:::1;2464;::::0;;;:8:::1;:15;::::0;;;:20;;::::1;::::0;:58:::1;;;2507:15;2488:8;:15;2497:5;2488:15;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;2464:58;2446:118;;;;-1:-1:-1::0;;;2446:118:0::1;;;;;;;:::i;:::-;11181:6:::2;::::0;;-1:-1:-1;;;;11171:16:0;::::2;-1:-1:-1::0;;;11181:6:0;;;::::2;;;11180:7;11171:16:::0;;::::2;;::::0;;-1:-1:-1;;;11207:15:0::2;11198:25;;;;;;;;;:::i;:::-;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;11198:25:0;:29;-1:-1:-1;11089:146:0:o;10979:102::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11053:12:0::1;11068:5;11053:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;11053:20:0::1;::::0;;10979:102::o;12851:152::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;12931:21:::1;12963:32;12931:21:::0;12963:12:::1;:32::i;:::-;12891:112;12851:152::o:0;5934:169::-;6014:4;6031:42;181:10;6055:9;6066:6;6031:9;:42::i;4615:164::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;4694:8:::1;:15;4703:5;4694:15;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4713:1;4694:20;4686:29;;;::::0;::::1;;4744:27;3998:6;4744:15;:27;:::i;:::-;4726:8;:15;4735:5;4726:15;;;;;;;;:::i;4788:96::-:0;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;4875:1:::1;4857:8;:15;4866:5;4857:15;;;;;;;;:::i;11798:164::-:0;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11921:25:0;;;::::1;;::::0;;;:18:::1;:25;::::0;;;;:33;;-1:-1:-1;;11921:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11798:164::o;10680:291::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;10767:28:::1;2464:15;::::0;;;::::1;::::0;;;;;:20;;::::1;::::0;:58:::1;;;2507:15;2488:8;:15;2497:5;2488:15;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;2464:58;2446:118;;;;-1:-1:-1::0;;;2446:118:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10815:22:0;::::2;10807:66;;;::::0;-1:-1:-1;;;10807:66:0;;9218:2:1;10807:66:0::2;::::0;::::2;9200:21:1::0;;;9237:18;;;9230:30;9296:34;9276:18;;;9269:62;9348:18;;10807:66:0::2;9016:356:1::0;10807:66:0::2;10884:15;:26:::0;;-1:-1:-1;;;;;;10884:26:0::2;-1:-1:-1::0;;;;;10884:26:0;::::2;;::::0;;-1:-1:-1;;;;10921:38:0::2;;;;;;;;;:::i;:::-;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;10921:38:0;:42;-1:-1:-1;;10680:291:0:o;12686:153::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;12781:4:::1;12737:23;5902:16:::0;;;:7;:16;;;;;;12798:33:::1;5902:16:::0;12798::::1;:33::i;9763:791::-:0;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;9825:11:::1;::::0;-1:-1:-1;;;9825:11:0;::::1;;;9824:12;9816:47;;;::::0;-1:-1:-1;;;9816:47:0;;12170:2:1;9816:47:0::1;::::0;::::1;12152:21:1::0;12209:2;12189:18;;;12182:30;12248:25;12228:18;;;12221:53;12291:18;;9816:47:0::1;11968:347:1::0;9816:47:0::1;9985:15;:34:::0;;-1:-1:-1;;;;;;9985:34:0::1;9931:42;9985:34:::0;;::::1;::::0;;;10030:58:::1;10047:4;9931:42:::0;3709:16:::1;10030:8;:58::i;:::-;10133:16;-1:-1:-1::0;;;;;10133:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10115:56:0::1;;10180:4;10187:16;-1:-1:-1::0;;;;;10187:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10115:96;::::0;-1:-1:-1;;;;;;10115:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4610:15:1;;;10115:96:0::1;::::0;::::1;4592:34:1::0;4662:15;;4642:18;;;4635:43;4527:18;;10115:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10099:13;:112:::0;;-1:-1:-1;;;;;10099:112:0;;::::1;-1:-1:-1::0;;;;;;10099:112:0;;::::1;;::::0;;10222:15:::1;::::0;::::1;:31;10261:21;10292:4;10298:24;10292:4:::0;-1:-1:-1;;;;;5902:16:0;5875:7;5902:16;;;:7;:16;;;;;;;5809:117;10298:24:::1;10323:1;10325::::0;10327:7:::1;1863::::0;1890:6;-1:-1:-1;;;;;1890:6:0;;1825:79;10327:7:::1;10222:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10222:129:0;;;-1:-1:-1;;;;;5327:15:1;;;10222:129:0::1;::::0;::::1;5309:34:1::0;5359:18;;;5352:34;;;;5402:18;;;5395:34;;;;5445:18;;;5438:34;5509:15;;;5488:19;;;5481:44;10335:15:0::1;5541:19:1::0;;;5534:35;5243:19;;10222:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10385:4;3709:16;10377:12;;;;:::i;:::-;10362;:27:::0;10400:11:::1;:18:::0;;-1:-1:-1;;;;;;;10400:18:0;::::1;;::::0;;;10467:15:::1;::::0;10429:71:::1;::::0;-1:-1:-1;;;10429:71:0;;-1:-1:-1;;;;;10467:15:0;;::::1;10429:71;::::0;::::1;4275:51:1::0;-1:-1:-1;;4342:18:1;;;4335:34;10436:13:0;;;10429:29:::1;::::0;4248:18:1;;10429:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10531:15:0::1;10511:17;:35:::0;9763:791::o;2039:240::-;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;2113:25:::1;2464:15:::0;;;:8:::1;:15;::::0;;;:20;;::::1;::::0;:58:::1;;;2507:15;2488:8;:15;2497:5;2488:15;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;2464:58;2446:118;;;;-1:-1:-1::0;;;2446:118:0::1;;;;;;;:::i;:::-;2176:6:::2;::::0;;2155:38:::2;::::0;-1:-1:-1;;;;;2155:38:0;;::::2;::::0;2176:6;::::2;::::0;2155:38:::2;::::0;::::2;2204:6;:17:::0;;-1:-1:-1;;;;;;2204:17:0::2;-1:-1:-1::0;;;;;2204:17:0;::::2;;::::0;;-1:-1:-1;2204:6:0;;2232:35:::2;::::0;12011:403;1952:6;;-1:-1:-1;;;;;1952:6:0;181:10;1952:22;1944:67;;;;-1:-1:-1;;;1944:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12143:30:0;::::1;12167:4;12143:30;;12135:96;;;::::0;-1:-1:-1;;;12135:96:0;;12522:2:1;12135:96:0::1;::::0;::::1;12504:21:1::0;12561:2;12541:18;;;12534:30;12600:34;12580:18;;;12573:62;-1:-1:-1;;;12651:18:1;;;12644:52;12713:19;;12135:96:0::1;12320:418:1::0;12135:96:0::1;12266:30;::::0;-1:-1:-1;;;12266:30:0;;12290:4:::1;12266:30;::::0;::::1;4031:51:1::0;12243:20:0::1;::::0;-1:-1:-1;;;;;12266:15:0;::::1;::::0;::::1;::::0;4004:18:1;;12266:30:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12243:53;;12325:12;12315:6;:22;;12307:49;;;::::0;-1:-1:-1;;;12307:49:0;;9937:2:1;12307:49:0::1;::::0;::::1;9919:21:1::0;9976:2;9956:18;;;9949:30;-1:-1:-1;;;9995:18:1;;;9988:44;10049:18;;12307:49:0::1;9735:338:1::0;12307:49:0::1;12382:15;::::0;12367:39:::1;::::0;-1:-1:-1;;;12367:39:0;;-1:-1:-1;;;;;12382:15:0;;::::1;12367:39;::::0;::::1;4275:51:1::0;4342:18;;;4335:34;;;12367:14:0;;::::1;::::0;::::1;::::0;4248:18:1;;12367:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12082:332;12011:403:::0;;:::o;6884:339::-;-1:-1:-1;;;;;6978:20:0;;6970:69;;;;-1:-1:-1;;;6970:69:0;;11765:2:1;6970:69:0;;;11747:21:1;11804:2;11784:18;;;11777:30;11843:34;11823:18;;;11816:62;-1:-1:-1;;;11894:18:1;;;11887:34;11938:19;;6970:69:0;11563:400:1;6970:69:0;-1:-1:-1;;;;;7058:21:0;;7050:68;;;;-1:-1:-1;;;7050:68:0;;7282:2:1;7050:68:0;;;7264:21:1;7321:2;7301:18;;;7294:30;7360:34;7340:18;;;7333:62;-1:-1:-1;;;7411:18:1;;;7404:32;7453:19;;7050:68:0;7080:398:1;7050:68:0;-1:-1:-1;;;;;7129:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;7182:33;;13243:25:1;;;7182:33:0;;13216:18:1;7182:33:0;;;;;;;6884:339;;;:::o;7231:1520::-;7328:1;7319:6;:10;7311:64;;;;-1:-1:-1;;;7311:64:0;;10641:2:1;7311:64:0;;;10623:21:1;10680:2;10660:18;;;10653:30;10719:34;10699:18;;;10692:62;-1:-1:-1;;;10770:18:1;;;10763:39;10819:19;;7311:64:0;10439:405:1;7311:64:0;7413:6;7394:15;7404:4;-1:-1:-1;;;;;5902:16:0;5875:7;5902:16;;;:7;:16;;;;;;;5809:117;7394:15;:25;;7386:63;;;;-1:-1:-1;;;7386:63:0;;11410:2:1;7386:63:0;;;11392:21:1;11449:2;11429:18;;;11422:30;11488:28;11468:18;;;11461:56;11534:18;;7386:63:0;11208:350:1;7386:63:0;-1:-1:-1;;;;;7469:10:0;;;;;;:4;:10;;;;;;;;7468:11;7460:46;;;;-1:-1:-1;;;7460:46:0;;8520:2:1;7460:46:0;;;8502:21:1;8559:2;8539:18;;;8532:30;8598:25;8578:18;;;8571:53;8641:18;;7460:46:0;8318:347:1;7460:46:0;7523:1;7517:3;:7;;;-1:-1:-1;;;;;7541:24:0;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;7569:22:0;;;;;;:18;:22;;;;;;;;7541:50;7535:1168;;7631:6;;-1:-1:-1;;;7631:6:0;;;;7630:7;7622:36;;;;-1:-1:-1;;;7622:36:0;;8872:2:1;7622:36:0;;;8854:21:1;8911:2;8891:18;;;8884:30;-1:-1:-1;;;8930:18:1;;;8923:47;8987:18;;7622:36:0;8670:341:1;7622:36:0;7691:12;;7681:6;:22;;7673:63;;;;-1:-1:-1;;;7673:63:0;;9579:2:1;7673:63:0;;;9561:21:1;9618:2;9598:18;;;9591:30;9657:31;9637:18;;;9630:59;9706:18;;7673:63:0;9377:353:1;7673:63:0;7762:13;;-1:-1:-1;;;;;7756:19:0;;;7762:13;;7756:19;7753:181;;3797:10;3805:2;3709:16;3797:10;:::i;:::-;7871:3;7864:6;;:10;;;;:::i;:::-;7861:14;;:1;:14;:::i;:::-;7853:23;;:6;:23;:::i;:::-;-1:-1:-1;;;;;5902:16:0;;5875:7;5902:16;;;:7;:16;;;;;;7837:39;;;;:::i;:::-;:52;;7829:89;;;;-1:-1:-1;;;7829:89:0;;12945:2:1;7829:89:0;;;12927:21:1;12984:2;12964:18;;;12957:30;13023:27;13003:18;;;12996:55;13068:18;;7829:89:0;12743:349:1;7829:89:0;7977:21;8037:7;8016:28;;8013:155;;;8117:35;8130:21;8117:12;:35::i;:::-;8193:13;;-1:-1:-1;;;;;8185:21:0;;;8193:13;;8185:21;8182:493;;;8251:6;;8245:3;:12;8182:493;;;8302:13;;-1:-1:-1;;;;;8296:19:0;;;8302:13;;8296:19;8293:382;;;3883:1;8364:3;:13;8445:4;8396:28;5902:16;;;:7;:16;;;;;;8474:6;;-1:-1:-1;;;8474:6:0;;;;8470:190;;8530:12;8538:4;3709:16;8530:12;:::i;:::-;8507:20;:35;8504:137;;;8579:38;8596:20;8579:16;:38::i;:::-;8316:359;8293:382;7595:1108;7535:1168;8713:30;8728:4;8733:2;8736:6;8713:14;:30::i;:::-;7231:1520;;;:::o;1238:190::-;1324:7;1360:12;1352:6;;;;1344:29;;;;-1:-1:-1;;;1344:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1384:9:0;1396:5;1400:1;1396;:5;:::i;:::-;1384:17;1238:190;-1:-1:-1;;;;;1238:190:0:o;9579:166::-;9636:9;;-1:-1:-1;;;;;9636:9:0;:35;9667:3;9656:9;:6;9663:2;9656:9;:::i;:::-;9655:15;;;;:::i;:::-;9636:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9682:15:0;;:47;;-1:-1:-1;;;;;9682:15:0;;;;9707:21;9682:47;;;;;:15;:47;:15;:47;9707:21;9682:15;:47;;;;;;;;;;;;;;;;;;;;;9579:166;:::o;8761:483::-;4308:6;:13;;-1:-1:-1;;;;4308:13:0;-1:-1:-1;;;4308:13:0;;;8863:16:::1;::::0;;8877:1:::1;8863:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8863:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8863:16:0::1;8839:40;;8908:4;8890;8895:1;8890:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8890:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8934:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8934:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8890:7;;8934:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8924:4;8929:1;8924:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8924:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8999:15:::1;::::0;8967:62:::1;::::0;8984:4:::1;::::0;8999:15:::1;9017:11:::0;8967:8:::1;:62::i;:::-;9040:15;::::0;:196:::1;::::0;-1:-1:-1;;;9040:196:0;;-1:-1:-1;;;;;9040:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9121:11;;9040:15:::1;::::0;9163:4;;9190::::1;::::0;9210:15:::1;::::0;9040:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4344:6:0;:14;;-1:-1:-1;;;;4344:14:0;;;-1:-1:-1;;;;8761:483:0:o;11243:547::-;11347:13;11374:3;11370;;11363:6;:10;;;;:::i;:::-;:14;;;;:::i;:::-;11347:30;-1:-1:-1;11405:23:0;11431:14;11347:30;11431:6;:14;:::i;:::-;-1:-1:-1;;;;;11485:15:0;;;;;;:7;:15;;;;;;11405:40;;-1:-1:-1;11485:27:0;;11505:6;11485:19;:27::i;:::-;-1:-1:-1;;;;;11467:15:0;;;;;;;:7;:15;;;;;;:45;;;;11566:18;;;;;;;:39;;11589:15;11566:22;:39::i;:::-;-1:-1:-1;;;;;11545:18:0;;;;;;:7;:18;;;;;;:60;;;;11677:4;11661:22;;;;:33;;11688:5;11661:26;:33::i;:::-;11652:4;11636:22;;;;:7;:22;;;;;;;;;:58;;;;11738:44;13243:25:1;;;-1:-1:-1;;;;;11738:44:0;;;;;;;;;;13216:18:1;11738:44:0;;;;;;;11326:464;;11243:547;;;:::o;1094:136::-;1152:7;1179:43;1183:1;1186;1179:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1172:50;1094:136;-1:-1:-1;;;1094:136:0:o;907:179::-;965:7;;997:5;1001:1;997;:5;:::i;:::-;985:17;;1026:1;1021;:6;;1013:46;;;;-1:-1:-1;;;1013:46:0;;8164:2:1;1013:46:0;;;8146:21:1;8203:2;8183:18;;;8176:30;8242:29;8222:18;;;8215:57;8289:18;;1013:46:0;7962:351:1;14:247;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;782:388::-;850:6;858;911:2;899:9;890:7;886:23;882:32;879:52;;;927:1;924;917:12;879:52;966:9;953:23;985:31;1010:5;985:31;:::i;:::-;1035:5;-1:-1:-1;1092:2:1;1077:18;;1064:32;1105:33;1064:32;1105:33;:::i;:::-;1157:7;1147:17;;;782:388;;;;;:::o;1175:456::-;1252:6;1260;1268;1321:2;1309:9;1300:7;1296:23;1292:32;1289:52;;;1337:1;1334;1327:12;1289:52;1376:9;1363:23;1395:31;1420:5;1395:31;:::i;:::-;1445:5;-1:-1:-1;1502:2:1;1487:18;;1474:32;1515:33;1474:32;1515:33;:::i;:::-;1175:456;;1567:7;;-1:-1:-1;;;1621:2:1;1606:18;;;;1593:32;;1175:456::o;1636:382::-;1701:6;1709;1762:2;1750:9;1741:7;1737:23;1733:32;1730:52;;;1778:1;1775;1768:12;1730:52;1817:9;1804:23;1836:31;1861:5;1836:31;:::i;:::-;1886:5;-1:-1:-1;1943:2:1;1928:18;;1915:32;1956:30;1915:32;1956:30;:::i;2023:315::-;2091:6;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2207:9;2194:23;2226:31;2251:5;2226:31;:::i;:::-;2276:5;2328:2;2313:18;;;;2300:32;;-1:-1:-1;;;2023:315:1:o;2343:245::-;2410:6;2463:2;2451:9;2442:7;2438:23;2434:32;2431:52;;;2479:1;2476;2469:12;2431:52;2511:9;2505:16;2530:28;2552:5;2530:28;:::i;2926:269::-;2998:6;3051:2;3039:9;3030:7;3026:23;3022:32;3019:52;;;3067:1;3064;3057:12;3019:52;3106:9;3093:23;3145:1;3138:5;3135:12;3125:40;;3161:1;3158;3151:12;3200:180;3259:6;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;-1:-1:-1;3351:23:1;;3200:180;-1:-1:-1;3200:180:1:o;3385:184::-;3455:6;3508:2;3496:9;3487:7;3483:23;3479:32;3476:52;;;3524:1;3521;3514:12;3476:52;-1:-1:-1;3547:16:1;;3385:184;-1:-1:-1;3385:184:1:o;3574:306::-;3662:6;3670;3678;3731:2;3719:9;3710:7;3706:23;3702:32;3699:52;;;3747:1;3744;3737:12;3699:52;3776:9;3770:16;3760:26;;3826:2;3815:9;3811:18;3805:25;3795:35;;3870:2;3859:9;3855:18;3849:25;3839:35;;3574:306;;;;;:::o;5772:597::-;5884:4;5913:2;5942;5931:9;5924:21;5974:6;5968:13;6017:6;6012:2;6001:9;5997:18;5990:34;6042:1;6052:140;6066:6;6063:1;6060:13;6052:140;;;6161:14;;;6157:23;;6151:30;6127:17;;;6146:2;6123:26;6116:66;6081:10;;6052:140;;;6210:6;6207:1;6204:13;6201:91;;;6280:1;6275:2;6266:6;6255:9;6251:22;6247:31;6240:42;6201:91;-1:-1:-1;6353:2:1;6332:15;-1:-1:-1;;6328:29:1;6313:45;;;;6360:2;6309:54;;5772:597;-1:-1:-1;;;5772:597:1:o;6729:346::-;6931:2;6913:21;;;6970:2;6950:18;;;6943:30;-1:-1:-1;;;7004:2:1;6989:18;;6982:52;7066:2;7051:18;;6729:346::o;10078:356::-;10280:2;10262:21;;;10299:18;;;10292:30;10358:34;10353:2;10338:18;;10331:62;10425:2;10410:18;;10078:356::o;13279:980::-;13541:4;13589:3;13578:9;13574:19;13620:6;13609:9;13602:25;13646:2;13684:6;13679:2;13668:9;13664:18;13657:34;13727:3;13722:2;13711:9;13707:18;13700:31;13751:6;13786;13780:13;13817:6;13809;13802:22;13855:3;13844:9;13840:19;13833:26;;13894:2;13886:6;13882:15;13868:29;;13915:1;13925:195;13939:6;13936:1;13933:13;13925:195;;;14004:13;;-1:-1:-1;;;;;14000:39:1;13988:52;;14095:15;;;;14060:12;;;;14036:1;13954:9;13925:195;;;-1:-1:-1;;;;;;;14176:32:1;;;;14171:2;14156:18;;14149:60;-1:-1:-1;;;14240:3:1;14225:19;14218:35;14137:3;13279:980;-1:-1:-1;;;13279:980:1:o;14453:128::-;14493:3;14524:1;14520:6;14517:1;14514:13;14511:39;;;14530:18;;:::i;:::-;-1:-1:-1;14566:9:1;;14453:128::o;14586:217::-;14626:1;14652;14642:132;;14696:10;14691:3;14687:20;14684:1;14677:31;14731:4;14728:1;14721:15;14759:4;14756:1;14749:15;14642:132;-1:-1:-1;14788:9:1;;14586:217::o;14808:168::-;14848:7;14914:1;14910;14906:6;14902:14;14899:1;14896:21;14891:1;14884:9;14877:17;14873:45;14870:71;;;14921:18;;:::i;:::-;-1:-1:-1;14961:9:1;;14808:168::o;14981:125::-;15021:4;15049:1;15046;15043:8;15040:34;;;15054:18;;:::i;:::-;-1:-1:-1;15091:9:1;;14981:125::o;15111:127::-;15172:10;15167:3;15163:20;15160:1;15153:31;15203:4;15200:1;15193:15;15227:4;15224:1;15217:15;15243:127;15304:10;15299:3;15295:20;15292:1;15285:31;15335:4;15332:1;15325:15;15359:4;15356:1;15349:15;15375:127;15436:10;15431:3;15427:20;15424:1;15417:31;15467:4;15464:1;15457:15;15491:4;15488:1;15481:15;15639:131;-1:-1:-1;;;;;15714:31:1;;15704:42;;15694:70;;15760:1;15757;15750:12;15775:118;15861:5;15854:13;15847:21;15840:5;15837:32;15827:60;;15883:1;15880;15873:12

Swarm Source

ipfs://5d0a32cd3daf9cb8a89fc0b5a827e53bc9cee971447c40faea0527f9ed0622c6

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.