ETH Price: $2,413.15 (+1.26%)

Token

Caishen888 (888)
 

Overview

Max Total Supply

888,000,000 888

Holders

89

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,792,309.225000001566085743 888

Value
$0.00
0x9bf3a1fd4fa973e3912085852836947b887abd03
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:
Caishen888ERC

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

/*

https://twitter.com/caishen888erc20
https://t.me/Caishen88Portal
http://caishen-888.com/

*/

pragma solidity 0.8.11;

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

abstract contract Auth {
    address public owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

contract Caishen888ERC is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Caishen888";
    string public constant symbol = "888";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 888 * 10**6 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isHuman;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public marketingFee = 10;
    uint256 public totalFee = marketingFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 200;
    uint256 sellMultiplier = 200;
    uint256 transferMultiplier = 999;

    address public marketingFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 1000;
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0xB3eAbdA75291eE4e69021fBb5CCcFA115C5348aa;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

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

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

    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 setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 10,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }

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

        if(!tradingOpen && !isFeeExempt[sender]){
            require(isHuman[sender] || isHuman[recipient],"trading not open yet");
        }

        if (!isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function manualSwap() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }

    function swapBack() internal swapping {

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

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

        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH);
    }

    function manage_humans(address[] calldata addresses, bool status) external onlyOwner {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isHuman[addresses[i]] = status;
        }
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        require(totalFee.mul(buyMultiplier).div(100) <= 10, "Buy tax cannot be more than 10%");
        require(totalFee.mul(sellMultiplier).div(100) <= 10, "Sell tax cannot be more than 10%");
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

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":"address","name":"owner","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":"_maxWalletToken","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"isHuman","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_humans","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"view","type":"function"},{"inputs":[],"name":"totalFee","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"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146012600a620004a7565b62000024906334edce00620004bf565b620000309190620004e1565b600155600a6007819055600881905560c8600981905581556103e7600b55600d805461ffff60a01b1916600160a81b1790556103e8906200007490601290620004a7565b62000084906334edce00620004bf565b620000909190620004e1565b600e55348015620000a057600080fd5b5060008054336001600160a01b031991821617909155600d8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000111573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000137919062000504565b6001600160a01b03908116608052600d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000188573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ae919062000504565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000226919062000504565b6001600160a01b0390811660a052306000818152600360209081526040808320600d548616845282528083206000199055600c80546001600160a01b03191673b3eabda75291ee4e69021fbb5cccfa115c5348aa1781553380855260048452828520805460ff199081166001908117909255835489168752848720805482168317905591865260069094528285208054821685179055905490951683528083208054861683179055928252918120805484168317905561dead90527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909216179055620003186012600a620004a7565b62000328906334edce00620004bf565b33600081815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200036b6012600a620004a7565b6200037b906334edce00620004bf565b60405190815260200160405180910390a36200052f565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e9578160001904821115620003cd57620003cd62000392565b80851615620003db57918102915b93841c9390800290620003ad565b509250929050565b6000826200040257506001620004a1565b816200041157506000620004a1565b81600181146200042a5760028114620004355762000455565b6001915050620004a1565b60ff84111562000449576200044962000392565b50506001821b620004a1565b5060208310610133831016604e8410600b84101617156200047a575081810a620004a1565b620004868383620003a8565b80600019048211156200049d576200049d62000392565b0290505b92915050565b6000620004b860ff841683620003f1565b9392505050565b6000816000190483118215151615620004dc57620004dc62000392565b500290565b600082620004ff57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200051757600080fd5b81516001600160a01b0381168114620004b857600080fd5b60805160a051611b1b620005716000396000818161055901528181610f01015281816112bb015281816114a201526114e5015260006113850152611b1b6000f3fe6080604052600436106101fd5760003560e01c80636ddd17131161010d578063a9059cbb116100a0578063df20fd491161006f578063df20fd4914610626578063e96fada214610646578063f72c436f14610666578063f887ea4014610696578063ffb54a99146106b657600080fd5b8063a9059cbb1461057b578063c867d60b1461059b578063c9567bf9146105cb578063dd62ed3e146105e057600080fd5b8063893d20e8116100dc578063893d20e8146104c65780638da5cb5b146104f857806395d89b4114610518578063a8aa1b311461054757600080fd5b80636ddd17131461044d57806370a082311461046e578063715018a61461049b57806378109e54146104b057600080fd5b80632b112e491161019057806351bc3c851161015f57806351bc3c85146103c2578063571ac8b0146103d757806357977f37146103f75780636b67c4df146104175780636ce46bc31461042d57600080fd5b80632b112e49146103275780632f54bf6e1461033c578063313ce5671461036b5780633f4218e01461039257600080fd5b8063180b0d7e116101cc578063180b0d7e146102c757806318160ddd146102dc5780631df4ccfc146102f157806323b872dd1461030757600080fd5b80630445b6671461020957806306fdde031461023257806309302dc614610275578063095ea7b31461029757600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f600e5481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b506102686040518060400160405280600a815260200169086c2d2e6d0cadc7070760b31b81525081565b60405161022991906116b0565b34801561028157600080fd5b50610295610290366004611705565b6106d7565b005b3480156102a357600080fd5b506102b76102b236600461173a565b6107b3565b6040519015158152602001610229565b3480156102d357600080fd5b5061021f606481565b3480156102e857600080fd5b5061021f610820565b3480156102fd57600080fd5b5061021f60085481565b34801561031357600080fd5b506102b7610322366004611764565b61083d565b34801561033357600080fd5b5061021f610906565b34801561034857600080fd5b506102b76103573660046117a0565b6000546001600160a01b0391821691161490565b34801561037757600080fd5b50610380601281565b60405160ff9091168152602001610229565b34801561039e57600080fd5b506102b76103ad3660046117a0565b60046020526000908152604090205460ff1681565b3480156103ce57600080fd5b5061029561098d565b3480156103e357600080fd5b506102b76103f23660046117a0565b6109c9565b34801561040357600080fd5b506102956104123660046117cb565b6109d7565b34801561042357600080fd5b5061021f60075481565b34801561043957600080fd5b5061029561044836600461184f565b610aee565b34801561045957600080fd5b50600d546102b790600160a81b900460ff1681565b34801561047a57600080fd5b5061021f6104893660046117a0565b60026020526000908152604090205481565b3480156104a757600080fd5b50610295610c19565b3480156104bc57600080fd5b5061021f60015481565b3480156104d257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610229565b34801561050457600080fd5b506000546104e0906001600160a01b031681565b34801561052457600080fd5b506102686040518060400160405280600381526020016207070760eb1b81525081565b34801561055357600080fd5b506104e07f000000000000000000000000000000000000000000000000000000000000000081565b34801561058757600080fd5b506102b761059636600461173a565b610cae565b3480156105a757600080fd5b506102b76105b63660046117a0565b60066020526000908152604090205460ff1681565b3480156105d757600080fd5b50610295610cbb565b3480156105ec57600080fd5b5061021f6105fb36600461187b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561063257600080fd5b506102956106413660046118ae565b610d13565b34801561065257600080fd5b50600c546104e0906001600160a01b031681565b34801561067257600080fd5b506102b76106813660046117a0565b60056020526000908152604090205460ff1681565b3480156106a257600080fd5b50600d546104e0906001600160a01b031681565b3480156106c257600080fd5b50600d546102b790600160a01b900460ff1681565b6000546001600160a01b0316331461071f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b600a81101561077b5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610716565b6103e88161078b6012600a6119c4565b610799906334edce006119d3565b6107a391906119d3565b6107ad91906119f2565b60015550565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080e9086815260200190565b60405180910390a35060015b92915050565b61082c6012600a6119c4565b61083a906334edce006119d3565b81565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146108f157604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546108cc918490610d99565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b6108fc848484610dd3565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906109666012600a6119c4565b610974906334edce006119d3565b61097e9190611a14565b6109889190611a14565b905090565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109c6573d6000803e3d6000fd5b50565b600061081a826000196107b3565b6000546001600160a01b03163314610a1a5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b6101f58210610a795760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b6064820152608401610716565b60005b82811015610ae8578160056000868685818110610a9b57610a9b611a2b565b9050602002016020810190610ab091906117a0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ae181611a41565b9050610a7c565b50505050565b6000546001600160a01b03163314610b315760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b600a8281556009849055600b829055600854610b5a90606490610b549087611107565b90611186565b1115610ba85760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610716565b600a610bc66064610b54600a5460085461110790919063ffffffff16565b1115610c145760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203130256044820152606401610716565b505050565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b6000805473ffffffffffffffffffffffffffffffffffffffff191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006108ff338484610dd3565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b600d805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d565760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b600d805460ff60a81b1916600160a81b8415150217905580610d7a6012600a6119c4565b610d88906334edce006119d3565b610d9291906119f2565b600e555050565b60008184841115610dbd5760405162461bcd60e51b815260040161071691906116b0565b506000610dca8486611a14565b95945050505050565b600f5460009060ff1615610df357610dec8484846111c8565b90506108ff565b600d54600160a01b900460ff16158015610e2657506001600160a01b03841660009081526004602052604090205460ff16155b15610eb6576001600160a01b03841660009081526005602052604090205460ff1680610e6a57506001600160a01b03831660009081526005602052604090205460ff165b610eb65760405162461bcd60e51b815260206004820152601460248201527f74726164696e67206e6f74206f70656e207965740000000000000000000000006044820152606401610716565b6001600160a01b03841660009081526006602052604090205460ff16158015610ef857506001600160a01b03831660009081526006602052604090205460ff16155b8015610f3657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610fb0576001546001600160a01b038416600090815260026020526040902054610f62908490611a5c565b1115610fb05760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610716565b610fb86112ae565b15610fc557610fc5611321565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054611017918490610d99565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff168061106457506001600160a01b03841660009081526004602052604090205460ff165b6110785761107385848661147e565b61107a565b825b6001600160a01b0385166000908152600260205260409020549091506110a090826115e1565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f49085815260200190565b60405180910390a3506001949350505050565b6000826111165750600061081a565b600061112283856119d3565b90508261112f85836119f2565b146108ff5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610716565b60006108ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611640565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054611219918490610d99565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461124890836115e1565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061129c9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906112ec5750600f5460ff16155b80156113015750600d54600160a81b900460ff165b8015610988575050600e5430600090815260026020526040902054101590565b600f805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136357611363611a2b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106113b7576113b7611a2b565b6001600160a01b039283166020918202929092010152600d54600e5460405163791ac94760e01b8152919092169163791ac947916114019190600090869030904290600401611a74565b600060405180830381600087803b15801561141b57600080fd5b505af115801561142f573d6000803e3d6000fd5b5050600c546040514793506001600160a01b03909116915082156108fc029083906000818181858888f1935050505015801561146f573d6000803e3d6000fd5b5050600f805460ff1916905550565b600082158061148d5750600854155b156114995750816108ff565b6000600b5490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614156114e35750600a54611522565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316141561152257506009545b60006115516115326064806119d3565b610b548461154b6008548a61110790919063ffffffff16565b90611107565b905080156115cd573060009081526002602052604090205461157390826115e1565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115c49085815260200190565b60405180910390a35b6115d7858261166e565b9695505050505050565b6000806115ee8385611a5c565b9050838110156108ff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610716565b600081836116615760405162461bcd60e51b815260040161071691906116b0565b506000610dca84866119f2565b60006108ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d99565b600060208083528351808285015260005b818110156116dd578581018301518582016040015282016116c1565b818111156116ef576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561171757600080fd5b5035919050565b80356001600160a01b038116811461173557600080fd5b919050565b6000806040838503121561174d57600080fd5b6117568361171e565b946020939093013593505050565b60008060006060848603121561177957600080fd5b6117828461171e565b92506117906020850161171e565b9150604084013590509250925092565b6000602082840312156117b257600080fd5b6108ff8261171e565b8035801515811461173557600080fd5b6000806000604084860312156117e057600080fd5b833567ffffffffffffffff808211156117f857600080fd5b818601915086601f83011261180c57600080fd5b81358181111561181b57600080fd5b8760208260051b850101111561183057600080fd5b60209283019550935061184691860190506117bb565b90509250925092565b60008060006060848603121561186457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561188e57600080fd5b6118978361171e565b91506118a56020840161171e565b90509250929050565b600080604083850312156118c157600080fd5b611756836117bb565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561191b578160001904821115611901576119016118ca565b8085161561190e57918102915b93841c93908002906118e5565b509250929050565b6000826119325750600161081a565b8161193f5750600061081a565b8160018114611955576002811461195f5761197b565b600191505061081a565b60ff841115611970576119706118ca565b50506001821b61081a565b5060208310610133831016604e8410600b841016171561199e575081810a61081a565b6119a883836118e0565b80600019048211156119bc576119bc6118ca565b029392505050565b60006108ff60ff841683611923565b60008160001904831182151516156119ed576119ed6118ca565b500290565b600082611a0f57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611a2657611a266118ca565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611a5557611a556118ca565b5060010190565b60008219821115611a6f57611a6f6118ca565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac45784516001600160a01b031683529383019391830191600101611a9f565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208006afd76afdc4e52874525d9e6b9754c1883a242c5cb44e64823a654bea958b64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80636ddd17131161010d578063a9059cbb116100a0578063df20fd491161006f578063df20fd4914610626578063e96fada214610646578063f72c436f14610666578063f887ea4014610696578063ffb54a99146106b657600080fd5b8063a9059cbb1461057b578063c867d60b1461059b578063c9567bf9146105cb578063dd62ed3e146105e057600080fd5b8063893d20e8116100dc578063893d20e8146104c65780638da5cb5b146104f857806395d89b4114610518578063a8aa1b311461054757600080fd5b80636ddd17131461044d57806370a082311461046e578063715018a61461049b57806378109e54146104b057600080fd5b80632b112e491161019057806351bc3c851161015f57806351bc3c85146103c2578063571ac8b0146103d757806357977f37146103f75780636b67c4df146104175780636ce46bc31461042d57600080fd5b80632b112e49146103275780632f54bf6e1461033c578063313ce5671461036b5780633f4218e01461039257600080fd5b8063180b0d7e116101cc578063180b0d7e146102c757806318160ddd146102dc5780631df4ccfc146102f157806323b872dd1461030757600080fd5b80630445b6671461020957806306fdde031461023257806309302dc614610275578063095ea7b31461029757600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f600e5481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b506102686040518060400160405280600a815260200169086c2d2e6d0cadc7070760b31b81525081565b60405161022991906116b0565b34801561028157600080fd5b50610295610290366004611705565b6106d7565b005b3480156102a357600080fd5b506102b76102b236600461173a565b6107b3565b6040519015158152602001610229565b3480156102d357600080fd5b5061021f606481565b3480156102e857600080fd5b5061021f610820565b3480156102fd57600080fd5b5061021f60085481565b34801561031357600080fd5b506102b7610322366004611764565b61083d565b34801561033357600080fd5b5061021f610906565b34801561034857600080fd5b506102b76103573660046117a0565b6000546001600160a01b0391821691161490565b34801561037757600080fd5b50610380601281565b60405160ff9091168152602001610229565b34801561039e57600080fd5b506102b76103ad3660046117a0565b60046020526000908152604090205460ff1681565b3480156103ce57600080fd5b5061029561098d565b3480156103e357600080fd5b506102b76103f23660046117a0565b6109c9565b34801561040357600080fd5b506102956104123660046117cb565b6109d7565b34801561042357600080fd5b5061021f60075481565b34801561043957600080fd5b5061029561044836600461184f565b610aee565b34801561045957600080fd5b50600d546102b790600160a81b900460ff1681565b34801561047a57600080fd5b5061021f6104893660046117a0565b60026020526000908152604090205481565b3480156104a757600080fd5b50610295610c19565b3480156104bc57600080fd5b5061021f60015481565b3480156104d257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610229565b34801561050457600080fd5b506000546104e0906001600160a01b031681565b34801561052457600080fd5b506102686040518060400160405280600381526020016207070760eb1b81525081565b34801561055357600080fd5b506104e07f000000000000000000000000f93c14baef919d07ec2bb79afb7db0c23f2f302381565b34801561058757600080fd5b506102b761059636600461173a565b610cae565b3480156105a757600080fd5b506102b76105b63660046117a0565b60066020526000908152604090205460ff1681565b3480156105d757600080fd5b50610295610cbb565b3480156105ec57600080fd5b5061021f6105fb36600461187b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561063257600080fd5b506102956106413660046118ae565b610d13565b34801561065257600080fd5b50600c546104e0906001600160a01b031681565b34801561067257600080fd5b506102b76106813660046117a0565b60056020526000908152604090205460ff1681565b3480156106a257600080fd5b50600d546104e0906001600160a01b031681565b3480156106c257600080fd5b50600d546102b790600160a01b900460ff1681565b6000546001600160a01b0316331461071f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b600a81101561077b5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610716565b6103e88161078b6012600a6119c4565b610799906334edce006119d3565b6107a391906119d3565b6107ad91906119f2565b60015550565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080e9086815260200190565b60405180910390a35060015b92915050565b61082c6012600a6119c4565b61083a906334edce006119d3565b81565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146108f157604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546108cc918490610d99565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b6108fc848484610dd3565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906109666012600a6119c4565b610974906334edce006119d3565b61097e9190611a14565b6109889190611a14565b905090565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109c6573d6000803e3d6000fd5b50565b600061081a826000196107b3565b6000546001600160a01b03163314610a1a5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b6101f58210610a795760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b6064820152608401610716565b60005b82811015610ae8578160056000868685818110610a9b57610a9b611a2b565b9050602002016020810190610ab091906117a0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ae181611a41565b9050610a7c565b50505050565b6000546001600160a01b03163314610b315760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b600a8281556009849055600b829055600854610b5a90606490610b549087611107565b90611186565b1115610ba85760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610716565b600a610bc66064610b54600a5460085461110790919063ffffffff16565b1115610c145760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203130256044820152606401610716565b505050565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b6000805473ffffffffffffffffffffffffffffffffffffffff191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006108ff338484610dd3565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b600d805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d565760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610716565b600d805460ff60a81b1916600160a81b8415150217905580610d7a6012600a6119c4565b610d88906334edce006119d3565b610d9291906119f2565b600e555050565b60008184841115610dbd5760405162461bcd60e51b815260040161071691906116b0565b506000610dca8486611a14565b95945050505050565b600f5460009060ff1615610df357610dec8484846111c8565b90506108ff565b600d54600160a01b900460ff16158015610e2657506001600160a01b03841660009081526004602052604090205460ff16155b15610eb6576001600160a01b03841660009081526005602052604090205460ff1680610e6a57506001600160a01b03831660009081526005602052604090205460ff165b610eb65760405162461bcd60e51b815260206004820152601460248201527f74726164696e67206e6f74206f70656e207965740000000000000000000000006044820152606401610716565b6001600160a01b03841660009081526006602052604090205460ff16158015610ef857506001600160a01b03831660009081526006602052604090205460ff16155b8015610f3657507f000000000000000000000000f93c14baef919d07ec2bb79afb7db0c23f2f30236001600160a01b0316836001600160a01b031614155b15610fb0576001546001600160a01b038416600090815260026020526040902054610f62908490611a5c565b1115610fb05760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610716565b610fb86112ae565b15610fc557610fc5611321565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054611017918490610d99565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff168061106457506001600160a01b03841660009081526004602052604090205460ff165b6110785761107385848661147e565b61107a565b825b6001600160a01b0385166000908152600260205260409020549091506110a090826115e1565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f49085815260200190565b60405180910390a3506001949350505050565b6000826111165750600061081a565b600061112283856119d3565b90508261112f85836119f2565b146108ff5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610716565b60006108ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611640565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054611219918490610d99565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461124890836115e1565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061129c9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000f93c14baef919d07ec2bb79afb7db0c23f2f302316148015906112ec5750600f5460ff16155b80156113015750600d54600160a81b900460ff165b8015610988575050600e5430600090815260026020526040902054101590565b600f805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136357611363611a2b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106113b7576113b7611a2b565b6001600160a01b039283166020918202929092010152600d54600e5460405163791ac94760e01b8152919092169163791ac947916114019190600090869030904290600401611a74565b600060405180830381600087803b15801561141b57600080fd5b505af115801561142f573d6000803e3d6000fd5b5050600c546040514793506001600160a01b03909116915082156108fc029083906000818181858888f1935050505015801561146f573d6000803e3d6000fd5b5050600f805460ff1916905550565b600082158061148d5750600854155b156114995750816108ff565b6000600b5490507f000000000000000000000000f93c14baef919d07ec2bb79afb7db0c23f2f30236001600160a01b0316836001600160a01b031614156114e35750600a54611522565b7f000000000000000000000000f93c14baef919d07ec2bb79afb7db0c23f2f30236001600160a01b0316856001600160a01b0316141561152257506009545b60006115516115326064806119d3565b610b548461154b6008548a61110790919063ffffffff16565b90611107565b905080156115cd573060009081526002602052604090205461157390826115e1565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115c49085815260200190565b60405180910390a35b6115d7858261166e565b9695505050505050565b6000806115ee8385611a5c565b9050838110156108ff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610716565b600081836116615760405162461bcd60e51b815260040161071691906116b0565b506000610dca84866119f2565b60006108ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d99565b600060208083528351808285015260005b818110156116dd578581018301518582016040015282016116c1565b818111156116ef576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561171757600080fd5b5035919050565b80356001600160a01b038116811461173557600080fd5b919050565b6000806040838503121561174d57600080fd5b6117568361171e565b946020939093013593505050565b60008060006060848603121561177957600080fd5b6117828461171e565b92506117906020850161171e565b9150604084013590509250925092565b6000602082840312156117b257600080fd5b6108ff8261171e565b8035801515811461173557600080fd5b6000806000604084860312156117e057600080fd5b833567ffffffffffffffff808211156117f857600080fd5b818601915086601f83011261180c57600080fd5b81358181111561181b57600080fd5b8760208260051b850101111561183057600080fd5b60209283019550935061184691860190506117bb565b90509250925092565b60008060006060848603121561186457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561188e57600080fd5b6118978361171e565b91506118a56020840161171e565b90509250929050565b600080604083850312156118c157600080fd5b611756836117bb565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561191b578160001904821115611901576119016118ca565b8085161561190e57918102915b93841c93908002906118e5565b509250929050565b6000826119325750600161081a565b8161193f5750600061081a565b8160018114611955576002811461195f5761197b565b600191505061081a565b60ff841115611970576119706118ca565b50506001821b61081a565b5060208310610133831016604e8410600b841016171561199e575081810a61081a565b6119a883836118e0565b80600019048211156119bc576119bc6118ca565b029392505050565b60006108ff60ff841683611923565b60008160001904831182151516156119ed576119ed6118ca565b500290565b600082611a0f57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611a2657611a266118ca565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611a5557611a556118ca565b5060010190565b60008219821115611a6f57611a6f6118ca565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac45784516001600160a01b031683529383019391830191600101611a9f565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208006afd76afdc4e52874525d9e6b9754c1883a242c5cb44e64823a654bea958b64736f6c634300080b0033

