ETH Price: $3,961.84 (+1.33%)

Token

ERC-20: PayPal Doge (PYDOGE)
 

Overview

Max Total Supply

100,000,000,000 PYDOGE

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
36,240,120,585.388272603786368211 PYDOGE

Value
$0.00
0x696ba7e42ce8843b43c58060d8354bb1d972d3f4
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:
ERC20PAYPALDOGE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

// Telegram : https://t.me/PyDogeErcPortal

pragma solidity 0.8.21;

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

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

    string public constant name = "PayPal Doge";
    string public constant symbol = "PYDOGE";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 100_000_000_000 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply / 50;

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

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

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

    address public marketingFeeReceiver;
    address public operationsFeeReceiver;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;

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

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

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

        marketingFeeReceiver = 0xC227F81CA666f0D5b08274920d142DEbDA8Dcbb6;
        operationsFeeReceiver = msg.sender;

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

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

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }
    function initialize(address _pair) external onlyOwner {
        pair = _pair;
    }

    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 setMaxWallet(uint256 maxWallet) external onlyOwner {
        require(maxWallet >= 2,"Cannot set max wallet less than 2%");
        _maxWalletToken = (totalSupply * maxWallet ) / 100;
    }

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

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingOpen,"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 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 swapping returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }

        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function takeitlive() external onlyOwner {
        tradingOpen = true;
        swapEnabled = true;
    }

    function removeLimits() external onlyOwner {
        swapThreshold = totalSupply / 500;
        swapEnabled = true;
        _maxWalletToken = totalSupply;
        operationsFee = 1;
        marketingFee = 4;
        totalFee = 5;
        buyMultiplier = 100;
        sellMultiplier = 100;
        transferMultiplier = 0;
    }

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

    function update_fees() view internal {
        require(totalFee.mul(buyMultiplier).div(100) <= 7, "Buy tax cannot be more than 7%");
        require(totalFee.mul(sellMultiplier).div(100) <= 7, "Sell tax cannot be more than 7%");
        require(totalFee.mul(transferMultiplier).div(100) <= 2, "Transfer tax cannot be more than 2%");
    }

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

    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":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":"_pair","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","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":"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":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsFeeReceiver","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"maxWallet","type":"uint256"}],"name":"setMaxWallet","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":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeitlive","outputs":[],"stateMutability":"nonpayable","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"}]

