ETH Price: $3,116.57 (-1.60%)
Gas: 4.32 Gwei
 

Overview

Max Total Supply

200,000,000,000 $BUBBLES

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.144113906 $BUBBLES

Value
$0.00
0x526260f00238fb9886daa8b52596199a787907cc
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:
BubblesToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-25
*/

// SPDX-License-Identifier: MIT

/*

Website - https://bubblescoin.xyz/
Twitter - https://twitter.com/bubbleserc20 
Telegram - https://t.me/BubblesPortal

Introducing Bubbles, the cutest Crypto Meme Token for Powerpuff Girls Fans!

*/

pragma solidity 0.8.18;

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

}

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 BubblesToken is ERC20, Auth {
    using SafeMath for uint256;

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

    string public constant name = "Bubbles";
    string public constant symbol = "$BUBBLES";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 200_000_000_000 * 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 isWalletLimitExempt;

    uint256 marketingFee = 8;
    uint256 operationsFee = 2;
    uint256 public totalFee = marketingFee + operationsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 300;
    uint256 sellMultiplier = 990;
    uint256 transferMultiplier = 300;

    address marketingFeeReceiver;
    address operationsFeeReceiver;

    IDEXRouter public immutable router;
    address public immutable pair;

    bool swapEnabled = true;
    uint256 swapThreshold = totalSupply / 100;
    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 = 0x1AD261091d51ec302836D60b38F714580789E5a0;
        operationsFeeReceiver = 0xb45129e2290d07920EDE1689717A63b86cCfc742;

        isFeeExempt[msg.sender] = true;

        isWalletLimitExempt[msg.sender] = 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 (!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 setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        buyMultiplier = _buy;
        sellMultiplier = _sell;
        transferMultiplier = _trans;
    }

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

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

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

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    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;

        uint256 amountETHmarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHOperations = (amountETH * operationsFee) / totalFee;

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHmarketing}("");
        (tmpSuccess,) = payable(operationsFeeReceiver).call{value: amountETHOperations}("");
    }
}

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":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":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","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":"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"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":[{"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"}]

