ETH Price: $3,664.62 (+2.14%)

Token

ERC-20: Kaeru蛙 (KAERU蛙)
 

Overview

Max Total Supply

690,000,000,000,000 KAERU蛙

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
24,290,360,588,991.775152144 KAERU蛙

Value
$0.00
0x603602E9A2ac7f1E26717C2b2193Fd68f5fafFf6
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:
KaeruCoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
Website: 
https://kaeru蛙.tech/

Telegram:
https://t.me/KaeruCoin

Twitter:
https://twitter.com/Kaeru_Coin
*/

pragma solidity 0.8.20;

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

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

}

contract Ownable is Context {
    address private _owner;
    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);
    }

}

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 KaeruCoin is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;
   uint256 public  buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;
 
    uint256 public  sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;
 
    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 690000000000000 * 10**_decimals;
    string private constant _name = unicode"Kaeru蛙";
    string private constant _symbol = unicode"KAERU蛙";
    uint256 public _maxTxAmount = 690000000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 690000000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 690000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 69000000 * 10**_decimals;

        uint256 _buyMarketingFee =  2;
        uint256 _buyLiquidityFee =  1;
        uint256 _buyDevFee = 0;
 
        uint256 _sellMarketingFee =  2;
        uint256 _sellLiquidityFee =  1;
        uint256 _sellDevFee = 0;

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

        function updateBuyFees(
        uint256 _devFee,
        uint256 _liquidityFee,
        uint256 _marketingFee
    ) external onlyOwner {
        buyDevFee = _devFee;
        buyLiquidityFee = _liquidityFee;
        buyMarketingFee = _marketingFee;
        buyTotalFees = buyDevFee + buyLiquidityFee + buyMarketingFee;
        require(buyTotalFees <= 100);
    }

    function updateSellFees(
        uint256 _devFee,
        uint256 _liquidityFee,
        uint256 _marketingFee
    ) external onlyOwner {
        sellDevFee = _devFee;
        sellLiquidityFee = _liquidityFee;
        sellMarketingFee = _marketingFee;
        sellTotalFees = sellDevFee + sellLiquidityFee + sellMarketingFee;
        require(sellTotalFees <= 100);
    }

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _balances[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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(buyTotalFees).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(sellTotalFees).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>buyTotalFees) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_taxSwapThreshold","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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff191660011790556200001f6009600a6200034c565b62000032906602738d24e5200062000363565b601255620000436009600a6200034c565b62000056906602738d24e5200062000363565b601355620000676009600a6200034c565b6200007790632920908062000363565b601455620000886009600a6200034c565b620000989063041cdb4062000363565b60155560026016819055600160178190555f6018819055601992909255601a55601b55601d805461ffff60a81b19169055348015620000d5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191661010033021790556200013b6009600a6200034c565b6200014e906602738d24e5200062000363565b335f908152600160208190526040822092909255600390620001775f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001da3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002136009600a6200034c565b62000226906602738d24e5200062000363565b60405190815260200160405180910390a36200037d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029157815f19048211156200027557620002756200023d565b808516156200028357918102915b93841c939080029062000256565b509250929050565b5f82620002a95750600162000346565b81620002b757505f62000346565b8160018114620002d05760028114620002db57620002fb565b600191505062000346565b60ff841115620002ef57620002ef6200023d565b50506001821b62000346565b5060208310610133831016604e8410600b841016171562000320575081810a62000346565b6200032c838362000251565b805f19048211156200034257620003426200023d565b0290505b92915050565b5f6200035c60ff84168362000299565b9392505050565b80820281158282048414176200034657620003466200023d565b611a96806200038b5f395ff3fe6080604052600436106101de575f3560e01c80638da5cb5b116100fd578063bf474bed11610092578063d85ba06311610062578063d85ba06314610504578063dd62ed3e14610519578063f11a24d31461055d578063f637434214610572575f80fd5b8063bf474bed146104a3578063c17b5b8c146104b8578063c876d0b9146104d7578063c9567bf9146104f0575f80fd5b80639c3b4fdc116100cd5780639c3b4fdc146104455780639fccce321461045a578063a0d82dc51461046f578063a9059cbb14610484575f80fd5b80638da5cb5b146103c55780638f9a55c0146103eb578063921369131461040057806395d89b4114610415575f80fd5b806351bc3c8511610173578063751039fc11610143578063751039fc146103685780637bce5a041461037c5780637d1db4a5146103915780638095d564146103a6575f80fd5b806351bc3c85146102f55780636a486a8e1461030b57806370a0823114610320578063715018a614610354575f80fd5b80631a8145bb116101ae5780631a8145bb146102915780631f3fed8f146102a657806323b872dd146102bb578063313ce567146102da575f80fd5b806306fdde03146101e9578063095ea7b31461022b5780630faee56f1461025a57806318160ddd1461027d575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260088152674b61657275e89b9960c01b60208201525b6040516102229190611678565b60405180910390f35b348015610236575f80fd5b5061024a6102453660046116da565b610587565b6040519015158152602001610222565b348015610265575f80fd5b5061026f60155481565b604051908152602001610222565b348015610288575f80fd5b5061026f61059d565b34801561029c575f80fd5b5061026f60105481565b3480156102b1575f80fd5b5061026f600f5481565b3480156102c6575f80fd5b5061024a6102d5366004611704565b6105c0565b3480156102e5575f80fd5b5060405160098152602001610222565b348015610300575f80fd5b50610309610627565b005b348015610316575f80fd5b5061026f600b5481565b34801561032b575f80fd5b5061026f61033a366004611742565b6001600160a01b03165f9081526001602052604090205490565b34801561035f575f80fd5b5061030961067d565b348015610373575f80fd5b506103096106f7565b348015610387575f80fd5b5061026f60085481565b34801561039c575f80fd5b5061026f60125481565b3480156103b1575f80fd5b506103096103c036600461175d565b6107bb565b3480156103d0575f80fd5b505f546040516001600160a01b039091168152602001610222565b3480156103f6575f80fd5b5061026f60135481565b34801561040b575f80fd5b5061026f600c5481565b348015610420575f80fd5b506040805180820190915260088152674b41455255e89b9960c01b6020820152610215565b348015610450575f80fd5b5061026f600a5481565b348015610465575f80fd5b5061026f60115481565b34801561047a575f80fd5b5061026f600e5481565b34801561048f575f80fd5b5061024a61049e3660046116da565b61081e565b3480156104ae575f80fd5b5061026f60145481565b3480156104c3575f80fd5b506103096104d236600461175d565b61082a565b3480156104e2575f80fd5b5060065461024a9060ff1681565b3480156104fb575f80fd5b50610309610888565b34801561050f575f80fd5b5061026f60075481565b348015610524575f80fd5b5061026f610533366004611786565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610568575f80fd5b5061026f60095481565b34801561057d575f80fd5b5061026f600d5481565b5f610593338484610c34565b5060015b92915050565b5f6105aa6009600a6118b1565b6105bb906602738d24e520006118bf565b905090565b5f6105cc848484610d57565b61061d843361061885604051806060016040528060288152602001611a39602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112f0565b610c34565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461064b575f80fd5b305f9081526001602052604090205480156106695761066981611328565b4780156106795761067981611498565b5050565b5f546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a6906118d6565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107205760405162461bcd60e51b81526004016106a6906118d6565b61072c6009600a6118b1565b61073d906602738d24e520006118bf565b60125561074c6009600a6118b1565b61075d906602738d24e520006118bf565b6013556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107976009600a6118b1565b6107a8906602738d24e520006118bf565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107e45760405162461bcd60e51b81526004016106a6906118d6565b600a83905560098290556008819055806107fe838561190b565b610808919061190b565b600781905560641015610819575f80fd5b505050565b5f610593338484610d57565b5f546001600160a01b031633146108535760405162461bcd60e51b81526004016106a6906118d6565b600e839055600d829055600c8190558061086d838561190b565b610877919061190b565b600b81905560641015610819575f80fd5b5f546001600160a01b031633146108b15760405162461bcd60e51b81526004016106a6906118d6565b601d54600160a01b900460ff161561090b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106a6565b601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109579030906109466009600a6118b1565b610618906602738d24e520006118bf565b601c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cb919061191e565b6001600160a01b031663c9c6539630601c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4e919061191e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abc919061191e565b601d80546001600160a01b039283166001600160a01b0319909116179055601c541663f305d7194730610b03816001600160a01b03165f9081526001602052604090205490565b5f80610b165f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ba19190611939565b5050601d54601c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1a9190611964565b50601d805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610c965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b038216610cf75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a6565b6001600160a01b038216610e1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a6565b5f8111610e7e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a6565b5f80546001600160a01b03858116911614801590610ea957505f546001600160a01b03848116911614155b156111b357610ece6064610ec8600754856114d390919063ffffffff16565b90611558565b60065490915060ff1615610fb457601c546001600160a01b03848116911614801590610f085750601d546001600160a01b03848116911614155b15610fb457325f908152600560205260409020544311610fa25760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016106a6565b325f9081526005602052604090204390555b601d546001600160a01b038581169116148015610fdf5750601c546001600160a01b03848116911614155b801561100357506001600160a01b0383165f9081526003602052604090205460ff16155b156110d45760125482111561105a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106a6565b6013548261107c856001600160a01b03165f9081526001602052604090205490565b611086919061190b565b11156110d45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106a6565b601d546001600160a01b0384811691161480156110fa57506001600160a01b0384163014155b1561111c576111196064610ec8600b54856114d390919063ffffffff16565b90505b305f90815260016020526040902054601d54600160a81b900460ff161580156111525750601d546001600160a01b038581169116145b80156111675750601d54600160b01b900460ff165b8015611174575060075481115b156111b1576111966111918461118c84601554611599565b611599565b611328565b4766b1a2bc2ec500008111156111af576111af47611498565b505b505b801561122b57305f908152600160205260409020546111d290826115ad565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112229085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461124d908361160b565b6001600160a01b0385165f90815260016020526040902055611290611272838361160b565b6001600160a01b0385165f90815260016020526040902054906115ad565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112d9858561160b565b60405190815260200160405180910390a350505050565b5f81848411156113135760405162461bcd60e51b81526004016106a69190611678565b505f61131f8486611983565b95945050505050565b601d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061136e5761136e611996565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e9919061191e565b816001815181106113fc576113fc611996565b6001600160a01b039283166020918202929092010152601c546114229130911684610c34565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061145a9085905f908690309042906004016119aa565b5f604051808303815f87803b158015611471575f80fd5b505af1158015611483573d5f803e3d5ffd5b5050601d805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610679573d5f803e3d5ffd5b5f825f036114e257505f610597565b5f6114ed83856118bf565b9050826114fa8583611a19565b146115515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b9392505050565b5f61155183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061164c565b5f8183116115a75782611551565b50919050565b5f806115b9838561190b565b9050838110156115515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b5f61155183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f0565b5f818361166c5760405162461bcd60e51b81526004016106a69190611678565b505f61131f8486611a19565b5f6020808352835180828501525f5b818110156116a357858101830151858201604001528201611687565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116d7575f80fd5b50565b5f80604083850312156116eb575f80fd5b82356116f6816116c3565b946020939093013593505050565b5f805f60608486031215611716575f80fd5b8335611721816116c3565b92506020840135611731816116c3565b929592945050506040919091013590565b5f60208284031215611752575f80fd5b8135611551816116c3565b5f805f6060848603121561176f575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611797575f80fd5b82356117a2816116c3565b915060208301356117b2816116c3565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180b57815f19048211156117f1576117f16117bd565b808516156117fe57918102915b93841c93908002906117d6565b509250929050565b5f8261182157506001610597565b8161182d57505f610597565b8160018114611843576002811461184d57611869565b6001915050610597565b60ff84111561185e5761185e6117bd565b50506001821b610597565b5060208310610133831016604e8410600b841016171561188c575081810a610597565b61189683836117d1565b805f19048211156118a9576118a96117bd565b029392505050565b5f61155160ff841683611813565b8082028115828204841417610597576105976117bd565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820180821115610597576105976117bd565b5f6020828403121561192e575f80fd5b8151611551816116c3565b5f805f6060848603121561194b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611974575f80fd5b81518015158114611551575f80fd5b81810381811115610597576105976117bd565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119f85784516001600160a01b0316835293830193918301916001016119d3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a3357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220306990ffe31cc3cb4a6e022b260ed10ebcbe028e723f47f0b219759ae415a9b564736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101de575f3560e01c80638da5cb5b116100fd578063bf474bed11610092578063d85ba06311610062578063d85ba06314610504578063dd62ed3e14610519578063f11a24d31461055d578063f637434214610572575f80fd5b8063bf474bed146104a3578063c17b5b8c146104b8578063c876d0b9146104d7578063c9567bf9146104f0575f80fd5b80639c3b4fdc116100cd5780639c3b4fdc146104455780639fccce321461045a578063a0d82dc51461046f578063a9059cbb14610484575f80fd5b80638da5cb5b146103c55780638f9a55c0146103eb578063921369131461040057806395d89b4114610415575f80fd5b806351bc3c8511610173578063751039fc11610143578063751039fc146103685780637bce5a041461037c5780637d1db4a5146103915780638095d564146103a6575f80fd5b806351bc3c85146102f55780636a486a8e1461030b57806370a0823114610320578063715018a614610354575f80fd5b80631a8145bb116101ae5780631a8145bb146102915780631f3fed8f146102a657806323b872dd146102bb578063313ce567146102da575f80fd5b806306fdde03146101e9578063095ea7b31461022b5780630faee56f1461025a57806318160ddd1461027d575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260088152674b61657275e89b9960c01b60208201525b6040516102229190611678565b60405180910390f35b348015610236575f80fd5b5061024a6102453660046116da565b610587565b6040519015158152602001610222565b348015610265575f80fd5b5061026f60155481565b604051908152602001610222565b348015610288575f80fd5b5061026f61059d565b34801561029c575f80fd5b5061026f60105481565b3480156102b1575f80fd5b5061026f600f5481565b3480156102c6575f80fd5b5061024a6102d5366004611704565b6105c0565b3480156102e5575f80fd5b5060405160098152602001610222565b348015610300575f80fd5b50610309610627565b005b348015610316575f80fd5b5061026f600b5481565b34801561032b575f80fd5b5061026f61033a366004611742565b6001600160a01b03165f9081526001602052604090205490565b34801561035f575f80fd5b5061030961067d565b348015610373575f80fd5b506103096106f7565b348015610387575f80fd5b5061026f60085481565b34801561039c575f80fd5b5061026f60125481565b3480156103b1575f80fd5b506103096103c036600461175d565b6107bb565b3480156103d0575f80fd5b505f546040516001600160a01b039091168152602001610222565b3480156103f6575f80fd5b5061026f60135481565b34801561040b575f80fd5b5061026f600c5481565b348015610420575f80fd5b506040805180820190915260088152674b41455255e89b9960c01b6020820152610215565b348015610450575f80fd5b5061026f600a5481565b348015610465575f80fd5b5061026f60115481565b34801561047a575f80fd5b5061026f600e5481565b34801561048f575f80fd5b5061024a61049e3660046116da565b61081e565b3480156104ae575f80fd5b5061026f60145481565b3480156104c3575f80fd5b506103096104d236600461175d565b61082a565b3480156104e2575f80fd5b5060065461024a9060ff1681565b3480156104fb575f80fd5b50610309610888565b34801561050f575f80fd5b5061026f60075481565b348015610524575f80fd5b5061026f610533366004611786565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610568575f80fd5b5061026f60095481565b34801561057d575f80fd5b5061026f600d5481565b5f610593338484610c34565b5060015b92915050565b5f6105aa6009600a6118b1565b6105bb906602738d24e520006118bf565b905090565b5f6105cc848484610d57565b61061d843361061885604051806060016040528060288152602001611a39602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112f0565b610c34565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461064b575f80fd5b305f9081526001602052604090205480156106695761066981611328565b4780156106795761067981611498565b5050565b5f546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a6906118d6565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107205760405162461bcd60e51b81526004016106a6906118d6565b61072c6009600a6118b1565b61073d906602738d24e520006118bf565b60125561074c6009600a6118b1565b61075d906602738d24e520006118bf565b6013556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107976009600a6118b1565b6107a8906602738d24e520006118bf565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107e45760405162461bcd60e51b81526004016106a6906118d6565b600a83905560098290556008819055806107fe838561190b565b610808919061190b565b600781905560641015610819575f80fd5b505050565b5f610593338484610d57565b5f546001600160a01b031633146108535760405162461bcd60e51b81526004016106a6906118d6565b600e839055600d829055600c8190558061086d838561190b565b610877919061190b565b600b81905560641015610819575f80fd5b5f546001600160a01b031633146108b15760405162461bcd60e51b81526004016106a6906118d6565b601d54600160a01b900460ff161561090b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106a6565b601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109579030906109466009600a6118b1565b610618906602738d24e520006118bf565b601c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cb919061191e565b6001600160a01b031663c9c6539630601c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4e919061191e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abc919061191e565b601d80546001600160a01b039283166001600160a01b0319909116179055601c541663f305d7194730610b03816001600160a01b03165f9081526001602052604090205490565b5f80610b165f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ba19190611939565b5050601d54601c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1a9190611964565b50601d805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610c965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b038216610cf75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a6565b6001600160a01b038216610e1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a6565b5f8111610e7e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a6565b5f80546001600160a01b03858116911614801590610ea957505f546001600160a01b03848116911614155b156111b357610ece6064610ec8600754856114d390919063ffffffff16565b90611558565b60065490915060ff1615610fb457601c546001600160a01b03848116911614801590610f085750601d546001600160a01b03848116911614155b15610fb457325f908152600560205260409020544311610fa25760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016106a6565b325f9081526005602052604090204390555b601d546001600160a01b038581169116148015610fdf5750601c546001600160a01b03848116911614155b801561100357506001600160a01b0383165f9081526003602052604090205460ff16155b156110d45760125482111561105a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106a6565b6013548261107c856001600160a01b03165f9081526001602052604090205490565b611086919061190b565b11156110d45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106a6565b601d546001600160a01b0384811691161480156110fa57506001600160a01b0384163014155b1561111c576111196064610ec8600b54856114d390919063ffffffff16565b90505b305f90815260016020526040902054601d54600160a81b900460ff161580156111525750601d546001600160a01b038581169116145b80156111675750601d54600160b01b900460ff165b8015611174575060075481115b156111b1576111966111918461118c84601554611599565b611599565b611328565b4766b1a2bc2ec500008111156111af576111af47611498565b505b505b801561122b57305f908152600160205260409020546111d290826115ad565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112229085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461124d908361160b565b6001600160a01b0385165f90815260016020526040902055611290611272838361160b565b6001600160a01b0385165f90815260016020526040902054906115ad565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112d9858561160b565b60405190815260200160405180910390a350505050565b5f81848411156113135760405162461bcd60e51b81526004016106a69190611678565b505f61131f8486611983565b95945050505050565b601d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061136e5761136e611996565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e9919061191e565b816001815181106113fc576113fc611996565b6001600160a01b039283166020918202929092010152601c546114229130911684610c34565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061145a9085905f908690309042906004016119aa565b5f604051808303815f87803b158015611471575f80fd5b505af1158015611483573d5f803e3d5ffd5b5050601d805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610679573d5f803e3d5ffd5b5f825f036114e257505f610597565b5f6114ed83856118bf565b9050826114fa8583611a19565b146115515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b9392505050565b5f61155183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061164c565b5f8183116115a75782611551565b50919050565b5f806115b9838561190b565b9050838110156115515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b5f61155183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f0565b5f818361166c5760405162461bcd60e51b81526004016106a69190611678565b505f61131f8486611a19565b5f6020808352835180828501525f5b818110156116a357858101830151858201604001528201611687565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116d7575f80fd5b50565b5f80604083850312156116eb575f80fd5b82356116f6816116c3565b946020939093013593505050565b5f805f60608486031215611716575f80fd5b8335611721816116c3565b92506020840135611731816116c3565b929592945050506040919091013590565b5f60208284031215611752575f80fd5b8135611551816116c3565b5f805f6060848603121561176f575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611797575f80fd5b82356117a2816116c3565b915060208301356117b2816116c3565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180b57815f19048211156117f1576117f16117bd565b808516156117fe57918102915b93841c93908002906117d6565b509250929050565b5f8261182157506001610597565b8161182d57505f610597565b8160018114611843576002811461184d57611869565b6001915050610597565b60ff84111561185e5761185e6117bd565b50506001821b610597565b5060208310610133831016604e8410600b841016171561188c575081810a610597565b61189683836117d1565b805f19048211156118a9576118a96117bd565b029392505050565b5f61155160ff841683611813565b8082028115828204841417610597576105976117bd565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820180821115610597576105976117bd565b5f6020828403121561192e575f80fd5b8151611551816116c3565b5f805f6060848603121561194b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611974575f80fd5b81518015158114611551575f80fd5b81810381811115610597576105976117bd565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119f85784516001600160a01b0316835293830193918301916001016119d3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a3357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220306990ffe31cc3cb4a6e022b260ed10ebcbe028e723f47f0b219759ae415a9b564736f6c63430008140033