Deployed Bytecode Sourcemap

2976:7579:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4224:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4224:49:0;;;;;;;;3233:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3233:42:0;;;;;;;;;;;;:::i;6322:260::-;;;;;;;;;;-1:-1:-1;6322:260:0;;;;;:::i;:::-;;:::i;:::-;;5426:216;;;;;;;;;;-1:-1:-1;5426:216:0;;;;;:::i;:::-;;:::i;:::-;;;1608:14:1;;1601:22;1583:41;;1571:2;1556:18;5426:216:0;1443:187:1;3867:44:0;;;;;;;;;;;;3908:3;3867:44;;3370:64;;;;;;;;;;;;;:::i;3822:38::-;;;;;;;;;;;;;;;;5944:370;;;;;;;;;;-1:-1:-1;5944:370:0;;;;;:::i;:::-;;:::i;10415:137::-;;;;;;;;;;;;;:::i;2207:103::-;;;;;;;;;;-1:-1:-1;2207:103:0;;;;;:::i;:::-;2262:4;2297:5;-1:-1:-1;;;;;2286:16:0;;;2297:5;;2286:16;;2207:103;3326:35;;;;;;;;;;;;3359:2;3326:35;;;;;2331:4:1;2319:17;;;2301:36;;2289:2;2274:18;3326:35:0;2159:184:1;3624:44:0;;;;;;;;;;-1:-1:-1;3624:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8841:111;;;;;;;;;;;;;:::i;5650:122::-;;;;;;;;;;-1:-1:-1;5650:122:0;;;;;:::i;:::-;;:::i;9529:287::-;;;;;;;;;;-1:-1:-1;9529:287:0;;;;;:::i;:::-;;:::i;3783:32::-;;;;;;;;;;;;;;;;9824:396;;;;;;;;;;-1:-1:-1;9824:396:0;;;;;:::i;:::-;;:::i;4187:30::-;;;;;;;;;;-1:-1:-1;4187:30:0;;;;-1:-1:-1;;;4187:30:0;;;;;;3502:45;;;;;;;;;;-1:-1:-1;3502:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2318:128;;;;;;;;;;;;;:::i;3443:50::-;;;;;;;;;;;;;;;;5201:78;;;;;;;;;;-1:-1:-1;5253:7:0;5271:5;-1:-1:-1;;;;;5271:5:0;5201:78;;;-1:-1:-1;;;;;3692:55:1;;;3674:74;;3662:2;3647:18;5201:78:0;3528:226:1;2020:20:0;;;;;;;;;;-1:-1:-1;2020:20:0;;;;-1:-1:-1;;;;;2020:20:0;;;3282:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3282:37:0;;;;;4109:29;;;;;;;;;;;;;;;5780:156;;;;;;;;;;-1:-1:-1;5780:156:0;;;;;:::i;:::-;;:::i;3722:52::-;;;;;;;;;;-1:-1:-1;3722:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8960:79;;;;;;;;;;;;;:::i;5285:133::-;;;;;;;;;;-1:-1:-1;5285:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5387:19:0;;;5369:7;5387:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5285:133;10228:179;;;;;;;;;;-1:-1:-1;10228:179:0;;;;;:::i;:::-;;:::i;4034:35::-;;;;;;;;;;-1:-1:-1;4034:35:0;;;;-1:-1:-1;;;;;4034:35:0;;;3675:40;;;;;;;;;;-1:-1:-1;3675:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4078:24;;;;;;;;;;-1:-1:-1;4078:24:0;;;;-1:-1:-1;;;;;4078:24:0;;;4147:31;;;;;;;;;;-1:-1:-1;4147:31:0;;;;-1:-1:-1;;;4147:31:0;;;;;;6322:260;2262:4;2297:5;-1:-1:-1;;;;;2297:5:0;2166:10;2286:16;2150:38;;;;-1:-1:-1;;;2150:38:0;;4728:2:1;2150:38:0;;;4710:21:1;4767:1;4747:18;;;4740:29;-1:-1:-1;;;4785:18:1;;;4778:36;4831:18;;2150:38:0;;;;;;;;;6458:2:::1;6431:23;:29;;6423:75;;;::::0;-1:-1:-1;;;6423:75:0;;5062:2:1;6423:75:0::1;::::0;::::1;5044:21:1::0;5101:2;5081:18;;;5074:30;5140:34;5120:18;;;5113:62;-1:-1:-1;;;5191:18:1;;;5184:32;5233:19;;6423:75:0::1;4860:398:1::0;6423:75:0::1;6570:4;6542:23:::0;3422:12:::1;3359:2;3422;:12;:::i;:::-;3408:26;::::0;:11:::1;:26;:::i;:::-;6528:37;;;;:::i;:::-;6527:47;;;;:::i;:::-;6509:15;:65:::0;-1:-1:-1;6322:260:0:o;5426:216::-;5530:10;5501:4;5518:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5518:32:0;;;;;;;;;;:41;;;5575:37;5501:4;;5518:32;;5575:37;;;;5553:6;160:25:1;;148:2;133:18;;14:177;5575:37:0;;;;;;;;-1:-1:-1;5630:4:0;5426:216;;;;;:::o;3370:64::-;3422:12;3359:2;3422;:12;:::i;:::-;3408:26;;:11;:26;:::i;:::-;3370:64;:::o;5944:370::-;-1:-1:-1;;;;;6064:19:0;;6044:4;6064:19;;;:11;:19;;;;;;;;6084:10;6064:31;;;;;;;;-1:-1:-1;;6064:52:0;6061:186;;6166:69;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6166:19:0;;-1:-1:-1;6166:19:0;;;:11;:19;;;;;6186:10;6166:31;;;;;;;;;;:69;;6202:6;;6166:35;:69::i;:::-;-1:-1:-1;;;;;6132:19:0;;;;;;:11;:19;;;;;;;;6152:10;6132:31;;;;;;;:103;6061:186;6266:40;6280:6;6288:9;6299:6;6266:13;:40::i;:::-;6259:47;;5944:370;;;;;;:::o;10415:137::-;10528:9;:15;;;;3109:42;10468:7;10510:15;;;;;10468:7;;10528:15;3422:12;3359:2;3422;:12;:::i;:::-;3408:26;;:11;:26;:::i;:::-;10496:29;;;;:::i;:::-;:47;;;;:::i;:::-;10488:56;;10415:137;:::o;8841:111::-;8891:20;;8883:61;;-1:-1:-1;;;;;8891:20:0;;;;8922:21;8883:61;;;;;8891:20;8883:61;8891:20;8883:61;8922:21;8891:20;8883:61;;;;;;;;;;;;;;;;;;;;;8841:111::o;5650:122::-;5705:4;5729:35;5737:7;-1:-1:-1;;5729:7:0;:35::i;9529:287::-;2262:4;2297:5;-1:-1:-1;;;;;2297:5:0;2166:10;2286:16;2150:38;;;;-1:-1:-1;;;2150:38:0;;4728:2:1;2150:38:0;;;4710:21:1;4767:1;4747:18;;;4740:29;-1:-1:-1;;;4785:18:1;;;4778:36;4831:18;;2150:38:0;4526:329:1;2150:38:0;9652:3:::1;9633:22:::0;::::1;9625:71;;;::::0;-1:-1:-1;;;9625:71:0;;7505:2:1;9625:71:0::1;::::0;::::1;7487:21:1::0;7544:2;7524:18;;;7517:30;7583:34;7563:18;;;7556:62;-1:-1:-1;;;7634:18:1;;;7627:35;7679:19;;9625:71:0::1;7303:401:1::0;9625:71:0::1;9712:9;9707:102;9725:20:::0;;::::1;9707:102;;;9791:6;9767:7;:21;9775:9;;9785:1;9775:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9767:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9767:21:0;:30;;-1:-1:-1;;9767:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9747:3:::1;::::0;::::1;:::i;:::-;;;9707:102;;;;9529:287:::0;;;:::o;9824:396::-;2262:4;2297:5;-1:-1:-1;;;;;2297:5:0;2166:10;2286:16;2150:38;;;;-1:-1:-1;;;2150:38:0;;4728:2:1;2150:38:0;;;4710:21:1;4767:1;4747:18;;;4740:29;-1:-1:-1;;;4785:18:1;;;4778:36;4831:18;;2150:38:0;4526:329:1;2150:38:0;9923:14:::1;:22:::0;;;9956:13:::1;:20:::0;;;9987:18:::1;:27:::0;;;10035:8:::1;::::0;:36:::1;::::0;10067:3:::1;::::0;10035:27:::1;::::0;9972:4;10035:12:::1;:27::i;:::-;:31:::0;::::1;:36::i;:::-;:42;;10027:86;;;::::0;-1:-1:-1;;;10027:86:0;;8183:2:1;10027:86:0::1;::::0;::::1;8165:21:1::0;8222:2;8202:18;;;8195:30;8261:33;8241:18;;;8234:61;8312:18;;10027:86:0::1;7981:355:1::0;10027:86:0::1;10173:2;10132:37;10165:3;10132:28;10145:14;;10132:8;;:12;;:28;;;;:::i;:37::-;:43;;10124:88;;;::::0;-1:-1:-1;;;10124:88:0;;8543:2:1;10124:88:0::1;::::0;::::1;8525:21:1::0;;;8562:18;;;8555:30;8621:34;8601:18;;;8594:62;8673:18;;10124:88:0::1;8341:356:1::0;10124:88:0::1;9824:396:::0;;;:::o;2318:128::-;2262:4;2297:5;-1:-1:-1;;;;;2297:5:0;2166:10;2286:16;2150:38;;;;-1:-1:-1;;;2150:38:0;;4728:2:1;2150:38:0;;;4710:21:1;4767:1;4747:18;;;4740:29;-1:-1:-1;;;4785:18:1;;;4778:36;4831:18;;2150:38:0;4526:329:1;2150:38:0;2393:1:::1;2377:18:::0;;-1:-1:-1;;2377:18:0::1;::::0;;2411:27:::1;::::0;3674:74:1;;;2411:27:0::1;::::0;3662:2:1;3647:18;2411:27:0::1;;;;;;;2318:128::o:0;5780:156::-;5860:4;5884:44;5898:10;5910:9;5921:6;5884:13;:44::i;8960:79::-;2262:4;2297:5;-1:-1:-1;;;;;2297:5:0;2166:10;2286:16;2150:38;;;;-1:-1:-1;;;2150:38:0;;4728:2:1;2150:38:0;;;4710:21:1;4767:1;4747:18;;;4740:29;-1:-1:-1;;;4785:18:1;;;4778:36;4831:18;;2150:38:0;4526:329:1;2150:38:0;9013:11:::1;:18:::0;;-1:-1:-1;;;;9013:18:0::1;-1:-1:-1::0;;;9013:18:0::1;::::0;;8960:79::o;10228:179::-;2262:4;2297:5;-1:-1:-1;;;;;2297:5:0;2166:10;2286:16;2150:38;;;;-1:-1:-1;;;2150:38:0;;4728:2:1;2150:38:0;;;4710:21:1;4767:1;4747:18;;;4740:29;-1:-1:-1;;;4785:18:1;;;4778:36;4831:18;;2150:38:0;4526:329:1;2150:38:0;10324:11:::1;:22:::0;;-1:-1:-1;;;;10324:22:0::1;-1:-1:-1::0;;;10324:22:0;::::1;;;;::::0;;10387:12;3422::::1;3359:2;3422;:12;:::i;:::-;3408:26;::::0;:11:::1;:26;:::i;:::-;10373;;;;:::i;:::-;10357:13;:42:::0;-1:-1:-1;;10228:179:0:o;528:192::-;614:7;650:12;642:6;;;;634:29;;;;-1:-1:-1;;;634:29:0;;;;;;;;:::i;:::-;-1:-1:-1;674:9:0;686:5;690:1;686;:5;:::i;:::-;674:17;528:192;-1:-1:-1;;;;;528:192:0:o;6590:965::-;6702:6;;6682:4;;6702:6;;6699:63;;;6718:41;6733:6;6741:9;6752:6;6718:14;:41::i;:::-;6711:48;;;;6699:63;6778:11;;-1:-1:-1;;;6778:11:0;;;;6777:12;:36;;;;-1:-1:-1;;;;;;6794:19:0;;;;;;:11;:19;;;;;;;;6793:20;6777:36;6774:136;;;-1:-1:-1;;;;;6837:15:0;;;;;;:7;:15;;;;;;;;;:37;;-1:-1:-1;;;;;;6856:18:0;;;;;;:7;:18;;;;;;;;6837:37;6829:69;;;;-1:-1:-1;;;6829:69:0;;8904:2:1;6829:69:0;;;8886:21:1;8943:2;8923:18;;;8916:30;8982:22;8962:18;;;8955:50;9022:18;;6829:69:0;8702:344:1;6829:69:0;-1:-1:-1;;;;;6927:27:0;;;;;;:19;:27;;;;;;;;6926:28;:63;;;;-1:-1:-1;;;;;;6959:30:0;;;;;;:19;:30;;;;;;;;6958:31;6926:63;:84;;;;;7006:4;-1:-1:-1;;;;;6993:17:0;:9;-1:-1:-1;;;;;6993:17:0;;;6926:84;6922:203;;;7070:15;;-1:-1:-1;;;;;7036:20:0;;;;;;:9;:20;;;;;;:29;;7059:6;;7036:29;:::i;:::-;7035:50;;7027:86;;;;-1:-1:-1;;;7027:86:0;;9386:2:1;7027:86:0;;;9368:21:1;9425:2;9405:18;;;9398:30;9464:26;9444:18;;;9437:54;9508:18;;7027:86:0;9184:348:1;7027:86:0;7140:16;:14;:16::i;:::-;7137:35;;;7159:10;:8;:10::i;:::-;7204:53;;;;;;;;;;;-1:-1:-1;;;7204:53:0;;;;;;;;-1:-1:-1;;;;;7204:17:0;;-1:-1:-1;7204:17:0;;;:9;:17;;;;;;;;:53;;7226:6;;7204:21;:53::i;:::-;-1:-1:-1;;;;;7184:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7296:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7319:22:0;;;;;;:11;:22;;;;;;;;7296:45;7295:93;;7354:34;7362:6;7370;7378:9;7354:7;:34::i;:::-;7295:93;;;7345:6;7295:93;-1:-1:-1;;;;;7424:20:0;;;;;;:9;:20;;;;;;7270:118;;-1:-1:-1;7424:40:0;;7270:118;7424:24;:40::i;:::-;-1:-1:-1;;;;;7401:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7482:43;;;;;;;;;;7510:14;160:25:1;;148:2;133:18;;14:177;7482:43:0;;;;;;;;-1:-1:-1;7543:4:0;;6590:965;-1:-1:-1;;;;6590:965:0:o;726:250::-;784:7;808:6;804:47;;-1:-1:-1;838:1:0;831:8;;804:47;863:9;875:5;879:1;875;:5;:::i;:::-;863:17;-1:-1:-1;908:1:0;899:5;903:1;863:17;899:5;:::i;:::-;:10;891:56;;;;-1:-1:-1;;;891:56:0;;9739:2:1;891:56:0;;;9721:21:1;9778:2;9758:18;;;9751:30;9817:34;9797:18;;;9790:62;-1:-1:-1;;;9868:18:1;;;9861:31;9909:19;;891:56:0;9537:397:1;982:132:0;1040:7;1067:39;1071:1;1074;1067:39;;;;;;;;;;;;;;;;;:3;:39::i;7567:330::-;7697:53;;;;;;;;;;;-1:-1:-1;;;7697:53:0;;;;;;;;-1:-1:-1;;;;;7697:17:0;;7660:4;7697:17;;;:9;:17;;;;;;;:53;;7719:6;;7697:21;:53::i;:::-;-1:-1:-1;;;;;7677:17:0;;;;;;;:9;:17;;;;;;:73;;;;7784:20;;;;;;;:32;;7809:6;7784:24;:32::i;:::-;-1:-1:-1;;;;;7761:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7832:35;;;;;;;;;;7860:6;160:25:1;;148:2;133:18;;14:177;7832:35:0;;;;;;;;-1:-1:-1;7885:4:0;7567:330;;;;;:::o;8636:197::-;8685:4;8709:10;-1:-1:-1;;;;;8723:4:0;8709:18;;;;;:38;;-1:-1:-1;8741:6:0;;;;8740:7;8709:38;:62;;;;-1:-1:-1;8760:11:0;;-1:-1:-1;;;8760:11:0;;;;8709:62;:116;;;;-1:-1:-1;;8812:13:0;;8802:4;8784:24;;;;:9;:24;;;;;;:41;;;8636:197::o;9047:474::-;4326:6;:13;;-1:-1:-1;;4326:13:0;4335:4;4326:13;;;9122:16:::1;::::0;;9136:1:::1;9122:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9122:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9122:16:0::1;9098:40;;9167:4;9149;9154:1;9149:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9149:23:0::1;;;-1:-1:-1::0;;;;;9149:23:0::1;;;::::0;::::1;9193:4;9183;9188:1;9183:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9183:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9210:6:::1;::::0;9282:13:::1;::::0;9210:189:::1;::::0;-1:-1:-1;;;9210:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;9282:13;9210:6:::1;::::0;9326:4;;9353::::1;::::0;9373:15:::1;::::0;9210:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9472:20:0::1;::::0;9464:49:::1;::::0;9432:21:::1;::::0;-1:-1:-1;;;;;;9472:20:0;;::::1;::::0;-1:-1:-1;9464:49:0;::::1;;;::::0;9432:21;;9412:17:::1;9464:49:::0;9412:17;9464:49;9432:21;9472:20;9464:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4344:6:0;:14;;-1:-1:-1;;4344:14:0;;;-1:-1:-1;9047:474:0:o;7905:723::-;7991:7;8014:11;;;:28;;-1:-1:-1;8029:8:0;;:13;8014:28;8011:72;;;-1:-1:-1;8065:6:0;8058:13;;8011:72;8095:18;8116;;8095:39;;8163:4;-1:-1:-1;;;;;8150:17:0;:9;-1:-1:-1;;;;;8150:17:0;;8147:154;;;-1:-1:-1;8197:14:0;;8147:154;;;8242:4;-1:-1:-1;;;;;8232:14:0;:6;-1:-1:-1;;;;;8232:14:0;;8229:72;;;-1:-1:-1;8276:13:0;;8229:72;8313:17;8333:62;8374:20;3908:3;;8374:20;:::i;:::-;8333:36;8358:10;8333:20;8344:8;;8333:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;8313:82;-1:-1:-1;8411:13:0;;8408:172;;8485:4;8467:24;;;;:9;:24;;;;;;:39;;8496:9;8467:28;:39::i;:::-;8458:4;8440:24;;;;:9;:24;;;;;;;:66;;;;8526:42;;-1:-1:-1;;;;;8526:42:0;;;;;;;8558:9;160:25:1;;148:2;133:18;;14:177;8526:42:0;;;;;;;;8408:172;8599:21;:6;8610:9;8599:10;:21::i;:::-;8592:28;7905:723;-1:-1:-1;;;;;;7905:723:0:o;199:181::-;257:7;;289:5;293:1;289;:5;:::i;:::-;277:17;;318:1;313;:6;;305:46;;;;-1:-1:-1;;;305:46:0;;11304:2:1;305:46:0;;;11286:21:1;11343:2;11323:18;;;11316:30;11382:29;11362:18;;;11355:57;11429:18;;305:46:0;11102:351:1;1120:189:0;1206:7;1241:12;1234:5;1226:28;;;;-1:-1:-1;;;1226:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1265:9:0;1277:5;1281:1;1277;:5;:::i;386:136::-;444:7;471:43;475:1;478;471:43;;;;;;;;;;;;;;;;;:3;:43::i;196:597: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;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:180::-;857:6;910:2;898:9;889:7;885:23;881:32;878:52;;;926:1;923;916:12;878:52;-1:-1:-1;949:23:1;;798:180;-1:-1:-1;798:180:1:o;983:196::-;1051:20;;-1:-1:-1;;;;;1100:54:1;;1090:65;;1080:93;;1169:1;1166;1159:12;1080:93;983:196;;;:::o;1184:254::-;1252:6;1260;1313:2;1301:9;1292:7;1288:23;1284:32;1281:52;;;1329:1;1326;1319:12;1281:52;1352:29;1371:9;1352:29;:::i;:::-;1342:39;1428:2;1413:18;;;;1400:32;;-1:-1:-1;;;1184:254:1:o;1635:328::-;1712:6;1720;1728;1781:2;1769:9;1760:7;1756:23;1752:32;1749:52;;;1797:1;1794;1787:12;1749:52;1820:29;1839:9;1820:29;:::i;:::-;1810:39;;1868:38;1902:2;1891:9;1887:18;1868:38;:::i;:::-;1858:48;;1953:2;1942:9;1938:18;1925:32;1915:42;;1635:328;;;;;:::o;1968:186::-;2027:6;2080:2;2068:9;2059:7;2055:23;2051:32;2048:52;;;2096:1;2093;2086:12;2048:52;2119:29;2138:9;2119:29;:::i;2348:160::-;2413:20;;2469:13;;2462:21;2452:32;;2442:60;;2498:1;2495;2488:12;2513:689;2605:6;2613;2621;2674:2;2662:9;2653:7;2649:23;2645:32;2642:52;;;2690:1;2687;2680:12;2642:52;2730:9;2717:23;2759:18;2800:2;2792:6;2789:14;2786:34;;;2816:1;2813;2806:12;2786:34;2854:6;2843:9;2839:22;2829:32;;2899:7;2892:4;2888:2;2884:13;2880:27;2870:55;;2921:1;2918;2911:12;2870:55;2961:2;2948:16;2987:2;2979:6;2976:14;2973:34;;;3003:1;3000;2993:12;2973:34;3058:7;3051:4;3041:6;3038:1;3034:14;3030:2;3026:23;3022:34;3019:47;3016:67;;;3079:1;3076;3069:12;3016:67;3110:4;3102:13;;;;-1:-1:-1;3134:6:1;-1:-1:-1;3159:37:1;;3175:20;;;-1:-1:-1;3159:37:1;:::i;:::-;3149:47;;2513:689;;;;;:::o;3207:316::-;3284:6;3292;3300;3353:2;3341:9;3332:7;3328:23;3324:32;3321:52;;;3369:1;3366;3359:12;3321:52;-1:-1:-1;;3392:23:1;;;3462:2;3447:18;;3434:32;;-1:-1:-1;3513:2:1;3498:18;;;3485:32;;3207:316;-1:-1:-1;3207:316:1:o;3759:260::-;3827:6;3835;3888:2;3876:9;3867:7;3863:23;3859:32;3856:52;;;3904:1;3901;3894:12;3856:52;3927:29;3946:9;3927:29;:::i;:::-;3917:39;;3975:38;4009:2;3998:9;3994:18;3975:38;:::i;:::-;3965:48;;3759:260;;;;;:::o;4024:248::-;4089:6;4097;4150:2;4138:9;4129:7;4125:23;4121:32;4118:52;;;4166:1;4163;4156:12;4118:52;4189:26;4205:9;4189:26;:::i;5263:127::-;5324:10;5319:3;5315:20;5312:1;5305:31;5355:4;5352:1;5345:15;5379:4;5376:1;5369:15;5395:422;5484:1;5527:5;5484:1;5541:270;5562:7;5552:8;5549:21;5541:270;;;5621:4;5617:1;5613:6;5609:17;5603:4;5600:27;5597:53;;;5630:18;;:::i;:::-;5680:7;5670:8;5666:22;5663:55;;;5700:16;;;;5663:55;5779:22;;;;5739:15;;;;5541:270;;;5545:3;5395:422;;;;;:::o;5822:806::-;5871:5;5901:8;5891:80;;-1:-1:-1;5942:1:1;5956:5;;5891:80;5990:4;5980:76;;-1:-1:-1;6027:1:1;6041:5;;5980:76;6072:4;6090:1;6085:59;;;;6158:1;6153:130;;;;6065:218;;6085:59;6115:1;6106:10;;6129:5;;;6153:130;6190:3;6180:8;6177:17;6174:43;;;6197:18;;:::i;:::-;-1:-1:-1;;6253:1:1;6239:16;;6268:5;;6065:218;;6367:2;6357:8;6354:16;6348:3;6342:4;6339:13;6335:36;6329:2;6319:8;6316:16;6311:2;6305:4;6302:12;6298:35;6295:77;6292:159;;;-1:-1:-1;6404:19:1;;;6436:5;;6292:159;6483:34;6508:8;6502:4;6483:34;:::i;:::-;6553:6;6549:1;6545:6;6541:19;6532:7;6529:32;6526:58;;;6564:18;;:::i;:::-;6602:20;;5822:806;-1:-1:-1;;;5822:806:1:o;6633:140::-;6691:5;6720:47;6761:4;6751:8;6747:19;6741:4;6720:47;:::i;6778:168::-;6818:7;6884:1;6880;6876:6;6872:14;6869:1;6866:21;6861:1;6854:9;6847:17;6843:45;6840:71;;;6891:18;;:::i;:::-;-1:-1:-1;6931:9:1;;6778:168::o;6951:217::-;6991:1;7017;7007:132;;7061:10;7056:3;7052:20;7049:1;7042:31;7096:4;7093:1;7086:15;7124:4;7121:1;7114:15;7007:132;-1:-1:-1;7153:9:1;;6951:217::o;7173:125::-;7213:4;7241:1;7238;7235:8;7232:34;;;7246:18;;:::i;:::-;-1:-1:-1;7283:9:1;;7173:125::o;7709:127::-;7770:10;7765:3;7761:20;7758:1;7751:31;7801:4;7798:1;7791:15;7825:4;7822:1;7815:15;7841:135;7880:3;-1:-1:-1;;7901:17:1;;7898:43;;;7921:18;;:::i;:::-;-1:-1:-1;7968:1:1;7957:13;;7841:135::o;9051:128::-;9091:3;9122:1;9118:6;9115:1;9112:13;9109:39;;;9128:18;;:::i;:::-;-1:-1:-1;9164:9:1;;9051:128::o;10071:1026::-;10333:4;10381:3;10370:9;10366:19;10412:6;10401:9;10394:25;10438:2;10476:6;10471:2;10460:9;10456:18;10449:34;10519:3;10514:2;10503:9;10499:18;10492:31;10543:6;10578;10572:13;10609:6;10601;10594:22;10647:3;10636:9;10632:19;10625:26;;10686:2;10678:6;10674:15;10660:29;;10707:1;10717:218;10731:6;10728:1;10725:13;10717:218;;;10796:13;;-1:-1:-1;;;;;10792:62:1;10780:75;;10910:15;;;;10875:12;;;;10753:1;10746:9;10717:218;;;-1:-1:-1;;;;;;;10991:55:1;;;;10986:2;10971:18;;10964:83;-1:-1:-1;;;11078:3:1;11063:19;11056:35;10952:3;10071:1026;-1:-1:-1;;;10071:1026:1:o

Swarm Source

ipfs://8006afd76afdc4e52874525d9e6b9754c1883a242c5cb44e64823a654bea958b
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.