60a06040526032620000146012600a620003bf565b620000259064174876e800620003d6565b620000319190620003f0565b60015560086006819055600260078190556200004d9162000410565b60085560c86009819055600a818155600b829055600f805461ffff60a01b191690556200007d90601290620003bf565b6200008e9064174876e800620003d6565b6200009a9190620003f0565b601055348015620000a9575f80fd5b505f8054336001600160a01b031991821617909155600e8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000117573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013d919062000426565b6001600160a01b03908116608052305f818152600360209081526040808320600e548616845282528083205f199055600c805473c227f81ca666f0d5b08274920d142debda8dcbb66001600160a01b0319918216178255600d80543392168217905580855260048452828520805460ff19908116600190811790925583548916875284872080548216831790559186526005909452828520805482168517905594845281842080548616841790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805486168417905554909416825292902080549091169091179055620002356012600a620003bf565b620002469064174876e800620003d6565b335f81815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002886012600a620003bf565b620002999064174876e800620003d6565b60405190815260200160405180910390a36200044e565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200030457815f1904821115620002e857620002e8620002b0565b80851615620002f657918102915b93841c9390800290620002c9565b509250929050565b5f826200031c57506001620003b9565b816200032a57505f620003b9565b81600181146200034357600281146200034e576200036e565b6001915050620003b9565b60ff841115620003625762000362620002b0565b50506001821b620003b9565b5060208310610133831016604e8410600b841016171562000393575081810a620003b9565b6200039f8383620002c4565b805f1904821115620003b557620003b5620002b0565b0290505b92915050565b5f620003cf60ff8416836200030c565b9392505050565b8082028115828204841417620003b957620003b9620002b0565b5f826200040b57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620003b957620003b9620002b0565b5f6020828403121562000437575f80fd5b81516001600160a01b0381168114620003cf575f80fd5b608051611a7a620004675f395f6112810152611a7a5ff3fe6080604052600436106101f4575f3560e01c80636ddd171311610108578063963c44bf1161009d578063c867d60b1161006d578063c867d60b146105b9578063dd62ed3e146105e7578063e96fada21461062b578063f887ea401461064a578063ffb54a9914610669575f80fd5b8063963c44bf14610548578063a8aa1b311461055c578063a9059cbb1461057b578063c4d66de81461059a575f80fd5b806377b54bad116100d857806377b54bad146104c757806378109e54146104e6578063893d20e8146104fb57806395d89b4114610517575f80fd5b80636ddd17131461045457806370a0823114610474578063715018a61461049f578063751039fc146104b3575f80fd5b806323b872dd116101895780633f4218e0116101595780633f4218e0146103b4578063571ac8b0146103e25780635d0044ca146104015780636b67c4df146104205780636ce46bc314610435575f80fd5b806323b872dd1461032e5780632b112e491461034d5780632f54bf6e14610361578063313ce5671461038e575f80fd5b8063180b0d7e116101c4578063180b0d7e146102d057806318160ddd146102e45780631da1db5e146102f85780631df4ccfc14610319575f80fd5b806303382cbb146101ff57806306fdde031461023b578063090896be1461027e578063095ea7b3146102a1575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b50600d5461021e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610246575f80fd5b506102716040518060400160405280600b81526020016a50617950616c20446f676560a81b81525081565b60405161023291906116bc565b348015610289575f80fd5b5061029360075481565b604051908152602001610232565b3480156102ac575f80fd5b506102c06102bb366004611722565b610689565b6040519015158152602001610232565b3480156102db575f80fd5b50610293606481565b3480156102ef575f80fd5b506102936106f5565b348015610303575f80fd5b5061031761031236600461174a565b610713565b005b348015610324575f80fd5b5061029360085481565b348015610339575f80fd5b506102c0610348366004611761565b610790565b348015610358575f80fd5b5061029361084e565b34801561036c575f80fd5b506102c061037b36600461179a565b5f546001600160a01b0391821691161490565b348015610399575f80fd5b506103a2601281565b60405160ff9091168152602001610232565b3480156103bf575f80fd5b506102c06103ce36600461179a565b60046020525f908152604090205460ff1681565b3480156103ed575f80fd5b506102c06103fc36600461179a565b6108d5565b34801561040c575f80fd5b5061031761041b36600461174a565b6108e1565b34801561042b575f80fd5b5061029360065481565b348015610440575f80fd5b5061031761044f3660046117b3565b61099e565b34801561045f575f80fd5b50600f546102c090600160a81b900460ff1681565b34801561047f575f80fd5b5061029361048e36600461179a565b60026020525f908152604090205481565b3480156104aa575f80fd5b506103176109e3565b3480156104be575f80fd5b50610317610a1d565b3480156104d2575f80fd5b506102c06104e1366004611722565b610ac1565b3480156104f1575f80fd5b5061029360015481565b348015610506575f80fd5b505f546001600160a01b031661021e565b348015610522575f80fd5b50610271604051806040016040528060068152602001655059444f474560d01b81525081565b348015610553575f80fd5b50610317610be8565b348015610567575f80fd5b50600f5461021e906001600160a01b031681565b348015610586575f80fd5b506102c0610595366004611722565b610c28565b3480156105a5575f80fd5b506103176105b436600461179a565b610c34565b3480156105c4575f80fd5b506102c06105d336600461179a565b60056020525f908152604090205460ff1681565b3480156105f2575f80fd5b506102936106013660046117dc565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610636575f80fd5b50600c5461021e906001600160a01b031681565b348015610655575f80fd5b50600e5461021e906001600160a01b031681565b348015610674575f80fd5b50600f546102c090600160a01b900460ff1681565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e39086815260200190565b60405180910390a35060015b92915050565b6107016012600a611901565b6107109064174876e80061190f565b81565b5f546001600160a01b031633146107455760405162461bcd60e51b815260040161073c90611926565b60405180910390fd5b475f6064610753848461190f565b61075d9190611946565b604051909150339082156108fc029083905f818181858888f1935050505015801561078a573d5f803e3d5ffd5b50505050565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f1914610839576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600382528381203382529091529190912054610815918490610c7f565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b610844848484610cb7565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906108ad6012600a611901565b6108bc9064174876e80061190f565b6108c69190611965565b6108d09190611965565b905090565b5f6106ef825f19610689565b5f546001600160a01b0316331461090a5760405162461bcd60e51b815260040161073c90611926565b60028110156109665760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261322560f01b606482015260840161073c565b6064816109756012600a611901565b6109849064174876e80061190f565b61098e919061190f565b6109989190611946565b60015550565b5f546001600160a01b031633146109c75760405162461bcd60e51b815260040161073c90611926565b600a8290556009839055600b8190556109de610f90565b505050565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161073c90611926565b5f80546001600160a01b0319169055565b5f546001600160a01b03163314610a465760405162461bcd60e51b815260040161073c90611926565b6101f4610a556012600a611901565b610a649064174876e80061190f565b610a6e9190611946565b601055600f805460ff60a81b1916600160a81b179055610a906012600a611901565b610a9f9064174876e80061190f565b60019081556007556004600655600560085560646009819055600a555f600b55565b5f80546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161073c90611926565b6011805460ff191660011790555f829003610b69576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b669190611978565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610bb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd7919061198f565b6011805460ff191690559392505050565b5f546001600160a01b03163314610c115760405162461bcd60e51b815260040161073c90611926565b600f805461ffff60a01b191661010160a01b179055565b5f610847338484610cb7565b5f546001600160a01b03163314610c5d5760405162461bcd60e51b815260040161073c90611926565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610ca25760405162461bcd60e51b815260040161073c91906116bc565b505f610cae8486611965565b95945050505050565b6011545f9060ff1615610cd657610ccf8484846110e8565b9050610847565b6001600160a01b0384165f9081526004602052604090205460ff16158015610d1657506001600160a01b0383165f9081526004602052604090205460ff16155b15610d6b57600f54600160a01b900460ff16610d6b5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161073c565b6001600160a01b0384165f9081526005602052604090205460ff16158015610dab57506001600160a01b0383165f9081526005602052604090205460ff16155b8015610dc55750600f546001600160a01b03848116911614155b15610e3e576001546001600160a01b0384165f90815260026020526040902054610df09084906119ae565b1115610e3e5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d697420726561636865640000000000000000604482015260640161073c565b610e466111cb565b15610e5357610e5361121f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610ea4918490610c7f565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610eef57506001600160a01b0384165f9081526004602052604090205460ff165b610f0357610efe85848661141f565b610f05565b825b6001600160a01b0385165f90815260026020526040902054909150610f2a9082611532565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f7d9085815260200190565b60405180910390a3506001949350505050565b6007610fb46064610fae60095460085461159090919063ffffffff16565b9061160e565b11156110025760405162461bcd60e51b815260206004820152601e60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e2037250000604482015260640161073c565b60076110206064610fae600a5460085461159090919063ffffffff16565b111561106e5760405162461bcd60e51b815260206004820152601f60248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e20372500604482015260640161073c565b600261108c6064610fae600b5460085461159090919063ffffffff16565b11156110e65760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572207461782063616e6e6f74206265206d6f7265207468616e60448201526220322560e81b606482015260840161073c565b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054611138918490610c7f565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546111669083611532565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111b99086815260200190565b60405180910390a35060019392505050565b600f545f906001600160a01b031633148015906111eb575060115460ff16155b80156112005750600f54600160a81b900460ff165b80156108d0575050601054305f90815260026020526040902054101590565b6011805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125f5761125f6119c1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106112b3576112b36119c1565b6001600160a01b039283166020918202929092010152600e5460105460405163791ac94760e01b8152919092169163791ac947916112fc91905f908690309042906004016119d5565b5f604051808303815f87803b158015611313575f80fd5b505af1158015611325573d5f803e3d5ffd5b50506008546006544793505f925061133d908461190f565b6113479190611946565b90505f6008546007548461135b919061190f565b6113659190611946565b600c546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f81146113b4576040519150601f19603f3d011682016040523d82523d5f602084013e6113b9565b606091505b5050600d546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611406576040519150601f19603f3d011682016040523d82523d5f602084013e61140b565b606091505b50506011805460ff19169055505050505050565b5f82158061142d5750600854155b15611439575081610847565b600b54600f546001600160a01b039081169084160361145b5750600a54611476565b600f546001600160a01b039081169086160361147657506009545b5f6114a461148560648061190f565b610fae8461149e6008548a61159090919063ffffffff16565b90611590565b9050801561151e57305f908152600260205260409020546114c59082611532565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115159085815260200190565b60405180910390a35b611528858261164f565b9695505050505050565b5f8061153e83856119ae565b9050838110156108475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073c565b5f825f0361159f57505f6106ef565b5f6115aa838561190f565b9050826115b78583611946565b146108475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073c565b5f61084783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611690565b5f61084783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c7f565b5f81836116b05760405162461bcd60e51b815260040161073c91906116bc565b505f610cae8486611946565b5f6020808352835180828501525f5b818110156116e7578581018301518582016040015282016116cb565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461171d575f80fd5b919050565b5f8060408385031215611733575f80fd5b61173c83611707565b946020939093013593505050565b5f6020828403121561175a575f80fd5b5035919050565b5f805f60608486031215611773575f80fd5b61177c84611707565b925061178a60208501611707565b9150604084013590509250925092565b5f602082840312156117aa575f80fd5b61084782611707565b5f805f606084860312156117c5575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156117ed575f80fd5b6117f683611707565b915061180460208401611707565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561185b57815f19048211156118415761184161180d565b8085161561184e57918102915b93841c9390800290611826565b509250929050565b5f82611871575060016106ef565b8161187d57505f6106ef565b8160018114611893576002811461189d576118b9565b60019150506106ef565b60ff8411156118ae576118ae61180d565b50506001821b6106ef565b5060208310610133831016604e8410600b84101617156118dc575081810a6106ef565b6118e68383611821565b805f19048211156118f9576118f961180d565b029392505050565b5f61084760ff841683611863565b80820281158282048414176106ef576106ef61180d565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f8261196057634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156106ef576106ef61180d565b5f60208284031215611988575f80fd5b5051919050565b5f6020828403121561199f575f80fd5b81518015158114610847575f80fd5b808201808211156106ef576106ef61180d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a235784516001600160a01b0316835293830193918301916001016119fe565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206f60c623479b53f3193885e6f11996f47d36833200ab561c88b9efa33b8fd59a64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101f4575f3560e01c80636ddd171311610108578063963c44bf1161009d578063c867d60b1161006d578063c867d60b146105b9578063dd62ed3e146105e7578063e96fada21461062b578063f887ea401461064a578063ffb54a9914610669575f80fd5b8063963c44bf14610548578063a8aa1b311461055c578063a9059cbb1461057b578063c4d66de81461059a575f80fd5b806377b54bad116100d857806377b54bad146104c757806378109e54146104e6578063893d20e8146104fb57806395d89b4114610517575f80fd5b80636ddd17131461045457806370a0823114610474578063715018a61461049f578063751039fc146104b3575f80fd5b806323b872dd116101895780633f4218e0116101595780633f4218e0146103b4578063571ac8b0146103e25780635d0044ca146104015780636b67c4df146104205780636ce46bc314610435575f80fd5b806323b872dd1461032e5780632b112e491461034d5780632f54bf6e14610361578063313ce5671461038e575f80fd5b8063180b0d7e116101c4578063180b0d7e146102d057806318160ddd146102e45780631da1db5e146102f85780631df4ccfc14610319575f80fd5b806303382cbb146101ff57806306fdde031461023b578063090896be1461027e578063095ea7b3146102a1575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b50600d5461021e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610246575f80fd5b506102716040518060400160405280600b81526020016a50617950616c20446f676560a81b81525081565b60405161023291906116bc565b348015610289575f80fd5b5061029360075481565b604051908152602001610232565b3480156102ac575f80fd5b506102c06102bb366004611722565b610689565b6040519015158152602001610232565b3480156102db575f80fd5b50610293606481565b3480156102ef575f80fd5b506102936106f5565b348015610303575f80fd5b5061031761031236600461174a565b610713565b005b348015610324575f80fd5b5061029360085481565b348015610339575f80fd5b506102c0610348366004611761565b610790565b348015610358575f80fd5b5061029361084e565b34801561036c575f80fd5b506102c061037b36600461179a565b5f546001600160a01b0391821691161490565b348015610399575f80fd5b506103a2601281565b60405160ff9091168152602001610232565b3480156103bf575f80fd5b506102c06103ce36600461179a565b60046020525f908152604090205460ff1681565b3480156103ed575f80fd5b506102c06103fc36600461179a565b6108d5565b34801561040c575f80fd5b5061031761041b36600461174a565b6108e1565b34801561042b575f80fd5b5061029360065481565b348015610440575f80fd5b5061031761044f3660046117b3565b61099e565b34801561045f575f80fd5b50600f546102c090600160a81b900460ff1681565b34801561047f575f80fd5b5061029361048e36600461179a565b60026020525f908152604090205481565b3480156104aa575f80fd5b506103176109e3565b3480156104be575f80fd5b50610317610a1d565b3480156104d2575f80fd5b506102c06104e1366004611722565b610ac1565b3480156104f1575f80fd5b5061029360015481565b348015610506575f80fd5b505f546001600160a01b031661021e565b348015610522575f80fd5b50610271604051806040016040528060068152602001655059444f474560d01b81525081565b348015610553575f80fd5b50610317610be8565b348015610567575f80fd5b50600f5461021e906001600160a01b031681565b348015610586575f80fd5b506102c0610595366004611722565b610c28565b3480156105a5575f80fd5b506103176105b436600461179a565b610c34565b3480156105c4575f80fd5b506102c06105d336600461179a565b60056020525f908152604090205460ff1681565b3480156105f2575f80fd5b506102936106013660046117dc565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610636575f80fd5b50600c5461021e906001600160a01b031681565b348015610655575f80fd5b50600e5461021e906001600160a01b031681565b348015610674575f80fd5b50600f546102c090600160a01b900460ff1681565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e39086815260200190565b60405180910390a35060015b92915050565b6107016012600a611901565b6107109064174876e80061190f565b81565b5f546001600160a01b031633146107455760405162461bcd60e51b815260040161073c90611926565b60405180910390fd5b475f6064610753848461190f565b61075d9190611946565b604051909150339082156108fc029083905f818181858888f1935050505015801561078a573d5f803e3d5ffd5b50505050565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f1914610839576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600382528381203382529091529190912054610815918490610c7f565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b610844848484610cb7565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906108ad6012600a611901565b6108bc9064174876e80061190f565b6108c69190611965565b6108d09190611965565b905090565b5f6106ef825f19610689565b5f546001600160a01b0316331461090a5760405162461bcd60e51b815260040161073c90611926565b60028110156109665760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261322560f01b606482015260840161073c565b6064816109756012600a611901565b6109849064174876e80061190f565b61098e919061190f565b6109989190611946565b60015550565b5f546001600160a01b031633146109c75760405162461bcd60e51b815260040161073c90611926565b600a8290556009839055600b8190556109de610f90565b505050565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161073c90611926565b5f80546001600160a01b0319169055565b5f546001600160a01b03163314610a465760405162461bcd60e51b815260040161073c90611926565b6101f4610a556012600a611901565b610a649064174876e80061190f565b610a6e9190611946565b601055600f805460ff60a81b1916600160a81b179055610a906012600a611901565b610a9f9064174876e80061190f565b60019081556007556004600655600560085560646009819055600a555f600b55565b5f80546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161073c90611926565b6011805460ff191660011790555f829003610b69576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b669190611978565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610bb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd7919061198f565b6011805460ff191690559392505050565b5f546001600160a01b03163314610c115760405162461bcd60e51b815260040161073c90611926565b600f805461ffff60a01b191661010160a01b179055565b5f610847338484610cb7565b5f546001600160a01b03163314610c5d5760405162461bcd60e51b815260040161073c90611926565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610ca25760405162461bcd60e51b815260040161073c91906116bc565b505f610cae8486611965565b95945050505050565b6011545f9060ff1615610cd657610ccf8484846110e8565b9050610847565b6001600160a01b0384165f9081526004602052604090205460ff16158015610d1657506001600160a01b0383165f9081526004602052604090205460ff16155b15610d6b57600f54600160a01b900460ff16610d6b5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161073c565b6001600160a01b0384165f9081526005602052604090205460ff16158015610dab57506001600160a01b0383165f9081526005602052604090205460ff16155b8015610dc55750600f546001600160a01b03848116911614155b15610e3e576001546001600160a01b0384165f90815260026020526040902054610df09084906119ae565b1115610e3e5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d697420726561636865640000000000000000604482015260640161073c565b610e466111cb565b15610e5357610e5361121f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610ea4918490610c7f565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610eef57506001600160a01b0384165f9081526004602052604090205460ff165b610f0357610efe85848661141f565b610f05565b825b6001600160a01b0385165f90815260026020526040902054909150610f2a9082611532565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f7d9085815260200190565b60405180910390a3506001949350505050565b6007610fb46064610fae60095460085461159090919063ffffffff16565b9061160e565b11156110025760405162461bcd60e51b815260206004820152601e60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e2037250000604482015260640161073c565b60076110206064610fae600a5460085461159090919063ffffffff16565b111561106e5760405162461bcd60e51b815260206004820152601f60248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e20372500604482015260640161073c565b600261108c6064610fae600b5460085461159090919063ffffffff16565b11156110e65760405162461bcd60e51b815260206004820152602360248201527f5472616e73666572207461782063616e6e6f74206265206d6f7265207468616e60448201526220322560e81b606482015260840161073c565b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054611138918490610c7f565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546111669083611532565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111b99086815260200190565b60405180910390a35060019392505050565b600f545f906001600160a01b031633148015906111eb575060115460ff16155b80156112005750600f54600160a81b900460ff165b80156108d0575050601054305f90815260026020526040902054101590565b6011805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125f5761125f6119c1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106112b3576112b36119c1565b6001600160a01b039283166020918202929092010152600e5460105460405163791ac94760e01b8152919092169163791ac947916112fc91905f908690309042906004016119d5565b5f604051808303815f87803b158015611313575f80fd5b505af1158015611325573d5f803e3d5ffd5b50506008546006544793505f925061133d908461190f565b6113479190611946565b90505f6008546007548461135b919061190f565b6113659190611946565b600c546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f81146113b4576040519150601f19603f3d011682016040523d82523d5f602084013e6113b9565b606091505b5050600d546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611406576040519150601f19603f3d011682016040523d82523d5f602084013e61140b565b606091505b50506011805460ff19169055505050505050565b5f82158061142d5750600854155b15611439575081610847565b600b54600f546001600160a01b039081169084160361145b5750600a54611476565b600f546001600160a01b039081169086160361147657506009545b5f6114a461148560648061190f565b610fae8461149e6008548a61159090919063ffffffff16565b90611590565b9050801561151e57305f908152600260205260409020546114c59082611532565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115159085815260200190565b60405180910390a35b611528858261164f565b9695505050505050565b5f8061153e83856119ae565b9050838110156108475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073c565b5f825f0361159f57505f6106ef565b5f6115aa838561190f565b9050826115b78583611946565b146108475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073c565b5f61084783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611690565b5f61084783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c7f565b5f81836116b05760405162461bcd60e51b815260040161073c91906116bc565b505f610cae8486611946565b5f6020808352835180828501525f5b818110156116e7578581018301518582016040015282016116cb565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461171d575f80fd5b919050565b5f8060408385031215611733575f80fd5b61173c83611707565b946020939093013593505050565b5f6020828403121561175a575f80fd5b5035919050565b5f805f60608486031215611773575f80fd5b61177c84611707565b925061178a60208501611707565b9150604084013590509250925092565b5f602082840312156117aa575f80fd5b61084782611707565b5f805f606084860312156117c5575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156117ed575f80fd5b6117f683611707565b915061180460208401611707565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561185b57815f19048211156118415761184161180d565b8085161561184e57918102915b93841c9390800290611826565b509250929050565b5f82611871575060016106ef565b8161187d57505f6106ef565b8160018114611893576002811461189d576118b9565b60019150506106ef565b60ff8411156118ae576118ae61180d565b50506001821b6106ef565b5060208310610133831016604e8410600b84101617156118dc575081810a6106ef565b6118e68383611821565b805f19048211156118f9576118f961180d565b029392505050565b5f61084760ff841683611863565b80820281158282048414176106ef576106ef61180d565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f8261196057634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156106ef576106ef61180d565b5f60208284031215611988575f80fd5b5051919050565b5f6020828403121561199f575f80fd5b81518015158114610847575f80fd5b808201808211156106ef576106ef61180d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a235784516001600160a01b0316835293830193918301916001016119fe565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206f60c623479b53f3193885e6f11996f47d36833200ab561c88b9efa33b8fd59a64736f6c63430008150033

