ETH Price: $3,356.89 (-0.31%)

Token

Superpepe (SPEPE)
 

Overview

Max Total Supply

420,689,999,999 SPEPE

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,933,326,757.8055273 SPEPE

Value
$0.00
0x38da900862f46fdd502b53d6eaf43cb4482e66b1
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:
ERC20SUPERPEPE

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-05-13
*/

// SPDX-License-Identifier: UNLICENSED

/*
SUPERPEPE

Superpepe.wtf
https://t.me/superpepe_erc
https://twitter.com/superpepe_erc

*/

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

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

    string public constant name = "Superpepe";
    string public constant symbol = "SPEPE";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 420689999999 * 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 buybackFee = 5;
    uint256 public operationsFee = 5;
    uint256 public totalFee = buybackFee + operationsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 300;
    uint256 sellMultiplier = 300;
    uint256 transferMultiplier = 300;

    address buybackFeeReceiver;
    address operationsFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool tradingOpen = true;

    bool 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;

        buybackFeeReceiver = msg.sender;
        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 >= 10,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }

    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 10,"Cannot set max transaction less than 1%");
        _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 amountETHBuyback = (amountETH * buybackFee) / totalFee;
        uint256 amountETHOperations = (amountETH * operationsFee) / totalFee;

        (bool tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
        (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 _buybackFee, uint256 _operationsFee) external onlyOwner {
        buybackFee = _buybackFee;
        operationsFee = _operationsFee;
        totalFee = _buybackFee + _operationsFee;
    }

    function setFeeReceivers(address _buybackFeeReceiver, address _operationsFeeReceiver) external onlyOwner {
        buybackFeeReceiver = _buybackFeeReceiver;
        operationsFeeReceiver = _operationsFeeReceiver;
    }

    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":[],"name":"buybackFee","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":"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":"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":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_operationsFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buybackFee","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":"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":[{"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"}]

60c06040526064620000146009600a62000536565b62000025906461f313f87f6200054e565b62000031919062000570565b6002556032620000446009600a62000536565b62000055906461f313f87f6200054e565b62000061919062000570565b60035560056009819055600a8190556200007c908062000593565b600b5561012c600c819055600d819055600e556011805461ffff60a01b191661010160a01b17905560c8620000b46009600a62000536565b620000c5906461f313f87f6200054e565b620000d1919062000570565b601255348015620000e157600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560118054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000168573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018e9190620005a9565b6001600160a01b039081166080526011546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002059190620005a9565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027d9190620005a9565b6001600160a01b0390811660a05230600081815260056020908152604080832060115490951683529381528382206000199055600f8054336001600160a01b031991821681179092556010805490911682179055825260068152838220805460ff1990811660019081179092556007835285842080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805482168317905560089092528483208054831682179055928252928120805484168317905561dead90527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054909216179055620003a56009600a62000536565b620003b6906461f313f87f6200054e565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003f96009600a62000536565b6200040a906461f313f87f6200054e565b60405190815260200160405180910390a3620005d4565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004785781600019048211156200045c576200045c62000421565b808516156200046a57918102915b93841c93908002906200043c565b509250929050565b600082620004915750600162000530565b81620004a05750600062000530565b8160018114620004b95760028114620004c457620004e4565b600191505062000530565b60ff841115620004d857620004d862000421565b50506001821b62000530565b5060208310610133831016604e8410600b841016171562000509575081810a62000530565b62000515838362000437565b80600019048211156200052c576200052c62000421565b0290505b92915050565b60006200054760ff84168362000480565b9392505050565b60008160001904831182151516156200056b576200056b62000421565b500290565b6000826200058e57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000530576200053062000421565b600060208284031215620005bc57600080fd5b81516001600160a01b03811681146200054757600080fd5b60805160a051612182620006166000396000818161066301528181611353015281816116dc0152818161197a01526119ae015260006117a601526121826000f3fe60806040526004361061023d5760003560e01c806370a082311161012e578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e14610715578063df20fd491461075b578063f0b37c041461077b578063f887ea401461079b578063fe9fbb80146107bb57600080fd5b8063a8aa1b3114610651578063a9059cbb14610685578063b6a5d7de146106a5578063bd9ab537146106c5578063c867d60b146106e557600080fd5b8063893d20e8116100f2578063893d20e8146105895780638b42507f146105bb57806395d89b41146105eb578063963c44bf1461061c578063a4b45c001461063157600080fd5b806370a08231146104fb578063715018a61461052857806377b54bad1461053d57806378109e541461055d5780637d1db4a51461057357600080fd5b806323b872dd116101bc5780633f4218e0116101805780633f4218e01461044b57806348a5df041461047b5780634be9d8691461049b578063571ac8b0146104bb5780636ce46bc3146104db57600080fd5b806323b872dd146103aa5780632b112e49146103ca5780632f54bf6e146103df578063313ce5671461040e5780633b2d081c1461043557600080fd5b8063095ea7b311610203578063095ea7b31461031a578063180b0d7e1461034a57806318160ddd1461035f5780631da1db5e146103745780631df4ccfc1461039457600080fd5b806210868314610249578062bff4461461026b57806306fdde031461028b578063090896be146102d657806309302dc6146102fa57600080fd5b3661024457005b600080fd5b34801561025557600080fd5b50610269610264366004611c53565b6107db565b005b34801561027757600080fd5b50610269610286366004611c53565b61089f565b34801561029757600080fd5b506102c06040518060400160405280600981526020016853757065727065706560b81b81525081565b6040516102cd9190611cd9565b60405180910390f35b3480156102e257600080fd5b506102ec600a5481565b6040519081526020016102cd565b34801561030657600080fd5b50610269610315366004611d27565b610954565b34801561032657600080fd5b5061033a610335366004611d5c565b610a13565b60405190151581526020016102cd565b34801561035657600080fd5b506102ec606481565b34801561036b57600080fd5b506102ec610a80565b34801561038057600080fd5b5061026961038f366004611d27565b610a9e565b3480156103a057600080fd5b506102ec600b5481565b3480156103b657600080fd5b5061033a6103c5366004611d86565b610b11565b3480156103d657600080fd5b506102ec610bd3565b3480156103eb57600080fd5b5061033a6103fa366004611dc2565b6000546001600160a01b0391821691161490565b34801561041a57600080fd5b50610423600981565b60405160ff90911681526020016102cd565b34801561044157600080fd5b506102ec60095481565b34801561045757600080fd5b5061033a610466366004611dc2565b60066020526000908152604090205460ff1681565b34801561048757600080fd5b50610269610496366004611ddd565b610c5b565b3480156104a757600080fd5b506102696104b6366004611c53565b610ca0565b3480156104c757600080fd5b5061033a6104d6366004611dc2565b610d55565b3480156104e757600080fd5b506102696104f6366004611dff565b610d63565b34801561050757600080fd5b506102ec610516366004611dc2565b60046020526000908152604090205481565b34801561053457600080fd5b50610269610d99565b34801561054957600080fd5b5061033a610558366004611d5c565b610df3565b34801561056957600080fd5b506102ec60035481565b34801561057f57600080fd5b506102ec60025481565b34801561059557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102cd565b3480156105c757600080fd5b5061033a6105d6366004611dc2565b60076020526000908152604090205460ff1681565b3480156105f757600080fd5b506102c060405180604001604052806005815260200164535045504560d81b81525081565b34801561062857600080fd5b50610269610f02565b34801561063d57600080fd5b5061026961064c366004611e2b565b610f43565b34801561065d57600080fd5b506105a37f000000000000000000000000000000000000000000000000000000000000000081565b34801561069157600080fd5b5061033a6106a0366004611d5c565b610f9b565b3480156106b157600080fd5b506102696106c0366004611dc2565b610fa8565b3480156106d157600080fd5b506102696106e0366004611d27565b610ff9565b3480156106f157600080fd5b5061033a610700366004611dc2565b60086020526000908152604090205460ff1681565b34801561072157600080fd5b506102ec610730366004611e2b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561076757600080fd5b50610269610776366004611e5e565b6110bd565b34801561078757600080fd5b50610269610796366004611dc2565b61112b565b3480156107a757600080fd5b506011546105a3906001600160a01b031681565b3480156107c757600080fd5b5061033a6107d6366004611dc2565b6111d4565b6107e4336111d4565b6108095760405162461bcd60e51b815260040161080090611e7c565b60405180910390fd5b6101f5821061082a5760405162461bcd60e51b815260040161080090611ea1565b60005b8281101561089957816008600086868581811061084c5761084c611ee6565b90506020020160208101906108619190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561089281611f12565b905061082d565b50505050565b6108a8336111d4565b6108c45760405162461bcd60e51b815260040161080090611e7c565b6101f582106108e55760405162461bcd60e51b815260040161080090611ea1565b60005b8281101561089957816006600086868581811061090757610907611ee6565b905060200201602081019061091c9190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561094d81611f12565b90506108e8565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260040161080090611f2b565b600a8110156109da5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610800565b6103e8816109ea6009600a61202f565b6109f9906461f313f87f61203e565b610a03919061203e565b610a0d919061205d565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a6e9086815260200190565b60405180910390a35060015b92915050565b610a8c6009600a61202f565b610a9b906461f313f87f61203e565b81565b6000546001600160a01b03163314610ac85760405162461bcd60e51b815260040161080090611f2b565b4760006064610ad7848461203e565b610ae1919061205d565b604051909150339082156108fc029083906000818181858888f19350505050158015610899573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610bbe576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610b999184906111f2565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610bc984848461122c565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610c336009600a61202f565b610c42906461f313f87f61203e565b610c4c919061207f565b610c56919061207f565b905090565b6000546001600160a01b03163314610c855760405162461bcd60e51b815260040161080090611f2b565b6009829055600a819055610c998183612092565b600b555050565b610ca9336111d4565b610cc55760405162461bcd60e51b815260040161080090611e7c565b6101f58210610ce65760405162461bcd60e51b815260040161080090611ea1565b60005b82811015610899578160076000868685818110610d0857610d08611ee6565b9050602002016020810190610d1d9190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d4e81611f12565b9050610ce9565b6000610a7a82600019610a13565b610d6c336111d4565b610d885760405162461bcd60e51b815260040161080090611e7c565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610dc35760405162461bcd60e51b815260040161080090611f2b565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610e1e5760405162461bcd60e51b815260040161080090611f2b565b81600003610e91576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8e91906120a5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcc91906120be565b6000546001600160a01b03163314610f2c5760405162461bcd60e51b815260040161080090611f2b565b6011805461ffff60a01b191661010160a01b179055565b6000546001600160a01b03163314610f6d5760405162461bcd60e51b815260040161080090611f2b565b600f80546001600160a01b039384166001600160a01b03199182161790915560108054929093169116179055565b6000610bcc33848461122c565b6000546001600160a01b03163314610fd25760405162461bcd60e51b815260040161080090611f2b565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146110235760405162461bcd60e51b815260040161080090611f2b565b600a8110156110845760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b6064820152608401610800565b6103e8816110946009600a61202f565b6110a3906461f313f87f61203e565b6110ad919061203e565b6110b7919061205d565b60025550565b6000546001600160a01b031633146110e75760405162461bcd60e51b815260040161080090611f2b565b6011805460ff60a81b1916600160a81b841515021790558061110b6009600a61202f565b61111a906461f313f87f61203e565b611124919061205d565b6012555050565b6000546001600160a01b031633146111555760405162461bcd60e51b815260040161080090611f2b565b6000546001600160a01b03908116908216036111b35760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610800565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156112165760405162461bcd60e51b81526004016108009190611cd9565b506000611223848661207f565b95945050505050565b60135460009060ff161561124c576112458484846115e9565b9050610bcc565b6001600160a01b03841660009081526001602052604090205460ff1615801561128e57506001600160a01b03831660009081526001602052604090205460ff16155b156112e357601154600160a01b900460ff166112e35760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610800565b6001600160a01b03841660009081526001602052604090205460ff1615801561132557506001600160a01b03841660009081526008602052604090205460ff16155b801561134a57506001600160a01b03831660009081526008602052604090205460ff16155b801561138857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611402576003546001600160a01b0384166000908152600460205260409020546113b4908490612092565b11156114025760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610800565b6002548211158061142b57506001600160a01b03841660009081526007602052604090205460ff165b8061144e57506001600160a01b03831660009081526007602052604090205460ff165b6114925760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610800565b61149a6116cf565b156114a7576114a7611742565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600490915291909120546114f99184906111f2565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061154657506001600160a01b03841660009081526006602052604090205460ff165b61155a57611555858486611952565b61155c565b825b6001600160a01b0385166000908152600460205260409020549091506115829082611aaf565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115d69085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461163a9184906111f2565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116699083611aaf565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116bd9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061170d575060135460ff16155b80156117225750601154600160a81b900460ff165b8015610c5657505060125430600090815260046020526040902054101590565b6013805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061178457611784611ee6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106117d8576117d8611ee6565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac9479161182291906000908690309042906004016120db565b600060405180830381600087803b15801561183c57600080fd5b505af1158015611850573d6000803e3d6000fd5b5050600b5460095447935060009250611869908461203e565b611873919061205d565b90506000600b54600a5484611888919061203e565b611892919061205d565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d80600081146118e4576040519150601f19603f3d011682016040523d82523d6000602084013e6118e9565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611939576040519150601f19603f3d011682016040523d82523d6000602084013e61193e565b606091505b50506013805460ff19169055505050505050565b60008215806119615750600b54155b1561196d575081610bcc565b600e546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036119ac5750600d546119ea565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036119ea5750600c545b6000611a1f6119fa60648061203e565b611a1984611a13600b548a611b0e90919063ffffffff16565b90611b0e565b90611b90565b90508015611a9b5730600090815260046020526040902054611a419082611aaf565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a929085815260200190565b60405180910390a35b611aa58582611bd2565b9695505050505050565b600080611abc8385612092565b905083811015610bcc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b600082600003611b2057506000610a7a565b6000611b2c838561203e565b905082611b39858361205d565b14610bcc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610800565b6000610bcc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c14565b6000610bcc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f2565b60008183611c355760405162461bcd60e51b81526004016108009190611cd9565b506000611223848661205d565b8015158114611c5057600080fd5b50565b600080600060408486031215611c6857600080fd5b833567ffffffffffffffff80821115611c8057600080fd5b818601915086601f830112611c9457600080fd5b813581811115611ca357600080fd5b8760208260051b8501011115611cb857600080fd5b60209283019550935050840135611cce81611c42565b809150509250925092565b600060208083528351808285015260005b81811015611d0657858101830151858201604001528201611cea565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611d3957600080fd5b5035919050565b80356001600160a01b0381168114611d5757600080fd5b919050565b60008060408385031215611d6f57600080fd5b611d7883611d40565b946020939093013593505050565b600080600060608486031215611d9b57600080fd5b611da484611d40565b9250611db260208501611d40565b9150604084013590509250925092565b600060208284031215611dd457600080fd5b610bcc82611d40565b60008060408385031215611df057600080fd5b50508035926020909101359150565b600080600060608486031215611e1457600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e3e57600080fd5b611e4783611d40565b9150611e5560208401611d40565b90509250929050565b60008060408385031215611e7157600080fd5b8235611d7881611c42565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f2457611f24611efc565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115611f86578160001904821115611f6c57611f6c611efc565b80851615611f7957918102915b93841c9390800290611f50565b509250929050565b600082611f9d57506001610a7a565b81611faa57506000610a7a565b8160018114611fc05760028114611fca57611fe6565b6001915050610a7a565b60ff841115611fdb57611fdb611efc565b50506001821b610a7a565b5060208310610133831016604e8410600b8410161715612009575081810a610a7a565b6120138383611f4b565b806000190482111561202757612027611efc565b029392505050565b6000610bcc60ff841683611f8e565b600081600019048311821515161561205857612058611efc565b500290565b60008261207a57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7a57610a7a611efc565b80820180821115610a7a57610a7a611efc565b6000602082840312156120b757600080fd5b5051919050565b6000602082840312156120d057600080fd5b8151610bcc81611c42565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561212b5784516001600160a01b031683529383019391830191600101612106565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209e67f28e616b4905fa06a7749d725b7d9576f6c1b6100532871cba45bfbd7bf364736f6c63430008100033

Deployed Bytecode

0x60806040526004361061023d5760003560e01c806370a082311161012e578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e14610715578063df20fd491461075b578063f0b37c041461077b578063f887ea401461079b578063fe9fbb80146107bb57600080fd5b8063a8aa1b3114610651578063a9059cbb14610685578063b6a5d7de146106a5578063bd9ab537146106c5578063c867d60b146106e557600080fd5b8063893d20e8116100f2578063893d20e8146105895780638b42507f146105bb57806395d89b41146105eb578063963c44bf1461061c578063a4b45c001461063157600080fd5b806370a08231146104fb578063715018a61461052857806377b54bad1461053d57806378109e541461055d5780637d1db4a51461057357600080fd5b806323b872dd116101bc5780633f4218e0116101805780633f4218e01461044b57806348a5df041461047b5780634be9d8691461049b578063571ac8b0146104bb5780636ce46bc3146104db57600080fd5b806323b872dd146103aa5780632b112e49146103ca5780632f54bf6e146103df578063313ce5671461040e5780633b2d081c1461043557600080fd5b8063095ea7b311610203578063095ea7b31461031a578063180b0d7e1461034a57806318160ddd1461035f5780631da1db5e146103745780631df4ccfc1461039457600080fd5b806210868314610249578062bff4461461026b57806306fdde031461028b578063090896be146102d657806309302dc6146102fa57600080fd5b3661024457005b600080fd5b34801561025557600080fd5b50610269610264366004611c53565b6107db565b005b34801561027757600080fd5b50610269610286366004611c53565b61089f565b34801561029757600080fd5b506102c06040518060400160405280600981526020016853757065727065706560b81b81525081565b6040516102cd9190611cd9565b60405180910390f35b3480156102e257600080fd5b506102ec600a5481565b6040519081526020016102cd565b34801561030657600080fd5b50610269610315366004611d27565b610954565b34801561032657600080fd5b5061033a610335366004611d5c565b610a13565b60405190151581526020016102cd565b34801561035657600080fd5b506102ec606481565b34801561036b57600080fd5b506102ec610a80565b34801561038057600080fd5b5061026961038f366004611d27565b610a9e565b3480156103a057600080fd5b506102ec600b5481565b3480156103b657600080fd5b5061033a6103c5366004611d86565b610b11565b3480156103d657600080fd5b506102ec610bd3565b3480156103eb57600080fd5b5061033a6103fa366004611dc2565b6000546001600160a01b0391821691161490565b34801561041a57600080fd5b50610423600981565b60405160ff90911681526020016102cd565b34801561044157600080fd5b506102ec60095481565b34801561045757600080fd5b5061033a610466366004611dc2565b60066020526000908152604090205460ff1681565b34801561048757600080fd5b50610269610496366004611ddd565b610c5b565b3480156104a757600080fd5b506102696104b6366004611c53565b610ca0565b3480156104c757600080fd5b5061033a6104d6366004611dc2565b610d55565b3480156104e757600080fd5b506102696104f6366004611dff565b610d63565b34801561050757600080fd5b506102ec610516366004611dc2565b60046020526000908152604090205481565b34801561053457600080fd5b50610269610d99565b34801561054957600080fd5b5061033a610558366004611d5c565b610df3565b34801561056957600080fd5b506102ec60035481565b34801561057f57600080fd5b506102ec60025481565b34801561059557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102cd565b3480156105c757600080fd5b5061033a6105d6366004611dc2565b60076020526000908152604090205460ff1681565b3480156105f757600080fd5b506102c060405180604001604052806005815260200164535045504560d81b81525081565b34801561062857600080fd5b50610269610f02565b34801561063d57600080fd5b5061026961064c366004611e2b565b610f43565b34801561065d57600080fd5b506105a37f0000000000000000000000008f2318733137ee38c2380a1e81ec47f3b39b9bc381565b34801561069157600080fd5b5061033a6106a0366004611d5c565b610f9b565b3480156106b157600080fd5b506102696106c0366004611dc2565b610fa8565b3480156106d157600080fd5b506102696106e0366004611d27565b610ff9565b3480156106f157600080fd5b5061033a610700366004611dc2565b60086020526000908152604090205460ff1681565b34801561072157600080fd5b506102ec610730366004611e2b565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561076757600080fd5b50610269610776366004611e5e565b6110bd565b34801561078757600080fd5b50610269610796366004611dc2565b61112b565b3480156107a757600080fd5b506011546105a3906001600160a01b031681565b3480156107c757600080fd5b5061033a6107d6366004611dc2565b6111d4565b6107e4336111d4565b6108095760405162461bcd60e51b815260040161080090611e7c565b60405180910390fd5b6101f5821061082a5760405162461bcd60e51b815260040161080090611ea1565b60005b8281101561089957816008600086868581811061084c5761084c611ee6565b90506020020160208101906108619190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561089281611f12565b905061082d565b50505050565b6108a8336111d4565b6108c45760405162461bcd60e51b815260040161080090611e7c565b6101f582106108e55760405162461bcd60e51b815260040161080090611ea1565b60005b8281101561089957816006600086868581811061090757610907611ee6565b905060200201602081019061091c9190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561094d81611f12565b90506108e8565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260040161080090611f2b565b600a8110156109da5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610800565b6103e8816109ea6009600a61202f565b6109f9906461f313f87f61203e565b610a03919061203e565b610a0d919061205d565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a6e9086815260200190565b60405180910390a35060015b92915050565b610a8c6009600a61202f565b610a9b906461f313f87f61203e565b81565b6000546001600160a01b03163314610ac85760405162461bcd60e51b815260040161080090611f2b565b4760006064610ad7848461203e565b610ae1919061205d565b604051909150339082156108fc029083906000818181858888f19350505050158015610899573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610bbe576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610b999184906111f2565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610bc984848461122c565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610c336009600a61202f565b610c42906461f313f87f61203e565b610c4c919061207f565b610c56919061207f565b905090565b6000546001600160a01b03163314610c855760405162461bcd60e51b815260040161080090611f2b565b6009829055600a819055610c998183612092565b600b555050565b610ca9336111d4565b610cc55760405162461bcd60e51b815260040161080090611e7c565b6101f58210610ce65760405162461bcd60e51b815260040161080090611ea1565b60005b82811015610899578160076000868685818110610d0857610d08611ee6565b9050602002016020810190610d1d9190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d4e81611f12565b9050610ce9565b6000610a7a82600019610a13565b610d6c336111d4565b610d885760405162461bcd60e51b815260040161080090611e7c565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610dc35760405162461bcd60e51b815260040161080090611f2b565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610e1e5760405162461bcd60e51b815260040161080090611f2b565b81600003610e91576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8e91906120a5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcc91906120be565b6000546001600160a01b03163314610f2c5760405162461bcd60e51b815260040161080090611f2b565b6011805461ffff60a01b191661010160a01b179055565b6000546001600160a01b03163314610f6d5760405162461bcd60e51b815260040161080090611f2b565b600f80546001600160a01b039384166001600160a01b03199182161790915560108054929093169116179055565b6000610bcc33848461122c565b6000546001600160a01b03163314610fd25760405162461bcd60e51b815260040161080090611f2b565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146110235760405162461bcd60e51b815260040161080090611f2b565b600a8110156110845760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b6064820152608401610800565b6103e8816110946009600a61202f565b6110a3906461f313f87f61203e565b6110ad919061203e565b6110b7919061205d565b60025550565b6000546001600160a01b031633146110e75760405162461bcd60e51b815260040161080090611f2b565b6011805460ff60a81b1916600160a81b841515021790558061110b6009600a61202f565b61111a906461f313f87f61203e565b611124919061205d565b6012555050565b6000546001600160a01b031633146111555760405162461bcd60e51b815260040161080090611f2b565b6000546001600160a01b03908116908216036111b35760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610800565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156112165760405162461bcd60e51b81526004016108009190611cd9565b506000611223848661207f565b95945050505050565b60135460009060ff161561124c576112458484846115e9565b9050610bcc565b6001600160a01b03841660009081526001602052604090205460ff1615801561128e57506001600160a01b03831660009081526001602052604090205460ff16155b156112e357601154600160a01b900460ff166112e35760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610800565b6001600160a01b03841660009081526001602052604090205460ff1615801561132557506001600160a01b03841660009081526008602052604090205460ff16155b801561134a57506001600160a01b03831660009081526008602052604090205460ff16155b801561138857507f0000000000000000000000008f2318733137ee38c2380a1e81ec47f3b39b9bc36001600160a01b0316836001600160a01b031614155b15611402576003546001600160a01b0384166000908152600460205260409020546113b4908490612092565b11156114025760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610800565b6002548211158061142b57506001600160a01b03841660009081526007602052604090205460ff165b8061144e57506001600160a01b03831660009081526007602052604090205460ff165b6114925760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610800565b61149a6116cf565b156114a7576114a7611742565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600490915291909120546114f99184906111f2565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061154657506001600160a01b03841660009081526006602052604090205460ff165b61155a57611555858486611952565b61155c565b825b6001600160a01b0385166000908152600460205260409020549091506115829082611aaf565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115d69085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461163a9184906111f2565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546116699083611aaf565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116bd9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000008f2318733137ee38c2380a1e81ec47f3b39b9bc3161480159061170d575060135460ff16155b80156117225750601154600160a81b900460ff165b8015610c5657505060125430600090815260046020526040902054101590565b6013805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061178457611784611ee6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106117d8576117d8611ee6565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac9479161182291906000908690309042906004016120db565b600060405180830381600087803b15801561183c57600080fd5b505af1158015611850573d6000803e3d6000fd5b5050600b5460095447935060009250611869908461203e565b611873919061205d565b90506000600b54600a5484611888919061203e565b611892919061205d565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d80600081146118e4576040519150601f19603f3d011682016040523d82523d6000602084013e6118e9565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611939576040519150601f19603f3d011682016040523d82523d6000602084013e61193e565b606091505b50506013805460ff19169055505050505050565b60008215806119615750600b54155b1561196d575081610bcc565b600e546001600160a01b037f0000000000000000000000008f2318733137ee38c2380a1e81ec47f3b39b9bc38116908416036119ac5750600d546119ea565b7f0000000000000000000000008f2318733137ee38c2380a1e81ec47f3b39b9bc36001600160a01b0316856001600160a01b0316036119ea5750600c545b6000611a1f6119fa60648061203e565b611a1984611a13600b548a611b0e90919063ffffffff16565b90611b0e565b90611b90565b90508015611a9b5730600090815260046020526040902054611a419082611aaf565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a929085815260200190565b60405180910390a35b611aa58582611bd2565b9695505050505050565b600080611abc8385612092565b905083811015610bcc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b600082600003611b2057506000610a7a565b6000611b2c838561203e565b905082611b39858361205d565b14610bcc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610800565b6000610bcc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c14565b6000610bcc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111f2565b60008183611c355760405162461bcd60e51b81526004016108009190611cd9565b506000611223848661205d565b8015158114611c5057600080fd5b50565b600080600060408486031215611c6857600080fd5b833567ffffffffffffffff80821115611c8057600080fd5b818601915086601f830112611c9457600080fd5b813581811115611ca357600080fd5b8760208260051b8501011115611cb857600080fd5b60209283019550935050840135611cce81611c42565b809150509250925092565b600060208083528351808285015260005b81811015611d0657858101830151858201604001528201611cea565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611d3957600080fd5b5035919050565b80356001600160a01b0381168114611d5757600080fd5b919050565b60008060408385031215611d6f57600080fd5b611d7883611d40565b946020939093013593505050565b600080600060608486031215611d9b57600080fd5b611da484611d40565b9250611db260208501611d40565b9150604084013590509250925092565b600060208284031215611dd457600080fd5b610bcc82611d40565b60008060408385031215611df057600080fd5b50508035926020909101359150565b600080600060608486031215611e1457600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e3e57600080fd5b611e4783611d40565b9150611e5560208401611d40565b90509250929050565b60008060408385031215611e7157600080fd5b8235611d7881611c42565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f2457611f24611efc565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115611f86578160001904821115611f6c57611f6c611efc565b80851615611f7957918102915b93841c9390800290611f50565b509250929050565b600082611f9d57506001610a7a565b81611faa57506000610a7a565b8160018114611fc05760028114611fca57611fe6565b6001915050610a7a565b60ff841115611fdb57611fdb611efc565b50506001821b610a7a565b5060208310610133831016604e8410600b8410161715612009575081810a610a7a565b6120138383611f4b565b806000190482111561202757612027611efc565b029392505050565b6000610bcc60ff841683611f8e565b600081600019048311821515161561205857612058611efc565b500290565b60008261207a57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7a57610a7a611efc565b80820180821115610a7a57610a7a611efc565b6000602082840312156120b757600080fd5b5051919050565b6000602082840312156120d057600080fd5b8151610bcc81611c42565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561212b5784516001600160a01b031683529383019391830191600101612106565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209e67f28e616b4905fa06a7749d725b7d9576f6c1b6100532871cba45bfbd7bf364736f6c63430008100033

Deployed Bytecode Sourcemap

3508:9787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8142:311;;;;;;;;;;-1:-1:-1;8142:311:0;;;;;:::i;:::-;;:::i;:::-;;7528:295;;;;;;;;;;-1:-1:-1;7528:295:0;;;;;:::i;:::-;;:::i;3766:41::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3766:41:0;;;;;;;;;;;;:::i;:::-;;;;;;;;4414:32;;;;;;;;;;;;;;;;;;;1591:25:1;;;1579:2;1564:18;4414:32:0;1445:177:1;6991:260:0;;;;;;;;;;-1:-1:-1;6991:260:0;;;;;:::i;:::-;;:::i;6095:216::-;;;;;;;;;;-1:-1:-1;6095:216:0;;;;;:::i;:::-;;:::i;:::-;;;2414:14:1;;2407:22;2389:41;;2377:2;2362:18;6095:216:0;2249:187:1;4512:44:0;;;;;;;;;;;;4553:3;4512:44;;3903:65;;;;;;;;;;;;;:::i;10862:259::-;;;;;;;;;;-1:-1:-1;10862:259:0;;;;;:::i;:::-;;:::i;4453:52::-;;;;;;;;;;;;;;;;6613:370;;;;;;;;;;-1:-1:-1;6613:370:0;;;;;:::i;:::-;;:::i;13155:137::-;;;;;;;;;;;;;:::i;2673:103::-;;;;;;;;;;-1:-1:-1;2673:103:0;;;;;:::i;:::-;2728:4;2763:5;-1:-1:-1;;;;;2752:16:0;;;2763:5;;2752:16;;2673:103;3860:34;;;;;;;;;;;;3893:1;3860:34;;;;;3137:4:1;3125:17;;;3107:36;;3095:2;3080:18;3860:34:0;2965:184:1;4378:29:0;;;;;;;;;;;;;;;;4211:44;;;;;;;;;;-1:-1:-1;4211:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12508:223;;;;;;;;;;-1:-1:-1;12508:223:0;;;;;:::i;:::-;;:::i;7831:303::-;;;;;;;;;;-1:-1:-1;7831:303:0;;;;;:::i;:::-;;:::i;6319:122::-;;;;;;;;;;-1:-1:-1;6319:122:0;;;;;:::i;:::-;;:::i;12301:199::-;;;;;;;;;;-1:-1:-1;12301:199:0;;;;;:::i;:::-;;:::i;4089:45::-;;;;;;;;;;-1:-1:-1;4089:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2899:125;;;;;;;;;;;;;:::i;11129:284::-;;;;;;;;;;-1:-1:-1;11129:284:0;;;;;:::i;:::-;;:::i;4031:49::-;;;;;;;;;;;;;;;;3977:47;;;;;;;;;;;;;;;;5870:78;;;;;;;;;;-1:-1:-1;5922:7:0;5940:5;-1:-1:-1;;;;;5940:5:0;5870:78;;;-1:-1:-1;;;;;3892:32:1;;;3874:51;;3862:2;3847:18;5870:78:0;3728:203:1;4262:48:0;;;;;;;;;;-1:-1:-1;4262:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3814:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3814:39:0;;;;;11421:107;;;;;;;;;;;;;:::i;12739:221::-;;;;;;;;;;-1:-1:-1;12739:221:0;;;;;:::i;:::-;;:::i;4781:29::-;;;;;;;;;;;;;;;6449:156;;;;;;;;;;-1:-1:-1;6449:156:0;;;;;:::i;:::-;;:::i;2402:94::-;;;;;;;;;;-1:-1:-1;2402:94:0;;;;;:::i;:::-;;:::i;7259:261::-;;;;;;;;;;-1:-1:-1;7259:261:0;;;;;:::i;:::-;;:::i;4317:52::-;;;;;;;;;;-1:-1:-1;4317:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5954:133;;;;;;;;;;-1:-1:-1;5954:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6056:19:0;;;6038:7;6056:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5954:133;12968:179;;;;;;;;;;-1:-1:-1;12968:179:0;;;;;:::i;:::-;;:::i;2504:161::-;;;;;;;;;;-1:-1:-1;2504:161:0;;;;;:::i;:::-;;:::i;4750:24::-;;;;;;;;;;-1:-1:-1;4750:24:0;;;;-1:-1:-1;;;;;4750:24:0;;;2784:107;;;;;;;;;;-1:-1:-1;2784:107:0;;;;;:::i;:::-;;:::i;8142:311::-;2343:24;2356:10;2343:12;:24::i;:::-;2335:48;;;;-1:-1:-1;;;2335:48:0;;;;;;;:::i;:::-;;;;;;;;;8277:3:::1;8258:22:::0;::::1;8250:71;;;;-1:-1:-1::0;;;8250:71:0::1;;;;;;;:::i;:::-;8337:9;8332:114;8350:20:::0;;::::1;8332:114;;;8428:6;8392:19;:33;8412:9;;8422:1;8412:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8392:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8392:33:0;:42;;-1:-1:-1;;8392:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8372:3:::1;::::0;::::1;:::i;:::-;;;8332:114;;;;8142:311:::0;;;:::o;7528:295::-;2343:24;2356:10;2343:12;:24::i;:::-;2335:48;;;;-1:-1:-1;;;2335:48:0;;;;;;;:::i;:::-;7655:3:::1;7636:22:::0;::::1;7628:71;;;;-1:-1:-1::0;;;7628:71:0::1;;;;;;;:::i;:::-;7715:9;7710:106;7728:20:::0;;::::1;7710:106;;;7798:6;7770:11;:25;7782:9;;7792:1;7782:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7770:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7770:25:0;:34;;-1:-1:-1;;7770:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7750:3:::1;::::0;::::1;:::i;:::-;;;7710:106;;6991:260:::0;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;7127:2:::1;7100:23;:29;;7092:75;;;::::0;-1:-1:-1;;;7092:75:0;;6427:2:1;7092:75: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:32;6598:19;;7092:75:0::1;6225:398:1::0;7092:75:0::1;7239:4;7211:23:::0;3956:12:::1;3893:1;3956:2;:12;:::i;:::-;3941:27;::::0;:12:::1;:27;:::i;:::-;7197:37;;;;:::i;:::-;7196:47;;;;:::i;:::-;7178:15;:65:::0;-1:-1:-1;6991:260:0:o;6095:216::-;6199:10;6170:4;6187:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6187:32:0;;;;;;;;;;:41;;;6244:37;6170:4;;6187:32;;6244:37;;;;6222:6;1591:25:1;;1579:2;1564:18;;1445:177;6244:37:0;;;;;;;;-1:-1:-1;6299:4:0;6095:216;;;;;:::o;3903:65::-;3956:12;3893:1;3956:2;:12;:::i;:::-;3941:27;;:12;:27;:::i;:::-;3903:65;:::o;10862:259::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;10965:21:::1;10945:17;11056:3;11023:28;11035:16:::0;10965:21;11023:28:::1;:::i;:::-;11021:38;;;;:::i;:::-;11070:43;::::0;10997:62;;-1:-1:-1;11078:10:0::1;::::0;11070:43;::::1;;;::::0;10997:62;;11070:43:::1;::::0;;;10997:62;11078:10;11070:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;6613:370:::0;-1:-1:-1;;;;;6733:19:0;;6713:4;6733:19;;;:11;:19;;;;;;;;6753:10;6733:31;;;;;;;;-1:-1:-1;;6733:52:0;6730:186;;6835:69;;;;;;;;;;;-1:-1:-1;;;6835:69:0;;;;;;;;-1:-1:-1;;;;;6835:19:0;;-1:-1:-1;6835:19:0;;;:11;:19;;;;;6855:10;6835:31;;;;;;;;;;:69;;6871:6;;6835:35;:69::i;:::-;-1:-1:-1;;;;;6801:19:0;;;;;;:11;:19;;;;;;;;6821:10;6801:31;;;;;;;:103;6730:186;6935:40;6949:6;6957:9;6968:6;6935:13;:40::i;:::-;6928:47;;6613:370;;;;;;:::o;13155:137::-;13268:9;:15;;;;3642:42;13208:7;13250:15;;;;;13208:7;;13268:15;3956:12;3893:1;3956:2;:12;:::i;:::-;3941:27;;:12;:27;:::i;:::-;13236:29;;;;:::i;:::-;:47;;;;:::i;:::-;13228:56;;13155:137;:::o;12508:223::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;12608:10:::1;:24:::0;;;12643:13:::1;:30:::0;;;12695:28:::1;12659:14:::0;12621:11;12695:28:::1;:::i;:::-;12684:8;:39:::0;-1:-1:-1;;12508:223:0:o;7831:303::-;2343:24;2356:10;2343:12;:24::i;:::-;2335:48;;;;-1:-1:-1;;;2335:48:0;;;;;;;:::i;:::-;7962:3:::1;7943:22:::0;::::1;7935:71;;;;-1:-1:-1::0;;;7935:71:0::1;;;;;;;:::i;:::-;8022:9;8017:110;8035:20:::0;;::::1;8017:110;;;8109:6;8077:15;:29;8093:9;;8103:1;8093:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8077:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8077:29:0;:38;;-1:-1:-1;;8077:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8057:3:::1;::::0;::::1;:::i;:::-;;;8017:110;;6319:122:::0;6374:4;6398:35;6406:7;-1:-1:-1;;6398:7:0;:35::i;12301:199::-;2343:24;2356:10;2343:12;:24::i;:::-;2335:48;;;;-1:-1:-1;;;2335:48:0;;;;;;;:::i;:::-;12401:14:::1;:22:::0;;;;12434:13:::1;:20:::0;;;;12465:18:::1;:27:::0;12301:199::o;2899:125::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;2982:5:::1;2973::::0;;-1:-1:-1;;;;;2973:5:0::1;2958:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;2958:29:0::1;::::0;;2998:18;;-1:-1:-1;;;;;;2998:18:0::1;::::0;;2899:125::o;11129:284::-;11220:12;2763:5;;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;11248:6:::1;11258:1;11248:11:::0;11245:95:::1;;11284:44;::::0;-1:-1:-1;;;11284:44:0;;11322:4:::1;11284:44;::::0;::::1;3874:51:1::0;-1:-1:-1;;;;;11284:29:0;::::1;::::0;::::1;::::0;3847:18:1;;11284:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11275:53;;11245:95;11357:48;::::0;-1:-1:-1;;;11357:48:0;;11386:10:::1;11357:48;::::0;::::1;9032:51:1::0;9099:18;;;9092:34;;;-1:-1:-1;;;;;11357:28:0;::::1;::::0;::::1;::::0;9005:18:1;;11357:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11421:107::-:0;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;11473:11:::1;:18:::0;;-1:-1:-1;;;;11502:18:0;-1:-1:-1;;;11502:18:0;;;11421:107::o;12739:221::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;12855:18:::1;:40:::0;;-1:-1:-1;;;;;12855:40:0;;::::1;-1:-1:-1::0;;;;;;12855:40:0;;::::1;;::::0;;;12906:21:::1;:46:::0;;;;;::::1;::::0;::::1;;::::0;;12739:221::o;6449:156::-;6529:4;6553:44;6567:10;6579:9;6590:6;6553:13;:44::i;2402:94::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2462:19:0::1;;::::0;;;2484:4:::1;2462:19;::::0;;;;;;;:26;;-1:-1:-1;;2462:26:0::1;::::0;;::::1;::::0;;2402:94::o;7259:261::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;7393:2:::1;7365:24;:30;;7357:81;;;::::0;-1:-1:-1;;;7357:81:0;;9589:2:1;7357:81:0::1;::::0;::::1;9571:21:1::0;9628:2;9608:18;;;9601:30;9667:34;9647:18;;;9640:62;-1:-1:-1;;;9718:18:1;;;9711:37;9765:19;;7357:81:0::1;9387:403:1::0;7357:81:0::1;7508:4;7479:24:::0;3956:12:::1;3893:1;3956:2;:12;:::i;:::-;3941:27;::::0;:12:::1;:27;:::i;:::-;7465:38;;;;:::i;:::-;7464:48;;;;:::i;:::-;7449:12;:63:::0;-1:-1:-1;7259:261:0:o;12968:179::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;13064:11:::1;:22:::0;;-1:-1:-1;;;;13064:22:0::1;-1:-1:-1::0;;;13064:22:0;::::1;;;;::::0;;13127:12;3956::::1;3893:1;3956:2;:12;:::i;:::-;3941:27;::::0;:12:::1;:27;:::i;:::-;13113:26;;;;:::i;:::-;13097:13;:42:::0;-1:-1:-1;;12968:179:0:o;2504:161::-;2728:4;2763:5;-1:-1:-1;;;;;2763:5:0;2261:10;2752:16;2245:38;;;;-1:-1:-1;;;2245:38:0;;;;;;;:::i;:::-;2583:5:::1;::::0;-1:-1:-1;;;;;2583:5:0;;::::1;2576:12:::0;;::::1;::::0;2568:51:::1;;;::::0;-1:-1:-1;;;2568:51:0;;9997:2:1;2568:51:0::1;::::0;::::1;9979:21:1::0;10036:2;10016:18;;;10009:30;10075:28;10055:18;;;10048:56;10121:18;;2568:51:0::1;9795:350:1::0;2568:51:0::1;-1:-1:-1::0;;;;;2630:19:0::1;2652:5;2630:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2630:27:0::1;::::0;;2504:161::o;2784:107::-;-1:-1:-1;;;;;2864:19:0;2840:4;2864:19;;;:14;:19;;;;;;;;;2784:107::o;525:192::-;611:7;647:12;639:6;;;;631:29;;;;-1:-1:-1;;;631:29:0;;;;;;;;:::i;:::-;-1:-1:-1;671:9:0;683:5;687:1;683;:5;:::i;:::-;671:17;525:192;-1:-1:-1;;;;;525:192:0:o;8461:1115::-;8573:6;;8553:4;;8573:6;;8570:63;;;8589:41;8604:6;8612:9;8623:6;8589:14;:41::i;:::-;8582:48;;;;8570:63;-1:-1:-1;;;;;8649:22:0;;;;;;:14;:22;;;;;;;;8648:23;:53;;;;-1:-1:-1;;;;;;8676:25:0;;;;;;:14;:25;;;;;;;;8675:26;8648:53;8645:127;;;8725:11;;-1:-1:-1;;;8725:11:0;;;;8717:43;;;;-1:-1:-1;;;8717:43:0;;10352:2:1;8717:43:0;;;10334:21:1;10391:2;10371:18;;;10364:30;-1:-1:-1;;;10410:18:1;;;10403:50;10470:18;;8717:43:0;10150:344:1;8717:43:0;-1:-1:-1;;;;;8789:22:0;;;;;;:14;:22;;;;;;;;8788:23;:55;;;;-1:-1:-1;;;;;;8816:27:0;;;;;;:19;:27;;;;;;;;8815:28;8788:55;:90;;;;-1:-1:-1;;;;;;8848:30:0;;;;;;:19;:30;;;;;;;;8847:31;8788:90;:111;;;;;8895:4;-1:-1:-1;;;;;8882:17:0;:9;-1:-1:-1;;;;;8882:17:0;;;8788:111;8784:230;;;8959:15;;-1:-1:-1;;;;;8925:20:0;;;;;;:9;:20;;;;;;:29;;8948:6;;8925:29;:::i;:::-;8924:50;;8916:86;;;;-1:-1:-1;;;8916:86:0;;10701:2:1;8916:86:0;;;10683:21:1;10740:2;10720:18;;;10713:30;10779:26;10759:18;;;10752:54;10823:18;;8916:86:0;10499:348:1;8916:86:0;9049:12;;9039:6;:22;;9038:51;;;-1:-1:-1;;;;;;9066:23:0;;;;;;:15;:23;;;;;;;;9038:51;:81;;;-1:-1:-1;;;;;;9093:26:0;;;;;;:15;:26;;;;;;;;9038:81;9030:115;;;;-1:-1:-1;;;9030:115:0;;11054:2:1;9030:115:0;;;11036:21:1;11093:2;11073:18;;;11066:30;-1:-1:-1;;;11112:18:1;;;11105:51;11173:18;;9030:115:0;10852:345:1;9030:115:0;9161:16;:14;:16::i;:::-;9158:35;;;9180:10;:8;:10::i;:::-;9225:53;;;;;;;;;;;-1:-1:-1;;;9225:53:0;;;;;;;;-1:-1:-1;;;;;9225:17:0;;-1:-1:-1;9225:17:0;;;:9;:17;;;;;;;;:53;;9247:6;;9225:21;:53::i;:::-;-1:-1:-1;;;;;9205:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9317:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9340:22:0;;;;;;:11;:22;;;;;;;;9317:45;9316:93;;9375:34;9383:6;9391;9399:9;9375:7;:34::i;:::-;9316:93;;;9366:6;9316:93;-1:-1:-1;;;;;9445:20:0;;;;;;:9;:20;;;;;;9291:118;;-1:-1:-1;9445:40:0;;9291:118;9445:24;:40::i;:::-;-1:-1:-1;;;;;9422:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9503:43;;;;;;;;;;9531:14;1591:25:1;;1579:2;1564:18;;1445:177;9503:43:0;;;;;;;;-1:-1:-1;9564:4:0;;8461:1115;-1:-1:-1;;;;8461:1115:0:o;9588:330::-;9718:53;;;;;;;;;;;-1:-1:-1;;;9718:53:0;;;;;;;;-1:-1:-1;;;;;9718:17:0;;9681:4;9718:17;;;:9;:17;;;;;;;:53;;9740:6;;9718:21;:53::i;:::-;-1:-1:-1;;;;;9698:17:0;;;;;;;:9;:17;;;;;;:73;;;;9805:20;;;;;;;:32;;9830:6;9805:24;:32::i;:::-;-1:-1:-1;;;;;9782:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9853:35;;;;;;;;;;9881:6;1591:25:1;;1579:2;1564:18;;1445:177;9853:35:0;;;;;;;;-1:-1:-1;9906:4:0;9588:330;;;;;:::o;10657:197::-;10706:4;10730:10;-1:-1:-1;;;;;10744:4:0;10730:18;;;;;:38;;-1:-1:-1;10762:6:0;;;;10761:7;10730:38;:62;;;;-1:-1:-1;10781:11:0;;-1:-1:-1;;;10781:11:0;;;;10730:62;:116;;;;-1:-1:-1;;10833:13:0;;10823:4;10805:24;;;;:9;:24;;;;;;:41;;;10657:197::o;11536:757::-;4969:6;:13;;-1:-1:-1;;4969:13:0;4978:4;4969:13;;;11611:16:::1;::::0;;11625:1:::1;11611:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11611:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11611:16:0::1;11587:40;;11656:4;11638;11643:1;11638:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11638:23:0::1;;;-1:-1:-1::0;;;;;11638:23:0::1;;;::::0;::::1;11682:4;11672;11677:1;11672:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11672:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11699:6:::1;::::0;11771:13:::1;::::0;11699:189:::1;::::0;-1:-1:-1;;;11699:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;11771:13;11699:6:::1;::::0;11815:4;;11842::::1;::::0;11862:15:::1;::::0;11699:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12009:8:0::1;::::0;11995:10:::1;::::0;11921:21:::1;::::0;-1:-1:-1;11901:17:0::1;::::0;-1:-1:-1;11983:22:0::1;::::0;11921:21;11983:22:::1;:::i;:::-;11982:35;;;;:::i;:::-;11955:62;;12028:27;12088:8;;12071:13;;12059:9;:25;;;;:::i;:::-;12058:38;;;;:::i;:::-;12138:18;::::0;12130:61:::1;::::0;12028:68;;-1:-1:-1;12110:15:0::1;::::0;-1:-1:-1;;;;;12138:18:0;;::::1;::::0;12170:16;;12110:15;12130:61;12110:15;12130:61;12170:16;12138:18;12130:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;12226:21:0::1;::::0;12218:67:::1;::::0;12109:82;;-1:-1:-1;;;;;;12226:21:0::1;::::0;12261:19;;12218:67:::1;::::0;;;12261:19;12226:21;12218:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4987:6:0;:14;;-1:-1:-1;;4987:14:0;;;-1:-1:-1;;;;;;11536:757:0:o;9926:723::-;10012:7;10035:11;;;:28;;-1:-1:-1;10050:8:0;;:13;10035:28;10032:72;;;-1:-1:-1;10086:6:0;10079:13;;10032:72;10137:18;;-1:-1:-1;;;;;10184:4:0;10171:17;;;;;;10168:154;;-1:-1:-1;10218:14:0;;10168:154;;;10263:4;-1:-1:-1;;;;;10253:14:0;:6;-1:-1:-1;;;;;10253:14:0;;10250:72;;-1:-1:-1;10297:13:0;;10250:72;10334:17;10354:62;10395:20;4553:3;;10395:20;:::i;:::-;10354:36;10379:10;10354:20;10365:8;;10354:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;10334:82;-1:-1:-1;10432:13:0;;10429:172;;10506:4;10488:24;;;;:9;:24;;;;;;:39;;10517:9;10488:28;:39::i;:::-;10479:4;10461:24;;;;:9;:24;;;;;;;:66;;;;10547:42;;-1:-1:-1;;;;;10547:42:0;;;;;;;10579:9;1591:25:1;;1579:2;1564:18;;1445:177;10547:42:0;;;;;;;;10429:172;10620:21;:6;10631:9;10620:10;:21::i;:::-;10613:28;9926:723;-1:-1:-1;;;;;;9926:723:0:o;196:181::-;254:7;;286:5;290:1;286;:5;:::i;:::-;274:17;;315:1;310;:6;;302:46;;;;-1:-1:-1;;;302:46:0;;12731:2:1;302:46:0;;;12713:21:1;12770:2;12750:18;;;12743:30;12809:29;12789:18;;;12782:57;12856:18;;302:46:0;12529:351:1;723:250:0;781:7;805:1;810;805:6;801:47;;-1:-1:-1;835:1:0;828:8;;801:47;860:9;872:5;876:1;872;:5;:::i;:::-;860:17;-1:-1:-1;905:1:0;896:5;900:1;860:17;896:5;:::i;:::-;:10;888:56;;;;-1:-1:-1;;;888:56:0;;13087:2:1;888:56:0;;;13069:21:1;13126:2;13106:18;;;13099:30;13165:34;13145:18;;;13138:62;-1:-1:-1;;;13216:18:1;;;13209:31;13257:19;;888:56:0;12885:397:1;979:132:0;1037:7;1064:39;1068:1;1071;1064:39;;;;;;;;;;;;;;;;;:3;:39::i;383:136::-;441:7;468:43;472:1;475;468:43;;;;;;;;;;;;;;;;;:3;:43::i;1117:189::-;1203:7;1238:12;1231:5;1223:28;;;;-1:-1:-1;;;1223:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1262:9:0;1274:5;1278:1;1274;: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;892:548::-;1004:4;1033:2;1062;1051:9;1044:21;1094:6;1088:13;1137:6;1132:2;1121:9;1117:18;1110:34;1162:1;1172:140;1186:6;1183:1;1180:13;1172:140;;;1281:14;;;1277:23;;1271:30;1247:17;;;1266:2;1243:26;1236:66;1201:10;;1172:140;;;1176:3;1361:1;1356:2;1347:6;1336:9;1332:22;1328:31;1321:42;1431:2;1424;1420:7;1415:2;1407:6;1403:15;1399:29;1388:9;1384:45;1380:54;1372:62;;;;892:548;;;;:::o;1627:180::-;1686:6;1739:2;1727:9;1718:7;1714:23;1710:32;1707:52;;;1755:1;1752;1745:12;1707:52;-1:-1:-1;1778:23:1;;1627:180;-1:-1:-1;1627:180:1:o;1812:173::-;1880:20;;-1:-1:-1;;;;;1929:31:1;;1919:42;;1909:70;;1975:1;1972;1965:12;1909:70;1812:173;;;:::o;1990:254::-;2058:6;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2158:29;2177:9;2158:29;:::i;:::-;2148:39;2234:2;2219:18;;;;2206:32;;-1:-1:-1;;;1990:254:1:o;2441:328::-;2518:6;2526;2534;2587:2;2575:9;2566:7;2562:23;2558:32;2555:52;;;2603:1;2600;2593:12;2555:52;2626:29;2645:9;2626:29;:::i;:::-;2616:39;;2674:38;2708:2;2697:9;2693:18;2674:38;:::i;:::-;2664:48;;2759:2;2748:9;2744:18;2731:32;2721:42;;2441:328;;;;;:::o;2774:186::-;2833:6;2886:2;2874:9;2865:7;2861:23;2857:32;2854:52;;;2902:1;2899;2892:12;2854:52;2925:29;2944:9;2925:29;:::i;3154:248::-;3222:6;3230;3283:2;3271:9;3262:7;3258:23;3254:32;3251:52;;;3299:1;3296;3289:12;3251:52;-1:-1:-1;;3322:23:1;;;3392:2;3377:18;;;3364:32;;-1:-1:-1;3154:248:1:o;3407:316::-;3484:6;3492;3500;3553:2;3541:9;3532:7;3528:23;3524:32;3521:52;;;3569:1;3566;3559:12;3521:52;-1:-1:-1;;3592:23:1;;;3662:2;3647:18;;3634:32;;-1:-1:-1;3713:2:1;3698:18;;;3685:32;;3407:316;-1:-1:-1;3407: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;6628:422::-;6717:1;6760:5;6717:1;6774:270;6795:7;6785:8;6782:21;6774:270;;;6854:4;6850:1;6846:6;6842:17;6836:4;6833:27;6830:53;;;6863:18;;:::i;:::-;6913:7;6903:8;6899:22;6896:55;;;6933:16;;;;6896:55;7012:22;;;;6972:15;;;;6774:270;;;6778:3;6628:422;;;;;:::o;7055:806::-;7104:5;7134:8;7124:80;;-1:-1:-1;7175:1:1;7189:5;;7124:80;7223:4;7213:76;;-1:-1:-1;7260:1:1;7274:5;;7213:76;7305:4;7323:1;7318:59;;;;7391:1;7386:130;;;;7298:218;;7318:59;7348:1;7339:10;;7362:5;;;7386:130;7423:3;7413:8;7410:17;7407:43;;;7430:18;;:::i;:::-;-1:-1:-1;;7486:1:1;7472:16;;7501:5;;7298:218;;7600:2;7590:8;7587:16;7581:3;7575:4;7572:13;7568:36;7562:2;7552:8;7549:16;7544:2;7538:4;7535:12;7531:35;7528:77;7525:159;;;-1:-1:-1;7637:19:1;;;7669:5;;7525:159;7716:34;7741:8;7735:4;7716:34;:::i;:::-;7786:6;7782:1;7778:6;7774:19;7765:7;7762:32;7759:58;;;7797:18;;:::i;:::-;7835:20;;7055:806;-1:-1:-1;;;7055:806:1:o;7866:140::-;7924:5;7953:47;7994:4;7984:8;7980:19;7974:4;7953:47;:::i;8011:168::-;8051:7;8117:1;8113;8109:6;8105:14;8102:1;8099:21;8094:1;8087:9;8080:17;8076:45;8073:71;;;8124:18;;:::i;:::-;-1:-1:-1;8164:9:1;;8011:168::o;8184:217::-;8224:1;8250;8240:132;;8294:10;8289:3;8285:20;8282:1;8275:31;8329:4;8326:1;8319:15;8357:4;8354:1;8347:15;8240:132;-1:-1:-1;8386:9:1;;8184:217::o;8406:128::-;8473:9;;;8494:11;;;8491:37;;;8508:18;;:::i;8539:125::-;8604:9;;;8625:10;;;8622:36;;;8638:18;;:::i;8669:184::-;8739:6;8792:2;8780:9;8771:7;8767:23;8763:32;8760:52;;;8808:1;8805;8798:12;8760:52;-1:-1:-1;8831:16:1;;8669:184;-1:-1:-1;8669:184:1:o;9137:245::-;9204:6;9257:2;9245:9;9236:7;9232:23;9228:32;9225:52;;;9273:1;9270;9263:12;9225:52;9305:9;9299:16;9324:28;9346:5;9324:28;:::i;11334:980::-;11596:4;11644:3;11633:9;11629:19;11675:6;11664:9;11657:25;11701:2;11739:6;11734:2;11723:9;11719:18;11712:34;11782:3;11777:2;11766:9;11762:18;11755:31;11806:6;11841;11835:13;11872:6;11864;11857:22;11910:3;11899:9;11895:19;11888:26;;11949:2;11941:6;11937:15;11923:29;;11970:1;11980:195;11994:6;11991:1;11988:13;11980:195;;;12059:13;;-1:-1:-1;;;;;12055:39:1;12043:52;;12150:15;;;;12115:12;;;;12091:1;12009:9;11980:195;;;-1:-1:-1;;;;;;;12231:32:1;;;;12226:2;12211:18;;12204:60;-1:-1:-1;;;12295:3:1;12280:19;12273:35;12192:3;11334:980;-1:-1:-1;;;11334:980:1:o

Swarm Source

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