ETH Price: $2,301.95 (-2.83%)

Token

Dogga Mars ($MARS)
 

Overview

Max Total Supply

1,000,000,000 $MARS

Holders

116

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
ERC20DOGGAMARS

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.16;

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

interface 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;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
    }

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

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function renounceOwnership() external onlyOwner {
        authorizations[owner] = false;
        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 ERC20DOGGAMARS is ERC20, Auth {
    using SafeMath for uint256;

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

    string public constant name = "Dogga Mars";
    string public constant symbol = "$MARS";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 1 * 10**9 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    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 isTxLimitExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public marketingFee = 5;
    uint256 public operationsFee = 1;
    uint256 public totalFee = marketingFee + operationsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 500;
    uint256 sellMultiplier = 500;
    uint256 transferMultiplier = 500;

    address public marketingFeeReceiver;
    address public operationsFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 swapThreshold = totalSupply / 200;
    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 = 0x0E1CDd63704c3e34109AeE625f046Ee348df8101;
        operationsFeeReceiver = msg.sender;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = 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 >= 5,"Cannot set max wallet less than 0.5%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }

    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 5,"Cannot set max transaction less than 0.5%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

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

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

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

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

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

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        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 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 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 setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setFees_base100(uint256 _marketingFee, uint256 _operationsFee) external onlyOwner {
        marketingFee = _marketingFee;
        operationsFee = _operationsFee;
        totalFee = _marketingFee + _operationsFee;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"setFees_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146009600a62000544565b6200002490633b9aca006200055c565b6200003091906200057e565b6002556032620000436009600a62000544565b6200005390633b9aca006200055c565b6200005f91906200057e565b600355600560098190556001600a8190556200007b91620005a1565b600b556101f4600c819055600d819055600e556011805461ffff60a01b1916600160a81b17905560c8620000b26009600a62000544565b620000c290633b9aca006200055c565b620000ce91906200057e565b601255348015620000de57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560118054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018b9190620005b7565b6001600160a01b039081166080526011546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002029190620005b7565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027a9190620005b7565b6001600160a01b0390811660a05230600081815260056020908152604080832060115490951683529381528382206000199055600f8054730e1cdd63704c3e34109aee625f046ee348df81016001600160a01b0319918216179091556010805433921682179055825260068152838220805460ff1990811660019081179092556007835285842080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805482168317905560089092528483208054831682179055928252928120805484168317905561dead90527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054909216179055620003b56009600a62000544565b620003c590633b9aca006200055c565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004086009600a62000544565b6200041890633b9aca006200055c565b60405190815260200160405180910390a3620005e2565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004865781600019048211156200046a576200046a6200042f565b808516156200047857918102915b93841c93908002906200044a565b509250929050565b6000826200049f575060016200053e565b81620004ae575060006200053e565b8160018114620004c75760028114620004d257620004f2565b60019150506200053e565b60ff841115620004e657620004e66200042f565b50506001821b6200053e565b5060208310610133831016604e8410600b841016171562000517575081810a6200053e565b62000523838362000445565b80600019048211156200053a576200053a6200042f565b0290505b92915050565b60006200055560ff8416836200048e565b9392505050565b60008160001904831182151516156200057957620005796200042f565b500290565b6000826200059c57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200053e576200053e6200042f565b600060208284031215620005ca57600080fd5b81516001600160a01b03811681146200055557600080fd5b60805160a0516121ac62000624600039600081816106a60152818161137d01528181611706015281816119a401526119d8015260006117d001526121ac6000f3fe60806040526004361061025e5760003560e01c80636ddd171311610144578063a9059cbb116100b6578063df20fd491161007a578063df20fd491461079e578063e96fada2146107be578063f0b37c04146107de578063f887ea40146107fe578063fe9fbb801461081e578063ffb54a991461083e57600080fd5b8063a9059cbb146106c8578063b6a5d7de146106e8578063bd9ab53714610708578063c867d60b14610728578063dd62ed3e1461075857600080fd5b80637d1db4a5116101085780637d1db4a5146105ea578063893d20e8146106005780638b42507f1461061e57806395d89b411461064e578063963c44bf1461067f578063a8aa1b311461069457600080fd5b80636ddd17131461055157806370a0823114610572578063715018a61461059f57806377b54bad146105b457806378109e54146105d457600080fd5b80631df4ccfc116101dd5780633f4218e0116101a15780633f4218e01461048b57806348a5df04146104bb5780634be9d869146104db578063571ac8b0146104fb5780636b67c4df1461051b5780636ce46bc31461053157600080fd5b80631df4ccfc146103ea57806323b872dd146104005780632b112e49146104205780632f54bf6e14610435578063313ce5671461046457600080fd5b806309302dc61161022457806309302dc614610350578063095ea7b314610370578063180b0d7e146103a057806318160ddd146103b55780631da1db5e146103ca57600080fd5b80621086831461026a578062bff4461461028c57806303382cbb146102ac57806306fdde03146102e9578063090896be1461032c57600080fd5b3661026557005b600080fd5b34801561027657600080fd5b5061028a610285366004611c7d565b61085f565b005b34801561029857600080fd5b5061028a6102a7366004611c7d565b610923565b3480156102b857600080fd5b506010546102cc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f557600080fd5b5061031f6040518060400160405280600a815260200169446f676761204d61727360b01b81525081565b6040516102e09190611d03565b34801561033857600080fd5b50610342600a5481565b6040519081526020016102e0565b34801561035c57600080fd5b5061028a61036b366004611d51565b6109d8565b34801561037c57600080fd5b5061039061038b366004611d86565b610a97565b60405190151581526020016102e0565b3480156103ac57600080fd5b50610342606481565b3480156103c157600080fd5b50610342610b04565b3480156103d657600080fd5b5061028a6103e5366004611d51565b610b21565b3480156103f657600080fd5b50610342600b5481565b34801561040c57600080fd5b5061039061041b366004611db0565b610b94565b34801561042c57600080fd5b50610342610c56565b34801561044157600080fd5b50610390610450366004611dec565b6000546001600160a01b0391821691161490565b34801561047057600080fd5b50610479600981565b60405160ff90911681526020016102e0565b34801561049757600080fd5b506103906104a6366004611dec565b60066020526000908152604090205460ff1681565b3480156104c757600080fd5b5061028a6104d6366004611e07565b610cdd565b3480156104e757600080fd5b5061028a6104f6366004611c7d565b610d22565b34801561050757600080fd5b50610390610516366004611dec565b610dd7565b34801561052757600080fd5b5061034260095481565b34801561053d57600080fd5b5061028a61054c366004611e29565b610de5565b34801561055d57600080fd5b5060115461039090600160a81b900460ff1681565b34801561057e57600080fd5b5061034261058d366004611dec565b60046020526000908152604090205481565b3480156105ab57600080fd5b5061028a610e1b565b3480156105c057600080fd5b506103906105cf366004611d86565b610e75565b3480156105e057600080fd5b5061034260035481565b3480156105f657600080fd5b5061034260025481565b34801561060c57600080fd5b506000546001600160a01b03166102cc565b34801561062a57600080fd5b50610390610639366004611dec565b60076020526000908152604090205460ff1681565b34801561065a57600080fd5b5061031f60405180604001604052806005815260200164244d41525360d81b81525081565b34801561068b57600080fd5b5061028a610f84565b3480156106a057600080fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d457600080fd5b506103906106e3366004611d86565b610fc5565b3480156106f457600080fd5b5061028a610703366004611dec565b610fd2565b34801561071457600080fd5b5061028a610723366004611d51565b611023565b34801561073457600080fd5b50610390610743366004611dec565b60086020526000908152604090205460ff1681565b34801561076457600080fd5b50610342610773366004611e55565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107aa57600080fd5b5061028a6107b9366004611e88565b6110e8565b3480156107ca57600080fd5b50600f546102cc906001600160a01b031681565b3480156107ea57600080fd5b5061028a6107f9366004611dec565b611155565b34801561080a57600080fd5b506011546102cc906001600160a01b031681565b34801561082a57600080fd5b50610390610839366004611dec565b6111fe565b34801561084a57600080fd5b5060115461039090600160a01b900460ff1681565b610868336111fe565b61088d5760405162461bcd60e51b815260040161088490611ea6565b60405180910390fd5b6101f582106108ae5760405162461bcd60e51b815260040161088490611ecb565b60005b8281101561091d5781600860008686858181106108d0576108d0611f10565b90506020020160208101906108e59190611dec565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561091681611f3c565b90506108b1565b50505050565b61092c336111fe565b6109485760405162461bcd60e51b815260040161088490611ea6565b6101f582106109695760405162461bcd60e51b815260040161088490611ecb565b60005b8281101561091d57816006600086868581811061098b5761098b611f10565b90506020020160208101906109a09190611dec565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109d181611f3c565b905061096c565b6000546001600160a01b03163314610a025760405162461bcd60e51b815260040161088490611f55565b6005811015610a5f5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b6064820152608401610884565b6103e881610a6f6009600a612059565b610a7d90633b9aca00612068565b610a879190612068565b610a919190612087565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610af29086815260200190565b60405180910390a35060015b92915050565b610b106009600a612059565b610b1e90633b9aca00612068565b81565b6000546001600160a01b03163314610b4b5760405162461bcd60e51b815260040161088490611f55565b4760006064610b5a8484612068565b610b649190612087565b604051909150339082156108fc029083906000818181858888f1935050505015801561091d573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610c41576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610c1c91849061121c565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610c4c848484611256565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610cb66009600a612059565b610cc490633b9aca00612068565b610cce91906120a9565b610cd891906120a9565b905090565b6000546001600160a01b03163314610d075760405162461bcd60e51b815260040161088490611f55565b6009829055600a819055610d1b81836120bc565b600b555050565b610d2b336111fe565b610d475760405162461bcd60e51b815260040161088490611ea6565b6101f58210610d685760405162461bcd60e51b815260040161088490611ecb565b60005b8281101561091d578160076000868685818110610d8a57610d8a611f10565b9050602002016020810190610d9f9190611dec565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dd081611f3c565b9050610d6b565b6000610afe82600019610a97565b610dee336111fe565b610e0a5760405162461bcd60e51b815260040161088490611ea6565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610e455760405162461bcd60e51b815260040161088490611f55565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610ea05760405162461bcd60e51b815260040161088490611f55565b81600003610f13576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1091906120cf565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f91906120e8565b6000546001600160a01b03163314610fae5760405162461bcd60e51b815260040161088490611f55565b6011805461ffff60a01b191661010160a01b179055565b6000610c4f338484611256565b6000546001600160a01b03163314610ffc5760405162461bcd60e51b815260040161088490611f55565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b0316331461104d5760405162461bcd60e51b815260040161088490611f55565b60058110156110b05760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b6064820152608401610884565b6103e8816110c06009600a612059565b6110ce90633b9aca00612068565b6110d89190612068565b6110e29190612087565b60025550565b6000546001600160a01b031633146111125760405162461bcd60e51b815260040161088490611f55565b6011805460ff60a81b1916600160a81b84151502179055806111366009600a612059565b61114490633b9aca00612068565b61114e9190612087565b6012555050565b6000546001600160a01b0316331461117f5760405162461bcd60e51b815260040161088490611f55565b6000546001600160a01b03908116908216036111dd5760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610884565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156112405760405162461bcd60e51b81526004016108849190611d03565b50600061124d84866120a9565b95945050505050565b60135460009060ff16156112765761126f848484611613565b9050610c4f565b6001600160a01b03841660009081526001602052604090205460ff161580156112b857506001600160a01b03831660009081526001602052604090205460ff16155b1561130d57601154600160a01b900460ff1661130d5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610884565b6001600160a01b03841660009081526001602052604090205460ff1615801561134f57506001600160a01b03841660009081526008602052604090205460ff16155b801561137457506001600160a01b03831660009081526008602052604090205460ff16155b80156113b257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b1561142c576003546001600160a01b0384166000908152600460205260409020546113de9084906120bc565b111561142c5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610884565b6002548211158061145557506001600160a01b03841660009081526007602052604090205460ff165b8061147857506001600160a01b03831660009081526007602052604090205460ff165b6114bc5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610884565b6114c46116f9565b156114d1576114d161176c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526004909152919091205461152391849061121c565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061157057506001600160a01b03841660009081526006602052604090205460ff165b6115845761157f85848661197c565b611586565b825b6001600160a01b0385166000908152600460205260409020549091506115ac9082611ad9565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116009085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461166491849061121c565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116939083611ad9565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116e79086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611737575060135460ff16155b801561174c5750601154600160a81b900460ff165b8015610cd857505060125430600090815260046020526040902054101590565b6013805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117ae576117ae611f10565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061180257611802611f10565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac9479161184c9190600090869030904290600401612105565b600060405180830381600087803b15801561186657600080fd5b505af115801561187a573d6000803e3d6000fd5b5050600b54600954479350600092506118939084612068565b61189d9190612087565b90506000600b54600a54846118b29190612068565b6118bc9190612087565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d806000811461190e576040519150601f19603f3d011682016040523d82523d6000602084013e611913565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611963576040519150601f19603f3d011682016040523d82523d6000602084013e611968565b606091505b50506013805460ff19169055505050505050565b600082158061198b5750600b54155b15611997575081610c4f565b600e546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036119d65750600d54611a14565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611a145750600c545b6000611a49611a24606480612068565b611a4384611a3d600b548a611b3890919063ffffffff16565b90611b38565b90611bba565b90508015611ac55730600090815260046020526040902054611a6b9082611ad9565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611abc9085815260200190565b60405180910390a35b611acf8582611bfc565b9695505050505050565b600080611ae683856120bc565b905083811015610c4f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610884565b600082600003611b4a57506000610afe565b6000611b568385612068565b905082611b638583612087565b14610c4f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610884565b6000610c4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c3e565b6000610c4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121c565b60008183611c5f5760405162461bcd60e51b81526004016108849190611d03565b50600061124d8486612087565b8015158114611c7a57600080fd5b50565b600080600060408486031215611c9257600080fd5b833567ffffffffffffffff80821115611caa57600080fd5b818601915086601f830112611cbe57600080fd5b813581811115611ccd57600080fd5b8760208260051b8501011115611ce257600080fd5b60209283019550935050840135611cf881611c6c565b809150509250925092565b600060208083528351808285015260005b81811015611d3057858101830151858201604001528201611d14565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611d6357600080fd5b5035919050565b80356001600160a01b0381168114611d8157600080fd5b919050565b60008060408385031215611d9957600080fd5b611da283611d6a565b946020939093013593505050565b600080600060608486031215611dc557600080fd5b611dce84611d6a565b9250611ddc60208501611d6a565b9150604084013590509250925092565b600060208284031215611dfe57600080fd5b610c4f82611d6a565b60008060408385031215611e1a57600080fd5b50508035926020909101359150565b600080600060608486031215611e3e57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e6857600080fd5b611e7183611d6a565b9150611e7f60208401611d6a565b90509250929050565b60008060408385031215611e9b57600080fd5b8235611da281611c6c565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f4e57611f4e611f26565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115611fb0578160001904821115611f9657611f96611f26565b80851615611fa357918102915b93841c9390800290611f7a565b509250929050565b600082611fc757506001610afe565b81611fd457506000610afe565b8160018114611fea5760028114611ff457612010565b6001915050610afe565b60ff84111561200557612005611f26565b50506001821b610afe565b5060208310610133831016604e8410600b8410161715612033575081810a610afe565b61203d8383611f75565b806000190482111561205157612051611f26565b029392505050565b6000610c4f60ff841683611fb8565b600081600019048311821515161561208257612082611f26565b500290565b6000826120a457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610afe57610afe611f26565b80820180821115610afe57610afe611f26565b6000602082840312156120e157600080fd5b5051919050565b6000602082840312156120fa57600080fd5b8151610c4f81611c6c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121555784516001600160a01b031683529383019391830191600101612130565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f4699ae7a1b21f46277feb51bc6710feee53c261631a85831eb7cefb8616270864736f6c63430008100033

Deployed Bytecode

0x60806040526004361061025e5760003560e01c80636ddd171311610144578063a9059cbb116100b6578063df20fd491161007a578063df20fd491461079e578063e96fada2146107be578063f0b37c04146107de578063f887ea40146107fe578063fe9fbb801461081e578063ffb54a991461083e57600080fd5b8063a9059cbb146106c8578063b6a5d7de146106e8578063bd9ab53714610708578063c867d60b14610728578063dd62ed3e1461075857600080fd5b80637d1db4a5116101085780637d1db4a5146105ea578063893d20e8146106005780638b42507f1461061e57806395d89b411461064e578063963c44bf1461067f578063a8aa1b311461069457600080fd5b80636ddd17131461055157806370a0823114610572578063715018a61461059f57806377b54bad146105b457806378109e54146105d457600080fd5b80631df4ccfc116101dd5780633f4218e0116101a15780633f4218e01461048b57806348a5df04146104bb5780634be9d869146104db578063571ac8b0146104fb5780636b67c4df1461051b5780636ce46bc31461053157600080fd5b80631df4ccfc146103ea57806323b872dd146104005780632b112e49146104205780632f54bf6e14610435578063313ce5671461046457600080fd5b806309302dc61161022457806309302dc614610350578063095ea7b314610370578063180b0d7e146103a057806318160ddd146103b55780631da1db5e146103ca57600080fd5b80621086831461026a578062bff4461461028c57806303382cbb146102ac57806306fdde03146102e9578063090896be1461032c57600080fd5b3661026557005b600080fd5b34801561027657600080fd5b5061028a610285366004611c7d565b61085f565b005b34801561029857600080fd5b5061028a6102a7366004611c7d565b610923565b3480156102b857600080fd5b506010546102cc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f557600080fd5b5061031f6040518060400160405280600a815260200169446f676761204d61727360b01b81525081565b6040516102e09190611d03565b34801561033857600080fd5b50610342600a5481565b6040519081526020016102e0565b34801561035c57600080fd5b5061028a61036b366004611d51565b6109d8565b34801561037c57600080fd5b5061039061038b366004611d86565b610a97565b60405190151581526020016102e0565b3480156103ac57600080fd5b50610342606481565b3480156103c157600080fd5b50610342610b04565b3480156103d657600080fd5b5061028a6103e5366004611d51565b610b21565b3480156103f657600080fd5b50610342600b5481565b34801561040c57600080fd5b5061039061041b366004611db0565b610b94565b34801561042c57600080fd5b50610342610c56565b34801561044157600080fd5b50610390610450366004611dec565b6000546001600160a01b0391821691161490565b34801561047057600080fd5b50610479600981565b60405160ff90911681526020016102e0565b34801561049757600080fd5b506103906104a6366004611dec565b60066020526000908152604090205460ff1681565b3480156104c757600080fd5b5061028a6104d6366004611e07565b610cdd565b3480156104e757600080fd5b5061028a6104f6366004611c7d565b610d22565b34801561050757600080fd5b50610390610516366004611dec565b610dd7565b34801561052757600080fd5b5061034260095481565b34801561053d57600080fd5b5061028a61054c366004611e29565b610de5565b34801561055d57600080fd5b5060115461039090600160a81b900460ff1681565b34801561057e57600080fd5b5061034261058d366004611dec565b60046020526000908152604090205481565b3480156105ab57600080fd5b5061028a610e1b565b3480156105c057600080fd5b506103906105cf366004611d86565b610e75565b3480156105e057600080fd5b5061034260035481565b3480156105f657600080fd5b5061034260025481565b34801561060c57600080fd5b506000546001600160a01b03166102cc565b34801561062a57600080fd5b50610390610639366004611dec565b60076020526000908152604090205460ff1681565b34801561065a57600080fd5b5061031f60405180604001604052806005815260200164244d41525360d81b81525081565b34801561068b57600080fd5b5061028a610f84565b3480156106a057600080fd5b506102cc7f000000000000000000000000bdeff277eb21ac5546dd222b427e60e209176b6d81565b3480156106d457600080fd5b506103906106e3366004611d86565b610fc5565b3480156106f457600080fd5b5061028a610703366004611dec565b610fd2565b34801561071457600080fd5b5061028a610723366004611d51565b611023565b34801561073457600080fd5b50610390610743366004611dec565b60086020526000908152604090205460ff1681565b34801561076457600080fd5b50610342610773366004611e55565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107aa57600080fd5b5061028a6107b9366004611e88565b6110e8565b3480156107ca57600080fd5b50600f546102cc906001600160a01b031681565b3480156107ea57600080fd5b5061028a6107f9366004611dec565b611155565b34801561080a57600080fd5b506011546102cc906001600160a01b031681565b34801561082a57600080fd5b50610390610839366004611dec565b6111fe565b34801561084a57600080fd5b5060115461039090600160a01b900460ff1681565b610868336111fe565b61088d5760405162461bcd60e51b815260040161088490611ea6565b60405180910390fd5b6101f582106108ae5760405162461bcd60e51b815260040161088490611ecb565b60005b8281101561091d5781600860008686858181106108d0576108d0611f10565b90506020020160208101906108e59190611dec565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561091681611f3c565b90506108b1565b50505050565b61092c336111fe565b6109485760405162461bcd60e51b815260040161088490611ea6565b6101f582106109695760405162461bcd60e51b815260040161088490611ecb565b60005b8281101561091d57816006600086868581811061098b5761098b611f10565b90506020020160208101906109a09190611dec565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109d181611f3c565b905061096c565b6000546001600160a01b03163314610a025760405162461bcd60e51b815260040161088490611f55565b6005811015610a5f5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b6064820152608401610884565b6103e881610a6f6009600a612059565b610a7d90633b9aca00612068565b610a879190612068565b610a919190612087565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610af29086815260200190565b60405180910390a35060015b92915050565b610b106009600a612059565b610b1e90633b9aca00612068565b81565b6000546001600160a01b03163314610b4b5760405162461bcd60e51b815260040161088490611f55565b4760006064610b5a8484612068565b610b649190612087565b604051909150339082156108fc029083906000818181858888f1935050505015801561091d573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610c41576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610c1c91849061121c565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610c4c848484611256565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610cb66009600a612059565b610cc490633b9aca00612068565b610cce91906120a9565b610cd891906120a9565b905090565b6000546001600160a01b03163314610d075760405162461bcd60e51b815260040161088490611f55565b6009829055600a819055610d1b81836120bc565b600b555050565b610d2b336111fe565b610d475760405162461bcd60e51b815260040161088490611ea6565b6101f58210610d685760405162461bcd60e51b815260040161088490611ecb565b60005b8281101561091d578160076000868685818110610d8a57610d8a611f10565b9050602002016020810190610d9f9190611dec565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dd081611f3c565b9050610d6b565b6000610afe82600019610a97565b610dee336111fe565b610e0a5760405162461bcd60e51b815260040161088490611ea6565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610e455760405162461bcd60e51b815260040161088490611f55565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610ea05760405162461bcd60e51b815260040161088490611f55565b81600003610f13576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1091906120cf565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f91906120e8565b6000546001600160a01b03163314610fae5760405162461bcd60e51b815260040161088490611f55565b6011805461ffff60a01b191661010160a01b179055565b6000610c4f338484611256565b6000546001600160a01b03163314610ffc5760405162461bcd60e51b815260040161088490611f55565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b0316331461104d5760405162461bcd60e51b815260040161088490611f55565b60058110156110b05760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b6064820152608401610884565b6103e8816110c06009600a612059565b6110ce90633b9aca00612068565b6110d89190612068565b6110e29190612087565b60025550565b6000546001600160a01b031633146111125760405162461bcd60e51b815260040161088490611f55565b6011805460ff60a81b1916600160a81b84151502179055806111366009600a612059565b61114490633b9aca00612068565b61114e9190612087565b6012555050565b6000546001600160a01b0316331461117f5760405162461bcd60e51b815260040161088490611f55565b6000546001600160a01b03908116908216036111dd5760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610884565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156112405760405162461bcd60e51b81526004016108849190611d03565b50600061124d84866120a9565b95945050505050565b60135460009060ff16156112765761126f848484611613565b9050610c4f565b6001600160a01b03841660009081526001602052604090205460ff161580156112b857506001600160a01b03831660009081526001602052604090205460ff16155b1561130d57601154600160a01b900460ff1661130d5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610884565b6001600160a01b03841660009081526001602052604090205460ff1615801561134f57506001600160a01b03841660009081526008602052604090205460ff16155b801561137457506001600160a01b03831660009081526008602052604090205460ff16155b80156113b257507f000000000000000000000000bdeff277eb21ac5546dd222b427e60e209176b6d6001600160a01b0316836001600160a01b031614155b1561142c576003546001600160a01b0384166000908152600460205260409020546113de9084906120bc565b111561142c5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610884565b6002548211158061145557506001600160a01b03841660009081526007602052604090205460ff165b8061147857506001600160a01b03831660009081526007602052604090205460ff165b6114bc5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610884565b6114c46116f9565b156114d1576114d161176c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526004909152919091205461152391849061121c565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061157057506001600160a01b03841660009081526006602052604090205460ff165b6115845761157f85848661197c565b611586565b825b6001600160a01b0385166000908152600460205260409020549091506115ac9082611ad9565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116009085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461166491849061121c565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116939083611ad9565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116e79086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000bdeff277eb21ac5546dd222b427e60e209176b6d1614801590611737575060135460ff16155b801561174c5750601154600160a81b900460ff165b8015610cd857505060125430600090815260046020526040902054101590565b6013805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117ae576117ae611f10565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061180257611802611f10565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac9479161184c9190600090869030904290600401612105565b600060405180830381600087803b15801561186657600080fd5b505af115801561187a573d6000803e3d6000fd5b5050600b54600954479350600092506118939084612068565b61189d9190612087565b90506000600b54600a54846118b29190612068565b6118bc9190612087565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d806000811461190e576040519150601f19603f3d011682016040523d82523d6000602084013e611913565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611963576040519150601f19603f3d011682016040523d82523d6000602084013e611968565b606091505b50506013805460ff19169055505050505050565b600082158061198b5750600b54155b15611997575081610c4f565b600e546001600160a01b037f000000000000000000000000bdeff277eb21ac5546dd222b427e60e209176b6d8116908416036119d65750600d54611a14565b7f000000000000000000000000bdeff277eb21ac5546dd222b427e60e209176b6d6001600160a01b0316856001600160a01b031603611a145750600c545b6000611a49611a24606480612068565b611a4384611a3d600b548a611b3890919063ffffffff16565b90611b38565b90611bba565b90508015611ac55730600090815260046020526040902054611a6b9082611ad9565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611abc9085815260200190565b60405180910390a35b611acf8582611bfc565b9695505050505050565b600080611ae683856120bc565b905083811015610c4f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610884565b600082600003611b4a57506000610afe565b6000611b568385612068565b905082611b638583612087565b14610c4f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610884565b6000610c4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c3e565b6000610c4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121c565b60008183611c5f5760405162461bcd60e51b81526004016108849190611d03565b50600061124d8486612087565b8015158114611c7a57600080fd5b50565b600080600060408486031215611c9257600080fd5b833567ffffffffffffffff80821115611caa57600080fd5b818601915086601f830112611cbe57600080fd5b813581811115611ccd57600080fd5b8760208260051b8501011115611ce257600080fd5b60209283019550935050840135611cf881611c6c565b809150509250925092565b600060208083528351808285015260005b81811015611d3057858101830151858201604001528201611d14565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611d6357600080fd5b5035919050565b80356001600160a01b0381168114611d8157600080fd5b919050565b60008060408385031215611d9957600080fd5b611da283611d6a565b946020939093013593505050565b600080600060608486031215611dc557600080fd5b611dce84611d6a565b9250611ddc60208501611d6a565b9150604084013590509250925092565b600060208284031215611dfe57600080fd5b610c4f82611d6a565b60008060408385031215611e1a57600080fd5b50508035926020909101359150565b600080600060608486031215611e3e57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e6857600080fd5b611e7183611d6a565b9150611e7f60208401611d6a565b90509250929050565b60008060408385031215611e9b57600080fd5b8235611da281611c6c565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f4e57611f4e611f26565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115611fb0578160001904821115611f9657611f96611f26565b80851615611fa357918102915b93841c9390800290611f7a565b509250929050565b600082611fc757506001610afe565b81611fd457506000610afe565b8160018114611fea5760028114611ff457612010565b6001915050610afe565b60ff84111561200557612005611f26565b50506001821b610afe565b5060208310610133831016604e8410600b8410161715612033575081810a610afe565b61203d8383611f75565b806000190482111561205157612051611f26565b029392505050565b6000610c4f60ff841683611fb8565b600081600019048311821515161561208257612082611f26565b500290565b6000826120a457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610afe57610afe611f26565b80820180821115610afe57610afe611f26565b6000602082840312156120e157600080fd5b5051919050565b6000602082840312156120fa57600080fd5b8151610c4f81611c6c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121555784516001600160a01b031683529383019391830191600101612130565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f4699ae7a1b21f46277feb51bc6710feee53c261631a85831eb7cefb8616270864736f6c63430008100033

Deployed Bytecode Sourcemap

3405:9645:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8108:311;;;;;;;;;;-1:-1:-1;8108:311:0;;;;;:::i;:::-;;:::i;:::-;;7494:295;;;;;;;;;;-1:-1:-1;7494:295:0;;;;;:::i;:::-;;:::i;4620:36::-;;;;;;;;;;-1:-1:-1;4620:36:0;;;;-1:-1:-1;;;;;4620:36:0;;;;;;-1:-1:-1;;;;;1056:32:1;;;1038:51;;1026:2;1011:18;4620:36:0;;;;;;;;3663:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3663:42:0;;;;;;;;;;;;:::i;4311:32::-;;;;;;;;;;;;;;;;;;;1799:25:1;;;1787:2;1772:18;4311:32:0;1653:177:1;6955:261:0;;;;;;;;;;-1:-1:-1;6955:261:0;;;;;:::i;:::-;;:::i;6059:216::-;;;;;;;;;;-1:-1:-1;6059:216:0;;;;;:::i;:::-;;:::i;:::-;;;2622:14:1;;2615:22;2597:41;;2585:2;2570:18;6059:216:0;2457:187:1;4411:44:0;;;;;;;;;;;;4452:3;4411:44;;3801:62;;;;;;;;;;;;;:::i;10828:259::-;;;;;;;;;;-1:-1:-1;10828:259:0;;;;;:::i;:::-;;:::i;4350:54::-;;;;;;;;;;;;;;;;6577:370;;;;;;;;;;-1:-1:-1;6577:370:0;;;;;:::i;:::-;;:::i;12910:137::-;;;;;;;;;;;;;:::i;2570:103::-;;;;;;;;;;-1:-1:-1;2570:103:0;;;;;:::i;:::-;2625:4;2660:5;-1:-1:-1;;;;;2649:16:0;;;2660:5;;2649:16;;2570:103;3758:34;;;;;;;;;;;;3791:1;3758:34;;;;;3345:4:1;3333:17;;;3315:36;;3303:2;3288:18;3758:34:0;3173:184:1;4106:44:0;;;;;;;;;;-1:-1:-1;4106:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12484:231;;;;;;;;;;-1:-1:-1;12484:231:0;;;;;:::i;:::-;;:::i;7797:303::-;;;;;;;;;;-1:-1:-1;7797:303:0;;;;;:::i;:::-;;:::i;6283:122::-;;;;;;;;;;-1:-1:-1;6283:122:0;;;;;:::i;:::-;;:::i;4273:31::-;;;;;;;;;;;;;;;;12277:199;;;;;;;;;;-1:-1:-1;12277:199:0;;;;;:::i;:::-;;:::i;4774:30::-;;;;;;;;;;-1:-1:-1;4774:30:0;;;;-1:-1:-1;;;4774:30:0;;;;;;3984:45;;;;;;;;;;-1:-1:-1;3984:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2796:125;;;;;;;;;;;;;:::i;11095:286::-;;;;;;;;;;-1:-1:-1;11095:286:0;;;;;:::i;:::-;;:::i;3926:49::-;;;;;;;;;;;;;;;;3872:47;;;;;;;;;;;;;;;;5834:78;;;;;;;;;;-1:-1:-1;5886:7:0;5904:5;-1:-1:-1;;;;;5904:5:0;5834:78;;4157:48;;;;;;;;;;-1:-1:-1;4157:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3712:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3712:39:0;;;;;11389:107;;;;;;;;;;;;;:::i;4696:29::-;;;;;;;;;;;;;;;6413:156;;;;;;;;;;-1:-1:-1;6413:156:0;;;;;:::i;:::-;;:::i;2299:94::-;;;;;;;;;;-1:-1:-1;2299:94:0;;;;;:::i;:::-;;:::i;7224:262::-;;;;;;;;;;-1:-1:-1;7224:262:0;;;;;:::i;:::-;;:::i;4212:52::-;;;;;;;;;;-1:-1:-1;4212:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5918:133;;;;;;;;;;-1:-1:-1;5918:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6020:19:0;;;6002:7;6020:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5918:133;12723:179;;;;;;;;;;-1:-1:-1;12723:179:0;;;;;:::i;:::-;;:::i;4578:35::-;;;;;;;;;;-1:-1:-1;4578:35:0;;;;-1:-1:-1;;;;;4578:35:0;;;2401:161;;;;;;;;;;-1:-1:-1;2401:161:0;;;;;:::i;:::-;;:::i;4665:24::-;;;;;;;;;;-1:-1:-1;4665:24:0;;;;-1:-1:-1;;;;;4665:24:0;;;2681:107;;;;;;;;;;-1:-1:-1;2681:107:0;;;;;:::i;:::-;;:::i;4734:31::-;;;;;;;;;;-1:-1:-1;4734:31:0;;;;-1:-1:-1;;;4734:31:0;;;;;;8108:311;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;;;;;;;;;8243:3:::1;8224:22:::0;::::1;8216:71;;;;-1:-1:-1::0;;;8216:71:0::1;;;;;;;:::i;:::-;8303:9;8298:114;8316:20:::0;;::::1;8298:114;;;8394:6;8358:19;:33;8378:9;;8388:1;8378:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8358:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8358:33:0;:42;;-1:-1:-1;;8358:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8338:3:::1;::::0;::::1;:::i;:::-;;;8298:114;;;;8108:311:::0;;;:::o;7494:295::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;7621:3:::1;7602:22:::0;::::1;7594:71;;;;-1:-1:-1::0;;;7594:71:0::1;;;;;;;:::i;:::-;7681:9;7676:106;7694:20:::0;;::::1;7676:106;;;7764:6;7736:11;:25;7748:9;;7758:1;7748:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7736:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7736:25:0;:34;;-1:-1:-1;;7736:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7716:3:::1;::::0;::::1;:::i;:::-;;;7676:106;;6955:261:::0;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;7091:1:::1;7064:23;:28;;7056:76;;;::::0;-1:-1:-1;;;7056:76:0;;6427:2:1;7056:76:0::1;::::0;::::1;6409:21:1::0;6466:2;6446:18;;;6439:30;6505:34;6485:18;;;6478:62;-1:-1:-1;;;6556:18:1;;;6549:34;6600:19;;7056:76:0::1;6225:400:1::0;7056:76:0::1;7204:4;7176:23:::0;3851:12:::1;3791:1;3851:2;:12;:::i;:::-;3839:24;::::0;:9:::1;:24;:::i;:::-;7162:37;;;;:::i;:::-;7161:47;;;;:::i;:::-;7143:15;:65:::0;-1:-1:-1;6955:261:0:o;6059:216::-;6163:10;6134:4;6151:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6151:32:0;;;;;;;;;;:41;;;6208:37;6134:4;;6151:32;;6208:37;;;;6186:6;1799:25:1;;1787:2;1772:18;;1653:177;6208:37:0;;;;;;;;-1:-1:-1;6263:4:0;6059:216;;;;;:::o;3801:62::-;3851:12;3791:1;3851:2;:12;:::i;:::-;3839:24;;:9;:24;:::i;:::-;3801:62;:::o;10828:259::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;10931:21:::1;10911:17;11022:3;10989:28;11001:16:::0;10931:21;10989:28:::1;:::i;:::-;10987:38;;;;:::i;:::-;11036:43;::::0;10963:62;;-1:-1:-1;11044:10:0::1;::::0;11036:43;::::1;;;::::0;10963:62;;11036:43:::1;::::0;;;10963:62;11044:10;11036:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;6577:370:::0;-1:-1:-1;;;;;6697:19:0;;6677:4;6697:19;;;:11;:19;;;;;;;;6717:10;6697:31;;;;;;;;-1:-1:-1;;6697:52:0;6694:186;;6799:69;;;;;;;;;;;-1:-1:-1;;;6799:69:0;;;;;;;;-1:-1:-1;;;;;6799:19:0;;-1:-1:-1;6799:19:0;;;:11;:19;;;;;6819:10;6799:31;;;;;;;;;;:69;;6835:6;;6799:35;:69::i;:::-;-1:-1:-1;;;;;6765:19:0;;;;;;:11;:19;;;;;;;;6785:10;6765:31;;;;;;;:103;6694:186;6899:40;6913:6;6921:9;6932:6;6899:13;:40::i;:::-;6892:47;;6577:370;;;;;;:::o;12910:137::-;13023:9;:15;;;;3539:42;12963:7;13005:15;;;;;12963:7;;13023:15;3851:12;3791:1;3851:2;:12;:::i;:::-;3839:24;;:9;:24;:::i;:::-;12991:29;;;;:::i;:::-;:47;;;;:::i;:::-;12983:56;;12910:137;:::o;12484:231::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;12586:12:::1;:28:::0;;;12625:13:::1;:30:::0;;;12677::::1;12641:14:::0;12601:13;12677:30:::1;:::i;:::-;12666:8;:41:::0;-1:-1:-1;;12484:231:0:o;7797:303::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;7928:3:::1;7909:22:::0;::::1;7901:71;;;;-1:-1:-1::0;;;7901:71:0::1;;;;;;;:::i;:::-;7988:9;7983:110;8001:20:::0;;::::1;7983:110;;;8075:6;8043:15;:29;8059:9;;8069:1;8059:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8043:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8043:29:0;:38;;-1:-1:-1;;8043:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8023:3:::1;::::0;::::1;:::i;:::-;;;7983:110;;6283:122:::0;6338:4;6362:35;6370:7;-1:-1:-1;;6362:7:0;:35::i;12277:199::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;12377:14:::1;:22:::0;;;;12410:13:::1;:20:::0;;;;12441:18:::1;:27:::0;12277:199::o;2796:125::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;2879:5:::1;2870::::0;;-1:-1:-1;;;;;2870:5:0::1;2855:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;2855:29:0::1;::::0;;2895:18;;-1:-1:-1;;;;;;2895:18:0::1;::::0;;2796:125::o;11095:286::-;11186:12;2660:5;;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;11214:6:::1;11224:1;11214:11:::0;11211:95:::1;;11250:44;::::0;-1:-1:-1;;;11250:44:0;;11288:4:::1;11250:44;::::0;::::1;1038:51:1::0;-1:-1:-1;;;;;11250:29:0;::::1;::::0;::::1;::::0;1011:18:1;;11250:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11241:53;;11211:95;11325:48;::::0;-1:-1:-1;;;11325:48:0;;11354:10:::1;11325:48;::::0;::::1;9034:51:1::0;9101:18;;;9094:34;;;-1:-1:-1;;;;;11325:28:0;::::1;::::0;::::1;::::0;9007:18:1;;11325:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11389:107::-:0;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;11441:11:::1;:18:::0;;-1:-1:-1;;;;11470:18:0;-1:-1:-1;;;11470:18:0;;;11389:107::o;6413:156::-;6493:4;6517:44;6531:10;6543:9;6554:6;6517:13;:44::i;2299:94::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2359:19:0::1;;::::0;;;2381:4:::1;2359:19;::::0;;;;;;;:26;;-1:-1:-1;;2359:26:0::1;::::0;;::::1;::::0;;2299:94::o;7224:262::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;7358:1:::1;7330:24;:29;;7322:82;;;::::0;-1:-1:-1;;;7322:82:0;;9591:2:1;7322:82:0::1;::::0;::::1;9573:21:1::0;9630:2;9610:18;;;9603:30;9669:34;9649:18;;;9642:62;-1:-1:-1;;;9720:18:1;;;9713:39;9769:19;;7322:82:0::1;9389:405:1::0;7322:82:0::1;7474:4;7445:24:::0;3851:12:::1;3791:1;3851:2;:12;:::i;:::-;3839:24;::::0;:9:::1;:24;:::i;:::-;7431:38;;;;:::i;:::-;7430:48;;;;:::i;:::-;7415:12;:63:::0;-1:-1:-1;7224:262:0:o;12723:179::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;12819:11:::1;:22:::0;;-1:-1:-1;;;;12819:22:0::1;-1:-1:-1::0;;;12819:22:0;::::1;;;;::::0;;12882:12;3851::::1;3791:1;3851:2;:12;:::i;:::-;3839:24;::::0;:9:::1;:24;:::i;:::-;12868:26;;;;:::i;:::-;12852:13;:42:::0;-1:-1:-1;;12723:179:0:o;2401:161::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;2480:5:::1;::::0;-1:-1:-1;;;;;2480:5:0;;::::1;2473:12:::0;;::::1;::::0;2465:51:::1;;;::::0;-1:-1:-1;;;2465:51:0;;10001:2:1;2465:51:0::1;::::0;::::1;9983:21:1::0;10040:2;10020:18;;;10013:30;10079:28;10059:18;;;10052:56;10125:18;;2465:51:0::1;9799:350:1::0;2465:51:0::1;-1:-1:-1::0;;;;;2527:19:0::1;2549:5;2527:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2527:27:0::1;::::0;;2401:161::o;2681:107::-;-1:-1:-1;;;;;2761:19:0;2737:4;2761:19;;;:14;:19;;;;;;;;;2681:107::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;8427:1115::-;8539:6;;8519:4;;8539:6;;8536:63;;;8555:41;8570:6;8578:9;8589:6;8555:14;:41::i;:::-;8548:48;;;;8536:63;-1:-1:-1;;;;;8615:22:0;;;;;;:14;:22;;;;;;;;8614:23;:53;;;;-1:-1:-1;;;;;;8642:25:0;;;;;;:14;:25;;;;;;;;8641:26;8614:53;8611:127;;;8691:11;;-1:-1:-1;;;8691:11:0;;;;8683:43;;;;-1:-1:-1;;;8683:43:0;;10356:2:1;8683:43:0;;;10338:21:1;10395:2;10375:18;;;10368:30;-1:-1:-1;;;10414:18:1;;;10407:50;10474:18;;8683:43:0;10154:344:1;8683:43:0;-1:-1:-1;;;;;8755:22:0;;;;;;:14;:22;;;;;;;;8754:23;:55;;;;-1:-1:-1;;;;;;8782:27:0;;;;;;:19;:27;;;;;;;;8781:28;8754:55;:90;;;;-1:-1:-1;;;;;;8814:30:0;;;;;;:19;:30;;;;;;;;8813:31;8754:90;:111;;;;;8861:4;-1:-1:-1;;;;;8848:17:0;:9;-1:-1:-1;;;;;8848:17:0;;;8754:111;8750:230;;;8925:15;;-1:-1:-1;;;;;8891:20:0;;;;;;:9;:20;;;;;;:29;;8914:6;;8891:29;:::i;:::-;8890:50;;8882:86;;;;-1:-1:-1;;;8882:86:0;;10705:2:1;8882:86:0;;;10687:21:1;10744:2;10724:18;;;10717:30;10783:26;10763:18;;;10756:54;10827:18;;8882:86:0;10503:348:1;8882:86:0;9015:12;;9005:6;:22;;9004:51;;;-1:-1:-1;;;;;;9032:23:0;;;;;;:15;:23;;;;;;;;9004:51;:81;;;-1:-1:-1;;;;;;9059:26:0;;;;;;:15;:26;;;;;;;;9004:81;8996:115;;;;-1:-1:-1;;;8996:115:0;;11058:2:1;8996:115:0;;;11040:21:1;11097:2;11077:18;;;11070:30;-1:-1:-1;;;11116:18:1;;;11109:51;11177:18;;8996:115:0;10856:345:1;8996:115:0;9127:16;:14;:16::i;:::-;9124:35;;;9146:10;:8;:10::i;:::-;9191:53;;;;;;;;;;;-1:-1:-1;;;9191:53:0;;;;;;;;-1:-1:-1;;;;;9191:17:0;;-1:-1:-1;9191:17:0;;;:9;:17;;;;;;;;:53;;9213:6;;9191:21;:53::i;:::-;-1:-1:-1;;;;;9171:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9283:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9306:22:0;;;;;;:11;:22;;;;;;;;9283:45;9282:93;;9341:34;9349:6;9357;9365:9;9341:7;:34::i;:::-;9282:93;;;9332:6;9282:93;-1:-1:-1;;;;;9411:20:0;;;;;;:9;:20;;;;;;9257:118;;-1:-1:-1;9411:40:0;;9257:118;9411:24;:40::i;:::-;-1:-1:-1;;;;;9388:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9469:43;;;;;;;;;;9497:14;1799:25:1;;1787:2;1772:18;;1653:177;9469:43:0;;;;;;;;-1:-1:-1;9530:4:0;;8427:1115;-1:-1:-1;;;;8427:1115:0:o;9554:330::-;9684:53;;;;;;;;;;;-1:-1:-1;;;9684:53:0;;;;;;;;-1:-1:-1;;;;;9684:17:0;;9647:4;9684:17;;;:9;:17;;;;;;;:53;;9706:6;;9684:21;:53::i;:::-;-1:-1:-1;;;;;9664:17:0;;;;;;;:9;:17;;;;;;:73;;;;9771:20;;;;;;;:32;;9796:6;9771:24;:32::i;:::-;-1:-1:-1;;;;;9748:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9819:35;;;;;;;;;;9847:6;1799:25:1;;1787:2;1772:18;;1653:177;9819:35:0;;;;;;;;-1:-1:-1;9872:4:0;9554:330;;;;;:::o;10623:197::-;10672:4;10696:10;-1:-1:-1;;;;;10710:4:0;10696:18;;;;;:38;;-1:-1:-1;10728:6:0;;;;10727:7;10696:38;:62;;;;-1:-1:-1;10747:11:0;;-1:-1:-1;;;10747:11:0;;;;10696:62;:116;;;;-1:-1:-1;;10799:13:0;;10789:4;10771:24;;;;:9;:24;;;;;;:41;;;10623:197::o;11504:765::-;4899:6;:13;;-1:-1:-1;;4899:13:0;4908:4;4899:13;;;11579:16:::1;::::0;;11593:1:::1;11579:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11579:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11579:16:0::1;11555:40;;11624:4;11606;11611:1;11606:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11606:23:0::1;;;-1:-1:-1::0;;;;;11606:23:0::1;;;::::0;::::1;11650:4;11640;11645:1;11640:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11640:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11667:6:::1;::::0;11739:13:::1;::::0;11667:189:::1;::::0;-1:-1:-1;;;11667:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;11739:13;11667:6:::1;::::0;11783:4;;11810::::1;::::0;11830:15:::1;::::0;11667:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11981:8:0::1;::::0;11965:12:::1;::::0;11889:21:::1;::::0;-1:-1:-1;11869:17:0::1;::::0;-1:-1:-1;11953:24:0::1;::::0;11889:21;11953:24:::1;:::i;:::-;11952:37;;;;:::i;:::-;11923:66;;12000:27;12060:8;;12043:13;;12031:9;:25;;;;:::i;:::-;12030:38;;;;:::i;:::-;12110:20;::::0;12102:65:::1;::::0;12000:68;;-1:-1:-1;12082:15:0::1;::::0;-1:-1:-1;;;;;12110:20:0;;::::1;::::0;12144:18;;12082:15;12102:65;12082:15;12102:65;12144:18;12110:20;12102:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;12202:21:0::1;::::0;12194:67:::1;::::0;12081:86;;-1:-1:-1;;;;;;12202:21:0::1;::::0;12237:19;;12194:67:::1;::::0;;;12237:19;12202:21;12194:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4917:6:0;:14;;-1:-1:-1;;4917:14:0;;;-1:-1:-1;;;;;;11504:765:0:o;9892:723::-;9978:7;10001:11;;;:28;;-1:-1:-1;10016:8:0;;:13;10001:28;9998:72;;;-1:-1:-1;10052:6:0;10045:13;;9998:72;10103:18;;-1:-1:-1;;;;;10150:4:0;10137:17;;;;;;10134:154;;-1:-1:-1;10184:14:0;;10134:154;;;10229:4;-1:-1:-1;;;;;10219:14:0;:6;-1:-1:-1;;;;;10219:14:0;;10216:72;;-1:-1:-1;10263:13:0;;10216:72;10300:17;10320:62;10361:20;4452:3;;10361:20;:::i;:::-;10320:36;10345:10;10320:20;10331:8;;10320:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;10300:82;-1:-1:-1;10398:13:0;;10395:172;;10472:4;10454:24;;;;:9;:24;;;;;;:39;;10483:9;10454:28;:39::i;:::-;10445:4;10427:24;;;;:9;:24;;;;;;;:66;;;;10513:42;;-1:-1:-1;;;;;10513:42:0;;;;;;;10545:9;1799:25:1;;1787:2;1772:18;;1653:177;10513:42:0;;;;;;;;10395:172;10586:21;:6;10597:9;10586:10;:21::i;:::-;10579:28;9892:723;-1:-1:-1;;;;;;9892:723:0:o;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;12735:2:1;199:46:0;;;12717:21:1;12774:2;12754:18;;;12747:30;12813:29;12793:18;;;12786:57;12860:18;;199:46:0;12533:351:1;620:250:0;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;13091:2:1;785:56:0;;;13073:21:1;13130:2;13110:18;;;13103:30;13169:34;13149:18;;;13142:62;-1:-1:-1;;;13220:18:1;;;13213:31;13261:19;;785:56:0;12889:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:750::-;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;383:18;424:2;416:6;413:14;410:34;;;440:1;437;430:12;410:34;478:6;467:9;463:22;453:32;;523:7;516:4;512:2;508:13;504:27;494:55;;545:1;542;535:12;494:55;585:2;572:16;611:2;603:6;600:14;597:34;;;627:1;624;617:12;597:34;682:7;675:4;665:6;662:1;658:14;654:2;650:23;646:34;643:47;640:67;;;703:1;700;693:12;640:67;734:4;726:13;;;;-1:-1:-1;758:6:1;-1:-1:-1;;799:20:1;;786:34;829:28;786:34;829:28;:::i;:::-;876:5;866:15;;;137:750;;;;;:::o;1100:548::-;1212:4;1241:2;1270;1259:9;1252:21;1302:6;1296:13;1345:6;1340:2;1329:9;1325:18;1318:34;1370:1;1380:140;1394:6;1391:1;1388:13;1380:140;;;1489:14;;;1485:23;;1479:30;1455:17;;;1474:2;1451:26;1444:66;1409:10;;1380:140;;;1384:3;1569:1;1564:2;1555:6;1544:9;1540:22;1536:31;1529:42;1639:2;1632;1628:7;1623:2;1615:6;1611:15;1607:29;1596:9;1592:45;1588:54;1580:62;;;;1100:548;;;;:::o;1835:180::-;1894:6;1947:2;1935:9;1926:7;1922:23;1918:32;1915:52;;;1963:1;1960;1953:12;1915:52;-1:-1:-1;1986:23:1;;1835:180;-1:-1:-1;1835:180:1:o;2020:173::-;2088:20;;-1:-1:-1;;;;;2137:31:1;;2127:42;;2117:70;;2183:1;2180;2173:12;2117:70;2020:173;;;:::o;2198:254::-;2266:6;2274;2327:2;2315:9;2306:7;2302:23;2298:32;2295:52;;;2343:1;2340;2333:12;2295:52;2366:29;2385:9;2366:29;:::i;:::-;2356:39;2442:2;2427:18;;;;2414:32;;-1:-1:-1;;;2198:254:1:o;2649:328::-;2726:6;2734;2742;2795:2;2783:9;2774:7;2770:23;2766:32;2763:52;;;2811:1;2808;2801:12;2763:52;2834:29;2853:9;2834:29;:::i;:::-;2824:39;;2882:38;2916:2;2905:9;2901:18;2882:38;:::i;:::-;2872:48;;2967:2;2956:9;2952:18;2939:32;2929:42;;2649:328;;;;;:::o;2982:186::-;3041:6;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;3133:29;3152:9;3133:29;:::i;3362:248::-;3430:6;3438;3491:2;3479:9;3470:7;3466:23;3462:32;3459:52;;;3507:1;3504;3497:12;3459:52;-1:-1:-1;;3530:23:1;;;3600:2;3585:18;;;3572:32;;-1:-1:-1;3362:248:1:o;3615:316::-;3692:6;3700;3708;3761:2;3749:9;3740:7;3736:23;3732:32;3729:52;;;3777:1;3774;3767:12;3729:52;-1:-1:-1;;3800:23:1;;;3870:2;3855:18;;3842:32;;-1:-1:-1;3921:2:1;3906:18;;;3893:32;;3615:316;-1:-1:-1;3615:316:1:o;3936:260::-;4004:6;4012;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;4104:29;4123:9;4104:29;:::i;:::-;4094:39;;4152:38;4186:2;4175:9;4171:18;4152:38;:::i;:::-;4142:48;;3936:260;;;;;:::o;4201:309::-;4266:6;4274;4327:2;4315:9;4306:7;4302:23;4298:32;4295:52;;;4343:1;4340;4333:12;4295:52;4382:9;4369:23;4401:28;4423:5;4401:28;:::i;4741:335::-;4943:2;4925:21;;;4982:2;4962:18;;;4955:30;-1:-1:-1;;;5016:2:1;5001:18;;4994:41;5067:2;5052:18;;4741:335::o;5081:401::-;5283:2;5265:21;;;5322:2;5302:18;;;5295:30;5361:34;5356:2;5341:18;;5334:62;-1:-1:-1;;;5427:2:1;5412:18;;5405:35;5472:3;5457:19;;5081:401::o;5487:127::-;5548:10;5543:3;5539:20;5536:1;5529:31;5579:4;5576:1;5569:15;5603:4;5600:1;5593:15;5619:127;5680:10;5675:3;5671:20;5668:1;5661:31;5711:4;5708:1;5701:15;5735:4;5732:1;5725:15;5751:135;5790:3;5811:17;;;5808:43;;5831:18;;:::i;:::-;-1:-1:-1;5878:1:1;5867:13;;5751:135::o;5891:329::-;6093:2;6075:21;;;6132:1;6112:18;;;6105:29;-1:-1:-1;;;6165:2:1;6150:18;;6143:36;6211:2;6196:18;;5891:329::o;6630:422::-;6719:1;6762:5;6719:1;6776:270;6797:7;6787:8;6784:21;6776:270;;;6856:4;6852:1;6848:6;6844:17;6838:4;6835:27;6832:53;;;6865:18;;:::i;:::-;6915:7;6905:8;6901:22;6898:55;;;6935:16;;;;6898:55;7014:22;;;;6974:15;;;;6776:270;;;6780:3;6630:422;;;;;:::o;7057:806::-;7106:5;7136:8;7126:80;;-1:-1:-1;7177:1:1;7191:5;;7126:80;7225:4;7215:76;;-1:-1:-1;7262:1:1;7276:5;;7215:76;7307:4;7325:1;7320:59;;;;7393:1;7388:130;;;;7300:218;;7320:59;7350:1;7341:10;;7364:5;;;7388:130;7425:3;7415:8;7412:17;7409:43;;;7432:18;;:::i;:::-;-1:-1:-1;;7488:1:1;7474:16;;7503:5;;7300:218;;7602:2;7592:8;7589:16;7583:3;7577:4;7574:13;7570:36;7564:2;7554:8;7551:16;7546:2;7540:4;7537:12;7533:35;7530:77;7527:159;;;-1:-1:-1;7639:19:1;;;7671:5;;7527:159;7718:34;7743:8;7737:4;7718:34;:::i;:::-;7788:6;7784:1;7780:6;7776:19;7767:7;7764:32;7761:58;;;7799:18;;:::i;:::-;7837:20;;7057:806;-1:-1:-1;;;7057:806:1:o;7868:140::-;7926:5;7955:47;7996:4;7986:8;7982:19;7976:4;7955:47;:::i;8013:168::-;8053:7;8119:1;8115;8111:6;8107:14;8104:1;8101:21;8096:1;8089:9;8082:17;8078:45;8075:71;;;8126:18;;:::i;:::-;-1:-1:-1;8166:9:1;;8013:168::o;8186:217::-;8226:1;8252;8242:132;;8296:10;8291:3;8287:20;8284:1;8277:31;8331:4;8328:1;8321:15;8359:4;8356:1;8349:15;8242:132;-1:-1:-1;8388:9:1;;8186:217::o;8408:128::-;8475:9;;;8496:11;;;8493:37;;;8510:18;;:::i;8541:125::-;8606:9;;;8627:10;;;8624:36;;;8640:18;;:::i;8671:184::-;8741:6;8794:2;8782:9;8773:7;8769:23;8765:32;8762:52;;;8810:1;8807;8800:12;8762:52;-1:-1:-1;8833:16:1;;8671:184;-1:-1:-1;8671:184:1:o;9139:245::-;9206:6;9259:2;9247:9;9238:7;9234:23;9230:32;9227:52;;;9275:1;9272;9265:12;9227:52;9307:9;9301:16;9326:28;9348:5;9326:28;:::i;11338:980::-;11600:4;11648:3;11637:9;11633:19;11679:6;11668:9;11661:25;11705:2;11743:6;11738:2;11727:9;11723:18;11716:34;11786:3;11781:2;11770:9;11766:18;11759:31;11810:6;11845;11839:13;11876:6;11868;11861:22;11914:3;11903:9;11899:19;11892:26;;11953:2;11945:6;11941:15;11927:29;;11974:1;11984:195;11998:6;11995:1;11992:13;11984:195;;;12063:13;;-1:-1:-1;;;;;12059:39:1;12047:52;;12154:15;;;;12119:12;;;;12095:1;12013:9;11984:195;;;-1:-1:-1;;;;;;;12235:32:1;;;;12230:2;12215:18;;12208:60;-1:-1:-1;;;12299:3:1;12284:19;12277:35;12196:3;11338:980;-1:-1:-1;;;11338:980:1:o

Swarm Source

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