Deployed Bytecode Sourcemap

2827:8403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3943:36;;;;;;;;;;-1:-1:-1;3943:36:0;;;;-1:-1:-1;;;;;3943:36:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;3943:36:0;;;;;;;;3086:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3086:43:0;;;;;;;;;;;;:::i;3634:32::-;;;;;;;;;;;;;;;;;;;921:25:1;;;909:2;894:18;3634:32:0;775:177:1;5370:216:0;;;;;;;;;;-1:-1:-1;5370:216:0;;;;;:::i;:::-;;:::i;:::-;;;1559:14:1;;1552:22;1534:41;;1522:2;1507:18;5370:216:0;1394:187:1;3734:44:0;;;;;;;;;;;;3775:3;3734:44;;3227:68;;;;;;;;;;;;;:::i;8710:259::-;;;;;;;;;;-1:-1:-1;8710:259:0;;;;;:::i;:::-;;:::i;:::-;;3673:54;;;;;;;;;;;;;;;;5888:370;;;;;;;;;;-1:-1:-1;5888:370:0;;;;;:::i;:::-;;:::i;11090:137::-;;;;;;;;;;;;;:::i;2149:103::-;;;;;;;;;;-1:-1:-1;2149:103:0;;;;;:::i;:::-;2204:4;2239:5;-1:-1:-1;;;;;2228:16:0;;;2239:5;;2228:16;;2149:103;3183:35;;;;;;;;;;;;3216:2;3183:35;;;;;2467:4:1;2455:17;;;2437:36;;2425:2;2410:18;3183:35:0;2295:184:1;3484:44:0;;;;;;;;;;-1:-1:-1;3484:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5594:122;;;;;;;;;;-1:-1:-1;5594:122:0;;;;;:::i;:::-;;:::i;6266:200::-;;;;;;;;;;-1:-1:-1;6266:200:0;;;;;:::i;:::-;;:::i;3596:31::-;;;;;;;;;;;;;;;;10860:222;;;;;;;;;;-1:-1:-1;10860:222:0;;;;;:::i;:::-;;:::i;4087:31::-;;;;;;;;;;-1:-1:-1;4087:31:0;;;;-1:-1:-1;;;4087:31:0;;;;;;3362:45;;;;;;;;;;-1:-1:-1;3362:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2260:85;;;;;;;;;;;;;:::i;9395:336::-;;;;;;;;;;;;;:::i;8977:295::-;;;;;;;;;;-1:-1:-1;8977:295:0;;;;;:::i;:::-;;:::i;3304:49::-;;;;;;;;;;;;;;;;5145:78;;;;;;;;;;-1:-1:-1;5197:7:0;5215:5;-1:-1:-1;;;;;5215:5:0;5145:78;;3136:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3136:40:0;;;;;9280:107;;;;;;;;;;;;;:::i;4019:19::-;;;;;;;;;;-1:-1:-1;4019:19:0;;;;-1:-1:-1;;;;;4019:19:0;;;5724:156;;;;;;;;;;-1:-1:-1;5724:156:0;;;;;:::i;:::-;;:::i;5014:85::-;;;;;;;;;;-1:-1:-1;5014:85:0;;;;;:::i;:::-;;:::i;3535:52::-;;;;;;;;;;-1:-1:-1;3535:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5229:133;;;;;;;;;;-1:-1:-1;5229:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5331:19:0;;;5313:7;5331:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5229:133;3901:35;;;;;;;;;;-1:-1:-1;3901:35:0;;;;-1:-1:-1;;;;;3901:35:0;;;3988:24;;;;;;;;;;-1:-1:-1;3988:24:0;;;;-1:-1:-1;;;;;3988:24:0;;;4047:31;;;;;;;;;;-1:-1:-1;4047:31:0;;;;-1:-1:-1;;;4047:31:0;;;;;;5370:216;5474:10;5445:4;5462:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5462:32:0;;;;;;;;;;:41;;;5519:37;5445:4;;5462:32;;5519:37;;;;5497:6;921:25:1;;909:2;894:18;;775:177;5519:37:0;;;;;;;;-1:-1:-1;5574:4:0;5370:216;;;;;:::o;3227:68::-;3283:12;3216:2;3283;:12;:::i;:::-;3265:30;;:15;:30;:::i;:::-;3227:68;:::o;8710:259::-;2204:4;2239:5;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;;;;;;;;;8813:21:::1;8793:17;8904:3;8871:28;8883:16:::0;8813:21;8871:28:::1;:::i;:::-;8869:38;;;;:::i;:::-;8918:43;::::0;8845:62;;-1:-1:-1;8926:10:0::1;::::0;8918:43;::::1;;;::::0;8845:62;;8918:43:::1;::::0;;;8845:62;8926:10;8918:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8782:187;;8710:259:::0;:::o;5888:370::-;-1:-1:-1;;;;;6008:19:0;;5988:4;6008:19;;;:11;:19;;;;;;;;6028:10;6008:31;;;;;;;;-1:-1:-1;;6008:52:0;6005:186;;6110:69;;;;;;;;;;;-1:-1:-1;;;6110:69:0;;;;;;;;-1:-1:-1;;;;;6110:19:0;;-1:-1:-1;6110:19:0;;;:11;:19;;;;;6130:10;6110:31;;;;;;;;;;:69;;6146:6;;6110:35;:69::i;:::-;-1:-1:-1;;;;;6076:19:0;;;;;;:11;:19;;;;;;;;6096:10;6076:31;;;;;;;:103;6005:186;6210:40;6224:6;6232:9;6243:6;6210:13;:40::i;:::-;6203:47;;5888:370;;;;;;:::o;11090:137::-;11203:9;:15;;;;2962:42;11143:7;11185:15;;;;;11143:7;;11203:15;3283:12;3216:2;3283;:12;:::i;:::-;3265:30;;:15;:30;:::i;:::-;11171:29;;;;:::i;:::-;:47;;;;:::i;:::-;11163:56;;11090:137;:::o;5594:122::-;5649:4;5673:35;5681:7;-1:-1:-1;;5673:7:0;:35::i;6266:200::-;2204:4;2239:5;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;6358:1:::1;6345:9;:14;;6337:60;;;::::0;-1:-1:-1;;;6337:60:0;;5875:2:1;6337:60:0::1;::::0;::::1;5857:21:1::0;5914:2;5894:18;;;5887:30;5953:34;5933:18;;;5926:62;-1:-1:-1;;;6004:18:1;;;5997:32;6046:19;;6337:60:0::1;5673:398:1::0;6337:60:0::1;6455:3;6441:9:::0;3283:12:::1;3216:2;3283;:12;:::i;:::-;3265:30;::::0;:15:::1;:30;:::i;:::-;6427:23;;;;:::i;:::-;6426:32;;;;:::i;:::-;6408:15;:50:::0;-1:-1:-1;6266:200:0:o;10860:222::-;2204:4;2239:5;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;10959:14:::1;:22:::0;;;10992:13:::1;:20:::0;;;11023:18:::1;:27:::0;;;11061:13:::1;:11;:13::i;:::-;10860:222:::0;;;:::o;2260:85::-;2204:4;2239:5;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;2335:1:::1;2319:18:::0;;-1:-1:-1;;;;;;2319:18:0::1;::::0;;2260:85::o;9395:336::-;2204:4;2239:5;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;9479:3:::1;3283:12;3216:2;3283;:12;:::i;:::-;3265:30;::::0;:15:::1;:30;:::i;:::-;9465:17;;;;:::i;:::-;9449:13;:33:::0;9493:11:::1;:18:::0;;-1:-1:-1;;;;9493:18:0::1;-1:-1:-1::0;;;9493:18:0::1;::::0;;3283:12:::1;3216:2;3283;:12;:::i;:::-;3265:30;::::0;:15:::1;:30;:::i;:::-;9522:15;:29:::0;;;9562:13:::1;:17:::0;9605:1:::1;9590:12;:16:::0;9628:1:::1;9617:8;:12:::0;9656:3:::1;9640:13;:19:::0;;;9670:14:::1;:20:::0;-1:-1:-1;9701:18:0::1;:22:::0;9395:336::o;8977:295::-;9077:12;2239:5;;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;4213:6:::1;:13:::0;;-1:-1:-1;;4213:13:0::1;4222:4;4213:13;::::0;;:6:::1;9105:11:::0;;;9102:95:::2;;9141:44;::::0;-1:-1:-1;;;9141:44:0;;9179:4:::2;9141:44;::::0;::::2;160:51:1::0;-1:-1:-1;;;;;9141:29:0;::::2;::::0;::::2;::::0;133:18:1;;9141:44:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9132:53;;9102:95;9216:48;::::0;-1:-1:-1;;;9216:48:0;;9245:10:::2;9216:48;::::0;::::2;6439:51:1::0;6506:18;;;6499:34;;;-1:-1:-1;;;;;9216:28:0;::::2;::::0;::::2;::::0;6412:18:1;;9216:48:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4231:6:::1;:14:::0;;-1:-1:-1;;4231:14:0::1;::::0;;9209:55;8977:295;-1:-1:-1;;;8977:295:0:o;9280:107::-;2204:4;2239:5;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;9332:11:::1;:18:::0;;-1:-1:-1;;;;9361:18:0;-1:-1:-1;;;9361:18:0;;;9280:107::o;5724:156::-;5804:4;5828:44;5842:10;5854:9;5865:6;5828:13;:44::i;5014:85::-;2204:4;2239:5;-1:-1:-1;;;;;2239:5:0;2108:10;2228:16;2092:38;;;;-1:-1:-1;;;2092:38:0;;;;;;;:::i;:::-;5079:4:::1;:12:::0;;-1:-1:-1;;;;;;5079:12:0::1;-1:-1:-1::0;;;;;5079:12:0;;;::::1;::::0;;;::::1;::::0;;5014:85::o;468:192::-;554:7;590:12;582:6;;;;574:29;;;;-1:-1:-1;;;574:29:0;;;;;;;;:::i;:::-;-1:-1:-1;614:9:0;626:5;630:1;626;:5;:::i;:::-;614:17;468:192;-1:-1:-1;;;;;468:192:0:o;6474:950::-;6586:6;;6566:4;;6586:6;;6583:63;;;6602:41;6617:6;6625:9;6636:6;6602:14;:41::i;:::-;6595:48;;;;6583:63;-1:-1:-1;;;;;6662:19:0;;;;;;:11;:19;;;;;;;;6661:20;:47;;;;-1:-1:-1;;;;;;6686:22:0;;;;;;:11;:22;;;;;;;;6685:23;6661:47;6658:121;;;6732:11;;-1:-1:-1;;;6732:11:0;;;;6724:43;;;;-1:-1:-1;;;6724:43:0;;7028:2:1;6724:43:0;;;7010:21:1;7067:2;7047:18;;;7040:30;-1:-1:-1;;;7086:18:1;;;7079:50;7146:18;;6724:43:0;6826:344:1;6724:43:0;-1:-1:-1;;;;;6796:27:0;;;;;;:19;:27;;;;;;;;6795:28;:63;;;;-1:-1:-1;;;;;;6828:30:0;;;;;;:19;:30;;;;;;;;6827:31;6795:63;:84;;;;-1:-1:-1;6875:4:0;;-1:-1:-1;;;;;6862:17:0;;;6875:4;;6862:17;;6795:84;6791:203;;;6939:15;;-1:-1:-1;;;;;6905:20:0;;;;;;:9;:20;;;;;;:29;;6928:6;;6905:29;:::i;:::-;6904:50;;6896:86;;;;-1:-1:-1;;;6896:86:0;;7507:2:1;6896:86:0;;;7489:21:1;7546:2;7526:18;;;7519:30;7585:26;7565:18;;;7558:54;7629:18;;6896:86:0;7305:348:1;6896:86:0;7009:16;:14;:16::i;:::-;7006:35;;;7028:10;:8;:10::i;:::-;7073:53;;;;;;;;;;;-1:-1:-1;;;7073:53:0;;;;;;;;-1:-1:-1;;;;;7073:17:0;;-1:-1:-1;7073:17:0;;;:9;:17;;;;;;;;:53;;7095:6;;7073:21;:53::i;:::-;-1:-1:-1;;;;;7053:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7165:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7188:22:0;;;;;;:11;:22;;;;;;;;7165:45;7164:93;;7223:34;7231:6;7239;7247:9;7223:7;:34::i;:::-;7164:93;;;7214:6;7164:93;-1:-1:-1;;;;;7293:20:0;;;;;;:9;:20;;;;;;7139:118;;-1:-1:-1;7293:40:0;;7139:118;7293:24;:40::i;:::-;-1:-1:-1;;;;;7270:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7351:43;;;;;;;;;;7379:14;921:25:1;;909:2;894:18;;775:177;7351:43:0;;;;;;;;-1:-1:-1;7412:4:0;;6474:950;-1:-1:-1;;;;6474:950:0:o;10510:342::-;10606:1;10566:36;10598:3;10566:27;10579:13;;10566:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;:41;;10558:84;;;;-1:-1:-1;;;10558:84:0;;7860:2:1;10558:84:0;;;7842:21:1;7899:2;7879:18;;;7872:30;7938:32;7918:18;;;7911:60;7988:18;;10558:84:0;7658:354:1;10558:84:0;10702:1;10661:37;10694:3;10661:28;10674:14;;10661:8;;:12;;:28;;;;:::i;:37::-;:42;;10653:86;;;;-1:-1:-1;;;10653:86:0;;8219:2:1;10653:86:0;;;8201:21:1;8258:2;8238:18;;;8231:30;8297:33;8277:18;;;8270:61;8348:18;;10653:86:0;8017:355:1;10653:86:0;10803:1;10758:41;10795:3;10758:32;10771:18;;10758:8;;:12;;:32;;;;:::i;:41::-;:46;;10750:94;;;;-1:-1:-1;;;10750:94:0;;8579:2:1;10750:94:0;;;8561:21:1;8618:2;8598:18;;;8591:30;8657:34;8637:18;;;8630:62;-1:-1:-1;;;8708:18:1;;;8701:33;8751:19;;10750:94:0;8377:399:1;10750:94:0;10510:342::o;7436:330::-;7566:53;;;;;;;;;;;-1:-1:-1;;;7566:53:0;;;;;;;;-1:-1:-1;;;;;7566:17:0;;7529:4;7566:17;;;:9;:17;;;;;;;:53;;7588:6;;7566:21;:53::i;:::-;-1:-1:-1;;;;;7546:17:0;;;;;;;:9;:17;;;;;;:73;;;;7653:20;;;;;;;:32;;7678:6;7653:24;:32::i;:::-;-1:-1:-1;;;;;7630:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7701:35;;;;;;;;;;7729:6;921:25:1;;909:2;894:18;;775:177;7701:35:0;;;;;;;;-1:-1:-1;7754:4:0;7436:330;;;;;:::o;8505:197::-;8592:4;;8554;;-1:-1:-1;;;;;8592:4:0;8578:10;:18;;;;:38;;-1:-1:-1;8610:6:0;;;;8609:7;8578:38;:62;;;;-1:-1:-1;8629:11:0;;-1:-1:-1;;;8629:11:0;;;;8578:62;:116;;;;-1:-1:-1;;8681:13:0;;8671:4;8653:24;;;;:9;:24;;;;;;:41;;;8505:197::o;9739:763::-;4213:6;:13;;-1:-1:-1;;4213:13:0;4222:4;4213:13;;;9812:16:::1;::::0;;9826:1:::1;9812:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9812:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9812:16:0::1;9788:40;;9857:4;9839;9844:1;9839:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9839:23:0::1;;;-1:-1:-1::0;;;;;9839:23:0::1;;;::::0;::::1;9883:4;9873;9878:1;9873:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9873:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9900:6:::1;::::0;9972:13:::1;::::0;9900:189:::1;::::0;-1:-1:-1;;;9900:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;9972:13;9900:6:::1;::::0;10016:4;;10043::::1;::::0;10063:15:::1;::::0;9900:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10214:8:0::1;::::0;10198:12:::1;::::0;10122:21:::1;::::0;-1:-1:-1;10102:17:0::1;::::0;-1:-1:-1;10186:24:0::1;::::0;10122:21;10186:24:::1;:::i;:::-;10185:37;;;;:::i;:::-;10156:66;;10233:27;10293:8;;10276:13;;10264:9;:25;;;;:::i;:::-;10263:38;;;;:::i;:::-;10343:20;::::0;10335:65:::1;::::0;10233:68;;-1:-1:-1;10315:15:0::1;::::0;-1:-1:-1;;;;;10343:20:0;;::::1;::::0;10377:18;;10315:15;10335:65;10315:15;10335:65;10377:18;10343:20;10335:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;10435:21:0::1;::::0;10427:67:::1;::::0;10314:86;;-1:-1:-1;;;;;;10435:21:0::1;::::0;10470:19;;10427:67:::1;::::0;;;10470:19;10435:21;10427:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4231:6:0;:14;;-1:-1:-1;;4231:14:0;;;-1:-1:-1;;;;;;9739:763:0:o;7774:723::-;7860:7;7883:11;;;:28;;-1:-1:-1;7898:8:0;;:13;7883:28;7880:72;;;-1:-1:-1;7934:6:0;7927:13;;7880:72;7985:18;;8032:4;;-1:-1:-1;;;;;8032:4:0;;;8019:17;;;;8016:154;;-1:-1:-1;8066:14:0;;8016:154;;;8111:4;;-1:-1:-1;;;;;8111:4:0;;;8101:14;;;;8098:72;;-1:-1:-1;8145:13:0;;8098:72;8182:17;8202:62;8243:20;3775:3;;8243:20;:::i;:::-;8202:36;8227:10;8202:20;8213:8;;8202:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;8182:82;-1:-1:-1;8280:13:0;;8277:172;;8354:4;8336:24;;;;:9;:24;;;;;;:39;;8365:9;8336:28;:39::i;:::-;8327:4;8309:24;;;;:9;:24;;;;;;;:66;;;;8395:42;;-1:-1:-1;;;;;8395:42:0;;;;;;;8427:9;921:25:1;;909:2;894:18;;775:177;8395:42:0;;;;;;;;8277:172;8468:21;:6;8479:9;8468:10;:21::i;:::-;8461:28;7774:723;-1:-1:-1;;;;;;7774:723:0:o;139:181::-;197:7;;229:5;233:1;229;:5;:::i;:::-;217:17;;258:1;253;:6;;245:46;;;;-1:-1:-1;;;245:46:0;;10442:2:1;245:46:0;;;10424:21:1;10481:2;10461:18;;;10454:30;10520:29;10500:18;;;10493:57;10567:18;;245:46:0;10240:351:1;666:250:0;724:7;748:1;753;748:6;744:47;;-1:-1:-1;778:1:0;771:8;;744:47;803:9;815:5;819:1;815;:5;:::i;:::-;803:17;-1:-1:-1;848:1:0;839:5;843:1;803:17;839:5;:::i;:::-;:10;831:56;;;;-1:-1:-1;;;831:56:0;;10798:2:1;831:56:0;;;10780:21:1;10837:2;10817:18;;;10810:30;10876:34;10856:18;;;10849:62;-1:-1:-1;;;10927:18:1;;;10920:31;10968:19;;831:56:0;10596:397:1;922:132:0;980:7;1007:39;1011:1;1014;1007:39;;;;;;;;;;;;;;;;;:3;:39::i;326:136::-;384:7;411:43;415:1;418;411:43;;;;;;;;;;;;;;;;;:3;:43::i;1060:189::-;1146:7;1181:12;1174:5;1166:28;;;;-1:-1:-1;;;1166:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1205:9:0;1217:5;1221:1;1217;:5;:::i;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;957:173::-;1025:20;;-1:-1:-1;;;;;1074:31:1;;1064:42;;1054:70;;1120:1;1117;1110:12;1054:70;957:173;;;:::o;1135:254::-;1203:6;1211;1264:2;1252:9;1243:7;1239:23;1235:32;1232:52;;;1280:1;1277;1270:12;1232:52;1303:29;1322:9;1303:29;:::i;:::-;1293:39;1379:2;1364:18;;;;1351:32;;-1:-1:-1;;;1135:254:1:o;1586:180::-;1645:6;1698:2;1686:9;1677:7;1673:23;1669:32;1666:52;;;1714:1;1711;1704:12;1666:52;-1:-1:-1;1737:23:1;;1586:180;-1:-1:-1;1586:180:1:o;1771:328::-;1848:6;1856;1864;1917:2;1905:9;1896:7;1892:23;1888:32;1885:52;;;1933:1;1930;1923:12;1885:52;1956:29;1975:9;1956:29;:::i;:::-;1946:39;;2004:38;2038:2;2027:9;2023:18;2004:38;:::i;:::-;1994:48;;2089:2;2078:9;2074:18;2061:32;2051:42;;1771:328;;;;;:::o;2104:186::-;2163:6;2216:2;2204:9;2195:7;2191:23;2187:32;2184:52;;;2232:1;2229;2222:12;2184:52;2255:29;2274:9;2255:29;:::i;2484:316::-;2561:6;2569;2577;2630:2;2618:9;2609:7;2605:23;2601:32;2598:52;;;2646:1;2643;2636:12;2598:52;-1:-1:-1;;2669:23:1;;;2739:2;2724:18;;2711:32;;-1:-1:-1;2790:2:1;2775:18;;;2762:32;;2484:316;-1:-1:-1;2484: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;3296:127::-;3357:10;3352:3;3348:20;3345:1;3338:31;3388:4;3385:1;3378:15;3412:4;3409:1;3402:15;3428:422;3517:1;3560:5;3517:1;3574:270;3595:7;3585:8;3582:21;3574:270;;;3654:4;3650:1;3646:6;3642:17;3636:4;3633:27;3630:53;;;3663:18;;:::i;:::-;3713:7;3703:8;3699:22;3696:55;;;3733:16;;;;3696:55;3812:22;;;;3772:15;;;;3574:270;;;3578:3;3428:422;;;;;:::o;3855:806::-;3904:5;3934:8;3924:80;;-1:-1:-1;3975:1:1;3989:5;;3924:80;4023:4;4013:76;;-1:-1:-1;4060:1:1;4074:5;;4013:76;4105:4;4123:1;4118:59;;;;4191:1;4186:130;;;;4098:218;;4118:59;4148:1;4139:10;;4162:5;;;4186:130;4223:3;4213:8;4210:17;4207:43;;;4230:18;;:::i;:::-;-1:-1:-1;;4286:1:1;4272:16;;4301:5;;4098:218;;4400:2;4390:8;4387:16;4381:3;4375:4;4372:13;4368:36;4362:2;4352:8;4349:16;4344:2;4338:4;4335:12;4331:35;4328:77;4325:159;;;-1:-1:-1;4437:19:1;;;4469:5;;4325:159;4516:34;4541:8;4535:4;4516:34;:::i;:::-;4586:6;4582:1;4578:6;4574:19;4565:7;4562:32;4559:58;;;4597:18;;:::i;:::-;4635:20;;3855:806;-1:-1:-1;;;3855:806:1:o;4666:140::-;4724:5;4753:47;4794:4;4784:8;4780:19;4774:4;4753:47;:::i;4811:168::-;4884:9;;;4915;;4932:15;;;4926:22;;4912:37;4902:71;;4953:18;;:::i;4984:329::-;5186:2;5168:21;;;5225:1;5205:18;;;5198:29;-1:-1:-1;;;5258:2:1;5243:18;;5236:36;5304:2;5289:18;;4984:329::o;5318:217::-;5358:1;5384;5374:132;;5428:10;5423:3;5419:20;5416:1;5409:31;5463:4;5460:1;5453:15;5491:4;5488:1;5481:15;5374:132;-1:-1:-1;5520:9:1;;5318:217::o;5540:128::-;5607:9;;;5628:11;;;5625:37;;;5642:18;;:::i;6076:184::-;6146:6;6199:2;6187:9;6178:7;6174:23;6170:32;6167:52;;;6215:1;6212;6205:12;6167:52;-1:-1:-1;6238:16:1;;6076:184;-1:-1:-1;6076:184:1:o;6544:277::-;6611:6;6664:2;6652:9;6643:7;6639:23;6635:32;6632:52;;;6680:1;6677;6670:12;6632:52;6712:9;6706:16;6765:5;6758:13;6751:21;6744:5;6741:32;6731:60;;6787:1;6784;6777:12;7175:125;7240:9;;;7261:10;;;7258:36;;;7274:18;;:::i;8913:127::-;8974:10;8969:3;8965:20;8962:1;8955:31;9005:4;9002:1;8995:15;9029:4;9026:1;9019:15;9045:980;9307:4;9355:3;9344:9;9340:19;9386:6;9375:9;9368:25;9412:2;9450:6;9445:2;9434:9;9430:18;9423:34;9493:3;9488:2;9477:9;9473:18;9466:31;9517:6;9552;9546:13;9583:6;9575;9568:22;9621:3;9610:9;9606:19;9599:26;;9660:2;9652:6;9648:15;9634:29;;9681:1;9691:195;9705:6;9702:1;9699:13;9691:195;;;9770:13;;-1:-1:-1;;;;;9766:39:1;9754:52;;9861:15;;;;9826:12;;;;9802:1;9720:9;9691:195;;;-1:-1:-1;;;;;;;9942:32:1;;;;9937:2;9922:18;;9915:60;-1:-1:-1;;;10006:3:1;9991:19;9984:35;9903:3;9045:980;-1:-1:-1;;;9045:980:1:o

Swarm Source

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