60e06040526064620000146009600a620004bc565b6200002590642e90edd000620004d4565b620000319190620004ee565b60015560086006819055600260078190556200004d9162000511565b60085561012c60098181556103de600a908155600b92909255600d805460ff60a01b1916600160a01b179055606491620000889190620004bc565b6200009990642e90edd000620004d4565b620000a59190620004ee565b600e55348015620000b557600080fd5b50600080546001600160a01b03191633179055737a250d5630b4cf539739df2c5dacb4c659f2488d60a0819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200011e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000144919062000527565b6001600160a01b03166080816001600160a01b03168152505060a0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c4919062000527565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c919062000527565b6001600160a01b0390811660c05230600081815260036020908152604080832060a05190951683529381528382206000199055600c80546001600160a01b0319908116731ad261091d51ec302836d60b38f714580789e5a017909155600d805490911673b45129e2290d07920ede1689717a63b86ccfc74217905533825260048152838220805460ff19908116600190811790925560059092528483208054831682179055928252928120805484168317905561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549092161790556200032b6009600a620004bc565b6200033c90642e90edd000620004d4565b33600081815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200037f6009600a620004bc565b6200039090642e90edd000620004d4565b60405190815260200160405180910390a362000552565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003fe578160001904821115620003e257620003e2620003a7565b80851615620003f057918102915b93841c9390800290620003c2565b509250929050565b6000826200041757506001620004b6565b816200042657506000620004b6565b81600181146200043f57600281146200044a576200046a565b6001915050620004b6565b60ff8411156200045e576200045e620003a7565b50506001821b620004b6565b5060208310610133831016604e8410600b84101617156200048f575081810a620004b6565b6200049b8383620003bd565b8060001904821115620004b257620004b2620003a7565b0290505b92915050565b6000620004cd60ff84168362000406565b9392505050565b8082028115828204841417620004b657620004b6620003a7565b6000826200050c57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004b657620004b6620003a7565b6000602082840312156200053a57600080fd5b81516001600160a01b0381168114620004cd57600080fd5b60805160a05160c0516117e4620005a56000396000818161048501528181610b5c01528181610e550152818161110f015261114301526000818161056f0152610f7901526000610f1f01526117e46000f3fe6080604052600436106101855760003560e01c80636ce46bc3116100d157806395d89b411161008a578063c867d60b11610064578063c867d60b146104c7578063dd62ed3e146104f7578063df20fd491461053d578063f887ea401461055d57600080fd5b806395d89b411461043f578063a8aa1b3114610473578063a9059cbb146104a757600080fd5b80636ce46bc31461037557806370a0823114610395578063715018a6146103c257806377b54bad146103d757806378109e54146103f7578063893d20e81461040d57600080fd5b80631df4ccfc1161013e5780632f54bf6e116101185780632f54bf6e146102cf578063313ce567146102fe5780633f4218e014610325578063571ac8b01461035557600080fd5b80631df4ccfc1461028457806323b872dd1461029a5780632b112e49146102ba57600080fd5b806306fdde031461019157806309302dc6146101da578063095ea7b3146101fc578063180b0d7e1461022c57806318160ddd1461024f5780631da1db5e1461026457600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101c460405180604001604052806007815260200166427562626c657360c81b81525081565b6040516101d191906113d7565b60405180910390f35b3480156101e657600080fd5b506101fa6101f5366004611425565b610591565b005b34801561020857600080fd5b5061021c61021736600461145a565b610659565b60405190151581526020016101d1565b34801561023857600080fd5b50610241606481565b6040519081526020016101d1565b34801561025b57600080fd5b506102416106c6565b34801561027057600080fd5b506101fa61027f366004611425565b6106e4565b34801561029057600080fd5b5061024160085481565b3480156102a657600080fd5b5061021c6102b5366004611484565b61075d565b3480156102c657600080fd5b5061024161081f565b3480156102db57600080fd5b5061021c6102ea3660046114c0565b6000546001600160a01b0391821691161490565b34801561030a57600080fd5b50610313600981565b60405160ff90911681526020016101d1565b34801561033157600080fd5b5061021c6103403660046114c0565b60046020526000908152604090205460ff1681565b34801561036157600080fd5b5061021c6103703660046114c0565b6108a7565b34801561038157600080fd5b506101fa6103903660046114db565b6108b5565b3480156103a157600080fd5b506102416103b03660046114c0565b60026020526000908152604090205481565b3480156103ce57600080fd5b506101fa6108ed565b3480156103e357600080fd5b5061021c6103f236600461145a565b610929565b34801561040357600080fd5b5061024160015481565b34801561041957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101d1565b34801561044b57600080fd5b506101c46040518060400160405280600881526020016724425542424c455360c01b81525081565b34801561047f57600080fd5b506104277f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b357600080fd5b5061021c6104c236600461145a565b610a38565b3480156104d357600080fd5b5061021c6104e23660046114c0565b60056020526000908152604090205460ff1681565b34801561050357600080fd5b50610241610512366004611507565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561054957600080fd5b506101fa61055836600461154b565b610a45565b34801561056957600080fd5b506104277f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146105c45760405162461bcd60e51b81526004016105bb90611569565b60405180910390fd5b600a8110156106205760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574204d61782057616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016105bb565b6103e8816106306009600a611683565b61063f90642e90edd000611692565b6106499190611692565b61065391906116a9565b60015550565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106b49086815260200190565b60405180910390a35060015b92915050565b6106d26009600a611683565b6106e190642e90edd000611692565b81565b6000546001600160a01b0316331461070e5760405162461bcd60e51b81526004016105bb90611569565b476000606461071d8484611692565b61072791906116a9565b604051909150339082156108fc029083906000818181858888f19350505050158015610757573d6000803e3d6000fd5b50505050565b6001600160a01b03831660009081526003602090815260408083203384529091528120546000191461080a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546107e5918490610ab7565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610815848484610af1565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061087f6009600a611683565b61088e90642e90edd000611692565b61089891906116cb565b6108a291906116cb565b905090565b60006106c082600019610659565b6000546001600160a01b031633146108df5760405162461bcd60e51b81526004016105bb90611569565b600992909255600a55600b55565b6000546001600160a01b031633146109175760405162461bcd60e51b81526004016105bb90611569565b600080546001600160a01b0319169055565b600080546001600160a01b031633146109545760405162461bcd60e51b81526004016105bb90611569565b816000036109c7576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156109a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c491906116de565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610a14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081891906116f7565b6000610818338484610af1565b6000546001600160a01b03163314610a6f5760405162461bcd60e51b81526004016105bb90611569565b80610a7c6009600a611683565b610a8b90642e90edd000611692565b610a9591906116a9565b600e5550600d8054911515600160a01b0260ff60a01b19909216919091179055565b60008184841115610adb5760405162461bcd60e51b81526004016105bb91906113d7565b506000610ae884866116cb565b95945050505050565b600f5460009060ff1615610b1157610b0a848484610d62565b9050610818565b6001600160a01b03841660009081526005602052604090205460ff16158015610b5357506001600160a01b03831660009081526005602052604090205460ff16155b8015610b9157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610c0b576001546001600160a01b038416600090815260026020526040902054610bbd908490611714565b1115610c0b5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016105bb565b610c13610e48565b15610c2057610c20610ebb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610c72918490610ab7565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610cbf57506001600160a01b03841660009081526004602052604090205460ff165b610cd357610cce8584866110e7565b610cd5565b825b6001600160a01b038516600090815260026020526040902054909150610cfb9082611244565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d4f9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054610db3918490610ab7565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610de29083611244565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e369086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610e865750600f5460ff16155b8015610e9b5750600d54600160a01b900460ff165b80156108a2575050600e5430600090815260026020526040902054101590565b600f805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610efd57610efd611727565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f5157610f51611727565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163791ac94791610fb79160009086903090429060040161173d565b600060405180830381600087803b158015610fd157600080fd5b505af1158015610fe5573d6000803e3d6000fd5b505060085460065447935060009250610ffe9084611692565b61100891906116a9565b905060006008546007548461101d9190611692565b61102791906116a9565b600c546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611079576040519150601f19603f3d011682016040523d82523d6000602084013e61107e565b606091505b5050600d546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146110ce576040519150601f19603f3d011682016040523d82523d6000602084013e6110d3565b606091505b5050600f805460ff19169055505050505050565b60008215806110f65750600854155b15611102575081610818565b600b546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036111415750600a5461117f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361117f57506009545b60006111b461118f606480611692565b6111ae846111a86008548a6112a390919063ffffffff16565b906112a3565b90611325565b9050801561123057306000908152600260205260409020546111d69082611244565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112279085815260200190565b60405180910390a35b61123a8582611367565b9695505050505050565b6000806112518385611714565b9050838110156108185760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105bb565b6000826000036112b5575060006106c0565b60006112c18385611692565b9050826112ce85836116a9565b146108185760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105bb565b600061081883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113a9565b600061081883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab7565b600081836113ca5760405162461bcd60e51b81526004016105bb91906113d7565b506000610ae884866116a9565b600060208083528351808285015260005b81811015611404578581018301518582016040015282016113e8565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561143757600080fd5b5035919050565b80356001600160a01b038116811461145557600080fd5b919050565b6000806040838503121561146d57600080fd5b6114768361143e565b946020939093013593505050565b60008060006060848603121561149957600080fd5b6114a28461143e565b92506114b06020850161143e565b9150604084013590509250925092565b6000602082840312156114d257600080fd5b6108188261143e565b6000806000606084860312156114f057600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561151a57600080fd5b6115238361143e565b91506115316020840161143e565b90509250929050565b801515811461154857600080fd5b50565b6000806040838503121561155e57600080fd5b82356114768161153a565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115da5781600019048211156115c0576115c0611589565b808516156115cd57918102915b93841c93908002906115a4565b509250929050565b6000826115f1575060016106c0565b816115fe575060006106c0565b8160018114611614576002811461161e5761163a565b60019150506106c0565b60ff84111561162f5761162f611589565b50506001821b6106c0565b5060208310610133831016604e8410600b841016171561165d575081810a6106c0565b611667838361159f565b806000190482111561167b5761167b611589565b029392505050565b600061081860ff8416836115e2565b80820281158282048414176106c0576106c0611589565b6000826116c657634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106c0576106c0611589565b6000602082840312156116f057600080fd5b5051919050565b60006020828403121561170957600080fd5b81516108188161153a565b808201808211156106c0576106c0611589565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561178d5784516001600160a01b031683529383019391830191600101611768565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206f3285eb68871f38e05c35847a44d87efb49e3f90e3de000ae2abdbb2c9bbccf64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80636ce46bc3116100d157806395d89b411161008a578063c867d60b11610064578063c867d60b146104c7578063dd62ed3e146104f7578063df20fd491461053d578063f887ea401461055d57600080fd5b806395d89b411461043f578063a8aa1b3114610473578063a9059cbb146104a757600080fd5b80636ce46bc31461037557806370a0823114610395578063715018a6146103c257806377b54bad146103d757806378109e54146103f7578063893d20e81461040d57600080fd5b80631df4ccfc1161013e5780632f54bf6e116101185780632f54bf6e146102cf578063313ce567146102fe5780633f4218e014610325578063571ac8b01461035557600080fd5b80631df4ccfc1461028457806323b872dd1461029a5780632b112e49146102ba57600080fd5b806306fdde031461019157806309302dc6146101da578063095ea7b3146101fc578063180b0d7e1461022c57806318160ddd1461024f5780631da1db5e1461026457600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101c460405180604001604052806007815260200166427562626c657360c81b81525081565b6040516101d191906113d7565b60405180910390f35b3480156101e657600080fd5b506101fa6101f5366004611425565b610591565b005b34801561020857600080fd5b5061021c61021736600461145a565b610659565b60405190151581526020016101d1565b34801561023857600080fd5b50610241606481565b6040519081526020016101d1565b34801561025b57600080fd5b506102416106c6565b34801561027057600080fd5b506101fa61027f366004611425565b6106e4565b34801561029057600080fd5b5061024160085481565b3480156102a657600080fd5b5061021c6102b5366004611484565b61075d565b3480156102c657600080fd5b5061024161081f565b3480156102db57600080fd5b5061021c6102ea3660046114c0565b6000546001600160a01b0391821691161490565b34801561030a57600080fd5b50610313600981565b60405160ff90911681526020016101d1565b34801561033157600080fd5b5061021c6103403660046114c0565b60046020526000908152604090205460ff1681565b34801561036157600080fd5b5061021c6103703660046114c0565b6108a7565b34801561038157600080fd5b506101fa6103903660046114db565b6108b5565b3480156103a157600080fd5b506102416103b03660046114c0565b60026020526000908152604090205481565b3480156103ce57600080fd5b506101fa6108ed565b3480156103e357600080fd5b5061021c6103f236600461145a565b610929565b34801561040357600080fd5b5061024160015481565b34801561041957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101d1565b34801561044b57600080fd5b506101c46040518060400160405280600881526020016724425542424c455360c01b81525081565b34801561047f57600080fd5b506104277f000000000000000000000000b1a89ce60b0582beb1e44f6cae444164863c3a6a81565b3480156104b357600080fd5b5061021c6104c236600461145a565b610a38565b3480156104d357600080fd5b5061021c6104e23660046114c0565b60056020526000908152604090205460ff1681565b34801561050357600080fd5b50610241610512366004611507565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561054957600080fd5b506101fa61055836600461154b565b610a45565b34801561056957600080fd5b506104277f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000546001600160a01b031633146105c45760405162461bcd60e51b81526004016105bb90611569565b60405180910390fd5b600a8110156106205760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574204d61782057616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016105bb565b6103e8816106306009600a611683565b61063f90642e90edd000611692565b6106499190611692565b61065391906116a9565b60015550565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106b49086815260200190565b60405180910390a35060015b92915050565b6106d26009600a611683565b6106e190642e90edd000611692565b81565b6000546001600160a01b0316331461070e5760405162461bcd60e51b81526004016105bb90611569565b476000606461071d8484611692565b61072791906116a9565b604051909150339082156108fc029083906000818181858888f19350505050158015610757573d6000803e3d6000fd5b50505050565b6001600160a01b03831660009081526003602090815260408083203384529091528120546000191461080a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546107e5918490610ab7565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610815848484610af1565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061087f6009600a611683565b61088e90642e90edd000611692565b61089891906116cb565b6108a291906116cb565b905090565b60006106c082600019610659565b6000546001600160a01b031633146108df5760405162461bcd60e51b81526004016105bb90611569565b600992909255600a55600b55565b6000546001600160a01b031633146109175760405162461bcd60e51b81526004016105bb90611569565b600080546001600160a01b0319169055565b600080546001600160a01b031633146109545760405162461bcd60e51b81526004016105bb90611569565b816000036109c7576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156109a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c491906116de565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610a14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081891906116f7565b6000610818338484610af1565b6000546001600160a01b03163314610a6f5760405162461bcd60e51b81526004016105bb90611569565b80610a7c6009600a611683565b610a8b90642e90edd000611692565b610a9591906116a9565b600e5550600d8054911515600160a01b0260ff60a01b19909216919091179055565b60008184841115610adb5760405162461bcd60e51b81526004016105bb91906113d7565b506000610ae884866116cb565b95945050505050565b600f5460009060ff1615610b1157610b0a848484610d62565b9050610818565b6001600160a01b03841660009081526005602052604090205460ff16158015610b5357506001600160a01b03831660009081526005602052604090205460ff16155b8015610b9157507f000000000000000000000000b1a89ce60b0582beb1e44f6cae444164863c3a6a6001600160a01b0316836001600160a01b031614155b15610c0b576001546001600160a01b038416600090815260026020526040902054610bbd908490611714565b1115610c0b5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016105bb565b610c13610e48565b15610c2057610c20610ebb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610c72918490610ab7565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610cbf57506001600160a01b03841660009081526004602052604090205460ff165b610cd357610cce8584866110e7565b610cd5565b825b6001600160a01b038516600090815260026020526040902054909150610cfb9082611244565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d4f9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054610db3918490610ab7565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610de29083611244565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e369086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000b1a89ce60b0582beb1e44f6cae444164863c3a6a1614801590610e865750600f5460ff16155b8015610e9b5750600d54600160a01b900460ff165b80156108a2575050600e5430600090815260026020526040902054101590565b600f805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610efd57610efd611727565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610f5157610f51611727565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9092169163791ac94791610fb79160009086903090429060040161173d565b600060405180830381600087803b158015610fd157600080fd5b505af1158015610fe5573d6000803e3d6000fd5b505060085460065447935060009250610ffe9084611692565b61100891906116a9565b905060006008546007548461101d9190611692565b61102791906116a9565b600c546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611079576040519150601f19603f3d011682016040523d82523d6000602084013e61107e565b606091505b5050600d546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146110ce576040519150601f19603f3d011682016040523d82523d6000602084013e6110d3565b606091505b5050600f805460ff19169055505050505050565b60008215806110f65750600854155b15611102575081610818565b600b546001600160a01b037f000000000000000000000000b1a89ce60b0582beb1e44f6cae444164863c3a6a8116908416036111415750600a5461117f565b7f000000000000000000000000b1a89ce60b0582beb1e44f6cae444164863c3a6a6001600160a01b0316856001600160a01b03160361117f57506009545b60006111b461118f606480611692565b6111ae846111a86008548a6112a390919063ffffffff16565b906112a3565b90611325565b9050801561123057306000908152600260205260409020546111d69082611244565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112279085815260200190565b60405180910390a35b61123a8582611367565b9695505050505050565b6000806112518385611714565b9050838110156108185760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105bb565b6000826000036112b5575060006106c0565b60006112c18385611692565b9050826112ce85836116a9565b146108185760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105bb565b600061081883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113a9565b600061081883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab7565b600081836113ca5760405162461bcd60e51b81526004016105bb91906113d7565b506000610ae884866116a9565b600060208083528351808285015260005b81811015611404578581018301518582016040015282016113e8565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561143757600080fd5b5035919050565b80356001600160a01b038116811461145557600080fd5b919050565b6000806040838503121561146d57600080fd5b6114768361143e565b946020939093013593505050565b60008060006060848603121561149957600080fd5b6114a28461143e565b92506114b06020850161143e565b9150604084013590509250925092565b6000602082840312156114d257600080fd5b6108188261143e565b6000806000606084860312156114f057600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561151a57600080fd5b6115238361143e565b91506115316020840161143e565b90509250929050565b801515811461154857600080fd5b50565b6000806040838503121561155e57600080fd5b82356114768161153a565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115da5781600019048211156115c0576115c0611589565b808516156115cd57918102915b93841c93908002906115a4565b509250929050565b6000826115f1575060016106c0565b816115fe575060006106c0565b8160018114611614576002811461161e5761163a565b60019150506106c0565b60ff84111561162f5761162f611589565b50506001821b6106c0565b5060208310610133831016604e8410600b841016171561165d575081810a6106c0565b611667838361159f565b806000190482111561167b5761167b611589565b029392505050565b600061081860ff8416836115e2565b80820281158282048414176106c0576106c0611589565b6000826116c657634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106c0576106c0611589565b6000602082840312156116f057600080fd5b5051919050565b60006020828403121561170957600080fd5b81516108188161153a565b808201808211156106c0576106c0611589565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561178d5784516001600160a01b031683529383019391830191600101611768565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206f3285eb68871f38e05c35847a44d87efb49e3f90e3de000ae2abdbb2c9bbccf64736f6c63430008120033

