ETH Price: $3,413.99 (-0.70%)
Gas: 5 Gwei

Token

Link ($LINK)
 

Overview

Max Total Supply

1,000,000,000 $LINK

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
phoebemademedoit.eth
Balance
3,303,654.590245323 $LINK

Value
$0.00
0xcd92fdea7cb18bb11bd06fe0bd0f59af7d36ff53
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:
Vitalik

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-19
*/

/**
 *Submitted for verification at Etherscan.io on 2022-10-07
*/

/**


Vitalik talking about us :

https://twitter.com/VitalikButerin/status/1311525198487666688





/**


*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
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 totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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 Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Vitalik is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //UNISWAP
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Link";
    string constant _symbol = "$LINK";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply * 2 / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => bool) public isBot;

    uint256 marketingFee = 5;
    uint256 sellMarketingFee = 5;

    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 50; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        require(!isBot[sender], "Bot Address");

        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived =  amount;
        if(shouldTakeFee(sender)){
            if(sender == pair){
                amountReceived = takeFee(sender, amount,false);
            }else{
                amountReceived = takeFee(sender, amount,true);
            } 
        }


        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        uint feeAmount = isSell ? amount.mul(sellMarketingFee).div(feeDenominator) : amount.mul(marketingFee).div(feeDenominator);
        _balances[address(this)] = _balances[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
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = _balances[address(this)];
        if (amountToSwap >= (swapThreshold*2)){
            amountToSwap = swapThreshold*2;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        if (address(this).balance >= 200000000000000000){
            payable(marketingFeeReceiver).transfer(address(this).balance);
        }
      
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function manualSend() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function swapStatus (bool status) external onlyOwner {
        swapEnabled = status;
    }

    function isBots(address botAddress, bool status) external onlyOwner {      
        isBot[botAddress] = status;
    }

   function areBots(address[] memory bots_, bool status) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            isBot[bots_[i]] = status;
        }
    }

    function setFees(uint256 _MarketingFee, uint256 _sellMarketingFee) external onlyOwner {
         marketingFee = _MarketingFee;
         sellMarketingFee = _sellMarketingFee;
         require(marketingFee <= 10 && sellMarketingFee <= 10, "Must keep fees at 10% or less");
    }

    function setThreshold(uint256 _treshold) external onlyOwner {
         swapThreshold = _treshold;
    }

    function setFeeReceivers(address _marketingFeeReceiver) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
    }
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":"_maxWalletAmount","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":"bots_","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"areBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000870565b633b9aca00620000bd9190620008c1565b60035560646002600354620000d39190620008c1565b620000df919062000951565b6004556005600a556005600b556064600c5533600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff021916908315150217905550603261271060035462000161919062000951565b6200016d9190620008c1565b6010553480156200017d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b79190620009f3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000340573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003669190620009f3565b306040518363ffffffff1660e01b81526004016200038692919062000a36565b6020604051808303816000875af1158015620003a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cc9190620009f3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006c7919062000a74565b60405180910390a35062000a91565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000764578086048111156200073c576200073b620006d6565b5b60018516156200074c5780820291505b80810290506200075c8562000705565b94506200071c565b94509492505050565b6000826200077f576001905062000852565b816200078f576000905062000852565b8160018114620007a85760028114620007b357620007e9565b600191505062000852565b60ff841115620007c857620007c7620006d6565b5b8360020a915084821115620007e257620007e1620006d6565b5b5062000852565b5060208310610133831016604e8410600b8410161715620008235782820a9050838111156200081d576200081c620006d6565b5b62000852565b62000832848484600162000712565b925090508184048111156200084c576200084b620006d6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200087d8262000859565b91506200088a8362000863565b9250620008b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200076d565b905092915050565b6000620008ce8262000859565b9150620008db8362000859565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009175762000916620006d6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200095e8262000859565b91506200096b8362000859565b9250826200097e576200097d62000922565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009bb826200098e565b9050919050565b620009cd81620009ae565b8114620009d957600080fd5b50565b600081519050620009ed81620009c2565b92915050565b60006020828403121562000a0c5762000a0b62000989565b5b600062000a1c84828501620009dc565b91505092915050565b62000a3081620009ae565b82525050565b600060408201905062000a4d600083018562000a25565b62000a5c602083018462000a25565b9392505050565b62000a6e8162000859565b82525050565b600060208201905062000a8b600083018462000a63565b92915050565b612d1a8062000aa16000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e99190612061565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b6040516102149190612115565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121d5565b610718565b6040516102519190612230565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061224b565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123ff565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce9190612061565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061245b565b61099f565b60405161030b9190612230565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124ae565b610b9f565b6040516103489190612230565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124f7565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124ae565b610c01565b6040516103b09190612230565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124ae565b610c21565b6040516103ed9190612230565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b6040516104189190612061565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612230565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124ae565b610c6d565b6040516104809190612061565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612512565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb919061254e565b60405180910390f35b34801561050057600080fd5b50610509610e07565b6040516105169190612115565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190612569565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a919061254e565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121d5565b610ebc565b6040516105a79190612230565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612596565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125d6565b610f74565b60405161060d9190612061565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124ae565b610ffb565b005b34801561064b57600080fd5b50610654611087565b604051610661919061254e565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c9190612569565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc9190612675565b60405180910390f35b60105481565b60606040518060400160405280600481526020017f4c696e6b00000000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f89190612061565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126dc565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612748565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126dc565b60405180910390fd5b60005b825181101561099057816009600085848151811061092457610923612768565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127c6565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126dc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f919061254e565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126dc565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f244c494e4b000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126dc565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126dc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126dc565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126dc565b60405180910390fd5b6103e881600354611106919061280f565b6111109190612898565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99190612115565b60405180910390fd5b506000838561120191906128c9565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116ce565b90506116c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128fd565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906129c5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090612a31565b60405180910390fd5b6114616118a1565b1561146f5761146e611978565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca8565b156115c757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156115b7576115b085846000611cff565b90506115c6565b6115c385846001611cff565b90505b5b61161981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b99190612061565b60405180910390a360019150505b9392505050565b6000611759826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188e9190612061565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190e5750601160009054906101000a900460ff16155b80156119265750600f60149054906101000a900460ff165b80156119735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e6919061280f565b81106119fe5760026010546119fb919061280f565b90505b6000600267ffffffffffffffff811115611a1b57611a1a612290565b5b604051908082528060200260200182016040528015611a495781602001602082028036833780820191505090505b5090503081600081518110611a6157611a60612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612a66565b81600181518110611b4057611b3f612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bde959493929190612b8c565b600060405180830381600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8957600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3557611d30600c54611d22600a5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b611d5f565b611d5e600c54611d50600b5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b5b9050611db381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e539190612061565b60405180910390a3611e6e8185611f9b90919063ffffffff16565b9150509392505050565b6000808284611e8791906128fd565b905083811015611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390612c32565b60405180910390fd5b8091505092915050565b600080831415611ee95760009050611f4b565b60008284611ef7919061280f565b9050828482611f069190612898565b14611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90612cc4565b60405180910390fd5b809150505b92915050565b6000611f9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe5565b905092915050565b6000611fdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239190612115565b60405180910390fd5b506000838561203b9190612898565b9050809150509392505050565b6000819050919050565b61205b81612048565b82525050565b60006020820190506120766000830184612052565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b657808201518184015260208101905061209b565b838111156120c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e78261207c565b6120f18185612087565b9350612101818560208601612098565b61210a816120cb565b840191505092915050565b6000602082019050818103600083015261212f81846120dc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121768261214b565b9050919050565b6121868161216b565b811461219157600080fd5b50565b6000813590506121a38161217d565b92915050565b6121b281612048565b81146121bd57600080fd5b50565b6000813590506121cf816121a9565b92915050565b600080604083850312156121ec576121eb612141565b5b60006121fa85828601612194565b925050602061220b858286016121c0565b9150509250929050565b60008115159050919050565b61222a81612215565b82525050565b60006020820190506122456000830184612221565b92915050565b6000806040838503121561226257612261612141565b5b6000612270858286016121c0565b9250506020612281858286016121c0565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122c8826120cb565b810181811067ffffffffffffffff821117156122e7576122e6612290565b5b80604052505050565b60006122fa612137565b905061230682826122bf565b919050565b600067ffffffffffffffff82111561232657612325612290565b5b602082029050602081019050919050565b600080fd5b600061234f61234a8461230b565b6122f0565b9050808382526020820190506020840283018581111561237257612371612337565b5b835b8181101561239b57806123878882612194565b845260208401935050602081019050612374565b5050509392505050565b600082601f8301126123ba576123b961228b565b5b81356123ca84826020860161233c565b91505092915050565b6123dc81612215565b81146123e757600080fd5b50565b6000813590506123f9816123d3565b92915050565b6000806040838503121561241657612415612141565b5b600083013567ffffffffffffffff81111561243457612433612146565b5b612440858286016123a5565b9250506020612451858286016123ea565b9150509250929050565b60008060006060848603121561247457612473612141565b5b600061248286828701612194565b935050602061249386828701612194565b92505060406124a4868287016121c0565b9150509250925092565b6000602082840312156124c4576124c3612141565b5b60006124d284828501612194565b91505092915050565b600060ff82169050919050565b6124f1816124db565b82525050565b600060208201905061250c60008301846124e8565b92915050565b60006020828403121561252857612527612141565b5b6000612536848285016123ea565b91505092915050565b6125488161216b565b82525050565b6000602082019050612563600083018461253f565b92915050565b60006020828403121561257f5761257e612141565b5b600061258d848285016121c0565b91505092915050565b600080604083850312156125ad576125ac612141565b5b60006125bb85828601612194565b92505060206125cc858286016123ea565b9150509250929050565b600080604083850312156125ed576125ec612141565b5b60006125fb85828601612194565b925050602061260c85828601612194565b9150509250929050565b6000819050919050565b600061263b6126366126318461214b565b612616565b61214b565b9050919050565b600061264d82612620565b9050919050565b600061265f82612642565b9050919050565b61266f81612654565b82525050565b600060208201905061268a6000830184612666565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126c6600683612087565b91506126d182612690565b602082019050919050565b600060208201905081810360008301526126f5816126b9565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612732601d83612087565b915061273d826126fc565b602082019050919050565b6000602082019050818103600083015261276181612725565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612048565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561280457612803612797565b5b600182019050919050565b600061281a82612048565b915061282583612048565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285e5761285d612797565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128a382612048565b91506128ae83612048565b9250826128be576128bd612869565b5b828204905092915050565b60006128d482612048565b91506128df83612048565b9250828210156128f2576128f1612797565b5b828203905092915050565b600061290882612048565b915061291383612048565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294857612947612797565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129af602583612087565b91506129ba82612953565b604082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612a1b600b83612087565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a608161217d565b92915050565b600060208284031215612a7c57612a7b612141565b5b6000612a8a84828501612a51565b91505092915050565b6000819050919050565b6000612ab8612ab3612aae84612a93565b612616565b612048565b9050919050565b612ac881612a9d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b038161216b565b82525050565b6000612b158383612afa565b60208301905092915050565b6000602082019050919050565b6000612b3982612ace565b612b438185612ad9565b9350612b4e83612aea565b8060005b83811015612b7f578151612b668882612b09565b9750612b7183612b21565b925050600181019050612b52565b5085935050505092915050565b600060a082019050612ba16000830188612052565b612bae6020830187612abf565b8181036040830152612bc08186612b2e565b9050612bcf606083018561253f565b612bdc6080830184612052565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c1c601b83612087565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602183612087565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b905091905056fea2646970667358221220048028b6c560e904a3b03fa0ad0ffbb42845f3aaf909ef64ab64ce492a94adb664736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e99190612061565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b6040516102149190612115565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121d5565b610718565b6040516102519190612230565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061224b565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123ff565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce9190612061565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061245b565b61099f565b60405161030b9190612230565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124ae565b610b9f565b6040516103489190612230565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124f7565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124ae565b610c01565b6040516103b09190612230565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124ae565b610c21565b6040516103ed9190612230565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b6040516104189190612061565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612230565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124ae565b610c6d565b6040516104809190612061565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612512565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb919061254e565b60405180910390f35b34801561050057600080fd5b50610509610e07565b6040516105169190612115565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190612569565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a919061254e565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121d5565b610ebc565b6040516105a79190612230565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612596565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125d6565b610f74565b60405161060d9190612061565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124ae565b610ffb565b005b34801561064b57600080fd5b50610654611087565b604051610661919061254e565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c9190612569565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc9190612675565b60405180910390f35b60105481565b60606040518060400160405280600481526020017f4c696e6b00000000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f89190612061565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126dc565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612748565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126dc565b60405180910390fd5b60005b825181101561099057816009600085848151811061092457610923612768565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127c6565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126dc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f919061254e565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126dc565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f244c494e4b000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126dc565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126dc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126dc565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126dc565b60405180910390fd5b6103e881600354611106919061280f565b6111109190612898565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99190612115565b60405180910390fd5b506000838561120191906128c9565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116ce565b90506116c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128fd565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906129c5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090612a31565b60405180910390fd5b6114616118a1565b1561146f5761146e611978565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca8565b156115c757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156115b7576115b085846000611cff565b90506115c6565b6115c385846001611cff565b90505b5b61161981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b99190612061565b60405180910390a360019150505b9392505050565b6000611759826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188e9190612061565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190e5750601160009054906101000a900460ff16155b80156119265750600f60149054906101000a900460ff165b80156119735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e6919061280f565b81106119fe5760026010546119fb919061280f565b90505b6000600267ffffffffffffffff811115611a1b57611a1a612290565b5b604051908082528060200260200182016040528015611a495781602001602082028036833780820191505090505b5090503081600081518110611a6157611a60612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612a66565b81600181518110611b4057611b3f612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bde959493929190612b8c565b600060405180830381600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8957600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3557611d30600c54611d22600a5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b611d5f565b611d5e600c54611d50600b5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b5b9050611db381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e539190612061565b60405180910390a3611e6e8185611f9b90919063ffffffff16565b9150509392505050565b6000808284611e8791906128fd565b905083811015611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390612c32565b60405180910390fd5b8091505092915050565b600080831415611ee95760009050611f4b565b60008284611ef7919061280f565b9050828482611f069190612898565b14611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90612cc4565b60405180910390fd5b809150505b92915050565b6000611f9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe5565b905092915050565b6000611fdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239190612115565b60405180910390fd5b506000838561203b9190612898565b9050809150509392505050565b6000819050919050565b61205b81612048565b82525050565b60006020820190506120766000830184612052565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b657808201518184015260208101905061209b565b838111156120c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e78261207c565b6120f18185612087565b9350612101818560208601612098565b61210a816120cb565b840191505092915050565b6000602082019050818103600083015261212f81846120dc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121768261214b565b9050919050565b6121868161216b565b811461219157600080fd5b50565b6000813590506121a38161217d565b92915050565b6121b281612048565b81146121bd57600080fd5b50565b6000813590506121cf816121a9565b92915050565b600080604083850312156121ec576121eb612141565b5b60006121fa85828601612194565b925050602061220b858286016121c0565b9150509250929050565b60008115159050919050565b61222a81612215565b82525050565b60006020820190506122456000830184612221565b92915050565b6000806040838503121561226257612261612141565b5b6000612270858286016121c0565b9250506020612281858286016121c0565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122c8826120cb565b810181811067ffffffffffffffff821117156122e7576122e6612290565b5b80604052505050565b60006122fa612137565b905061230682826122bf565b919050565b600067ffffffffffffffff82111561232657612325612290565b5b602082029050602081019050919050565b600080fd5b600061234f61234a8461230b565b6122f0565b9050808382526020820190506020840283018581111561237257612371612337565b5b835b8181101561239b57806123878882612194565b845260208401935050602081019050612374565b5050509392505050565b600082601f8301126123ba576123b961228b565b5b81356123ca84826020860161233c565b91505092915050565b6123dc81612215565b81146123e757600080fd5b50565b6000813590506123f9816123d3565b92915050565b6000806040838503121561241657612415612141565b5b600083013567ffffffffffffffff81111561243457612433612146565b5b612440858286016123a5565b9250506020612451858286016123ea565b9150509250929050565b60008060006060848603121561247457612473612141565b5b600061248286828701612194565b935050602061249386828701612194565b92505060406124a4868287016121c0565b9150509250925092565b6000602082840312156124c4576124c3612141565b5b60006124d284828501612194565b91505092915050565b600060ff82169050919050565b6124f1816124db565b82525050565b600060208201905061250c60008301846124e8565b92915050565b60006020828403121561252857612527612141565b5b6000612536848285016123ea565b91505092915050565b6125488161216b565b82525050565b6000602082019050612563600083018461253f565b92915050565b60006020828403121561257f5761257e612141565b5b600061258d848285016121c0565b91505092915050565b600080604083850312156125ad576125ac612141565b5b60006125bb85828601612194565b92505060206125cc858286016123ea565b9150509250929050565b600080604083850312156125ed576125ec612141565b5b60006125fb85828601612194565b925050602061260c85828601612194565b9150509250929050565b6000819050919050565b600061263b6126366126318461214b565b612616565b61214b565b9050919050565b600061264d82612620565b9050919050565b600061265f82612642565b9050919050565b61266f81612654565b82525050565b600060208201905061268a6000830184612666565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126c6600683612087565b91506126d182612690565b602082019050919050565b600060208201905081810360008301526126f5816126b9565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612732601d83612087565b915061273d826126fc565b602082019050919050565b6000602082019050818103600083015261276181612725565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612048565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561280457612803612797565b5b600182019050919050565b600061281a82612048565b915061282583612048565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285e5761285d612797565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128a382612048565b91506128ae83612048565b9250826128be576128bd612869565b5b828204905092915050565b60006128d482612048565b91506128df83612048565b9250828210156128f2576128f1612797565b5b828203905092915050565b600061290882612048565b915061291383612048565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294857612947612797565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129af602583612087565b91506129ba82612953565b604082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612a1b600b83612087565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a608161217d565b92915050565b600060208284031215612a7c57612a7b612141565b5b6000612a8a84828501612a51565b91505092915050565b6000819050919050565b6000612ab8612ab3612aae84612a93565b612616565b612048565b9050919050565b612ac881612a9d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b038161216b565b82525050565b6000612b158383612afa565b60208301905092915050565b6000602082019050919050565b6000612b3982612ace565b612b438185612ad9565b9350612b4e83612aea565b8060005b83811015612b7f578151612b668882612b09565b9750612b7183612b21565b925050600181019050612b52565b5085935050505092915050565b600060a082019050612ba16000830188612052565b612bae6020830187612abf565b8181036040830152612bc08186612b2e565b9050612bcf606083018561253f565b612bdc6080830184612052565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c1c601b83612087565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602183612087565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b905091905056fea2646970667358221220048028b6c560e904a3b03fa0ad0ffbb42845f3aaf909ef64ab64ce492a94adb664736f6c634300080b0033

Deployed Bytecode Sourcemap

4279:7759:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5255:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6222:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6644:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11428:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11237:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5952:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7162:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2517:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6046:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4951:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6868:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4679:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5218:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6392:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2626:131;;;;;;;;;;;;;:::i;:::-;;11011:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6308:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6132:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11716:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5190:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6998:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11111:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6503:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11829:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5102:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10861:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10742:111;;;;;;;;;;;;;:::i;:::-;;5159:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5255:56;;;;:::o;6222:80::-;6270:13;6294:5;;;;;;;;;;;;;;;;;6287:12;;6222:80;:::o;6644:216::-;6719:4;6771:6;6736:11;:23;6748:10;6736:23;;;;;;;;;;;;;;;:32;6760:7;6736:32;;;;;;;;;;;;;;;:41;;;;6814:7;6793:37;;6802:10;6793:37;;;6823:6;6793:37;;;;;;:::i;:::-;;;;;;;;6848:4;6841:11;;6644:216;;;;:::o;11428:280::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11541:13:::1;11526:12;:28;;;;11585:17;11566:16;:36;;;;11638:2;11622:12:::0;::::1;:18;;:44;;;;;11664:2;11644:16;;:22;;11622:44;11614:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;11428:280:::0;;:::o;11237:183::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11324:9:::1;11319:94;11343:5;:12;11339:1;:16;11319:94;;;11395:6;11377:5;:15;11383:5;11389:1;11383:8;;;;;;;;:::i;:::-;;;;;;;;11377:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11357:3;;;;;:::i;:::-;;;;11319:94;;;;11237:183:::0;;:::o;5952:88::-;6007:7;6025:12;;6018:19;;5952:88;:::o;7162:370::-;7262:4;7317:17;7282:11;:19;7294:6;7282:19;;;;;;;;;;;;;;;:31;7302:10;7282:31;;;;;;;;;;;;;;;;:52;7279:186;;7384:69;7420:6;7384:69;;;;;;;;;;;;;;;;;:11;:19;7396:6;7384:19;;;;;;;;;;;;;;;:31;7404:10;7384:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7350:11;:19;7362:6;7350:19;;;;;;;;;;;;;;;:31;7370:10;7350:31;;;;;;;;;;;;;;;:103;;;;7279:186;7484:40;7498:6;7506:9;7517:6;7484:13;:40::i;:::-;7477:47;;7162:370;;;;;:::o;2517:103::-;2572:4;2607:5;;;;;;;;;;;2596:16;;:7;:16;;;2589:23;;2517:103;;;:::o;6046:80::-;6098:5;4606:1;6107:16;;6046:80;:::o;4951:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;6868:122::-;6923:4;6947:35;6955:7;6964:17;6947:7;:35::i;:::-;6940:42;;6868:122;;;:::o;4679:56::-;;;;:::o;5218:30::-;;;;;;;;;;;;;:::o;6392:105::-;6458:7;6476:9;:18;6486:7;6476:18;;;;;;;;;;;;;;;;6469:25;;6392:105;;;:::o;2626:131::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2699:1:::1;2683:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2717:32;2746:1;2717:32;;;;;;:::i;:::-;;;;;;;;2626:131::o:0;11011:92::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11089:6:::1;11075:11;;:20;;;;;;;;;;;;;;;;;;11011:92:::0;:::o;6308:78::-;6360:7;6378:5;;;;;;;;;;;6371:12;;6308:78;:::o;6132:84::-;6182:13;6206:7;;;;;;;;;;;;;;;;;6199:14;;6132:84;:::o;11716:105::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11804:9:::1;11788:13;:25;;;;11716:105:::0;:::o;5190:19::-;;;;;;;;;;;;;:::o;6998:156::-;7078:4;7102:44;7116:10;7128:9;7139:6;7102:13;:44::i;:::-;7095:51;;6998:156;;;;:::o;11111:119::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11216:6:::1;11196:5;:17;11202:10;11196:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11111:119:::0;;:::o;6503:133::-;6587:7;6605:11;:19;6617:6;6605:19;;;;;;;;;;;;;;;:28;6625:7;6605:28;;;;;;;;;;;;;;;;6598:35;;6503:133;;;;:::o;11829:138::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11938:21:::1;11915:20;;:44;;;;;;;;;;;;;;;;;;11829:138:::0;:::o;5102:48::-;;;;;;;;;;;;;:::o;10861:142::-;2470:19;2478:10;2470:7;:19::i;:::-;2462:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10991:4:::1;10973:13;10958:12;;:28;;;;:::i;:::-;10957:38;;;;:::i;:::-;10938:16;:57;;;;10861:142:::0;:::o;10742:111::-;10792:20;;;;;;;;;;;10784:38;;:61;10823:21;10784:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10742:111::o;5159:24::-;;;;;;;;;;;;;:::o;606:190::-;692:7;725:1;720;:6;;728:12;712:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;752:9;768:1;764;:5;;;;:::i;:::-;752:17;;787:1;780:8;;;606:190;;;;;:::o;7540:1043::-;7632:4;7652:6;;;;;;;;;;;7649:63;;;7668:41;7683:6;7691:9;7702:6;7668:14;:41::i;:::-;7661:48;;;;7649:63;7749:4;;;;;;;;;;;7736:17;;:9;:17;;;;:38;;;;;7770:4;;;;;;;;;;;7757:17;;:9;:17;;;;7736:38;7732:200;;;7799:15;:26;7815:9;7799:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7862:16;;7852:6;7829:9;:20;7839:9;7829:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7799:79;7791:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7732:200;7961:5;:13;7967:6;7961:13;;;;;;;;;;;;;;;;;;;;;;;;;7960:14;7952:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8006:16;:14;:16::i;:::-;8003:35;;;8025:10;:8;:10::i;:::-;8003:35;8071:53;8093:6;8071:53;;;;;;;;;;;;;;;;;:9;:17;8081:6;8071:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8051:9;:17;8061:6;8051:17;;;;;;;;;;;;;;;:73;;;;8137:22;8163:6;8137:32;;8183:21;8197:6;8183:13;:21::i;:::-;8180:235;;;8233:4;;;;;;;;;;;8223:14;;:6;:14;;;8220:183;;;8274:29;8282:6;8290;8297:5;8274:7;:29::i;:::-;8257:46;;8220:183;;;8359:28;8367:6;8375;8382:4;8359:7;:28::i;:::-;8342:45;;8220:183;8180:235;8452:40;8477:14;8452:9;:20;8462:9;8452:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8429:9;:20;8439:9;8429:20;;;;;;;;;;;;;;;:63;;;;8527:9;8510:43;;8519:6;8510:43;;;8538:14;8510:43;;;;;;:::i;:::-;;;;;;;;8571:4;8564:11;;;7540:1043;;;;;;:::o;8595:330::-;8688:4;8725:53;8747:6;8725:53;;;;;;;;;;;;;;;;;:9;:17;8735:6;8725:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8705:9;:17;8715:6;8705:17;;;;;;;;;;;;;;;:73;;;;8812:32;8837:6;8812:9;:20;8822:9;8812:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8789:9;:20;8799:9;8789:20;;;;;;;;;;;;;;;:55;;;;8877:9;8860:35;;8869:6;8860:35;;;8888:6;8860:35;;;;;;:::i;:::-;;;;;;;;8913:4;8906:11;;8595:330;;;;;:::o;9466:197::-;9515:4;9553;;;;;;;;;;;9539:18;;:10;:18;;;;:38;;;;;9571:6;;;;;;;;;;;9570:7;9539:38;:62;;;;;9590:11;;;;;;;;;;;9539:62;:116;;;;;9642:13;;9614:9;:24;9632:4;9614:24;;;;;;;;;;;;;;;;:41;;9539:116;9532:123;;9466:197;:::o;9671:685::-;5368:4;5359:6;;:13;;;;;;;;;;;;;;;;;;9720:20:::1;9743:9;:24;9761:4;9743:24;;;;;;;;;;;;;;;;9720:47;;9813:1;9799:13;;:15;;;;:::i;:::-;9782:12;:33;9778:95;;9860:1;9846:13;;:15;;;;:::i;:::-;9831:30;;9778:95;9883:21;9921:1;9907:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9883:40;;9952:4;9934;9939:1;9934:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9978:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9968:4;9973:1;9968:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10004:6;;;;;;;;;;;:57;;;10076:12;10103:1;10119:4;10146;10166:15;10004:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10234:18;10209:21;:43;10205:136;;10276:20;;;;;;;;;;;10268:38;;:61;10307:21;10268:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10205:136;9709:647;;5386:5:::0;5377:6;;:14;;;;;;;;;;;;;;;;;;9671:685::o;8933:114::-;8995:4;9020:11;:19;9032:6;9020:19;;;;;;;;;;;;;;;;;;;;;;;;;9019:20;9012:27;;8933:114;;;:::o;9055:403::-;9135:7;9155:14;9172:6;:104;;9232:44;9261:14;;9232:24;9243:12;;9232:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;9172:104;;;9181:48;9214:14;;9181:28;9192:16;;9181:6;:10;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;9172:104;9155:121;;9314:39;9343:9;9314;:24;9332:4;9314:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9287:9;:24;9305:4;9287:24;;;;;;;;;;;;;;;:66;;;;9394:4;9369:42;;9378:6;9369:42;;;9401:9;9369:42;;;;;;:::i;:::-;;;;;;;;9429:21;9440:9;9429:6;:10;;:21;;;;:::i;:::-;9422:28;;;9055:403;;;;;:::o;279:179::-;337:7;357:9;373:1;369;:5;;;;:::i;:::-;357:17;;398:1;393;:6;;385:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;449:1;442:8;;;279:179;;;;:::o;802:246::-;860:7;889:1;884;:6;880:47;;;914:1;907:8;;;;880:47;937:9;953:1;949;:5;;;;:::i;:::-;937:17;;982:1;977;973;:5;;;;:::i;:::-;:10;965:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1039:1;1032:8;;;802:246;;;;;:::o;1054:132::-;1112:7;1139:39;1143:1;1146;1139:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1132:46;;1054:132;;;;:::o;464:136::-;522:7;549:43;553:1;556;549:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;542:50;;464:136;;;;:::o;1192:189::-;1278:7;1310:1;1306;:5;1313:12;1298:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1337:9;1353:1;1349;:5;;;;:::i;:::-;1337:17;;1372:1;1365:8;;;1192:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:117::-;4435:1;4432;4425:12;4449:180;4497:77;4494:1;4487:88;4594:4;4591:1;4584:15;4618:4;4615:1;4608:15;4635:281;4718:27;4740:4;4718:27;:::i;:::-;4710:6;4706:40;4848:6;4836:10;4833:22;4812:18;4800:10;4797:34;4794:62;4791:88;;;4859:18;;:::i;:::-;4791:88;4899:10;4895:2;4888:22;4678:238;4635:281;;:::o;4922:129::-;4956:6;4983:20;;:::i;:::-;4973:30;;5012:33;5040:4;5032:6;5012:33;:::i;:::-;4922:129;;;:::o;5057:311::-;5134:4;5224:18;5216:6;5213:30;5210:56;;;5246:18;;:::i;:::-;5210:56;5296:4;5288:6;5284:17;5276:25;;5356:4;5350;5346:15;5338:23;;5057:311;;;:::o;5374:117::-;5483:1;5480;5473:12;5514:710;5610:5;5635:81;5651:64;5708:6;5651:64;:::i;:::-;5635:81;:::i;:::-;5626:90;;5736:5;5765:6;5758:5;5751:21;5799:4;5792:5;5788:16;5781:23;;5852:4;5844:6;5840:17;5832:6;5828:30;5881:3;5873:6;5870:15;5867:122;;;5900:79;;:::i;:::-;5867:122;6015:6;5998:220;6032:6;6027:3;6024:15;5998:220;;;6107:3;6136:37;6169:3;6157:10;6136:37;:::i;:::-;6131:3;6124:50;6203:4;6198:3;6194:14;6187:21;;6074:144;6058:4;6053:3;6049:14;6042:21;;5998:220;;;6002:21;5616:608;;5514:710;;;;;:::o;6247:370::-;6318:5;6367:3;6360:4;6352:6;6348:17;6344:27;6334:122;;6375:79;;:::i;:::-;6334:122;6492:6;6479:20;6517:94;6607:3;6599:6;6592:4;6584:6;6580:17;6517:94;:::i;:::-;6508:103;;6324:293;6247:370;;;;:::o;6623:116::-;6693:21;6708:5;6693:21;:::i;:::-;6686:5;6683:32;6673:60;;6729:1;6726;6719:12;6673:60;6623:116;:::o;6745:133::-;6788:5;6826:6;6813:20;6804:29;;6842:30;6866:5;6842:30;:::i;:::-;6745:133;;;;:::o;6884:678::-;6974:6;6982;7031:2;7019:9;7010:7;7006:23;7002:32;6999:119;;;7037:79;;:::i;:::-;6999:119;7185:1;7174:9;7170:17;7157:31;7215:18;7207:6;7204:30;7201:117;;;7237:79;;:::i;:::-;7201:117;7342:78;7412:7;7403:6;7392:9;7388:22;7342:78;:::i;:::-;7332:88;;7128:302;7469:2;7495:50;7537:7;7528:6;7517:9;7513:22;7495:50;:::i;:::-;7485:60;;7440:115;6884:678;;;;;:::o;7568:619::-;7645:6;7653;7661;7710:2;7698:9;7689:7;7685:23;7681:32;7678:119;;;7716:79;;:::i;:::-;7678:119;7836:1;7861:53;7906:7;7897:6;7886:9;7882:22;7861:53;:::i;:::-;7851:63;;7807:117;7963:2;7989:53;8034:7;8025:6;8014:9;8010:22;7989:53;:::i;:::-;7979:63;;7934:118;8091:2;8117:53;8162:7;8153:6;8142:9;8138:22;8117:53;:::i;:::-;8107:63;;8062:118;7568:619;;;;;:::o;8193:329::-;8252:6;8301:2;8289:9;8280:7;8276:23;8272:32;8269:119;;;8307:79;;:::i;:::-;8269:119;8427:1;8452:53;8497:7;8488:6;8477:9;8473:22;8452:53;:::i;:::-;8442:63;;8398:117;8193:329;;;;:::o;8528:86::-;8563:7;8603:4;8596:5;8592:16;8581:27;;8528:86;;;:::o;8620:112::-;8703:22;8719:5;8703:22;:::i;:::-;8698:3;8691:35;8620:112;;:::o;8738:214::-;8827:4;8865:2;8854:9;8850:18;8842:26;;8878:67;8942:1;8931:9;8927:17;8918:6;8878:67;:::i;:::-;8738:214;;;;:::o;8958:323::-;9014:6;9063:2;9051:9;9042:7;9038:23;9034:32;9031:119;;;9069:79;;:::i;:::-;9031:119;9189:1;9214:50;9256:7;9247:6;9236:9;9232:22;9214:50;:::i;:::-;9204:60;;9160:114;8958:323;;;;:::o;9287:118::-;9374:24;9392:5;9374:24;:::i;:::-;9369:3;9362:37;9287:118;;:::o;9411:222::-;9504:4;9542:2;9531:9;9527:18;9519:26;;9555:71;9623:1;9612:9;9608:17;9599:6;9555:71;:::i;:::-;9411:222;;;;:::o;9639:329::-;9698:6;9747:2;9735:9;9726:7;9722:23;9718:32;9715:119;;;9753:79;;:::i;:::-;9715:119;9873:1;9898:53;9943:7;9934:6;9923:9;9919:22;9898:53;:::i;:::-;9888:63;;9844:117;9639:329;;;;:::o;9974:468::-;10039:6;10047;10096:2;10084:9;10075:7;10071:23;10067:32;10064:119;;;10102:79;;:::i;:::-;10064:119;10222:1;10247:53;10292:7;10283:6;10272:9;10268:22;10247:53;:::i;:::-;10237:63;;10193:117;10349:2;10375:50;10417:7;10408:6;10397:9;10393:22;10375:50;:::i;:::-;10365:60;;10320:115;9974:468;;;;;:::o;10448:474::-;10516:6;10524;10573:2;10561:9;10552:7;10548:23;10544:32;10541:119;;;10579:79;;:::i;:::-;10541:119;10699:1;10724:53;10769:7;10760:6;10749:9;10745:22;10724:53;:::i;:::-;10714:63;;10670:117;10826:2;10852:53;10897:7;10888:6;10877:9;10873:22;10852:53;:::i;:::-;10842:63;;10797:118;10448:474;;;;;:::o;10928:60::-;10956:3;10977:5;10970:12;;10928:60;;;:::o;10994:142::-;11044:9;11077:53;11095:34;11104:24;11122:5;11104:24;:::i;:::-;11095:34;:::i;:::-;11077:53;:::i;:::-;11064:66;;10994:142;;;:::o;11142:126::-;11192:9;11225:37;11256:5;11225:37;:::i;:::-;11212:50;;11142:126;;;:::o;11274:144::-;11342:9;11375:37;11406:5;11375:37;:::i;:::-;11362:50;;11274:144;;;:::o;11424:167::-;11529:55;11578:5;11529:55;:::i;:::-;11524:3;11517:68;11424:167;;:::o;11597:258::-;11708:4;11746:2;11735:9;11731:18;11723:26;;11759:89;11845:1;11834:9;11830:17;11821:6;11759:89;:::i;:::-;11597:258;;;;:::o;11861:156::-;12001:8;11997:1;11989:6;11985:14;11978:32;11861:156;:::o;12023:365::-;12165:3;12186:66;12250:1;12245:3;12186:66;:::i;:::-;12179:73;;12261:93;12350:3;12261:93;:::i;:::-;12379:2;12374:3;12370:12;12363:19;;12023:365;;;:::o;12394:419::-;12560:4;12598:2;12587:9;12583:18;12575:26;;12647:9;12641:4;12637:20;12633:1;12622:9;12618:17;12611:47;12675:131;12801:4;12675:131;:::i;:::-;12667:139;;12394:419;;;:::o;12819:179::-;12959:31;12955:1;12947:6;12943:14;12936:55;12819:179;:::o;13004:366::-;13146:3;13167:67;13231:2;13226:3;13167:67;:::i;:::-;13160:74;;13243:93;13332:3;13243:93;:::i;:::-;13361:2;13356:3;13352:12;13345:19;;13004:366;;;:::o;13376:419::-;13542:4;13580:2;13569:9;13565:18;13557:26;;13629:9;13623:4;13619:20;13615:1;13604:9;13600:17;13593:47;13657:131;13783:4;13657:131;:::i;:::-;13649:139;;13376:419;;;:::o;13801:180::-;13849:77;13846:1;13839:88;13946:4;13943:1;13936:15;13970:4;13967:1;13960:15;13987:180;14035:77;14032:1;14025:88;14132:4;14129:1;14122:15;14156:4;14153:1;14146:15;14173:233;14212:3;14235:24;14253:5;14235:24;:::i;:::-;14226:33;;14281:66;14274:5;14271:77;14268:103;;;14351:18;;:::i;:::-;14268:103;14398:1;14391:5;14387:13;14380:20;;14173:233;;;:::o;14412:348::-;14452:7;14475:20;14493:1;14475:20;:::i;:::-;14470:25;;14509:20;14527:1;14509:20;:::i;:::-;14504:25;;14697:1;14629:66;14625:74;14622:1;14619:81;14614:1;14607:9;14600:17;14596:105;14593:131;;;14704:18;;:::i;:::-;14593:131;14752:1;14749;14745:9;14734:20;;14412:348;;;;:::o;14766:180::-;14814:77;14811:1;14804:88;14911:4;14908:1;14901:15;14935:4;14932:1;14925:15;14952:185;14992:1;15009:20;15027:1;15009:20;:::i;:::-;15004:25;;15043:20;15061:1;15043:20;:::i;:::-;15038:25;;15082:1;15072:35;;15087:18;;:::i;:::-;15072:35;15129:1;15126;15122:9;15117:14;;14952:185;;;;:::o;15143:191::-;15183:4;15203:20;15221:1;15203:20;:::i;:::-;15198:25;;15237:20;15255:1;15237:20;:::i;:::-;15232:25;;15276:1;15273;15270:8;15267:34;;;15281:18;;:::i;:::-;15267:34;15326:1;15323;15319:9;15311:17;;15143:191;;;;:::o;15340:305::-;15380:3;15399:20;15417:1;15399:20;:::i;:::-;15394:25;;15433:20;15451:1;15433:20;:::i;:::-;15428:25;;15587:1;15519:66;15515:74;15512:1;15509:81;15506:107;;;15593:18;;:::i;:::-;15506:107;15637:1;15634;15630:9;15623:16;;15340:305;;;;:::o;15651:224::-;15791:34;15787:1;15779:6;15775:14;15768:58;15860:7;15855:2;15847:6;15843:15;15836:32;15651:224;:::o;15881:366::-;16023:3;16044:67;16108:2;16103:3;16044:67;:::i;:::-;16037:74;;16120:93;16209:3;16120:93;:::i;:::-;16238:2;16233:3;16229:12;16222:19;;15881:366;;;:::o;16253:419::-;16419:4;16457:2;16446:9;16442:18;16434:26;;16506:9;16500:4;16496:20;16492:1;16481:9;16477:17;16470:47;16534:131;16660:4;16534:131;:::i;:::-;16526:139;;16253:419;;;:::o;16678:161::-;16818:13;16814:1;16806:6;16802:14;16795:37;16678:161;:::o;16845:366::-;16987:3;17008:67;17072:2;17067:3;17008:67;:::i;:::-;17001:74;;17084:93;17173:3;17084:93;:::i;:::-;17202:2;17197:3;17193:12;17186:19;;16845:366;;;:::o;17217:419::-;17383:4;17421:2;17410:9;17406:18;17398:26;;17470:9;17464:4;17460:20;17456:1;17445:9;17441:17;17434:47;17498:131;17624:4;17498:131;:::i;:::-;17490:139;;17217:419;;;:::o;17642:143::-;17699:5;17730:6;17724:13;17715:22;;17746:33;17773:5;17746:33;:::i;:::-;17642:143;;;;:::o;17791:351::-;17861:6;17910:2;17898:9;17889:7;17885:23;17881:32;17878:119;;;17916:79;;:::i;:::-;17878:119;18036:1;18061:64;18117:7;18108:6;18097:9;18093:22;18061:64;:::i;:::-;18051:74;;18007:128;17791:351;;;;:::o;18148:85::-;18193:7;18222:5;18211:16;;18148:85;;;:::o;18239:158::-;18297:9;18330:61;18348:42;18357:32;18383:5;18357:32;:::i;:::-;18348:42;:::i;:::-;18330:61;:::i;:::-;18317:74;;18239:158;;;:::o;18403:147::-;18498:45;18537:5;18498:45;:::i;:::-;18493:3;18486:58;18403:147;;:::o;18556:114::-;18623:6;18657:5;18651:12;18641:22;;18556:114;;;:::o;18676:184::-;18775:11;18809:6;18804:3;18797:19;18849:4;18844:3;18840:14;18825:29;;18676:184;;;;:::o;18866:132::-;18933:4;18956:3;18948:11;;18986:4;18981:3;18977:14;18969:22;;18866:132;;;:::o;19004:108::-;19081:24;19099:5;19081:24;:::i;:::-;19076:3;19069:37;19004:108;;:::o;19118:179::-;19187:10;19208:46;19250:3;19242:6;19208:46;:::i;:::-;19286:4;19281:3;19277:14;19263:28;;19118:179;;;;:::o;19303:113::-;19373:4;19405;19400:3;19396:14;19388:22;;19303:113;;;:::o;19452:732::-;19571:3;19600:54;19648:5;19600:54;:::i;:::-;19670:86;19749:6;19744:3;19670:86;:::i;:::-;19663:93;;19780:56;19830:5;19780:56;:::i;:::-;19859:7;19890:1;19875:284;19900:6;19897:1;19894:13;19875:284;;;19976:6;19970:13;20003:63;20062:3;20047:13;20003:63;:::i;:::-;19996:70;;20089:60;20142:6;20089:60;:::i;:::-;20079:70;;19935:224;19922:1;19919;19915:9;19910:14;;19875:284;;;19879:14;20175:3;20168:10;;19576:608;;;19452:732;;;;:::o;20190:831::-;20453:4;20491:3;20480:9;20476:19;20468:27;;20505:71;20573:1;20562:9;20558:17;20549:6;20505:71;:::i;:::-;20586:80;20662:2;20651:9;20647:18;20638:6;20586:80;:::i;:::-;20713:9;20707:4;20703:20;20698:2;20687:9;20683:18;20676:48;20741:108;20844:4;20835:6;20741:108;:::i;:::-;20733:116;;20859:72;20927:2;20916:9;20912:18;20903:6;20859:72;:::i;:::-;20941:73;21009:3;20998:9;20994:19;20985:6;20941:73;:::i;:::-;20190:831;;;;;;;;:::o;21027:177::-;21167:29;21163:1;21155:6;21151:14;21144:53;21027:177;:::o;21210:366::-;21352:3;21373:67;21437:2;21432:3;21373:67;:::i;:::-;21366:74;;21449:93;21538:3;21449:93;:::i;:::-;21567:2;21562:3;21558:12;21551:19;;21210:366;;;:::o;21582:419::-;21748:4;21786:2;21775:9;21771:18;21763:26;;21835:9;21829:4;21825:20;21821:1;21810:9;21806:17;21799:47;21863:131;21989:4;21863:131;:::i;:::-;21855:139;;21582:419;;;:::o;22007:220::-;22147:34;22143:1;22135:6;22131:14;22124:58;22216:3;22211:2;22203:6;22199:15;22192:28;22007:220;:::o;22233:366::-;22375:3;22396:67;22460:2;22455:3;22396:67;:::i;:::-;22389:74;;22472:93;22561:3;22472:93;:::i;:::-;22590:2;22585:3;22581:12;22574:19;;22233:366;;;:::o;22605:419::-;22771:4;22809:2;22798:9;22794:18;22786:26;;22858:9;22852:4;22848:20;22844:1;22833:9;22829:17;22822:47;22886:131;23012:4;22886:131;:::i;:::-;22878:139;;22605:419;;;:::o

Swarm Source

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