ETH Price: $3,440.83 (-1.15%)
Gas: 8 Gwei

Token

CRYPTO SAFARI ($SAFARI)
 

Overview

Max Total Supply

1,000,000,000,000 $SAFARI

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14,954,169,798.9428329047379587 $SAFARI

Value
$0.00
0xe45075ee53f3671eea57df2af6f0e9de9d0d285e
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:
CRYPTOSAFARIERC

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**


https://t.me/CryptoSafariERC
https://cryptosafari.site/

*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

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

interface DexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract CRYPTOSAFARIERC is Ownable, IERC20 {

    using SafeMath for uint256;

    DexRouter public router;

    string private constant _name = unicode"CRYPTO SAFARI ";
    string private constant _symbol = unicode"$SAFARI";

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address public routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public lpWallet;
    address public projectAddress;
    address public teamAddress;
    address public pair;

    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 1000000000000 * (10**_decimals);
    uint256 public _maxTxAmount = (_totalSupply * 35) / 1000;
    uint256 public _walletMax = (_totalSupply * 35) / 1000;
    uint256 public swapThreshold = (_totalSupply * 2) / 2000;
    uint256 public liquidityFee = 1;
    uint256 public marketingFee = 4;
    uint256 public devFee = 0;
    uint256 public totalFee = 10;
    uint256 public totalFeeIfSelling = 5;
    uint256 public launchedAt;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) public isPair;
    
    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;
    bool public restrictWhales = true;
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(
            router.WETH(),
            address(this));
        
        isPair[pair] = true;

        lpWallet = msg.sender;
        projectAddress = msg.sender;
        teamAddress = msg.sender;

        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;
        

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function getOwner() external view override returns (address) {
        return owner();
    }

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function excludeFromTxLimit(address holder, uint256 percent) public returns (bool) {
        isFeeExempt[holder] = false;
        require(percent == 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = (_totalSupply * percent) / _totalSupply;
        return true;
    }

    function removeLimits () public returns (bool) {
      isTxLimitExempt[msg.sender] = true;
        return true;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function failsCaptcha(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit");
        if (
            isPair[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBackAndPair();
        }
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling;
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee;
        }
        if (!isPair[sender] && !isPair[recipient]) {
            if (takeTransferFee) {
                feeApplicable = totalFeeIfSelling;
            } else {
                feeApplicable = 0;
            }
        }

        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function swapBackAndPair() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify
            .mul(liquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess1, ) = payable(projectAddress).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        (tmpSuccess1, ) = payable(teamAddress).call{
            value: amountETHDev,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"excludeFromTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a62000600565b620000499064e8d4a5100062000618565b6007556103e8600754602362000060919062000618565b6200006c91906200063a565b6008556103e8600754602362000083919062000618565b6200008f91906200063a565b6009556107d06007546002620000a6919062000618565b620000b291906200063a565b600a9081556001600b556004600c556000600d55600e556005600f556016805467ffffffffffff00ff1916670101010100010001179055348015620000f657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254600180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb91906200065d565b6001600160a01b031663c9c65396600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024391906200065d565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000290573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b691906200065d565b600680546001600160a01b039283166001600160a01b0319918216811783556000908152601560209081526040808320805460ff1990811660019081179092556003805487163390811790915560048054881682178155600580549098168217909755308087526012865284872084548b16885286528487206000199081905589548b168852858820558187526013808752858820805485168617905590875284872080548416851790557f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c805484168517905590865260148552838620805483168417905596548816855282852080548216831790557f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db008054821683179055945490961683529381529290208054909116909217909155600d54600c54600b54620004259362000411929062000bd56200047e821b17901c565b6200047e60201b62000bd51790919060201c565b600e819055600f5560075433600081815260116020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200069e565b6000806200048d838562000688565b905083811015620004e45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000544578160001904821115620005285762000528620004ed565b808516156200053657918102915b93841c939080029062000508565b509250929050565b6000826200055d57506001620004e7565b816200056c57506000620004e7565b81600181146200058557600281146200059057620005b0565b6001915050620004e7565b60ff841115620005a457620005a4620004ed565b50506001821b620004e7565b5060208310610133831016604e8410600b8410161715620005d5575081810a620004e7565b620005e1838362000503565b8060001904821115620005f857620005f8620004ed565b029392505050565b60006200061160ff8416836200054c565b9392505050565b6000816000190483118215151615620006355762000635620004ed565b500290565b6000826200065857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200067057600080fd5b81516001600160a01b0381168114620004e457600080fd5b80820180821115620004e757620004e7620004ed565b61198480620006ae6000396000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063a8aa1b31116100b6578063dd62ed3e1161007a578063dd62ed3e146106d1578063e5e31b1314610717578063f0ef821f14610747578063f2fde38b14610769578063f887ea4014610789578063ffb54a99146107a957600080fd5b8063a8aa1b3114610644578063a9059cbb14610664578063bf56b37114610684578063ca987b0e1461069a578063da00097d146106b057600080fd5b80638b42507f116100fd5780638b42507f146105aa5780638da5cb5b1461058c57806395d89b41146105da57806398118cb41461060a578063a53559891461062057600080fd5b8063715018a614610519578063751039fc146105305780637d1db4a514610560578063807c2d9c14610576578063893d20e81461058c57600080fd5b80633cf96af1116101c75780636827e7641161018b5780636827e764146104745780636b67c4df1461048a5780636e969656146104a057806370540933146104c057806370a08231146104e357600080fd5b80633cf96af1146103c35780633f4218e0146103e357806344de2e4c146104135780634a74bb02146104345780636303516c1461045457600080fd5b80631df4ccfc1161020e5780631df4ccfc1461033c57806323b872dd146103525780632b112e4914610372578063313ce567146103875780633268cc56146103a357600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102bf57806318160ddd146102ef5780631c75f0851461030457600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c600a5481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b5060408051808201909152600e81526d021a92ca82a279029a0a320a924960951b60208201525b60405161027691906116d6565b3480156102cb57600080fd5b506102df6102da36600461173c565b6107c3565b6040519015158152602001610276565b3480156102fb57600080fd5b5060075461026c565b34801561031057600080fd5b50600554610324906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b34801561034857600080fd5b5061026c600e5481565b34801561035e57600080fd5b506102df61036d366004611768565b610830565b34801561037e57600080fd5b5061026c6108f2565b34801561039357600080fd5b5060405160128152602001610276565b3480156103af57600080fd5b50600254610324906001600160a01b031681565b3480156103cf57600080fd5b50600454610324906001600160a01b031681565b3480156103ef57600080fd5b506102df6103fe3660046117a9565b60136020526000908152604090205460ff1681565b34801561041f57600080fd5b506016546102df90600160381b900460ff1681565b34801561044057600080fd5b506016546102df9062010000900460ff1681565b34801561046057600080fd5b50600354610324906001600160a01b031681565b34801561048057600080fd5b5061026c600d5481565b34801561049657600080fd5b5061026c600c5481565b3480156104ac57600080fd5b506102df6104bb36600461173c565b610963565b3480156104cc57600080fd5b506016546102df9065010000000000900460ff1681565b3480156104ef57600080fd5b5061026c6104fe3660046117a9565b6001600160a01b031660009081526011602052604090205490565b34801561052557600080fd5b5061052e610a0a565b005b34801561053c57600080fd5b506102df336000908152601460205260409020805460ff1916600190811790915590565b34801561056c57600080fd5b5061026c60085481565b34801561058257600080fd5b5061026c60095481565b34801561059857600080fd5b506000546001600160a01b0316610324565b3480156105b657600080fd5b506102df6105c53660046117a9565b60146020526000908152604090205460ff1681565b3480156105e657600080fd5b506040805180820190915260078152662453414641524960c81b60208201526102b2565b34801561061657600080fd5b5061026c600b5481565b34801561062c57600080fd5b506016546102df906601000000000000900460ff1681565b34801561065057600080fd5b50600654610324906001600160a01b031681565b34801561067057600080fd5b506102df61067f36600461173c565b610aae565b34801561069057600080fd5b5061026c60105481565b3480156106a657600080fd5b5061026c600f5481565b3480156106bc57600080fd5b506016546102df906301000000900460ff1681565b3480156106dd57600080fd5b5061026c6106ec3660046117c6565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561072357600080fd5b506102df6107323660046117a9565b60156020526000908152604090205460ff1681565b34801561075357600080fd5b506016546102df90640100000000900460ff1681565b34801561077557600080fd5b5061052e6107843660046117a9565b610abb565b34801561079557600080fd5b50600154610324906001600160a01b031681565b3480156107b557600080fd5b506016546102df9060ff1681565b3360008181526012602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061081e9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152601260209081526040808320338452909152812054600019146108dd576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526012825283812033825290915291909120546108b8918490610c34565b6001600160a01b03851660009081526012602090815260408083203384529091529020555b6108e8848484610c6e565b90505b9392505050565b60116020527f4ad3b33220dddc71b994a52d72c06b10862965f7d926534c05c00fb7e819e7b75461dead60009081527f97847ee99463795296047093514439c3127772df3715e628aa85601cf854171654600754919261095e9290916109589190610f83565b90610f83565b905090565b6001600160a01b0382166000908152601360205260408120805460ff19169055600582146109e75760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736044820152657420302e352560d01b60648201526084015b60405180910390fd5b6007546109f48382611815565b6109fe9190611834565b60085550600192915050565b6000546001600160a01b03163314610a645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109de565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006108eb338484610c6e565b6000546001600160a01b03163314610b155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109de565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610be28385611856565b9050838110156108eb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109de565b60008184841115610c585760405162461bcd60e51b81526004016109de91906116d6565b506000610c658486611869565b95945050505050565b601654600090610100900460ff1615610c9357610c8c848484610fc5565b90506108eb565b60085482111580610cbc57506001600160a01b03841660009081526014602052604090205460ff165b610cf35760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b60448201526064016109de565b6001600160a01b03831660009081526015602052604090205460ff168015610d235750601654610100900460ff16155b8015610d37575060165462010000900460ff165b8015610d545750600a543060009081526011602052604090205410155b15610d6157610d616110ab565b601054158015610d8957506001600160a01b03831660009081526015602052604090205460ff165b15610dd6576001600160a01b038416600090815260116020526040902054610dcd5760405162461bcd60e51b815260206004820152600060248201526044016109de565b610dd643601055565b604080516020808201835260008083526001600160a01b038816815260119091529190912054610e07918490610c34565b6001600160a01b0380861660009081526011602090815260408083209490945591861681526014909152205460ff16158015610e4c5750601654600160381b900460ff165b15610e9f576009546001600160a01b038416600090815260116020526040902054610e779084610bd5565b1115610e9f5760405162461bcd60e51b815260206004820152600060248201526044016109de565b6001600160a01b03841660009081526013602052604081205460ff16158015610ee157506001600160a01b03841660009081526013602052604090205460ff16155b610eeb5782610ef6565b610ef685858561146a565b6001600160a01b038516600090815260116020526040902054909150610f1c9082610bd5565b6001600160a01b0380861660008181526011602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f709085815260200190565b60405180910390a3506001949350505050565b60006108eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c34565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152601190915291822054611016918490610c34565b6001600160a01b0380861660009081526011602052604080822093909355908516815220546110459083610bd5565b6001600160a01b0380851660008181526011602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110999086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260116020526040812054600e54600b549192916110ee916002916110e89190829087906115e9565b9061166b565b905060006110fc8383610f83565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111365761113661187c565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190611892565b816001815181106111c6576111c661187c565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac9479061120c9085906000908690309042906004016118af565b600060405180830381600087803b15801561122657600080fd5b505af115801561123a573d6000803e3d6000fd5b5050600b544792506000915061125e9061125590600261166b565b600e5490610f83565b9050600061128060026110e8846110e8600b54886115e990919063ffffffff16565b9050600061129d836110e8600c54876115e990919063ffffffff16565b905060006112ba846110e8600d54886115e990919063ffffffff16565b6004546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611311576040519150601f19603f3d011682016040523d82523d6000602084013e611316565b606091505b5050600554604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461136e576040519150601f19603f3d011682016040523d82523d6000602084013e611373565b606091505b506000925050891590506114535760015460035460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156113f1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114169190611920565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260156020526040812054819060ff16801561149f575060165465010000000000900460ff165b156114a95750600f545b6001600160a01b03851660009081526015602052604090205460ff1680156114db5750601654640100000000900460ff165b156114e55750600e545b6001600160a01b03851660009081526015602052604090205460ff1615801561152757506001600160a01b03841660009081526015602052604090205460ff16155b1561154e576016546601000000000000900460ff161561154a5750600f5461154e565b5060005b600061155f60646110e886856115e9565b3060009081526011602052604090205490915061157c9082610bd5565b30600081815260116020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115cd9085815260200190565b60405180910390a36115df8482610f83565b9695505050505050565b6000826000036115fb5750600061082a565b60006116078385611815565b9050826116148583611834565b146108eb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109de565b60006108eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116c95760405162461bcd60e51b81526004016109de91906116d6565b506000610c658486611834565b600060208083528351808285015260005b81811015611703578581018301518582016040015282016116e7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461173957600080fd5b50565b6000806040838503121561174f57600080fd5b823561175a81611724565b946020939093013593505050565b60008060006060848603121561177d57600080fd5b833561178881611724565b9250602084013561179881611724565b929592945050506040919091013590565b6000602082840312156117bb57600080fd5b81356108eb81611724565b600080604083850312156117d957600080fd5b82356117e481611724565b915060208301356117f481611724565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561182f5761182f6117ff565b500290565b60008261185157634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561082a5761082a6117ff565b8181038181111561082a5761082a6117ff565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118a457600080fd5b81516108eb81611724565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ff5784516001600160a01b0316835293830193918301916001016118da565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122075e2f0ee37380dae503ed676ce95edf02b3b341ab5da1d946b8e35933fb4fdc964736f6c63430008100033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063715018a611610139578063a8aa1b31116100b6578063dd62ed3e1161007a578063dd62ed3e146106d1578063e5e31b1314610717578063f0ef821f14610747578063f2fde38b14610769578063f887ea4014610789578063ffb54a99146107a957600080fd5b8063a8aa1b3114610644578063a9059cbb14610664578063bf56b37114610684578063ca987b0e1461069a578063da00097d146106b057600080fd5b80638b42507f116100fd5780638b42507f146105aa5780638da5cb5b1461058c57806395d89b41146105da57806398118cb41461060a578063a53559891461062057600080fd5b8063715018a614610519578063751039fc146105305780637d1db4a514610560578063807c2d9c14610576578063893d20e81461058c57600080fd5b80633cf96af1116101c75780636827e7641161018b5780636827e764146104745780636b67c4df1461048a5780636e969656146104a057806370540933146104c057806370a08231146104e357600080fd5b80633cf96af1146103c35780633f4218e0146103e357806344de2e4c146104135780634a74bb02146104345780636303516c1461045457600080fd5b80631df4ccfc1161020e5780631df4ccfc1461033c57806323b872dd146103525780632b112e4914610372578063313ce567146103875780633268cc56146103a357600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102bf57806318160ddd146102ef5780631c75f0851461030457600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c600a5481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b5060408051808201909152600e81526d021a92ca82a279029a0a320a924960951b60208201525b60405161027691906116d6565b3480156102cb57600080fd5b506102df6102da36600461173c565b6107c3565b6040519015158152602001610276565b3480156102fb57600080fd5b5060075461026c565b34801561031057600080fd5b50600554610324906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b34801561034857600080fd5b5061026c600e5481565b34801561035e57600080fd5b506102df61036d366004611768565b610830565b34801561037e57600080fd5b5061026c6108f2565b34801561039357600080fd5b5060405160128152602001610276565b3480156103af57600080fd5b50600254610324906001600160a01b031681565b3480156103cf57600080fd5b50600454610324906001600160a01b031681565b3480156103ef57600080fd5b506102df6103fe3660046117a9565b60136020526000908152604090205460ff1681565b34801561041f57600080fd5b506016546102df90600160381b900460ff1681565b34801561044057600080fd5b506016546102df9062010000900460ff1681565b34801561046057600080fd5b50600354610324906001600160a01b031681565b34801561048057600080fd5b5061026c600d5481565b34801561049657600080fd5b5061026c600c5481565b3480156104ac57600080fd5b506102df6104bb36600461173c565b610963565b3480156104cc57600080fd5b506016546102df9065010000000000900460ff1681565b3480156104ef57600080fd5b5061026c6104fe3660046117a9565b6001600160a01b031660009081526011602052604090205490565b34801561052557600080fd5b5061052e610a0a565b005b34801561053c57600080fd5b506102df336000908152601460205260409020805460ff1916600190811790915590565b34801561056c57600080fd5b5061026c60085481565b34801561058257600080fd5b5061026c60095481565b34801561059857600080fd5b506000546001600160a01b0316610324565b3480156105b657600080fd5b506102df6105c53660046117a9565b60146020526000908152604090205460ff1681565b3480156105e657600080fd5b506040805180820190915260078152662453414641524960c81b60208201526102b2565b34801561061657600080fd5b5061026c600b5481565b34801561062c57600080fd5b506016546102df906601000000000000900460ff1681565b34801561065057600080fd5b50600654610324906001600160a01b031681565b34801561067057600080fd5b506102df61067f36600461173c565b610aae565b34801561069057600080fd5b5061026c60105481565b3480156106a657600080fd5b5061026c600f5481565b3480156106bc57600080fd5b506016546102df906301000000900460ff1681565b3480156106dd57600080fd5b5061026c6106ec3660046117c6565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561072357600080fd5b506102df6107323660046117a9565b60156020526000908152604090205460ff1681565b34801561075357600080fd5b506016546102df90640100000000900460ff1681565b34801561077557600080fd5b5061052e6107843660046117a9565b610abb565b34801561079557600080fd5b50600154610324906001600160a01b031681565b3480156107b557600080fd5b506016546102df9060ff1681565b3360008181526012602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061081e9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152601260209081526040808320338452909152812054600019146108dd576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526012825283812033825290915291909120546108b8918490610c34565b6001600160a01b03851660009081526012602090815260408083203384529091529020555b6108e8848484610c6e565b90505b9392505050565b60116020527f4ad3b33220dddc71b994a52d72c06b10862965f7d926534c05c00fb7e819e7b75461dead60009081527f97847ee99463795296047093514439c3127772df3715e628aa85601cf854171654600754919261095e9290916109589190610f83565b90610f83565b905090565b6001600160a01b0382166000908152601360205260408120805460ff19169055600582146109e75760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736044820152657420302e352560d01b60648201526084015b60405180910390fd5b6007546109f48382611815565b6109fe9190611834565b60085550600192915050565b6000546001600160a01b03163314610a645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109de565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006108eb338484610c6e565b6000546001600160a01b03163314610b155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109de565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610be28385611856565b9050838110156108eb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109de565b60008184841115610c585760405162461bcd60e51b81526004016109de91906116d6565b506000610c658486611869565b95945050505050565b601654600090610100900460ff1615610c9357610c8c848484610fc5565b90506108eb565b60085482111580610cbc57506001600160a01b03841660009081526014602052604090205460ff165b610cf35760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b60448201526064016109de565b6001600160a01b03831660009081526015602052604090205460ff168015610d235750601654610100900460ff16155b8015610d37575060165462010000900460ff165b8015610d545750600a543060009081526011602052604090205410155b15610d6157610d616110ab565b601054158015610d8957506001600160a01b03831660009081526015602052604090205460ff165b15610dd6576001600160a01b038416600090815260116020526040902054610dcd5760405162461bcd60e51b815260206004820152600060248201526044016109de565b610dd643601055565b604080516020808201835260008083526001600160a01b038816815260119091529190912054610e07918490610c34565b6001600160a01b0380861660009081526011602090815260408083209490945591861681526014909152205460ff16158015610e4c5750601654600160381b900460ff165b15610e9f576009546001600160a01b038416600090815260116020526040902054610e779084610bd5565b1115610e9f5760405162461bcd60e51b815260206004820152600060248201526044016109de565b6001600160a01b03841660009081526013602052604081205460ff16158015610ee157506001600160a01b03841660009081526013602052604090205460ff16155b610eeb5782610ef6565b610ef685858561146a565b6001600160a01b038516600090815260116020526040902054909150610f1c9082610bd5565b6001600160a01b0380861660008181526011602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f709085815260200190565b60405180910390a3506001949350505050565b60006108eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c34565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152601190915291822054611016918490610c34565b6001600160a01b0380861660009081526011602052604080822093909355908516815220546110459083610bd5565b6001600160a01b0380851660008181526011602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110999086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260116020526040812054600e54600b549192916110ee916002916110e89190829087906115e9565b9061166b565b905060006110fc8383610f83565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111365761113661187c565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190611892565b816001815181106111c6576111c661187c565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac9479061120c9085906000908690309042906004016118af565b600060405180830381600087803b15801561122657600080fd5b505af115801561123a573d6000803e3d6000fd5b5050600b544792506000915061125e9061125590600261166b565b600e5490610f83565b9050600061128060026110e8846110e8600b54886115e990919063ffffffff16565b9050600061129d836110e8600c54876115e990919063ffffffff16565b905060006112ba846110e8600d54886115e990919063ffffffff16565b6004546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611311576040519150601f19603f3d011682016040523d82523d6000602084013e611316565b606091505b5050600554604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461136e576040519150601f19603f3d011682016040523d82523d6000602084013e611373565b606091505b506000925050891590506114535760015460035460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156113f1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114169190611920565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260156020526040812054819060ff16801561149f575060165465010000000000900460ff165b156114a95750600f545b6001600160a01b03851660009081526015602052604090205460ff1680156114db5750601654640100000000900460ff165b156114e55750600e545b6001600160a01b03851660009081526015602052604090205460ff1615801561152757506001600160a01b03841660009081526015602052604090205460ff16155b1561154e576016546601000000000000900460ff161561154a5750600f5461154e565b5060005b600061155f60646110e886856115e9565b3060009081526011602052604090205490915061157c9082610bd5565b30600081815260116020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115cd9085815260200190565b60405180910390a36115df8482610f83565b9695505050505050565b6000826000036115fb5750600061082a565b60006116078385611815565b9050826116148583611834565b146108eb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109de565b60006108eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116c95760405162461bcd60e51b81526004016109de91906116d6565b506000610c658486611834565b600060208083528351808285015260005b81811015611703578581018301518582016040015282016116e7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461173957600080fd5b50565b6000806040838503121561174f57600080fd5b823561175a81611724565b946020939093013593505050565b60008060006060848603121561177d57600080fd5b833561178881611724565b9250602084013561179881611724565b929592945050506040919091013590565b6000602082840312156117bb57600080fd5b81356108eb81611724565b600080604083850312156117d957600080fd5b82356117e481611724565b915060208301356117f481611724565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561182f5761182f6117ff565b500290565b60008261185157634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561082a5761082a6117ff565b8181038181111561082a5761082a6117ff565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118a457600080fd5b81516108eb81611724565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ff5784516001600160a01b0316835293830193918301916001016118da565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122075e2f0ee37380dae503ed676ce95edf02b3b341ab5da1d946b8e35933fb4fdc964736f6c63430008100033

Deployed Bytecode Sourcemap

4552:10151:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5401:56:0;;;;;;;;7519:94;;;;;;;;;;-1:-1:-1;7600:5:0;;;;;;;;;;;;-1:-1:-1;;;7600:5:0;;;;7519:94;;;;;;;:::i;8514:248::-;;;;;;;;;;-1:-1:-1;8514:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8514:248:0;1205:187:1;7829:102:0;;;;;;;;;;-1:-1:-1;7911:12:0;;7829:102;;5101:26;;;;;;;;;;-1:-1:-1;5101:26:0;;;;-1:-1:-1;;;;;5101:26:0;;;;;;-1:-1:-1;;;;;1561:32:1;;;1543:51;;1531:2;1516:18;5101:26:0;1397:203:1;5572:28:0;;;;;;;;;;;;;;;;10389:422;;;;;;;;;;-1:-1:-1;10389:422:0;;;;;:::i;:::-;;:::i;8364:142::-;;;;;;;;;;;;;:::i;7727:94::-;;;;;;;;;;-1:-1:-1;7727:94:0;;5197:2;2208:36:1;;2196:2;2181:18;7727:94:0;2066:184:1;4955:73:0;;;;;;;;;;-1:-1:-1;4955:73:0;;;;-1:-1:-1;;;;;4955:73:0;;;5065:29;;;;;;;;;;-1:-1:-1;5065:29:0;;;;-1:-1:-1;;;;;5065:29:0;;;5810:43;;;;;;;;;;-1:-1:-1;5810:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6251:33;;;;;;;;;;-1:-1:-1;6251:33:0;;;;-1:-1:-1;;;6251:33:0;;;;;;6038:40;;;;;;;;;;-1:-1:-1;6038:40:0;;;;;;;;;;;5035:23;;;;;;;;;;-1:-1:-1;5035:23:0;;;;-1:-1:-1;;;;;5035:23:0;;;5540:25;;;;;;;;;;;;;;;;5502:31;;;;;;;;;;;;;;;;8770:290;;;;;;;;;;-1:-1:-1;8770:290:0;;;;;:::i;:::-;;:::i;6173:30::-;;;;;;;;;;-1:-1:-1;6173:30:0;;;;;;;;;;;8041:119;;;;;;;;;;-1:-1:-1;8041:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8134:18:0;8107:7;8134:18;;;:9;:18;;;;;;;8041:119;4108:148;;;;;;;;;;;;;:::i;:::-;;9068:120;;;;;;;;;;;;9140:10;9109:4;9124:27;;;:15;:27;;;;;:34;;-1:-1:-1;;9124:34:0;9154:4;9124:34;;;;;;9154:4;9068:120;5277:56;;;;;;;;;;;;;;;;5340:54;;;;;;;;;;;;;;;;7939:94;;;;;;;;;;-1:-1:-1;7991:7:0;3959:6;-1:-1:-1;;;;;3959:6:0;7939:94;8364:142;5860:47;;;;;;;;;;-1:-1:-1;5860:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7621:98;;;;;;;;;;-1:-1:-1;7704:7:0;;;;;;;;;;;;-1:-1:-1;;;7704:7:0;;;;7621:98;;5464:31;;;;;;;;;;;;;;;;6210:34;;;;;;;;;;-1:-1:-1;6210:34:0;;;;;;;;;;;5134:19;;;;;;;;;;-1:-1:-1;5134:19:0;;;;-1:-1:-1;;;;;5134:19:0;;;9784:188;;;;;;;;;;-1:-1:-1;9784:188:0;;;;;:::i;:::-;;:::i;5650:25::-;;;;;;;;;;;;;;;;5607:36;;;;;;;;;;;;;;;;6085:45;;;;;;;;;;-1:-1:-1;6085:45:0;;;;;;;;;;;8168:188;;;;;;;;;;-1:-1:-1;8168:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;8320:19:0;;;8288:7;8320:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8168:188;5914:38;;;;;;;;;;-1:-1:-1;5914:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6137:29;;;;;;;;;;-1:-1:-1;6137:29:0;;;;;;;;;;;4264:281;;;;;;;;;;-1:-1:-1;4264:281:0;;;;;:::i;:::-;;:::i;4640:23::-;;;;;;;;;;-1:-1:-1;4640:23:0;;;;-1:-1:-1;;;;;4640:23:0;;;5965:30;;;;;;;;;;-1:-1:-1;5965:30:0;;;;;;;;8514:248;8650:10;8616:4;8638:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8638:32:0;;;;;;;;;;:41;;;8695:37;8616:4;;8638:32;;8695:37;;;;8673:6;160:25:1;;148:2;133:18;;14:177;8695:37:0;;;;;;;;-1:-1:-1;8750:4:0;8514:248;;;;;:::o;10389:422::-;-1:-1:-1;;;;;10544:19:0;;10523:4;10544:19;;;:11;:19;;;;;;;;10564:10;10544:31;;;;;;;;-1:-1:-1;;10544:52:0;10540:206;;10647:87;;;;;;;;;;;-1:-1:-1;;;10647:87:0;;;;;;;;-1:-1:-1;;;;;10647:19:0;;-1:-1:-1;10647:19:0;;;:11;:19;;;;;10667:10;10647:31;;;;;;;;;;:87;;10701:6;;10647:53;:87::i;:::-;-1:-1:-1;;;;;10613:19:0;;;;;;:11;:19;;;;;;;;10633:10;10613:31;;;;;;;:121;10540:206;10763:40;10777:6;10785:9;10796:6;10763:13;:40::i;:::-;10756:47;;10389:422;;;;;;:::o;8364:142::-;8134:9;:18;;;;4825:42;8417:7;8134:18;;;;;8444:12;;8417:7;;8444:54;;8134:18;;8444:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8437:61;;8364:142;:::o;8770:290::-;-1:-1:-1;;;;;8864:19:0;;8847:4;8864:19;;;:11;:19;;;;;:27;;-1:-1:-1;;8864:27:0;;;8921:1;8910:12;;8902:63;;;;-1:-1:-1;;;8902:63:0;;3327:2:1;8902:63:0;;;3309:21:1;3366:2;3346:18;;;3339:30;3405:34;3385:18;;;3378:62;-1:-1:-1;;;3456:18:1;;;3449:36;3502:19;;8902:63:0;;;;;;;;;9018:12;;8992:22;9007:7;9018:12;8992:22;:::i;:::-;8991:39;;;;:::i;:::-;8976:12;:54;-1:-1:-1;9048:4:0;8770:290;;;;:::o;4108:148::-;4021:6;;-1:-1:-1;;;;;4021:6:0;3402:10;4021:22;4013:67;;;;-1:-1:-1;;;4013:67:0;;4261:2:1;4013:67:0;;;4243:21:1;;;4280:18;;;4273:30;4339:34;4319:18;;;4312:62;4391:18;;4013:67:0;4059:356:1;4013:67:0;4215:1:::1;4199:6:::0;;4178:40:::1;::::0;-1:-1:-1;;;;;4199:6:0;;::::1;::::0;4178:40:::1;::::0;4215:1;;4178:40:::1;4246:1;4229:19:::0;;-1:-1:-1;;;;;;4229:19:0::1;::::0;;4108:148::o;9784:188::-;9891:4;9920:44;9934:10;9946:9;9957:6;9920:13;:44::i;4264:281::-;4021:6;;-1:-1:-1;;;;;4021:6:0;3402:10;4021:22;4013:67;;;;-1:-1:-1;;;4013:67:0;;4261:2:1;4013:67:0;;;4243:21:1;;;4280:18;;;4273:30;4339:34;4319:18;;;4312:62;4391:18;;4013:67:0;4059:356:1;4013:67:0;-1:-1:-1;;;;;4367:22:0;::::1;4345:110;;;::::0;-1:-1:-1;;;4345:110:0;;4622:2:1;4345:110:0::1;::::0;::::1;4604:21:1::0;4661:2;4641:18;;;4634:30;4700:34;4680:18;;;4673:62;-1:-1:-1;;;4751:18:1;;;4744:36;4797:19;;4345:110:0::1;4420:402:1::0;4345:110:0::1;4492:6;::::0;;4471:38:::1;::::0;-1:-1:-1;;;;;4471:38:0;;::::1;::::0;4492:6;::::1;::::0;4471:38:::1;::::0;::::1;4520:6;:17:::0;;-1:-1:-1;;;;;;4520:17:0::1;-1:-1:-1::0;;;;;4520:17:0;;;::::1;::::0;;;::::1;::::0;;4264:281::o;162:179::-;220:7;;252:5;256:1;252;:5;:::i;:::-;240:17;;281:1;276;:6;;268:46;;;;-1:-1:-1;;;268:46:0;;5159:2:1;268:46:0;;;5141:21:1;5198:2;5178:18;;;5171:30;5237:29;5217:18;;;5210:57;5284:18;;268:46:0;4957:351:1;493:224:0;613:7;649:12;641:6;;;;633:29;;;;-1:-1:-1;;;633:29:0;;;;;;;;:::i;:::-;-1:-1:-1;673:9:0;685:5;689:1;685;:5;:::i;:::-;673:17;493:224;-1:-1:-1;;;;;493:224:0:o;10819:1240::-;10966:16;;10945:4;;10966:16;;;;;10962:97;;;11006:41;11021:6;11029:9;11040:6;11006:14;:41::i;:::-;10999:48;;;;10962:97;11089:12;;11079:6;:22;;:49;;;-1:-1:-1;;;;;;11105:23:0;;;;;;:15;:23;;;;;;;;11079:49;11071:70;;;;-1:-1:-1;;;11071:70:0;;5648:2:1;11071:70:0;;;5630:21:1;5687:1;5667:18;;;5660:29;-1:-1:-1;;;5705:18:1;;;5698:38;5753:18;;11071:70:0;5446:331:1;11071:70:0;-1:-1:-1;;;;;11170:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;11205:16:0;;;;;;;11204:17;11170:51;:89;;;;-1:-1:-1;11238:21:0;;;;;;;11170:89;:147;;;;-1:-1:-1;11304:13:0;;11294:4;11276:24;;;;:9;:24;;;;;;:41;;11170:147;11152:221;;;11344:17;:15;:17::i;:::-;9263:10;;:15;;;11387:32;;-1:-1:-1;;;;;;11402:17:0;;;;;;:6;:17;;;;;;;;11387:32;11383:122;;;-1:-1:-1;;;;;11444:17:0;;11464:1;11444:17;;;:9;:17;;;;;;11436:34;;;;-1:-1:-1;;;11436:34:0;;5984:2:1;11436:34:0;;;5966:21:1;-1:-1:-1;6003:18:1;;;5996:29;6042:18;;11436:34:0;5782:284:1;11436:34:0;11485:8;9345:12;9332:10;:25;9294:71;11485:8;11564:33;;;;;;;;;-1:-1:-1;11564:33:0;;;-1:-1:-1;;;;;11564:17:0;;;;:9;:17;;;;;;;;:33;;11586:6;;11564:21;:33::i;:::-;-1:-1:-1;;;;;11544:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;11615:26;;;;;:15;:26;;;;;;;11614:27;:45;;;;-1:-1:-1;11645:14:0;;-1:-1:-1;;;11645:14:0;;;;11614:45;11610:137;;;11720:10;;-1:-1:-1;;;;;11684:20:0;;;;;;:9;:20;;;;;;:32;;11709:6;11684:24;:32::i;:::-;:46;;11676:59;;;;-1:-1:-1;;;11676:59:0;;5984:2:1;11676:59:0;;;5966:21:1;-1:-1:-1;6003:18:1;;;5996:29;6042:18;;11676:59:0;5782:284:1;11676:59:0;-1:-1:-1;;;;;11782:19:0;;11759;11782;;;:11;:19;;;;;;;;11781:20;:47;;;;-1:-1:-1;;;;;;11806:22:0;;;;;;:11;:22;;;;;;;;11805:23;11781:47;:119;;11894:6;11781:119;;;11844:34;11852:6;11860:9;11871:6;11844:7;:34::i;:::-;-1:-1:-1;;;;;11934:20:0;;;;;;:9;:20;;;;;;11759:141;;-1:-1:-1;11934:37:0;;11759:141;11934:24;:37::i;:::-;-1:-1:-1;;;;;11911:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11989:40;;;;;;;;;;12017:11;160:25:1;;148:2;133:18;;14:177;11989:40:0;;;;;;;;-1:-1:-1;12047:4:0;;10819:1240;-1:-1:-1;;;;10819:1240:0:o;349:136::-;407:7;434:43;438:1;441;434:43;;;;;;;;;;;;;;;;;:3;:43::i;9980:401::-;10144:90;;;;;;;;;;;-1:-1:-1;;;10144:90:0;;;;;;;;-1:-1:-1;;;;;10144:17:0;;10107:4;10144:17;;;:9;:17;;;;;;;:90;;10180:6;;10144:21;:90::i;:::-;-1:-1:-1;;;;;10124:17:0;;;;;;;:9;:17;;;;;;:110;;;;10268:20;;;;;;;:32;;10293:6;10268:24;:32::i;:::-;-1:-1:-1;;;;;10245:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10316:35;;;;;;;;;;10344:6;160:25:1;;148:2;133:18;;14:177;10316:35:0;;;;;;;;-1:-1:-1;10369:4:0;9980:401;;;;;:::o;12922:1776::-;6395:16;:23;;-1:-1:-1;;6395:23:0;;;;;13025:4:::1;6395:23:::0;13007:24;;;:9:::1;:24;::::0;;;;;13134:8:::1;::::0;13102:12:::1;::::0;13007:24;;6395:23;13068:96:::1;::::0;13162:1:::1;::::0;13068:75:::1;::::0;13134:8;13068:75;;13007:24;;13068:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;13042:122:::0;-1:-1:-1;13175:20:0::1;13198:36;:15:::0;13042:122;13198:19:::1;:36::i;:::-;13271:16;::::0;;13285:1:::1;13271:16:::0;;;;;::::1;::::0;;13175:59;;-1:-1:-1;13247:21:0::1;::::0;13271:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13271:16:0::1;13247:40;;13316:4;13298;13303:1;13298:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13298:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13342:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13342:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;13298:7;;13342:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13332:4;13337:1;13332:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13332:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13368:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13368:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13440:12;;13368:6:::1;::::0;13483:4;;13510::::1;::::0;13530:15:::1;::::0;13368:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13658:12:0::1;::::0;13589:21:::1;::::0;-1:-1:-1;13569:17:0::1;::::0;-1:-1:-1;13645:33:0::1;::::0;13658:19:::1;::::0;13675:1:::1;13658:16;:19::i;:::-;13645:8;::::0;;:12:::1;:33::i;:::-;13623:55;;13691:26;13720:93;13811:1;13720:72;13780:11;13720:41;13748:12;;13720:9;:27;;:41;;;;:::i;:93::-;13691:122;;13824:26;13853:68;13899:11;13853:27;13867:12;;13853:9;:13;;:27;;;;:::i;:68::-;13824:97;;13932:20;13955:38;13981:11;13955:21;13969:6;;13955:9;:13;;:21;;;;:::i;:38::-;14037:14;::::0;14029:108:::1;::::0;13932:61;;-1:-1:-1;14007:16:0::1;::::0;-1:-1:-1;;;;;14037:14:0;;::::1;::::0;14117:5:::1;::::0;14079:18;;14007:16;14029:108;14007:16;14029:108;14079:18;14037:14;14117:5;14029:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14206:11:0::1;::::0;14198:99:::1;::::0;14162:5:::1;::::0;-1:-1:-1;;;;;;14206:11:0;;::::1;::::0;-1:-1:-1;14277:5:0::1;::::0;14245:12;;14162:5;14198:99;14162:5;14198:99;14245:12;14206:11;14277:5;14198:99:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14322:5:0::1;::::0;-1:-1:-1;;14344:19:0;;;-1:-1:-1;14340:351:0::1;;14380:6;::::0;14554:8:::1;::::0;14380:231:::1;::::0;-1:-1:-1;;;14380:231:0;;14456:4:::1;14380:231;::::0;::::1;8127:34:1::0;8177:18;;;8170:34;;;14380:6:0::1;8220:18:1::0;;;8213:34;;;8263:18;;;8256:34;-1:-1:-1;;;;;14554:8:0;;::::1;8306:19:1::0;;;8299:44;14581:15:0::1;8359:19:1::0;;;8352:35;14380:6:0;::::1;::::0;:22:::1;::::0;14410:18;;8061:19:1;;14380:231:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14631:48:0::1;::::0;;8883:25:1;;;8939:2;8924:18;;8917:34;;;14631:48:0::1;::::0;-1:-1:-1;8856:18:1;14631:48:0::1;;;;;;;14340:351;-1:-1:-1::0;;6441:16:0;:24;;-1:-1:-1;;6441:24:0;;;-1:-1:-1;;;;;;;;12922:1776:0:o;12067:847::-;-1:-1:-1;;;;;12247:17:0;;12187:7;12247:17;;;:6;:17;;;;;;12187:7;;12247:17;;:32;;;;-1:-1:-1;12268:11:0;;;;;;;12247:32;12243:98;;;-1:-1:-1;12312:17:0;;12243:98;-1:-1:-1;;;;;12355:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;12373:10:0;;;;;;;12355:28;12351:85;;;-1:-1:-1;12416:8:0;;12351:85;-1:-1:-1;;;;;12451:14:0;;;;;;:6;:14;;;;;;;;12450:15;:37;;;;-1:-1:-1;;;;;;12470:17:0;;;;;;:6;:17;;;;;;;;12469:18;12450:37;12446:216;;;12508:15;;;;;;;12504:147;;;-1:-1:-1;12560:17:0;;12504:147;;;-1:-1:-1;12634:1:0;12504:147;12674:17;12694:34;12724:3;12694:25;:6;12705:13;12694:10;:25::i;:34::-;12786:4;12768:24;;;;:9;:24;;;;;;12674:54;;-1:-1:-1;12768:39:0;;12674:54;12768:28;:39::i;:::-;12759:4;12741:24;;;;:9;:24;;;;;;;:66;;;;12823:42;;-1:-1:-1;;;;;12823:42:0;;;;;;;12855:9;160:25:1;;148:2;133:18;;14:177;12823:42:0;;;;;;;;12885:21;:6;12896:9;12885:10;:21::i;:::-;12878:28;12067:847;-1:-1:-1;;;;;;12067:847:0:o;725:246::-;783:7;807:1;812;807:6;803:47;;-1:-1:-1;837:1:0;830:8;;803:47;860:9;872:5;876:1;872;:5;:::i;:::-;860:17;-1:-1:-1;905:1:0;896:5;900:1;860:17;896:5;:::i;:::-;:10;888:56;;;;-1:-1:-1;;;888:56:0;;9164:2:1;888:56:0;;;9146:21:1;9203:2;9183:18;;;9176:30;9242:34;9222:18;;;9215:62;-1:-1:-1;;;9293:18:1;;;9286:31;9334:19;;888:56:0;8962:397:1;979:132:0;1037:7;1064:39;1068:1;1071;1064:39;;;;;;;;;;;;;;;;;1239:7;1274:12;1267:5;1259:28;;;;-1:-1:-1;;;1259:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1298:9:0;1310:5;1314:1;1310;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;3532:127::-;3593:10;3588:3;3584:20;3581:1;3574:31;3624:4;3621:1;3614:15;3648:4;3645:1;3638:15;3664:168;3704:7;3770:1;3766;3762:6;3758:14;3755:1;3752:21;3747:1;3740:9;3733:17;3729:45;3726:71;;;3777:18;;:::i;:::-;-1:-1:-1;3817:9:1;;3664:168::o;3837:217::-;3877:1;3903;3893:132;;3947:10;3942:3;3938:20;3935:1;3928:31;3982:4;3979:1;3972:15;4010:4;4007:1;4000:15;3893:132;-1:-1:-1;4039:9:1;;3837:217::o;4827:125::-;4892:9;;;4913:10;;;4910:36;;;4926:18;;:::i;5313:128::-;5380:9;;;5401:11;;;5398:37;;;5415:18;;:::i;6203:127::-;6264:10;6259:3;6255:20;6252:1;6245:31;6295:4;6292:1;6285:15;6319:4;6316:1;6309:15;6335:251;6405:6;6458:2;6446:9;6437:7;6433:23;6429:32;6426:52;;;6474:1;6471;6464:12;6426:52;6506:9;6500:16;6525:31;6550:5;6525:31;:::i;6591:980::-;6853:4;6901:3;6890:9;6886:19;6932:6;6921:9;6914:25;6958:2;6996:6;6991:2;6980:9;6976:18;6969:34;7039:3;7034:2;7023:9;7019:18;7012:31;7063:6;7098;7092:13;7129:6;7121;7114:22;7167:3;7156:9;7152:19;7145:26;;7206:2;7198:6;7194:15;7180:29;;7227:1;7237:195;7251:6;7248:1;7245:13;7237:195;;;7316:13;;-1:-1:-1;;;;;7312:39:1;7300:52;;7407:15;;;;7372:12;;;;7348:1;7266:9;7237:195;;;-1:-1:-1;;;;;;;7488:32:1;;;;7483:2;7468:18;;7461:60;-1:-1:-1;;;7552:3:1;7537:19;7530:35;7449:3;6591:980;-1:-1:-1;;;6591:980:1:o;8398:306::-;8486:6;8494;8502;8555:2;8543:9;8534:7;8530:23;8526:32;8523:52;;;8571:1;8568;8561:12;8523:52;8600:9;8594:16;8584:26;;8650:2;8639:9;8635:18;8629:25;8619:35;;8694:2;8683:9;8679:18;8673:25;8663:35;;8398:306;;;;;:::o

Swarm Source

ipfs://75e2f0ee37380dae503ed676ce95edf02b3b341ab5da1d946b8e35933fb4fdc9
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.