Deployed Bytecode Sourcemap

2989:7524:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3245:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3245:39:0;;;;;;;;;;;;:::i;:::-;;;;;;;;6277:260;;;;;;;;;;-1:-1:-1;6277:260:0;;;;;:::i;:::-;;:::i;:::-;;5381:216;;;;;;;;;;-1:-1:-1;5381:216:0;;;;;:::i;:::-;;:::i;:::-;;;1354:14:1;;1347:22;1329:41;;1317:2;1302:18;5381:216:0;1189:187:1;3877:44:0;;;;;;;;;;;;3918:3;3877:44;;;;;1527:25:1;;;1515:2;1500:18;3877:44:0;1381:177:1;3383:68:0;;;;;;;;;;;;;:::i;9186:259::-;;;;;;;;;;-1:-1:-1;9186:259:0;;;;;:::i;:::-;;:::i;3816:54::-;;;;;;;;;;;;;;;;5899:370;;;;;;;;;;-1:-1:-1;5899:370:0;;;;;:::i;:::-;;:::i;8836:137::-;;;;;;;;;;;;;:::i;2309:103::-;;;;;;;;;;-1:-1:-1;2309:103:0;;;;;:::i;:::-;2364:4;2399:5;-1:-1:-1;;;;;2388:16:0;;;2399:5;;2388:16;;2309:103;3340:34;;;;;;;;;;;;3373:1;3340:34;;;;;2259:4:1;2247:17;;;2229:36;;2217:2;2202:18;3340:34:0;2087:184:1;3641:44:0;;;;;;;;;;-1:-1:-1;3641:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5605:122;;;;;;;;;;-1:-1:-1;5605:122:0;;;;;:::i;:::-;;:::i;8443:198::-;;;;;;;;;;-1:-1:-1;8443:198:0;;;;;:::i;:::-;;:::i;3519:45::-;;;;;;;;;;-1:-1:-1;3519:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2420:85;;;;;;;;;;;;;:::i;9453:284::-;;;;;;;;;;-1:-1:-1;9453:284:0;;;;;:::i;:::-;;:::i;3460:50::-;;;;;;;;;;;;;;;;5156:78;;;;;;;;;;-1:-1:-1;5208:7:0;5226:5;-1:-1:-1;;;;;5226:5:0;5156:78;;;-1:-1:-1;;;;;2761:32:1;;;2743:51;;2731:2;2716:18;5156:78:0;2597:203:1;3291:42:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3291:42:0;;;;;4158:29;;;;;;;;;;;;;;;5735:156;;;;;;;;;;-1:-1:-1;5735:156:0;;;;;:::i;:::-;;:::i;3692:52::-;;;;;;;;;;-1:-1:-1;3692:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5240:133;;;;;;;;;;-1:-1:-1;5240:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5342:19:0;;;5324:7;5342:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5240:133;8649:179;;;;;;;;;;-1:-1:-1;8649:179:0;;;;;:::i;:::-;;:::i;4117:34::-;;;;;;;;;;;;;;;6277:260;2364:4;2399:5;-1:-1:-1;;;;;2399:5:0;2268:10;2388:16;2252:38;;;;-1:-1:-1;;;2252:38:0;;;;;;;:::i;:::-;;;;;;;;;6413:2:::1;6386:23;:29;;6378:75;;;::::0;-1:-1:-1;;;6378:75:0;;4269:2:1;6378:75:0::1;::::0;::::1;4251:21:1::0;4308:2;4288:18;;;4281:30;4347:34;4327:18;;;4320:62;-1:-1:-1;;;4398:18:1;;;4391:32;4440:19;;6378:75:0::1;4067:398:1::0;6378:75:0::1;6525:4;6497:23:::0;3439:12:::1;3373:1;3439:2;:12;:::i;:::-;3421:30;::::0;:15:::1;:30;:::i;:::-;6483:37;;;;:::i;:::-;6482:47;;;;:::i;:::-;6464:15;:65:::0;-1:-1:-1;6277:260:0:o;5381:216::-;5485:10;5456:4;5473:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5473:32:0;;;;;;;;;;:41;;;5530:37;5456:4;;5473:32;;5530:37;;;;5508:6;1527:25:1;;1515:2;1500:18;;1381:177;5530:37:0;;;;;;;;-1:-1:-1;5585:4:0;5381:216;;;;;:::o;3383:68::-;3439:12;3373:1;3439:2;:12;:::i;:::-;3421:30;;:15;:30;:::i;:::-;3383:68;:::o;9186:259::-;2364:4;2399:5;-1:-1:-1;;;;;2399:5:0;2268:10;2388:16;2252:38;;;;-1:-1:-1;;;2252:38:0;;;;;;;:::i;:::-;9289:21:::1;9269:17;9380:3;9347:28;9359:16:::0;9289:21;9347:28:::1;:::i;:::-;9345:38;;;;:::i;:::-;9394:43;::::0;9321:62;;-1:-1:-1;9402:10:0::1;::::0;9394:43;::::1;;;::::0;9321:62;;9394:43:::1;::::0;;;9321:62;9402:10;9394:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9258:187;;9186:259:::0;:::o;5899:370::-;-1:-1:-1;;;;;6019:19:0;;5999:4;6019:19;;;:11;:19;;;;;;;;6039:10;6019:31;;;;;;;;-1:-1:-1;;6019:52:0;6016:186;;6121:69;;;;;;;;;;;-1:-1:-1;;;6121:69:0;;;;;;;;-1:-1:-1;;;;;6121:19:0;;-1:-1:-1;6121:19:0;;;:11;:19;;;;;6141:10;6121:31;;;;;;;;;;:69;;6157:6;;6121:35;:69::i;:::-;-1:-1:-1;;;;;6087:19:0;;;;;;:11;:19;;;;;;;;6107:10;6087:31;;;;;;;:103;6016:186;6221:40;6235:6;6243:9;6254:6;6221:13;:40::i;:::-;6214:47;;5899:370;;;;;;:::o;8836:137::-;8949:9;:15;;;;3121:42;8889:7;8931:15;;;;;8889:7;;8949:15;3439:12;3373:1;3439:2;:12;:::i;:::-;3421:30;;:15;:30;:::i;:::-;8917:29;;;;:::i;:::-;:47;;;;:::i;:::-;8909:56;;8836:137;:::o;5605:122::-;5660:4;5684:35;5692:7;-1:-1:-1;;5684:7:0;:35::i;8443:198::-;2364:4;2399:5;-1:-1:-1;;;;;2399:5:0;2268:10;2388:16;2252:38;;;;-1:-1:-1;;;2252:38:0;;;;;;;:::i;:::-;8542:13:::1;:20:::0;;;;8573:14:::1;:22:::0;8606:18:::1;:27:::0;8443:198::o;2420:85::-;2364:4;2399:5;-1:-1:-1;;;;;2399:5:0;2268:10;2388:16;2252:38;;;;-1:-1:-1;;;2252:38:0;;;;;;;:::i;:::-;2495:1:::1;2479:18:::0;;-1:-1:-1;;;;;;2479:18:0::1;::::0;;2420:85::o;9453:284::-;9544:12;2399:5;;-1:-1:-1;;;;;2399:5:0;2268:10;2388:16;2252:38;;;;-1:-1:-1;;;2252:38:0;;;;;;;:::i;:::-;9572:6:::1;9582:1;9572:11:::0;9569:95:::1;;9608:44;::::0;-1:-1:-1;;;9608:44:0;;9646:4:::1;9608:44;::::0;::::1;2743:51:1::0;-1:-1:-1;;;;;9608:29:0;::::1;::::0;::::1;::::0;2716:18:1;;9608:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9599:53;;9569:95;9681:48;::::0;-1:-1:-1;;;9681:48:0;;9710:10:::1;9681:48;::::0;::::1;6876:51:1::0;6943:18;;;6936:34;;;-1:-1:-1;;;;;9681:28:0;::::1;::::0;::::1;::::0;6849:18:1;;9681:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5735:156::-:0;5815:4;5839:44;5853:10;5865:9;5876:6;5839:13;:44::i;8649:179::-;2364:4;2399:5;-1:-1:-1;;;;;2399:5:0;2268:10;2388:16;2252:38;;;;-1:-1:-1;;;2252:38:0;;;;;;;:::i;:::-;8775:12;3439::::1;3373:1;3439:2;:12;:::i;:::-;3421:30;::::0;:15:::1;:30;:::i;:::-;8761:26;;;;:::i;:::-;8745:13;:42:::0;-1:-1:-1;8798:11:0::1;:22:::0;;;::::1;;-1:-1:-1::0;;;8798:22:0::1;-1:-1:-1::0;;;;8798:22:0;;::::1;::::0;;;::::1;::::0;;8649:179::o;628:192::-;714:7;750:12;742:6;;;;734:29;;;;-1:-1:-1;;;734:29:0;;;;;;;;:::i;:::-;-1:-1:-1;774:9:0;786:5;790:1;786;:5;:::i;:::-;774:17;628:192;-1:-1:-1;;;;;628:192:0:o;6545:817::-;6657:6;;6637:4;;6657:6;;6654:63;;;6673:41;6688:6;6696:9;6707:6;6673:14;:41::i;:::-;6666:48;;;;6654:63;-1:-1:-1;;;;;6734:27:0;;;;;;:19;:27;;;;;;;;6733:28;:63;;;;-1:-1:-1;;;;;;6766:30:0;;;;;;:19;:30;;;;;;;;6765:31;6733:63;:84;;;;;6813:4;-1:-1:-1;;;;;6800:17:0;:9;-1:-1:-1;;;;;6800:17:0;;;6733:84;6729:203;;;6877:15;;-1:-1:-1;;;;;6843:20:0;;;;;;:9;:20;;;;;;:29;;6866:6;;6843:29;:::i;:::-;6842:50;;6834:86;;;;-1:-1:-1;;;6834:86:0;;7563:2:1;6834:86:0;;;7545:21:1;7602:2;7582:18;;;7575:30;7641:26;7621:18;;;7614:54;7685:18;;6834:86:0;7361:348:1;6834:86:0;6947:16;:14;:16::i;:::-;6944:35;;;6966:10;:8;:10::i;:::-;7011:53;;;;;;;;;;;-1:-1:-1;;;7011:53:0;;;;;;;;-1:-1:-1;;;;;7011:17:0;;-1:-1:-1;7011:17:0;;;:9;:17;;;;;;;;:53;;7033:6;;7011:21;:53::i;:::-;-1:-1:-1;;;;;6991:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7103:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7126:22:0;;;;;;:11;:22;;;;;;;;7103:45;7102:93;;7161:34;7169:6;7177;7185:9;7161:7;:34::i;:::-;7102:93;;;7152:6;7102:93;-1:-1:-1;;;;;7231:20:0;;;;;;:9;:20;;;;;;7077:118;;-1:-1:-1;7231:40:0;;7077:118;7231:24;:40::i;:::-;-1:-1:-1;;;;;7208:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7289:43;;;;;;;;;;7317:14;1527:25:1;;1515:2;1500:18;;1381:177;7289:43:0;;;;;;;;-1:-1:-1;7350:4:0;;6545:817;-1:-1:-1;;;;6545:817:0:o;7374:330::-;7504:53;;;;;;;;;;;-1:-1:-1;;;7504:53:0;;;;;;;;-1:-1:-1;;;;;7504:17:0;;7467:4;7504:17;;;:9;:17;;;;;;;:53;;7526:6;;7504:21;:53::i;:::-;-1:-1:-1;;;;;7484:17:0;;;;;;;:9;:17;;;;;;:73;;;;7591:20;;;;;;;:32;;7616:6;7591:24;:32::i;:::-;-1:-1:-1;;;;;7568:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7639:35;;;;;;;;;;7667:6;1527:25:1;;1515:2;1500:18;;1381:177;7639:35:0;;;;;;;;-1:-1:-1;7692:4:0;7374:330;;;;;:::o;8981:197::-;9030:4;9054:10;-1:-1:-1;;;;;9068:4:0;9054:18;;;;;:38;;-1:-1:-1;9086:6:0;;;;9085:7;9054:38;:62;;;;-1:-1:-1;9105:11:0;;-1:-1:-1;;;9105:11:0;;;;9054:62;:116;;;;-1:-1:-1;;9157:13:0;;9147:4;9129:24;;;;:9;:24;;;;;;:41;;;8981:197::o;9745:765::-;4314:6;:13;;-1:-1:-1;;4314:13:0;4323:4;4314:13;;;9820:16:::1;::::0;;9834:1:::1;9820:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9820:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9820:16:0::1;9796:40;;9865:4;9847;9852:1;9847:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9847:23:0::1;;;-1:-1:-1::0;;;;;9847:23:0::1;;;::::0;::::1;9891:4;9881;9886:1;9881:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9881:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9980:13:::1;::::0;9908:189:::1;::::0;-1:-1:-1;;;9908:189:0;;:6:::1;:57:::0;;::::1;::::0;::::1;::::0;:189:::1;::::0;10008:1:::1;::::0;10024:4;;10051::::1;::::0;10071:15:::1;::::0;9908:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10222:8:0::1;::::0;10206:12:::1;::::0;10130:21:::1;::::0;-1:-1:-1;10110:17:0::1;::::0;-1:-1:-1;10194:24:0::1;::::0;10130:21;10194:24:::1;:::i;:::-;10193:37;;;;:::i;:::-;10164:66;;10241:27;10301:8;;10284:13;;10272:9;:25;;;;:::i;:::-;10271:38;;;;:::i;:::-;10351:20;::::0;10343:65:::1;::::0;10241:68;;-1:-1:-1;10323:15:0::1;::::0;-1:-1:-1;;;;;10351:20:0;;::::1;::::0;10385:18;;10323:15;10343:65;10323:15;10343:65;10385:18;10351:20;10343:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;10443:21:0::1;::::0;10435:67:::1;::::0;10322:86;;-1:-1:-1;;;;;;10443:21:0::1;::::0;10478:19;;10435:67:::1;::::0;;;10478:19;10443:21;10435:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4332:6:0;:14;;-1:-1:-1;;4332:14:0;;;-1:-1:-1;;;;;;9745:765:0:o;7712:723::-;7798:7;7821:11;;;:28;;-1:-1:-1;7836:8:0;;:13;7821:28;7818:72;;;-1:-1:-1;7872:6:0;7865:13;;7818:72;7923:18;;-1:-1:-1;;;;;7970:4:0;7957:17;;;;;;7954:154;;-1:-1:-1;8004:14:0;;7954:154;;;8049:4;-1:-1:-1;;;;;8039:14:0;:6;-1:-1:-1;;;;;8039:14:0;;8036:72;;-1:-1:-1;8083:13:0;;8036:72;8120:17;8140:62;8181:20;3918:3;;8181:20;:::i;:::-;8140:36;8165:10;8140:20;8151:8;;8140:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;8120:82;-1:-1:-1;8218:13:0;;8215:172;;8292:4;8274:24;;;;:9;:24;;;;;;:39;;8303:9;8274:28;:39::i;:::-;8265:4;8247:24;;;;:9;:24;;;;;;;:66;;;;8333:42;;-1:-1:-1;;;;;8333:42:0;;;;;;;8365:9;1527:25:1;;1515:2;1500:18;;1381:177;8333:42:0;;;;;;;;8215:172;8406:21;:6;8417:9;8406:10;:21::i;:::-;8399:28;7712:723;-1:-1:-1;;;;;;7712:723:0:o;299:181::-;357:7;;389:5;393:1;389;:5;:::i;:::-;377:17;;418:1;413;:6;;405:46;;;;-1:-1:-1;;;405:46:0;;9375:2:1;405:46:0;;;9357:21:1;9414:2;9394:18;;;9387:30;9453:29;9433:18;;;9426:57;9500:18;;405:46:0;9173:351:1;826:250:0;884:7;908:1;913;908:6;904:47;;-1:-1:-1;938:1:0;931:8;;904:47;963:9;975:5;979:1;975;:5;:::i;:::-;963:17;-1:-1:-1;1008:1:0;999:5;1003:1;963:17;999:5;:::i;:::-;:10;991:56;;;;-1:-1:-1;;;991:56:0;;9731:2:1;991:56:0;;;9713:21:1;9770:2;9750:18;;;9743:30;9809:34;9789:18;;;9782:62;-1:-1:-1;;;9860:18:1;;;9853:31;9901:19;;991:56:0;9529:397:1;1082:132:0;1140:7;1167:39;1171:1;1174;1167:39;;;;;;;;;;;;;;;;;:3;:39::i;486:136::-;544:7;571:43;575:1;578;571:43;;;;;;;;;;;;;;;;;:3;:43::i;1220:189::-;1306:7;1341:12;1334:5;1326:28;;;;-1:-1:-1;;;1326:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1365:9:0;1377:5;1381:1;1377;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:1;;567:180;-1:-1:-1;567:180:1:o;752:173::-;820:20;;-1:-1:-1;;;;;869:31:1;;859:42;;849:70;;915:1;912;905:12;849:70;752:173;;;:::o;930:254::-;998:6;1006;1059:2;1047:9;1038:7;1034:23;1030:32;1027:52;;;1075:1;1072;1065:12;1027:52;1098:29;1117:9;1098:29;:::i;:::-;1088:39;1174:2;1159:18;;;;1146:32;;-1:-1:-1;;;930:254:1:o;1563:328::-;1640:6;1648;1656;1709:2;1697:9;1688:7;1684:23;1680:32;1677:52;;;1725:1;1722;1715:12;1677:52;1748:29;1767:9;1748:29;:::i;:::-;1738:39;;1796:38;1830:2;1819:9;1815:18;1796:38;:::i;:::-;1786:48;;1881:2;1870:9;1866:18;1853:32;1843:42;;1563:328;;;;;:::o;1896:186::-;1955:6;2008:2;1996:9;1987:7;1983:23;1979:32;1976:52;;;2024:1;2021;2014:12;1976:52;2047:29;2066:9;2047:29;:::i;2276:316::-;2353:6;2361;2369;2422:2;2410:9;2401:7;2397:23;2393:32;2390:52;;;2438:1;2435;2428:12;2390:52;-1:-1:-1;;2461:23:1;;;2531:2;2516:18;;2503:32;;-1:-1:-1;2582:2:1;2567:18;;;2554:32;;2276:316;-1:-1:-1;2276:316:1:o;2805:260::-;2873:6;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2973:29;2992:9;2973:29;:::i;:::-;2963:39;;3021:38;3055:2;3044:9;3040:18;3021:38;:::i;:::-;3011:48;;2805:260;;;;;:::o;3070:118::-;3156:5;3149:13;3142:21;3135:5;3132:32;3122:60;;3178:1;3175;3168:12;3122:60;3070:118;:::o;3193:309::-;3258:6;3266;3319:2;3307:9;3298:7;3294:23;3290:32;3287:52;;;3335:1;3332;3325:12;3287:52;3374:9;3361:23;3393:28;3415:5;3393:28;:::i;3733:329::-;3935:2;3917:21;;;3974:1;3954:18;;;3947:29;-1:-1:-1;;;4007:2:1;3992:18;;3985:36;4053:2;4038:18;;3733:329::o;4470:127::-;4531:10;4526:3;4522:20;4519:1;4512:31;4562:4;4559:1;4552:15;4586:4;4583:1;4576:15;4602:422;4691:1;4734:5;4691:1;4748:270;4769:7;4759:8;4756:21;4748:270;;;4828:4;4824:1;4820:6;4816:17;4810:4;4807:27;4804:53;;;4837:18;;:::i;:::-;4887:7;4877:8;4873:22;4870:55;;;4907:16;;;;4870:55;4986:22;;;;4946:15;;;;4748:270;;;4752:3;4602:422;;;;;:::o;5029:806::-;5078:5;5108:8;5098:80;;-1:-1:-1;5149:1:1;5163:5;;5098:80;5197:4;5187:76;;-1:-1:-1;5234:1:1;5248:5;;5187:76;5279:4;5297:1;5292:59;;;;5365:1;5360:130;;;;5272:218;;5292:59;5322:1;5313:10;;5336:5;;;5360:130;5397:3;5387:8;5384:17;5381:43;;;5404:18;;:::i;:::-;-1:-1:-1;;5460:1:1;5446:16;;5475:5;;5272:218;;5574:2;5564:8;5561:16;5555:3;5549:4;5546:13;5542:36;5536:2;5526:8;5523:16;5518:2;5512:4;5509:12;5505:35;5502:77;5499:159;;;-1:-1:-1;5611:19:1;;;5643:5;;5499:159;5690:34;5715:8;5709:4;5690:34;:::i;:::-;5760:6;5756:1;5752:6;5748:19;5739:7;5736:32;5733:58;;;5771:18;;:::i;:::-;5809:20;;5029:806;-1:-1:-1;;;5029:806:1:o;5840:140::-;5898:5;5927:47;5968:4;5958:8;5954:19;5948:4;5927:47;:::i;5985:168::-;6058:9;;;6089;;6106:15;;;6100:22;;6086:37;6076:71;;6127:18;;:::i;6158:217::-;6198:1;6224;6214:132;;6268:10;6263:3;6259:20;6256:1;6249:31;6303:4;6300:1;6293:15;6331:4;6328:1;6321:15;6214:132;-1:-1:-1;6360:9:1;;6158:217::o;6380:128::-;6447:9;;;6468:11;;;6465:37;;;6482:18;;:::i;6513:184::-;6583:6;6636:2;6624:9;6615:7;6611:23;6607:32;6604:52;;;6652:1;6649;6642:12;6604:52;-1:-1:-1;6675:16:1;;6513:184;-1:-1:-1;6513:184:1:o;6981:245::-;7048:6;7101:2;7089:9;7080:7;7076:23;7072:32;7069:52;;;7117:1;7114;7107:12;7069:52;7149:9;7143:16;7168:28;7190:5;7168:28;:::i;7231:125::-;7296:9;;;7317:10;;;7314:36;;;7330:18;;:::i;7846:127::-;7907:10;7902:3;7898:20;7895:1;7888:31;7938:4;7935:1;7928:15;7962:4;7959:1;7952:15;7978:980;8240:4;8288:3;8277:9;8273:19;8319:6;8308:9;8301:25;8345:2;8383:6;8378:2;8367:9;8363:18;8356:34;8426:3;8421:2;8410:9;8406:18;8399:31;8450:6;8485;8479:13;8516:6;8508;8501:22;8554:3;8543:9;8539:19;8532:26;;8593:2;8585:6;8581:15;8567:29;;8614:1;8624:195;8638:6;8635:1;8632:13;8624:195;;;8703:13;;-1:-1:-1;;;;;8699:39:1;8687:52;;8794:15;;;;8759:12;;;;8735:1;8653:9;8624:195;;;-1:-1:-1;;;;;;;8875:32:1;;;;8870:2;8855:18;;8848:60;-1:-1:-1;;;8939:3:1;8924:19;8917:35;8836:3;7978:980;-1:-1:-1;;;7978:980:1:o

Swarm Source

ipfs://6f3285eb68871f38e05c35847a44d87efb49e3f90e3de000ae2abdbb2c9bbccf
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.