Deployed Bytecode Sourcemap

3600:8950:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6647:83;;;;;;;;;;-1:-1:-1;6717:5:0;;;;;;;;;;;;-1:-1:-1;;;6717:5:0;;;;6647:83;;;;;;;:::i;:::-;;;;;;;;7480:161;;;;;;;;;;-1:-1:-1;7480:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7480:161:0;1023:187:1;4917:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4917:52:0;1215:177:1;6924:95:0;;;;;;;;;;;;;:::i;4407:33::-;;;;;;;;;;;;;;;;4367;;;;;;;;;;;;;;;;7649:313;;;;;;;;;;-1:-1:-1;7649:313:0;;;;;:::i;:::-;;:::i;6833:83::-;;;;;;;;;;-1:-1:-1;6833:83:0;;4518:1;2000:36:1;;1988:2;1973:18;6833:83:0;1858:184:1;12199:348:0;;;;;;;;;;;;;:::i;:::-;;4220:29;;;;;;;;;;;;;;;;7027:119;;;;;;;;;;-1:-1:-1;7027:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7120:18:0;7093:7;7120:18;;;:9;:18;;;;;;;7027:119;2681:148;;;;;;;;;;;;;:::i;11179:196::-;;;;;;;;;;;;;:::i;4112:30::-;;;;;;;;;;;;;;;;4713:61;;;;;;;;;;;;;;;;5407:371;;;;;;;;;;-1:-1:-1;5407:371:0;;;;;:::i;:::-;;:::i;2467:79::-;;;;;;;;;;-1:-1:-1;2505:7:0;2532:6;2467:79;;-1:-1:-1;;;;;2532:6:0;;;2766:51:1;;2754:2;2739:18;2467:79:0;2620:203:1;4781:63:0;;;;;;;;;;;;;;;;4256:31;;;;;;;;;;;;;;;;6738:87;;;;;;;;;;-1:-1:-1;6810:7:0;;;;;;;;;;;;-1:-1:-1;;;6810:7:0;;;;6738:87;;4186:24;;;;;;;;;;;;;;;;4447:27;;;;;;;;;;;;;;;;4332:25;;;;;;;;;;;;;;;;7154:167;;;;;;;;;;-1:-1:-1;7154:167:0;;;;;:::i;:::-;;:::i;4851:59::-;;;;;;;;;;;;;;;;5786:380;;;;;;;;;;-1:-1:-1;5786:380:0;;;;;:::i;:::-;;:::i;3991:39::-;;;;;;;;;;-1:-1:-1;3991:39:0;;;;;;;;11483:671;;;;;;;;;;;;;:::i;4077:28::-;;;;;;;;;;;;;;;;7329:143;;;;;;;;;;-1:-1:-1;7329:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7437:18:0;;;7410:7;7437:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7329:143;4149:30;;;;;;;;;;;;;;;;4294:31;;;;;;;;;;;;;;;;7480:161;7555:4;7572:39;302:10;7595:7;7604:6;7572:8;:39::i;:::-;-1:-1:-1;7629:4:0;7480:161;;;;;:::o;6924:95::-;6977:7;4579:13;4518:1;4579:2;:13;:::i;:::-;4561:31;;:15;:31;:::i;:::-;6997:14;;6924:95;:::o;7649:313::-;7747:4;7764:36;7774:6;7782:9;7793:6;7764:9;:36::i;:::-;7811:121;7820:6;302:10;7842:89;7880:6;7842:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7842:19:0;;;;;;:11;:19;;;;;;;;302:10;7842:33;;;;;;;;;;:37;:89::i;:::-;7811:8;:121::i;:::-;-1:-1:-1;7950:4:0;7649:313;;;;;:::o;12199:348::-;12263:10;;;;;-1:-1:-1;;;;;12263:10:0;302;-1:-1:-1;;;;;12249:24:0;;12241:33;;;;;;12324:4;12285:20;7120:18;;;:9;:18;;;;;;12344:14;;12341:73;;12372:30;12389:12;12372:16;:30::i;:::-;12443:21;12478:12;;12475:65;;12504:24;12517:10;12504:12;:24::i;:::-;12230:317;;12199:348::o;2681:148::-;2594:6;;-1:-1:-1;;;;;2594:6:0;302:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;;;;;;;;;2788:1:::1;2772:6:::0;;2751:40:::1;::::0;-1:-1:-1;;;;;2772:6:0;;::::1;::::0;2751:40:::1;::::0;2788:1;;2751:40:::1;2819:1;2802:19:::0;;-1:-1:-1;;;;;;2802:19:0::1;::::0;;2681:148::o;11179:196::-;2594:6;;-1:-1:-1;;;;;2594:6:0;302:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;4579:13:::1;4518:1;4579:2;:13;:::i;:::-;4561:31;::::0;:15:::1;:31;:::i;:::-;11232:12;:22:::0;4579:13:::1;4518:1;4579:2;:13;:::i;:::-;4561:31;::::0;:15:::1;:31;:::i;:::-;11265:14;:22:::0;11298:20:::1;:26:::0;;-1:-1:-1;;11298:26:0::1;::::0;;11340:27:::1;4579:13;4518:1;4579:2;:13;:::i;:::-;4561:31;::::0;:15:::1;:31;:::i;:::-;11340:27;::::0;1361:25:1;;;1349:2;1334:18;11340:27:0::1;;;;;;;11179:196::o:0;5407:371::-;2594:6;;-1:-1:-1;;;;;2594:6:0;302:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;5557:9:::1;:19:::0;;;5587:15:::1;:31:::0;;;5629:15:::1;:31:::0;;;5647:13;5686:27:::1;5605:13:::0;5569:7;5686:27:::1;:::i;:::-;:45;;;;:::i;:::-;5671:12;:60:::0;;;5766:3:::1;-1:-1:-1::0;5750:19:0::1;5742:28;;;::::0;::::1;;5407:371:::0;;;:::o;7154:167::-;7232:4;7249:42;302:10;7273:9;7284:6;7249:9;:42::i;5786:380::-;2594:6;;-1:-1:-1;;;;;2594:6:0;302:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;5937:10:::1;:20:::0;;;5968:16:::1;:32:::0;;;6011:16:::1;:32:::0;;;6030:13;6070:29:::1;5987:13:::0;5950:7;6070:29:::1;:::i;:::-;:48;;;;:::i;:::-;6054:13;:64:::0;;;6154:3:::1;-1:-1:-1::0;6137:20:0::1;6129:29;;;::::0;::::1;11483:671:::0;2594:6;;-1:-1:-1;;;;;2594:6:0;302:10;2594:22;2586:67;;;;-1:-1:-1;;;2586:67:0;;;;;;;:::i;:::-;11547:11:::1;::::0;-1:-1:-1;;;11547:11:0;::::1;;;11546:12;11538:47;;;::::0;-1:-1:-1;;;11538:47:0;;5602:2:1;11538:47:0::1;::::0;::::1;5584:21:1::0;5641:2;5621:18;;;5614:30;5680:25;5660:18;;;5653:53;5723:18;;11538:47:0::1;5400:347:1::0;11538:47:0::1;11596:15;:80:::0;;-1:-1:-1;;;;;;11596:80:0::1;11633:42;11596:80:::0;;::::1;::::0;;;11687:58:::1;::::0;11704:4:::1;::::0;4579:13:::1;4518:1;4579:2;:13;:::i;:::-;4561:31;::::0;:15:::1;:31;:::i;11687:58::-;11790:15;;;;;;;;;-1:-1:-1::0;;;;;11790:15:0::1;-1:-1:-1::0;;;;;11790:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11772:55:0::1;;11836:4;11843:15;;;;;;;;;-1:-1:-1::0;;;;;11843:15:0::1;-1:-1:-1::0;;;;;11843:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11772:94;::::0;-1:-1:-1;;;;;;11772:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6238:15:1;;;11772:94:0::1;::::0;::::1;6220:34:1::0;6290:15;;6270:18;;;6263:43;6155:18;;11772:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11756:13;:110:::0;;-1:-1:-1;;;;;11756:110:0;;::::1;-1:-1:-1::0;;;;;;11756:110:0;;::::1;;::::0;;11877:15:::1;::::0;::::1;:31;11916:21;11947:4;11953:24;11947:4:::0;-1:-1:-1;;;;;7120:18:0;7093:7;7120:18;;;:9;:18;;;;;;;7027:119;11953:24:::1;11978:1;11980::::0;11982:7:::1;2505::::0;2532:6;-1:-1:-1;;;;;2532:6:0;;2467:79;11982:7:::1;11877:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11877:129:0;;;-1:-1:-1;;;;;6676:15:1;;;11877:129:0::1;::::0;::::1;6658:34:1::0;6708:18;;;6701:34;;;;6751:18;;;6744:34;;;;6794:18;;;6787:34;6858:15;;;6837:19;;;6830:44;11990:15:0::1;6890:19:1::0;;;6883:35;6592:19;;11877:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12024:13:0::1;::::0;12055:15:::1;::::0;12017:71:::1;::::0;-1:-1:-1;;;12017:71:0;;-1:-1:-1;;;;;12055:15:0;;::::1;12017:71;::::0;::::1;7414:51:1::0;-1:-1:-1;;7481:18:1;;;7474:34;12024:13:0;::::1;::::0;-1:-1:-1;12017:29:0::1;::::0;7387:18:1;;12017:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12099:11:0::1;:18:::0;;-1:-1:-1;;;;12128:18:0;-1:-1:-1;;;12128:18:0;;;11483:671::o;7970:335::-;-1:-1:-1;;;;;8063:19:0;;8055:68;;;;-1:-1:-1;;;8055:68:0;;8003:2:1;8055:68:0;;;7985:21:1;8042:2;8022:18;;;8015:30;8081:34;8061:18;;;8054:62;-1:-1:-1;;;8132:18:1;;;8125:34;8176:19;;8055:68:0;7801:400:1;8055:68:0;-1:-1:-1;;;;;8142:21:0;;8134:68;;;;-1:-1:-1;;;8134:68:0;;8408:2:1;8134:68:0;;;8390:21:1;8447:2;8427:18;;;8420:30;8486:34;8466:18;;;8459:62;-1:-1:-1;;;8537:18:1;;;8530:32;8579:19;;8134:68:0;8206:398:1;8134:68:0;-1:-1:-1;;;;;8213:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8265:32;;1361:25:1;;;8265:32:0;;1334:18:1;8265:32:0;;;;;;;7970:335;;;:::o;8313:2259::-;-1:-1:-1;;;;;8401:18:0;;8393:68;;;;-1:-1:-1;;;8393:68:0;;8811:2:1;8393:68:0;;;8793:21:1;8850:2;8830:18;;;8823:30;8889:34;8869:18;;;8862:62;-1:-1:-1;;;8940:18:1;;;8933:35;8985:19;;8393:68:0;8609:401:1;8393:68:0;-1:-1:-1;;;;;8480:16:0;;8472:64;;;;-1:-1:-1;;;8472:64:0;;9217:2:1;8472:64:0;;;9199:21:1;9256:2;9236:18;;;9229:30;9295:34;9275:18;;;9268:62;-1:-1:-1;;;9346:18:1;;;9339:33;9389:19;;8472:64:0;9015:399:1;8472:64:0;8564:1;8555:6;:10;8547:64;;;;-1:-1:-1;;;8547:64:0;;9621:2:1;8547:64:0;;;9603:21:1;9660:2;9640:18;;;9633:30;9699:34;9679:18;;;9672:62;-1:-1:-1;;;9750:18:1;;;9743:39;9799:19;;8547:64:0;9419:405:1;8547:64:0;8622:17;2532:6;;-1:-1:-1;;;;;8656:15:0;;;2532:6;;8656:15;;;;:32;;-1:-1:-1;2505:7:0;2532:6;-1:-1:-1;;;;;8675:13:0;;;2532:6;;8675:13;;8656:32;8652:1564;;;8717:33;8746:3;8717:24;8728:12;;8717:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;8771:20;;8705:45;;-1:-1:-1;8771:20:0;;8767:508;;;8832:15;;-1:-1:-1;;;;;8818:30:0;;;8832:15;;8818:30;;;;:62;;-1:-1:-1;8866:13:0;;-1:-1:-1;;;;;8852:28:0;;;8866:13;;8852:28;;8818:62;8814:444;;;8972:9;8943:39;;;;:28;:39;;;;;;9016:12;-1:-1:-1;8907:250:0;;;;-1:-1:-1;;;8907:250:0;;10031:2:1;8907:250:0;;;10013:21:1;10070:2;10050:18;;;10043:30;10109:34;10089:18;;;10082:62;10180:34;10160:18;;;10153:62;-1:-1:-1;;;10231:19:1;;;10224:40;10281:19;;8907:250:0;9829:477:1;8907:250:0;9211:9;9182:39;;;;:28;:39;;;;;9224:12;9182:54;;8814:444;9303:13;;-1:-1:-1;;;;;9295:21:0;;;9303:13;;9295:21;:55;;;;-1:-1:-1;9334:15:0;;-1:-1:-1;;;;;9320:30:0;;;9334:15;;9320:30;;9295:55;:83;;;;-1:-1:-1;;;;;;9356:22:0;;;;;;:18;:22;;;;;;;;9354:24;9295:83;9291:283;;;9418:12;;9408:6;:22;;9400:60;;;;-1:-1:-1;;;9400:60:0;;10513:2:1;9400:60:0;;;10495:21:1;10552:2;10532:18;;;10525:30;10591:27;10571:18;;;10564:55;10636:18;;9400:60:0;10311:349:1;9400:60:0;9513:14;;9503:6;9487:13;9497:2;-1:-1:-1;;;;;7120:18:0;7093:7;7120:18;;;:9;:18;;;;;;;7027:119;9487:13;:22;;;;:::i;:::-;:40;;9479:79;;;;-1:-1:-1;;;9479:79:0;;10867:2:1;9479:79:0;;;10849:21:1;10906:2;10886:18;;;10879:30;10945:28;10925:18;;;10918:56;10991:18;;9479:79:0;10665:350:1;9479:79:0;9599:13;;-1:-1:-1;;;;;9593:19:0;;;9599:13;;9593:19;:43;;;;-1:-1:-1;;;;;;9616:20:0;;9631:4;9616:20;;9593:43;9590:129;;;9669:34;9699:3;9669:25;9680:13;;9669:6;:10;;:25;;;;:::i;:34::-;9657:46;;9590:129;9784:4;9735:28;7120:18;;;:9;:18;;;;;;9810:6;;-1:-1:-1;;;9810:6:0;;;;9809:7;:32;;;;-1:-1:-1;9828:13:0;;-1:-1:-1;;;;;9820:21:0;;;9828:13;;9820:21;9809:32;:47;;;;-1:-1:-1;9845:11:0;;-1:-1:-1;;;9845:11:0;;;;9809:47;:84;;;;;9881:12;;9860:20;:33;9809:84;9805:400;;;9914:67;9931:49;9935:6;9942:37;9946:20;9967:11;;9942:3;:37::i;:::-;9931:3;:49::i;:::-;9914:16;:67::i;:::-;10029:21;10093:17;10072:38;;10069:121;;;10135:35;10148:21;10135:12;:35::i;:::-;9895:310;9805:400;8690:1526;8652:1564;10231:11;;10228:161;;10299:4;10281:24;;;;:9;:24;;;;;;:39;;10310:9;10281:28;:39::i;:::-;10274:4;10256:24;;;;:9;:24;;;;;;;:64;;;;10338:39;;-1:-1:-1;;;;;10338:39:0;;;;;;;10367:9;1361:25:1;;1349:2;1334:18;;1215:177;10338:39:0;;;;;;;;10228:161;-1:-1:-1;;;;;10415:15:0;;;;;;:9;:15;;;;;;:27;;10435:6;10415:19;:27::i;:::-;-1:-1:-1;;;;;10399:15:0;;;;;;:9;:15;;;;;:43;10467:40;10485:21;:6;10496:9;10485:10;:21::i;:::-;-1:-1:-1;;;;;10467:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10453:13:0;;;;;;;:9;:13;;;;;:54;;;;10523:41;;;10542:21;:6;10553:9;10542:10;:21::i;:::-;10523:41;;1361:25:1;;;1349:2;1334:18;10523:41:0;;;;;;;8382:2190;8313:2259;;;:::o;1359:190::-;1445:7;1481:12;1473:6;;;;1465:29;;;;-1:-1:-1;;;1465:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1505:9:0;1517:5;1521:1;1517;:5;:::i;:::-;1505:17;1359:190;-1:-1:-1;;;;;1359:190:0:o;10688:483::-;6256:6;:13;;-1:-1:-1;;;;6256:13:0;-1:-1:-1;;;6256:13:0;;;10790:16:::1;::::0;;10804:1:::1;10790:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10790:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10790:16:0::1;10766:40;;10835:4;10817;10822:1;10817:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10817:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10861:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10861:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10817:7;;10861:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10851:4;10856:1;10851:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10851:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10926:15:::1;::::0;10894:62:::1;::::0;10911:4:::1;::::0;10926:15:::1;10944:11:::0;10894:8:::1;:62::i;:::-;10967:15;::::0;:196:::1;::::0;-1:-1:-1;;;10967:196:0;;-1:-1:-1;;;;;10967:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11048:11;;10967:15:::1;::::0;11090:4;;11117::::1;::::0;11137:15:::1;::::0;10967:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6292:6:0;:14;;-1:-1:-1;;;;6292:14:0;;;-1:-1:-1;;;;10688:483:0:o;11383:92::-;11440:10;;:27;;:10;;;;-1:-1:-1;;;;;11440:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1557:246;1615:7;1639:1;1644;1639:6;1635:47;;-1:-1:-1;1669:1:0;1662:8;;1635:47;1692:9;1704:5;1708:1;1704;:5;:::i;:::-;1692:17;-1:-1:-1;1737:1:0;1728:5;1732:1;1692:17;1728:5;:::i;:::-;:10;1720:56;;;;-1:-1:-1;;;1720:56:0;;12826:2:1;1720:56:0;;;12808:21:1;12865:2;12845:18;;;12838:30;12904:34;12884:18;;;12877:62;-1:-1:-1;;;12955:18:1;;;12948:31;12996:19;;1720:56:0;12624:397:1;1720:56:0;1794:1;1557:246;-1:-1:-1;;;1557:246:0:o;1811:132::-;1869:7;1896:39;1900:1;1903;1896:39;;;;;;;;;;;;;;;;;:3;:39::i;10582:98::-;10639:7;10666:1;10664;:3;10663:9;;10671:1;10663:9;;;-1:-1:-1;10669:1:0;10582:98;-1:-1:-1;10582:98:0:o;1028:179::-;1086:7;;1118:5;1122:1;1118;:5;:::i;:::-;1106:17;;1147:1;1142;:6;;1134:46;;;;-1:-1:-1;;;1134:46:0;;13228:2:1;1134:46:0;;;13210:21:1;13267:2;13247:18;;;13240:30;13306:29;13286:18;;;13279:57;13353:18;;1134:46:0;13026:351:1;1215:136:0;1273:7;1300:43;1304:1;1307;1300:43;;;;;;;;;;;;;;;;;:3;:43::i;1951:189::-;2037:7;2072:12;2065:5;2057:28;;;;-1:-1:-1;;;2057:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2096:9:0;2108:5;2112:1;2108;:5;:::i;14:548:1:-;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:316::-;2376:6;2384;2392;2445:2;2433:9;2424:7;2420:23;2416:32;2413:52;;;2461:1;2458;2451:12;2413:52;-1:-1:-1;;2484:23:1;;;2554:2;2539:18;;2526:32;;-1:-1:-1;2605:2:1;2590:18;;;2577:32;;2299:316;-1:-1:-1;2299:316:1:o;2828:388::-;2896:6;2904;2957:2;2945:9;2936:7;2932:23;2928:32;2925:52;;;2973:1;2970;2963:12;2925:52;3012:9;2999:23;3031:31;3056:5;3031:31;:::i;:::-;3081:5;-1:-1:-1;3138:2:1;3123:18;;3110:32;3151:33;3110:32;3151:33;:::i;:::-;3203:7;3193:17;;;2828:388;;;;;:::o;3221:127::-;3282:10;3277:3;3273:20;3270:1;3263:31;3313:4;3310:1;3303:15;3337:4;3334:1;3327:15;3353:422;3442:1;3485:5;3442:1;3499:270;3520:7;3510:8;3507:21;3499:270;;;3579:4;3575:1;3571:6;3567:17;3561:4;3558:27;3555:53;;;3588:18;;:::i;:::-;3638:7;3628:8;3624:22;3621:55;;;3658:16;;;;3621:55;3737:22;;;;3697:15;;;;3499:270;;;3503:3;3353:422;;;;;:::o;3780:806::-;3829:5;3859:8;3849:80;;-1:-1:-1;3900:1:1;3914:5;;3849:80;3948:4;3938:76;;-1:-1:-1;3985:1:1;3999:5;;3938:76;4030:4;4048:1;4043:59;;;;4116:1;4111:130;;;;4023:218;;4043:59;4073:1;4064:10;;4087:5;;;4111:130;4148:3;4138:8;4135:17;4132:43;;;4155:18;;:::i;:::-;-1:-1:-1;;4211:1:1;4197:16;;4226:5;;4023:218;;4325:2;4315:8;4312:16;4306:3;4300:4;4297:13;4293:36;4287:2;4277:8;4274:16;4269:2;4263:4;4260:12;4256:35;4253:77;4250:159;;;-1:-1:-1;4362:19:1;;;4394:5;;4250:159;4441:34;4466:8;4460:4;4441:34;:::i;:::-;4511:6;4507:1;4503:6;4499:19;4490:7;4487:32;4484:58;;;4522:18;;:::i;:::-;4560:20;;3780:806;-1:-1:-1;;;3780:806:1:o;4591:140::-;4649:5;4678:47;4719:4;4709:8;4705:19;4699:4;4678:47;:::i;4736:168::-;4809:9;;;4840;;4857:15;;;4851:22;;4837:37;4827:71;;4878:18;;:::i;4909:356::-;5111:2;5093:21;;;5130:18;;;5123:30;5189:34;5184:2;5169:18;;5162:62;5256:2;5241:18;;4909:356::o;5270:125::-;5335:9;;;5356:10;;;5353:36;;;5369:18;;:::i;5752:251::-;5822:6;5875:2;5863:9;5854:7;5850:23;5846:32;5843:52;;;5891:1;5888;5881:12;5843:52;5923:9;5917:16;5942:31;5967:5;5942:31;:::i;6929:306::-;7017:6;7025;7033;7086:2;7074:9;7065:7;7061:23;7057:32;7054:52;;;7102:1;7099;7092:12;7054:52;7131:9;7125:16;7115:26;;7181:2;7170:9;7166:18;7160:25;7150:35;;7225:2;7214:9;7210:18;7204:25;7194:35;;6929:306;;;;;:::o;7519:277::-;7586:6;7639:2;7627:9;7618:7;7614:23;7610:32;7607:52;;;7655:1;7652;7645:12;7607:52;7687:9;7681:16;7740:5;7733:13;7726:21;7719:5;7716:32;7706:60;;7762:1;7759;7752:12;11020:128;11087:9;;;11108:11;;;11105:37;;;11122:18;;:::i;11285:127::-;11346:10;11341:3;11337:20;11334:1;11327:31;11377:4;11374:1;11367:15;11401:4;11398:1;11391:15;11417:980;11679:4;11727:3;11716:9;11712:19;11758:6;11747:9;11740:25;11784:2;11822:6;11817:2;11806:9;11802:18;11795:34;11865:3;11860:2;11849:9;11845:18;11838:31;11889:6;11924;11918:13;11955:6;11947;11940:22;11993:3;11982:9;11978:19;11971:26;;12032:2;12024:6;12020:15;12006:29;;12053:1;12063:195;12077:6;12074:1;12071:13;12063:195;;;12142:13;;-1:-1:-1;;;;;12138:39:1;12126:52;;12233:15;;;;12198:12;;;;12174:1;12092:9;12063:195;;;-1:-1:-1;;;;;;;12314:32:1;;;;12309:2;12294:18;;12287:60;-1:-1:-1;;;12378:3:1;12363:19;12356:35;12275:3;11417:980;-1:-1:-1;;;11417:980:1:o;12402:217::-;12442:1;12468;12458:132;;12512:10;12507:3;12503:20;12500:1;12493:31;12547:4;12544:1;12537:15;12575:4;12572:1;12565:15;12458:132;-1:-1:-1;12604:9:1;;12402:217::o

Swarm Source

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