ETH Price: $3,166.92 (+2.23%)

Token

Mtkk Token (MTKK)
 

Overview

Max Total Supply

100,000 MTKK

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
versian.eth
Balance
559.72552065 MTKK

Value
$0.00
0xa5f6d896e8b4d29ac6e5d8c4b26f8d2073ac90ae
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:
MtkkToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

//Mtkk 

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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);
}

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract MtkkToken is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet = payable(msg.sender);

    uint256 private _initialTax=25;
    uint256 private _finalTax=25;
    uint256 private _reduceTaxCountdown=1000;
    uint256 private _preventSwapBefore=960;   
    uint256 private _taxBots = 65;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100_000 * 10**_decimals;
    string private constant _name = "Mtkk Token";
    string private constant _symbol = "MTKK";

    uint256 public _maxTxAmount = 2_000 * 10**_decimals;
    uint256 public _maxWalletSize = 2_000 * 10**_decimals;
    uint256 public _taxSwap=250 * 10**_decimals;
    

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    address _marketingWallet;
    address _developmentWallet;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _developmentWallet = 0xC87006Ac23Fc50809B88a0314620fe5E6Ff7a753;
        _marketingWallet = 0xC87006Ac23Fc50809B88a0314620fe5E6Ff7a753;
        uint256 _marketingTokens = _tTotal.mul(8).div(100);
        _balances[_marketingWallet] = _marketingTokens;
        _balances[_msgSender()] = _tTotal - _marketingTokens;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != _taxWallet && to != _taxWallet && 
            from != _marketingWallet && from != _developmentWallet) {
            require(tradingOpen);

            if(!bots[from])
                taxAmount = amount.mul( (_reduceTaxCountdown==0)?_finalTax:_initialTax ).div(100);
            else
                taxAmount = amount.mul(_taxBots).div(100);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _reduceTaxCountdown<=_preventSwapBefore) {
                swapTokensForEth(_taxSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function excludeMultipleFromFees(address[] memory addressesToExclude, bool toExclude) public onlyOwner {
        for(uint256 i = 0;i<addressesToExclude.length;i++)
            bots[addressesToExclude[i]] = toExclude;
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

    function manualswap() external {
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function reduceTax(uint256 newInitialTax, uint256 newFinalTax) external onlyOwner {
        require(newInitialTax < _initialTax, "Only tax reduction permitted.");
        require(newFinalTax < _finalTax, "Only tax reduction permitted.");
        _initialTax = newInitialTax;
        _finalTax = newFinalTax;
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addressesToExclude","type":"address[]"},{"internalType":"bool","name":"toExclude","type":"bool"}],"name":"excludeMultipleFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newInitialTax","type":"uint256"},{"internalType":"uint256","name":"newFinalTax","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"pure","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"}]

608060405233600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960065560196007556103e86008556103c06009556041600a556008600a62000070919062000abb565b6107d06200007f919062000b0c565b600b556008600a62000092919062000abb565b6107d0620000a1919062000b0c565b600c556008600a620000b4919062000abb565b60fa620000c2919062000b0c565b600d556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055503480156200010857600080fd5b5060006200011b620007b360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a2919062000bc1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000352919062000bc1565b6040518363ffffffff1660e01b81526004016200037192919062000c04565b6020604051808303816000875af115801562000391573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b7919062000bc1565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c87006ac23fc50809b88a0314620fe5e6ff7a753601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c87006ac23fc50809b88a0314620fe5e6ff7a753601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620004f66064620004e2600880600a620004be919062000abb565b620186a0620004ce919062000b0c565b620007bb60201b620010131790919060201c565b6200083e60201b6200108d1790919060201c565b90508060016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806008600a6200056f919062000abb565b620186a06200057f919062000b0c565b6200058b919062000c31565b600160006200059f620007b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005f36200089060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000726620007b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000785919062000abb565b620186a062000795919062000b0c565b604051620007a4919062000c7d565b60405180910390a35062000e57565b600033905090565b6000808303620007cf576000905062000838565b60008284620007df919062000b0c565b9050828482620007f0919062000cc9565b1462000833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200082a9062000d88565b60405180910390fd5b809150505b92915050565b60006200088883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008b960201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000903576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008fa919062000e33565b60405180910390fd5b506000838562000914919062000cc9565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009af5780860481111562000987576200098662000921565b5b6001851615620009975780820291505b8081029050620009a78562000950565b945062000967565b94509492505050565b600082620009ca576001905062000a9d565b81620009da576000905062000a9d565b8160018114620009f35760028114620009fe5762000a34565b600191505062000a9d565b60ff84111562000a135762000a1262000921565b5b8360020a91508482111562000a2d5762000a2c62000921565b5b5062000a9d565b5060208310610133831016604e8410600b841016171562000a6e5782820a90508381111562000a685762000a6762000921565b5b62000a9d565b62000a7d84848460016200095d565b9250905081840481111562000a975762000a9662000921565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ac88262000aa4565b915062000ad58362000aae565b925062000b047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009b8565b905092915050565b600062000b198262000aa4565b915062000b268362000aa4565b925082820262000b368162000aa4565b9150828204841483151762000b505762000b4f62000921565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b898262000b5c565b9050919050565b62000b9b8162000b7c565b811462000ba757600080fd5b50565b60008151905062000bbb8162000b90565b92915050565b60006020828403121562000bda5762000bd962000b57565b5b600062000bea8482850162000baa565b91505092915050565b62000bfe8162000b7c565b82525050565b600060408201905062000c1b600083018562000bf3565b62000c2a602083018462000bf3565b9392505050565b600062000c3e8262000aa4565b915062000c4b8362000aa4565b925082820390508181111562000c665762000c6562000921565b5b92915050565b62000c778162000aa4565b82525050565b600060208201905062000c94600083018462000c6c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cd68262000aa4565b915062000ce38362000aa4565b92508262000cf65762000cf562000c9a565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d7060218362000d01565b915062000d7d8262000d12565b604082019050919050565b6000602082019050818103600083015262000da38162000d61565b9050919050565b600081519050919050565b60005b8381101562000dd557808201518184015260208101905062000db8565b60008484015250505050565b6000601f19601f8301169050919050565b600062000dff8262000daa565b62000e0b818562000d01565b935062000e1d81856020860162000db5565b62000e288162000de1565b840191505092915050565b6000602082019050818103600083015262000e4f818462000df2565b905092915050565b6130758062000e676000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063b9a410ff1161006f578063b9a410ff146103ff578063bea1cb2714610428578063c3c8cd8014610451578063c9567bf914610468578063d34628cc1461047f578063dd62ed3e146104a857610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806331c2d847116100fd57806331c2d8471461024057806334376f3b146102695780636fc3eaec1461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612049565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612113565b610522565b6040516101a4919061216e565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf9190612198565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906121b3565b610563565b60405161020c919061216e565b60405180910390f35b34801561022157600080fd5b5061022a61063c565b6040516102379190612222565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612385565b610645565b005b34801561027557600080fd5b5061027e61076f565b60405161028b9190612198565b60405180910390f35b3480156102a057600080fd5b506102a9610775565b005b3480156102b757600080fd5b506102d260048036038101906102cd91906123ce565b610780565b6040516102df9190612198565b60405180910390f35b3480156102f457600080fd5b506102fd6107c9565b005b34801561030b57600080fd5b5061031461091c565b005b34801561032257600080fd5b5061032b610a49565b6040516103389190612198565b60405180910390f35b34801561034d57600080fd5b50610356610a4f565b604051610363919061240a565b60405180910390f35b34801561037857600080fd5b50610381610a78565b60405161038e9190612198565b60405180910390f35b3480156103a357600080fd5b506103ac610a7e565b6040516103b99190612049565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612113565b610abb565b6040516103f6919061216e565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612425565b610ad9565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612491565b610c08565b005b34801561045d57600080fd5b50610466610d32565b005b34801561047457600080fd5b5061047d610d45565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612385565b610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906124ed565b610f8c565b6040516104dc9190612198565b60405180910390f35b60606040518060400160405280600a81526020017f4d746b6b20546f6b656e00000000000000000000000000000000000000000000815250905090565b600061053661052f6110d7565b84846110df565b6001905092915050565b60006008600a610550919061268f565b620186a061055e91906126da565b905090565b60006105708484846112a8565b6106318461057c6110d7565b61062c8560405180606001604052806028815260200161301860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e26110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b659092919063ffffffff16565b6110df565b600190509392505050565b60006008905090565b61064d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190612768565b60405180910390fd5b60005b815181101561076b576000600460008484815181106106ff576106fe612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610763906127b7565b9150506106dd565b5050565b600d5481565b61077e47611bc9565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085590612768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109246110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612768565b60405180910390fd5b6008600a6109bf919061268f565b620186a06109cd91906126da565b600b819055506008600a6109e1919061268f565b620186a06109ef91906126da565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a24919061268f565b620186a0610a3291906126da565b604051610a3f9190612198565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f4d544b4b00000000000000000000000000000000000000000000000000000000815250905090565b6000610acf610ac86110d7565b84846112a8565b6001905092915050565b610ae16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612768565b60405180910390fd5b6006548210610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba99061284b565b60405180910390fd5b6007548110610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061284b565b60405180910390fd5b81600681905550806007819055505050565b610c106110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612768565b60405180910390fd5b60005b8251811015610d2d578160046000858481518110610cc157610cc0612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d25906127b7565b915050610ca0565b505050565b610d43610d3e30610780565b611c35565b565b610d4d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190612768565b60405180910390fd5b600f60149054906101000a900460ff1615610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906128b7565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610e6a6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612768565b60405180910390fd5b60005b8151811015610f8857600160046000848481518110610f1c57610f1b612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f80906127b7565b915050610efa565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110255760009050611087565b6000828461103391906126da565b90508284826110429190612906565b14611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906129a9565b60405180910390fd5b809150505b92915050565b60006110cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eae565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612acd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190612198565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612bf1565b60405180910390fd5b600081116113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612c83565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114775750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561152b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a857600f60149054906101000a900460ff1661154957600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115dc576115d560646115c76000600854146115b4576006546115b8565b6007545b8561101390919063ffffffff16565b61108d90919063ffffffff16565b9050611607565b61160460646115f6600a548561101390919063ffffffff16565b61108d90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57600b54821115611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990612cef565b60405180910390fd5b600c548261175f85610780565b6117699190612d0f565b11156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612d8f565b60405180910390fd5b600060085411156117ce57600860008154809291906117c890612daf565b91905055505b5b60006117da30610780565b9050600f60159054906101000a900460ff161580156118475750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561185f5750600f60169054906101000a900460ff165b801561186c5750600d5481115b801561187c575060095460085411155b156118a65761188c600d54611c35565b600047905060008111156118a4576118a347611bc9565b5b505b505b6118fa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a16119538284611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a468486611f1190919063ffffffff16565b604051611a539190612198565b60405180910390a36000811115611b5f57611ab681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b569190612198565b60405180910390a35b50505050565b6000838311158290611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49190612049565b60405180910390fd5b5060008385611bbc9190612dd8565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c31573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6d57611c6c612242565b5b604051908082528060200260200182016040528015611c9b5781602001602082028036833780820191505090505b5090503081600081518110611cb357611cb2612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612e21565b81600181518110611d9257611d91612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110df565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5d959493929190612f51565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec9190612049565b60405180910390fd5b5060008385611f049190612906565b9050809150509392505050565b6000611f5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b65565b905092915050565b6000808284611f6a9190612d0f565b905083811015611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612ff7565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ff3578082015181840152602081019050611fd8565b60008484015250505050565b6000601f19601f8301169050919050565b600061201b82611fb9565b6120258185611fc4565b9350612035818560208601611fd5565b61203e81611fff565b840191505092915050565b600060208201905081810360008301526120638184612010565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120aa8261207f565b9050919050565b6120ba8161209f565b81146120c557600080fd5b50565b6000813590506120d7816120b1565b92915050565b6000819050919050565b6120f0816120dd565b81146120fb57600080fd5b50565b60008135905061210d816120e7565b92915050565b6000806040838503121561212a57612129612075565b5b6000612138858286016120c8565b9250506020612149858286016120fe565b9150509250929050565b60008115159050919050565b61216881612153565b82525050565b6000602082019050612183600083018461215f565b92915050565b612192816120dd565b82525050565b60006020820190506121ad6000830184612189565b92915050565b6000806000606084860312156121cc576121cb612075565b5b60006121da868287016120c8565b93505060206121eb868287016120c8565b92505060406121fc868287016120fe565b9150509250925092565b600060ff82169050919050565b61221c81612206565b82525050565b60006020820190506122376000830184612213565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61227a82611fff565b810181811067ffffffffffffffff8211171561229957612298612242565b5b80604052505050565b60006122ac61206b565b90506122b88282612271565b919050565b600067ffffffffffffffff8211156122d8576122d7612242565b5b602082029050602081019050919050565b600080fd5b60006123016122fc846122bd565b6122a2565b90508083825260208201905060208402830185811115612324576123236122e9565b5b835b8181101561234d578061233988826120c8565b845260208401935050602081019050612326565b5050509392505050565b600082601f83011261236c5761236b61223d565b5b813561237c8482602086016122ee565b91505092915050565b60006020828403121561239b5761239a612075565b5b600082013567ffffffffffffffff8111156123b9576123b861207a565b5b6123c584828501612357565b91505092915050565b6000602082840312156123e4576123e3612075565b5b60006123f2848285016120c8565b91505092915050565b6124048161209f565b82525050565b600060208201905061241f60008301846123fb565b92915050565b6000806040838503121561243c5761243b612075565b5b600061244a858286016120fe565b925050602061245b858286016120fe565b9150509250929050565b61246e81612153565b811461247957600080fd5b50565b60008135905061248b81612465565b92915050565b600080604083850312156124a8576124a7612075565b5b600083013567ffffffffffffffff8111156124c6576124c561207a565b5b6124d285828601612357565b92505060206124e38582860161247c565b9150509250929050565b6000806040838503121561250457612503612075565b5b6000612512858286016120c8565b9250506020612523858286016120c8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a826120dd565b91506126a583612206565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e5826120dd565b91506126f0836120dd565b92508282026126fe816120dd565b915082820484148315176127155761271461252d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612752602083611fc4565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127c2826120dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f4576127f361252d565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612835601d83611fc4565b9150612840826127ff565b602082019050919050565b6000602082019050818103600083015261286481612828565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128a1601783611fc4565b91506128ac8261286b565b602082019050919050565b600060208201905081810360008301526128d081612894565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612911826120dd565b915061291c836120dd565b92508261292c5761292b6128d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612993602183611fc4565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a25602483611fc4565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab7602283611fc4565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b49602583611fc4565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bdb602383611fc4565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6d602983611fc4565b9150612c7882612c11565b604082019050919050565b60006020820190508181036000830152612c9c81612c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd9601983611fc4565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b6000612d1a826120dd565b9150612d25836120dd565b9250828201905080821115612d3d57612d3c61252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d79601a83611fc4565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b6000612dba826120dd565b915060008203612dcd57612dcc61252d565b5b600182039050919050565b6000612de3826120dd565b9150612dee836120dd565b9250828203905081811115612e0657612e0561252d565b5b92915050565b600081519050612e1b816120b1565b92915050565b600060208284031215612e3757612e36612075565b5b6000612e4584828501612e0c565b91505092915050565b6000819050919050565b6000819050919050565b6000612e7d612e78612e7384612e4e565b612e58565b6120dd565b9050919050565b612e8d81612e62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec88161209f565b82525050565b6000612eda8383612ebf565b60208301905092915050565b6000602082019050919050565b6000612efe82612e93565b612f088185612e9e565b9350612f1383612eaf565b8060005b83811015612f44578151612f2b8882612ece565b9750612f3683612ee6565b925050600181019050612f17565b5085935050505092915050565b600060a082019050612f666000830188612189565b612f736020830187612e84565b8181036040830152612f858186612ef3565b9050612f9460608301856123fb565b612fa16080830184612189565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fe1601b83611fc4565b9150612fec82612fab565b602082019050919050565b6000602082019050818103600083015261301081612fd4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200d21fe9a921cc83ca2f59c6e55c68f96af2cfd89be5d4c3534f31ca1c1a4fe3164736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063b9a410ff1161006f578063b9a410ff146103ff578063bea1cb2714610428578063c3c8cd8014610451578063c9567bf914610468578063d34628cc1461047f578063dd62ed3e146104a857610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806331c2d847116100fd57806331c2d8471461024057806334376f3b146102695780636fc3eaec1461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612049565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612113565b610522565b6040516101a4919061216e565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf9190612198565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906121b3565b610563565b60405161020c919061216e565b60405180910390f35b34801561022157600080fd5b5061022a61063c565b6040516102379190612222565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612385565b610645565b005b34801561027557600080fd5b5061027e61076f565b60405161028b9190612198565b60405180910390f35b3480156102a057600080fd5b506102a9610775565b005b3480156102b757600080fd5b506102d260048036038101906102cd91906123ce565b610780565b6040516102df9190612198565b60405180910390f35b3480156102f457600080fd5b506102fd6107c9565b005b34801561030b57600080fd5b5061031461091c565b005b34801561032257600080fd5b5061032b610a49565b6040516103389190612198565b60405180910390f35b34801561034d57600080fd5b50610356610a4f565b604051610363919061240a565b60405180910390f35b34801561037857600080fd5b50610381610a78565b60405161038e9190612198565b60405180910390f35b3480156103a357600080fd5b506103ac610a7e565b6040516103b99190612049565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612113565b610abb565b6040516103f6919061216e565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612425565b610ad9565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612491565b610c08565b005b34801561045d57600080fd5b50610466610d32565b005b34801561047457600080fd5b5061047d610d45565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612385565b610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906124ed565b610f8c565b6040516104dc9190612198565b60405180910390f35b60606040518060400160405280600a81526020017f4d746b6b20546f6b656e00000000000000000000000000000000000000000000815250905090565b600061053661052f6110d7565b84846110df565b6001905092915050565b60006008600a610550919061268f565b620186a061055e91906126da565b905090565b60006105708484846112a8565b6106318461057c6110d7565b61062c8560405180606001604052806028815260200161301860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e26110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b659092919063ffffffff16565b6110df565b600190509392505050565b60006008905090565b61064d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190612768565b60405180910390fd5b60005b815181101561076b576000600460008484815181106106ff576106fe612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610763906127b7565b9150506106dd565b5050565b600d5481565b61077e47611bc9565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085590612768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109246110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612768565b60405180910390fd5b6008600a6109bf919061268f565b620186a06109cd91906126da565b600b819055506008600a6109e1919061268f565b620186a06109ef91906126da565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a24919061268f565b620186a0610a3291906126da565b604051610a3f9190612198565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f4d544b4b00000000000000000000000000000000000000000000000000000000815250905090565b6000610acf610ac86110d7565b84846112a8565b6001905092915050565b610ae16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612768565b60405180910390fd5b6006548210610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba99061284b565b60405180910390fd5b6007548110610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061284b565b60405180910390fd5b81600681905550806007819055505050565b610c106110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612768565b60405180910390fd5b60005b8251811015610d2d578160046000858481518110610cc157610cc0612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d25906127b7565b915050610ca0565b505050565b610d43610d3e30610780565b611c35565b565b610d4d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190612768565b60405180910390fd5b600f60149054906101000a900460ff1615610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906128b7565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610e6a6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612768565b60405180910390fd5b60005b8151811015610f8857600160046000848481518110610f1c57610f1b612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f80906127b7565b915050610efa565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110255760009050611087565b6000828461103391906126da565b90508284826110429190612906565b14611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906129a9565b60405180910390fd5b809150505b92915050565b60006110cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eae565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612acd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190612198565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612bf1565b60405180910390fd5b600081116113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612c83565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114775750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561152b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a857600f60149054906101000a900460ff1661154957600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115dc576115d560646115c76000600854146115b4576006546115b8565b6007545b8561101390919063ffffffff16565b61108d90919063ffffffff16565b9050611607565b61160460646115f6600a548561101390919063ffffffff16565b61108d90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57600b54821115611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990612cef565b60405180910390fd5b600c548261175f85610780565b6117699190612d0f565b11156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612d8f565b60405180910390fd5b600060085411156117ce57600860008154809291906117c890612daf565b91905055505b5b60006117da30610780565b9050600f60159054906101000a900460ff161580156118475750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561185f5750600f60169054906101000a900460ff165b801561186c5750600d5481115b801561187c575060095460085411155b156118a65761188c600d54611c35565b600047905060008111156118a4576118a347611bc9565b5b505b505b6118fa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a16119538284611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a468486611f1190919063ffffffff16565b604051611a539190612198565b60405180910390a36000811115611b5f57611ab681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b569190612198565b60405180910390a35b50505050565b6000838311158290611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49190612049565b60405180910390fd5b5060008385611bbc9190612dd8565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c31573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6d57611c6c612242565b5b604051908082528060200260200182016040528015611c9b5781602001602082028036833780820191505090505b5090503081600081518110611cb357611cb2612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612e21565b81600181518110611d9257611d91612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110df565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5d959493929190612f51565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec9190612049565b60405180910390fd5b5060008385611f049190612906565b9050809150509392505050565b6000611f5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b65565b905092915050565b6000808284611f6a9190612d0f565b905083811015611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612ff7565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ff3578082015181840152602081019050611fd8565b60008484015250505050565b6000601f19601f8301169050919050565b600061201b82611fb9565b6120258185611fc4565b9350612035818560208601611fd5565b61203e81611fff565b840191505092915050565b600060208201905081810360008301526120638184612010565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120aa8261207f565b9050919050565b6120ba8161209f565b81146120c557600080fd5b50565b6000813590506120d7816120b1565b92915050565b6000819050919050565b6120f0816120dd565b81146120fb57600080fd5b50565b60008135905061210d816120e7565b92915050565b6000806040838503121561212a57612129612075565b5b6000612138858286016120c8565b9250506020612149858286016120fe565b9150509250929050565b60008115159050919050565b61216881612153565b82525050565b6000602082019050612183600083018461215f565b92915050565b612192816120dd565b82525050565b60006020820190506121ad6000830184612189565b92915050565b6000806000606084860312156121cc576121cb612075565b5b60006121da868287016120c8565b93505060206121eb868287016120c8565b92505060406121fc868287016120fe565b9150509250925092565b600060ff82169050919050565b61221c81612206565b82525050565b60006020820190506122376000830184612213565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61227a82611fff565b810181811067ffffffffffffffff8211171561229957612298612242565b5b80604052505050565b60006122ac61206b565b90506122b88282612271565b919050565b600067ffffffffffffffff8211156122d8576122d7612242565b5b602082029050602081019050919050565b600080fd5b60006123016122fc846122bd565b6122a2565b90508083825260208201905060208402830185811115612324576123236122e9565b5b835b8181101561234d578061233988826120c8565b845260208401935050602081019050612326565b5050509392505050565b600082601f83011261236c5761236b61223d565b5b813561237c8482602086016122ee565b91505092915050565b60006020828403121561239b5761239a612075565b5b600082013567ffffffffffffffff8111156123b9576123b861207a565b5b6123c584828501612357565b91505092915050565b6000602082840312156123e4576123e3612075565b5b60006123f2848285016120c8565b91505092915050565b6124048161209f565b82525050565b600060208201905061241f60008301846123fb565b92915050565b6000806040838503121561243c5761243b612075565b5b600061244a858286016120fe565b925050602061245b858286016120fe565b9150509250929050565b61246e81612153565b811461247957600080fd5b50565b60008135905061248b81612465565b92915050565b600080604083850312156124a8576124a7612075565b5b600083013567ffffffffffffffff8111156124c6576124c561207a565b5b6124d285828601612357565b92505060206124e38582860161247c565b9150509250929050565b6000806040838503121561250457612503612075565b5b6000612512858286016120c8565b9250506020612523858286016120c8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a826120dd565b91506126a583612206565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e5826120dd565b91506126f0836120dd565b92508282026126fe816120dd565b915082820484148315176127155761271461252d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612752602083611fc4565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127c2826120dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f4576127f361252d565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612835601d83611fc4565b9150612840826127ff565b602082019050919050565b6000602082019050818103600083015261286481612828565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128a1601783611fc4565b91506128ac8261286b565b602082019050919050565b600060208201905081810360008301526128d081612894565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612911826120dd565b915061291c836120dd565b92508261292c5761292b6128d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612993602183611fc4565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a25602483611fc4565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab7602283611fc4565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b49602583611fc4565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bdb602383611fc4565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6d602983611fc4565b9150612c7882612c11565b604082019050919050565b60006020820190508181036000830152612c9c81612c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd9601983611fc4565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b6000612d1a826120dd565b9150612d25836120dd565b9250828201905080821115612d3d57612d3c61252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d79601a83611fc4565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b6000612dba826120dd565b915060008203612dcd57612dcc61252d565b5b600182039050919050565b6000612de3826120dd565b9150612dee836120dd565b9250828203905081811115612e0657612e0561252d565b5b92915050565b600081519050612e1b816120b1565b92915050565b600060208284031215612e3757612e36612075565b5b6000612e4584828501612e0c565b91505092915050565b6000819050919050565b6000819050919050565b6000612e7d612e78612e7384612e4e565b612e58565b6120dd565b9050919050565b612e8d81612e62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec88161209f565b82525050565b6000612eda8383612ebf565b60208301905092915050565b6000602082019050919050565b6000612efe82612e93565b612f088185612e9e565b9350612f1383612eaf565b8060005b83811015612f44578151612f2b8882612ece565b9750612f3683612ee6565b925050600181019050612f17565b5085935050505092915050565b600060a082019050612f666000830188612189565b612f736020830187612e84565b8181036040830152612f858186612ef3565b9050612f9460608301856123fb565b612fa16080830184612189565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fe1601b83611fc4565b9150612fec82612fab565b602082019050919050565b6000602082019050818103600083015261301081612fd4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200d21fe9a921cc83ca2f59c6e55c68f96af2cfd89be5d4c3534f31ca1c1a4fe3164736f6c63430008110033

Deployed Bytecode Sourcemap

3482:7787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5671:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6504:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5948:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6673:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5857:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10176:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4398:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10855:85;;;;;;;;;;;;;:::i;:::-;;6051:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2563:148;;;;;;;;;;;;;:::i;:::-;;9735:161;;;;;;;;;;;;;:::i;:::-;;4280:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2349:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4338:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5762:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6178:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10948:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10346:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10755:92;;;;;;;;;;;;;:::i;:::-;;10579:168;;;;;;;;;;;;;:::i;:::-;;10004:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6353:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5671:83;5708:13;5741:5;;;;;;;;;;;;;;;;;5734:12;;5671:83;:::o;6504:161::-;6579:4;6596:39;6605:12;:10;:12::i;:::-;6619:7;6628:6;6596:8;:39::i;:::-;6653:4;6646:11;;6504:161;;;;:::o;5948:95::-;6001:7;4107:1;4160:2;:13;;;;:::i;:::-;4150:7;:23;;;;:::i;:::-;6021:14;;5948:95;:::o;6673:313::-;6771:4;6788:36;6798:6;6806:9;6817:6;6788:9;:36::i;:::-;6835:121;6844:6;6852:12;:10;:12::i;:::-;6866:89;6904:6;6866:89;;;;;;;;;;;;;;;;;:11;:19;6878:6;6866:19;;;;;;;;;;;;;;;:33;6886:12;:10;:12::i;:::-;6866:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6835:8;:121::i;:::-;6974:4;6967:11;;6673:313;;;;;:::o;5857:83::-;5898:5;4107:1;5916:16;;5857:83;:::o;10176:162::-;2486:12;:10;:12::i;:::-;2476:22;;:6;;;;;;;;;;:22;;;2468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10249:6:::1;10244:87;10265:6;:13;10261:1;:17;10244:87;;;10316:5;10298:4;:15;10303:6;10310:1;10303:9;;;;;;;;:::i;:::-;;;;;;;;10298:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10280:3;;;;;:::i;:::-;;;;10244:87;;;;10176:162:::0;:::o;4398:43::-;;;;:::o;10855:85::-;10897:35;10910:21;10897:12;:35::i;:::-;10855:85::o;6051:119::-;6117:7;6144:9;:18;6154:7;6144:18;;;;;;;;;;;;;;;;6137:25;;6051:119;;;:::o;2563:148::-;2486:12;:10;:12::i;:::-;2476:22;;:6;;;;;;;;;;:22;;;2468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2670:1:::1;2633:40;;2654:6;::::0;::::1;;;;;;;;2633:40;;;;;;;;;;;;2701:1;2684:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2563:148::o:0;9735:161::-;2486:12;:10;:12::i;:::-;2476:22;;:6;;;;;;;;;;:22;;;2468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4107:1:::1;4160:2;:13;;;;:::i;:::-;4150:7;:23;;;;:::i;:::-;9788:12;:22;;;;4107:1;4160:2;:13;;;;:::i;:::-;4150:7;:23;;;;:::i;:::-;9821:14;:24;;;;9861:27;4107:1;4160:2;:13;;;;:::i;:::-;4150:7;:23;;;;:::i;:::-;9861:27;;;;;;:::i;:::-;;;;;;;;9735:161::o:0;4280:51::-;;;;:::o;2349:79::-;2387:7;2414:6;;;;;;;;;;;2407:13;;2349:79;:::o;4338:53::-;;;;:::o;5762:87::-;5801:13;5834:7;;;;;;;;;;;;;;;;;5827:14;;5762:87;:::o;6178:167::-;6256:4;6273:42;6283:12;:10;:12::i;:::-;6297:9;6308:6;6273:9;:42::i;:::-;6333:4;6326:11;;6178:167;;;;:::o;10948:318::-;2486:12;:10;:12::i;:::-;2476:22;;:6;;;;;;;;;;:22;;;2468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11065:11:::1;;11049:13;:27;11041:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11143:9;;11129:11;:23;11121:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11211:13;11197:11;:27;;;;11247:11;11235:9;:23;;;;10948:318:::0;;:::o;10346:225::-;2486:12;:10;:12::i;:::-;2476:22;;:6;;;;;;;;;;:22;;;2468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10464:9:::1;10460:103;10480:18;:25;10478:1;:27;10460:103;;;10554:9;10524:4;:27;10529:18;10548:1;10529:21;;;;;;;;:::i;:::-;;;;;;;;10524:27;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;10506:3;;;;;:::i;:::-;;;;10460:103;;;;10346:225:::0;;:::o;10755:92::-;10797:42;10814:24;10832:4;10814:9;:24::i;:::-;10797:16;:42::i;:::-;10755:92::o;10579:168::-;2486:12;:10;:12::i;:::-;2476:22;;:6;;;;;;;;;;:22;;;2468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10643:11:::1;;;;;;;;;;;10642:12;10634:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10706:4;10692:11;;:18;;;;;;;;;;;;;;;;;;10735:4;10721:11;;:18;;;;;;;;;;;;;;;;;;10579:168::o:0;10004:164::-;2486:12;:10;:12::i;:::-;2476:22;;:6;;;;;;;;;;:22;;;2468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10078:6:::1;10073:88;10094:5;:12;10090:1;:16;10073:88;;;10145:4;10128;:14;10133:5;10139:1;10133:8;;;;;;;;:::i;:::-;;;;;;;;10128:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10108:3;;;;;:::i;:::-;;;;10073:88;;;;10004:164:::0;:::o;6353:143::-;6434:7;6461:11;:18;6473:5;6461:18;;;;;;;;;;;;;;;:27;6480:7;6461:27;;;;;;;;;;;;;;;;6454:34;;6353:143;;;;:::o;1439:246::-;1497:7;1526:1;1521;:6;1517:47;;1551:1;1544:8;;;;1517:47;1574:9;1590:1;1586;:5;;;;:::i;:::-;1574:17;;1619:1;1614;1610;:5;;;;:::i;:::-;:10;1602:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1676:1;1669:8;;;1439:246;;;;;:::o;1693:132::-;1751:7;1778:39;1782:1;1785;1778:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1771:46;;1693:132;;;;:::o;104:98::-;157:7;184:10;177:17;;104:98;:::o;6994:335::-;7104:1;7087:19;;:5;:19;;;7079:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7185:1;7166:21;;:7;:21;;;7158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7267:6;7237:11;:18;7249:5;7237:18;;;;;;;;;;;;;;;:27;7256:7;7237:27;;;;;;;;;;;;;;;:36;;;;7305:7;7289:32;;7298:5;7289:32;;;7314:6;7289:32;;;;;;:::i;:::-;;;;;;;;6994:335;;;:::o;7337:1899::-;7441:1;7425:18;;:4;:18;;;7417:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7518:1;7504:16;;:2;:16;;;7496:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7588:1;7579:6;:10;7571:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7646:17;7688:10;;;;;;;;;;;7680:18;;:4;:18;;;;:38;;;;;7708:10;;;;;;;;;;;7702:16;;:2;:16;;;;7680:38;:80;;;;;7744:16;;;;;;;;;;;7736:24;;:4;:24;;;;7680:80;:110;;;;;7772:18;;;;;;;;;;;7764:26;;:4;:26;;;;7680:110;7676:1204;;;7815:11;;;;;;;;;;;7807:20;;;;;;7848:4;:10;7853:4;7848:10;;;;;;;;;;;;;;;;;;;;;;;;;7844:192;;7889:69;7954:3;7889:60;7923:1;7902:19;;:22;7901:46;;7936:11;;7901:46;;;7926:9;;7901:46;7889:6;:10;;:60;;;;:::i;:::-;:64;;:69;;;;:::i;:::-;7877:81;;7844:192;;;8007:29;8032:3;8007:20;8018:8;;8007:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;7995:41;;7844:192;8063:13;;;;;;;;;;;8055:21;;:4;:21;;;:55;;;;;8094:15;;;;;;;;;;;8080:30;;:2;:30;;;;8055:55;:83;;;;;8116:18;:22;8135:2;8116:22;;;;;;;;;;;;;;;;;;;;;;;;;8114:24;8055:83;8051:350;;;8178:12;;8168:6;:22;;8160:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8273:14;;8263:6;8247:13;8257:2;8247:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8239:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8360:1;8340:19;;:21;8337:49;;;8363:19;;:21;;;;;;;;;:::i;:::-;;;;;;8337:49;8051:350;8417:28;8448:24;8466:4;8448:9;:24::i;:::-;8417:55;;8492:6;;;;;;;;;;;8491:7;:32;;;;;8510:13;;;;;;;;;;;8502:21;;:4;:21;;;;8491:32;:47;;;;;8527:11;;;;;;;;;;;8491:47;:80;;;;;8563:8;;8542:20;:29;8491:80;:123;;;;;8596:18;;8575:19;;:39;;8491:123;8487:382;;;8635:26;8652:8;;8635:16;:26::i;:::-;8680;8709:21;8680:50;;8773:1;8752:18;:22;8749:105;;;8799:35;8812:21;8799:12;:35::i;:::-;8749:105;8616:253;8487:382;7792:1088;7676:1204;8908:27;8928:6;8908:9;:15;8918:4;8908:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8892:9;:15;8902:4;8892:15;;;;;;;;;;;;;;;:43;;;;8960:40;8978:21;8989:9;8978:6;:10;;:21;;;;:::i;:::-;8960:9;:13;8970:2;8960:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8946:9;:13;8956:2;8946:13;;;;;;;;;;;;;;;:54;;;;9031:2;9016:41;;9025:4;9016:41;;;9035:21;9046:9;9035:6;:10;;:21;;;;:::i;:::-;9016:41;;;;;;:::i;:::-;;;;;;;;9081:1;9071:9;:11;9068:161;;;9121:39;9150:9;9121;:24;9139:4;9121:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9096:9;:24;9114:4;9096:24;;;;;;;;;;;;;;;:64;;;;9201:4;9178:39;;9187:4;9178:39;;;9207:9;9178:39;;;;;;:::i;:::-;;;;;;;;9068:161;7406:1830;7337:1899;;;:::o;1241:190::-;1327:7;1360:1;1355;:6;;1363:12;1347:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1387:9;1403:1;1399;:5;;;;:::i;:::-;1387:17;;1422:1;1415:8;;;1241:190;;;;;:::o;9904:92::-;9961:10;;;;;;;;;;;:19;;:27;9981:6;9961:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9904:92;:::o;9244:483::-;4802:4;4793:6;;:13;;;;;;;;;;;;;;;;;;9322:21:::1;9360:1;9346:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:40;;9391:4;9373;9378:1;9373:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9417:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9407:4;9412:1;9407:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9450:62;9467:4;9482:15;;;;;;;;;;;9500:11;9450:8;:62::i;:::-;9523:15;;;;;;;;;;;:66;;;9604:11;9630:1;9646:4;9673;9693:15;9523:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9311:416;4838:5:::0;4829:6;;:14;;;;;;;;;;;;;;;;;;9244:483;:::o;1833:189::-;1919:7;1951:1;1947;:5;1954:12;1939:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1978:9;1994:1;1990;:5;;;;:::i;:::-;1978:17;;2013:1;2006:8;;;1833:189;;;;;:::o;1097:136::-;1155:7;1182:43;1186:1;1189;1182:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1175:50;;1097:136;;;;:::o;910:179::-;968:7;988:9;1004:1;1000;:5;;;;:::i;:::-;988:17;;1029:1;1024;:6;;1016:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1080:1;1073:8;;;910:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:116::-;8932:21;8947:5;8932:21;:::i;:::-;8925:5;8922:32;8912:60;;8968:1;8965;8958:12;8912:60;8862:116;:::o;8984:133::-;9027:5;9065:6;9052:20;9043:29;;9081:30;9105:5;9081:30;:::i;:::-;8984:133;;;;:::o;9123:678::-;9213:6;9221;9270:2;9258:9;9249:7;9245:23;9241:32;9238:119;;;9276:79;;:::i;:::-;9238:119;9424:1;9413:9;9409:17;9396:31;9454:18;9446:6;9443:30;9440:117;;;9476:79;;:::i;:::-;9440:117;9581:78;9651:7;9642:6;9631:9;9627:22;9581:78;:::i;:::-;9571:88;;9367:302;9708:2;9734:50;9776:7;9767:6;9756:9;9752:22;9734:50;:::i;:::-;9724:60;;9679:115;9123:678;;;;;:::o;9807:474::-;9875:6;9883;9932:2;9920:9;9911:7;9907:23;9903:32;9900:119;;;9938:79;;:::i;:::-;9900:119;10058:1;10083:53;10128:7;10119:6;10108:9;10104:22;10083:53;:::i;:::-;10073:63;;10029:117;10185:2;10211:53;10256:7;10247:6;10236:9;10232:22;10211:53;:::i;:::-;10201:63;;10156:118;9807:474;;;;;:::o;10287:180::-;10335:77;10332:1;10325:88;10432:4;10429:1;10422:15;10456:4;10453:1;10446:15;10473:102;10515:8;10562:5;10559:1;10555:13;10534:34;;10473:102;;;:::o;10581:848::-;10642:5;10649:4;10673:6;10664:15;;10697:5;10688:14;;10711:712;10732:1;10722:8;10719:15;10711:712;;;10827:4;10822:3;10818:14;10812:4;10809:24;10806:50;;;10836:18;;:::i;:::-;10806:50;10886:1;10876:8;10872:16;10869:451;;;11301:4;11294:5;11290:16;11281:25;;10869:451;11351:4;11345;11341:15;11333:23;;11381:32;11404:8;11381:32;:::i;:::-;11369:44;;10711:712;;;10581:848;;;;;;;:::o;11435:1073::-;11489:5;11680:8;11670:40;;11701:1;11692:10;;11703:5;;11670:40;11729:4;11719:36;;11746:1;11737:10;;11748:5;;11719:36;11815:4;11863:1;11858:27;;;;11899:1;11894:191;;;;11808:277;;11858:27;11876:1;11867:10;;11878:5;;;11894:191;11939:3;11929:8;11926:17;11923:43;;;11946:18;;:::i;:::-;11923:43;11995:8;11992:1;11988:16;11979:25;;12030:3;12023:5;12020:14;12017:40;;;12037:18;;:::i;:::-;12017:40;12070:5;;;11808:277;;12194:2;12184:8;12181:16;12175:3;12169:4;12166:13;12162:36;12144:2;12134:8;12131:16;12126:2;12120:4;12117:12;12113:35;12097:111;12094:246;;;12250:8;12244:4;12240:19;12231:28;;12285:3;12278:5;12275:14;12272:40;;;12292:18;;:::i;:::-;12272:40;12325:5;;12094:246;12365:42;12403:3;12393:8;12387:4;12384:1;12365:42;:::i;:::-;12350:57;;;;12439:4;12434:3;12430:14;12423:5;12420:25;12417:51;;;12448:18;;:::i;:::-;12417:51;12497:4;12490:5;12486:16;12477:25;;11435:1073;;;;;;:::o;12514:281::-;12572:5;12596:23;12614:4;12596:23;:::i;:::-;12588:31;;12640:25;12656:8;12640:25;:::i;:::-;12628:37;;12684:104;12721:66;12711:8;12705:4;12684:104;:::i;:::-;12675:113;;12514:281;;;;:::o;12801:410::-;12841:7;12864:20;12882:1;12864:20;:::i;:::-;12859:25;;12898:20;12916:1;12898:20;:::i;:::-;12893:25;;12953:1;12950;12946:9;12975:30;12993:11;12975:30;:::i;:::-;12964:41;;13154:1;13145:7;13141:15;13138:1;13135:22;13115:1;13108:9;13088:83;13065:139;;13184:18;;:::i;:::-;13065:139;12849:362;12801:410;;;;:::o;13217:182::-;13357:34;13353:1;13345:6;13341:14;13334:58;13217:182;:::o;13405:366::-;13547:3;13568:67;13632:2;13627:3;13568:67;:::i;:::-;13561:74;;13644:93;13733:3;13644:93;:::i;:::-;13762:2;13757:3;13753:12;13746:19;;13405:366;;;:::o;13777:419::-;13943:4;13981:2;13970:9;13966:18;13958:26;;14030:9;14024:4;14020:20;14016:1;14005:9;14001:17;13994:47;14058:131;14184:4;14058:131;:::i;:::-;14050:139;;13777:419;;;:::o;14202:180::-;14250:77;14247:1;14240:88;14347:4;14344:1;14337:15;14371:4;14368:1;14361:15;14388:233;14427:3;14450:24;14468:5;14450:24;:::i;:::-;14441:33;;14496:66;14489:5;14486:77;14483:103;;14566:18;;:::i;:::-;14483:103;14613:1;14606:5;14602:13;14595:20;;14388:233;;;:::o;14627:179::-;14767:31;14763:1;14755:6;14751:14;14744:55;14627:179;:::o;14812:366::-;14954:3;14975:67;15039:2;15034:3;14975:67;:::i;:::-;14968:74;;15051:93;15140:3;15051:93;:::i;:::-;15169:2;15164:3;15160:12;15153:19;;14812:366;;;:::o;15184:419::-;15350:4;15388:2;15377:9;15373:18;15365:26;;15437:9;15431:4;15427:20;15423:1;15412:9;15408:17;15401:47;15465:131;15591:4;15465:131;:::i;:::-;15457:139;;15184:419;;;:::o;15609:173::-;15749:25;15745:1;15737:6;15733:14;15726:49;15609:173;:::o;15788:366::-;15930:3;15951:67;16015:2;16010:3;15951:67;:::i;:::-;15944:74;;16027:93;16116:3;16027:93;:::i;:::-;16145:2;16140:3;16136:12;16129:19;;15788:366;;;:::o;16160:419::-;16326:4;16364:2;16353:9;16349:18;16341:26;;16413:9;16407:4;16403:20;16399:1;16388:9;16384:17;16377:47;16441:131;16567:4;16441:131;:::i;:::-;16433:139;;16160:419;;;:::o;16585:180::-;16633:77;16630:1;16623:88;16730:4;16727:1;16720:15;16754:4;16751:1;16744:15;16771:185;16811:1;16828:20;16846:1;16828:20;:::i;:::-;16823:25;;16862:20;16880:1;16862:20;:::i;:::-;16857:25;;16901:1;16891:35;;16906:18;;:::i;:::-;16891:35;16948:1;16945;16941:9;16936:14;;16771:185;;;;:::o;16962:220::-;17102:34;17098:1;17090:6;17086:14;17079:58;17171:3;17166:2;17158:6;17154:15;17147:28;16962:220;:::o;17188:366::-;17330:3;17351:67;17415:2;17410:3;17351:67;:::i;:::-;17344:74;;17427:93;17516:3;17427:93;:::i;:::-;17545:2;17540:3;17536:12;17529:19;;17188:366;;;:::o;17560:419::-;17726:4;17764:2;17753:9;17749:18;17741:26;;17813:9;17807:4;17803:20;17799:1;17788:9;17784:17;17777:47;17841:131;17967:4;17841:131;:::i;:::-;17833:139;;17560:419;;;:::o;17985:223::-;18125:34;18121:1;18113:6;18109:14;18102:58;18194:6;18189:2;18181:6;18177:15;18170:31;17985:223;:::o;18214:366::-;18356:3;18377:67;18441:2;18436:3;18377:67;:::i;:::-;18370:74;;18453:93;18542:3;18453:93;:::i;:::-;18571:2;18566:3;18562:12;18555:19;;18214:366;;;:::o;18586:419::-;18752:4;18790:2;18779:9;18775:18;18767:26;;18839:9;18833:4;18829:20;18825:1;18814:9;18810:17;18803:47;18867:131;18993:4;18867:131;:::i;:::-;18859:139;;18586:419;;;:::o;19011:221::-;19151:34;19147:1;19139:6;19135:14;19128:58;19220:4;19215:2;19207:6;19203:15;19196:29;19011:221;:::o;19238:366::-;19380:3;19401:67;19465:2;19460:3;19401:67;:::i;:::-;19394:74;;19477:93;19566:3;19477:93;:::i;:::-;19595:2;19590:3;19586:12;19579:19;;19238:366;;;:::o;19610:419::-;19776:4;19814:2;19803:9;19799:18;19791:26;;19863:9;19857:4;19853:20;19849:1;19838:9;19834:17;19827:47;19891:131;20017:4;19891:131;:::i;:::-;19883:139;;19610:419;;;:::o;20035:224::-;20175:34;20171:1;20163:6;20159:14;20152:58;20244:7;20239:2;20231:6;20227:15;20220:32;20035:224;:::o;20265:366::-;20407:3;20428:67;20492:2;20487:3;20428:67;:::i;:::-;20421:74;;20504:93;20593:3;20504:93;:::i;:::-;20622:2;20617:3;20613:12;20606:19;;20265:366;;;:::o;20637:419::-;20803:4;20841:2;20830:9;20826:18;20818:26;;20890:9;20884:4;20880:20;20876:1;20865:9;20861:17;20854:47;20918:131;21044:4;20918:131;:::i;:::-;20910:139;;20637:419;;;:::o;21062:222::-;21202:34;21198:1;21190:6;21186:14;21179:58;21271:5;21266:2;21258:6;21254:15;21247:30;21062:222;:::o;21290:366::-;21432:3;21453:67;21517:2;21512:3;21453:67;:::i;:::-;21446:74;;21529:93;21618:3;21529:93;:::i;:::-;21647:2;21642:3;21638:12;21631:19;;21290:366;;;:::o;21662:419::-;21828:4;21866:2;21855:9;21851:18;21843:26;;21915:9;21909:4;21905:20;21901:1;21890:9;21886:17;21879:47;21943:131;22069:4;21943:131;:::i;:::-;21935:139;;21662:419;;;:::o;22087:228::-;22227:34;22223:1;22215:6;22211:14;22204:58;22296:11;22291:2;22283:6;22279:15;22272:36;22087:228;:::o;22321:366::-;22463:3;22484:67;22548:2;22543:3;22484:67;:::i;:::-;22477:74;;22560:93;22649:3;22560:93;:::i;:::-;22678:2;22673:3;22669:12;22662:19;;22321:366;;;:::o;22693:419::-;22859:4;22897:2;22886:9;22882:18;22874:26;;22946:9;22940:4;22936:20;22932:1;22921:9;22917:17;22910:47;22974:131;23100:4;22974:131;:::i;:::-;22966:139;;22693:419;;;:::o;23118:175::-;23258:27;23254:1;23246:6;23242:14;23235:51;23118:175;:::o;23299:366::-;23441:3;23462:67;23526:2;23521:3;23462:67;:::i;:::-;23455:74;;23538:93;23627:3;23538:93;:::i;:::-;23656:2;23651:3;23647:12;23640:19;;23299:366;;;:::o;23671:419::-;23837:4;23875:2;23864:9;23860:18;23852:26;;23924:9;23918:4;23914:20;23910:1;23899:9;23895:17;23888:47;23952:131;24078:4;23952:131;:::i;:::-;23944:139;;23671:419;;;:::o;24096:191::-;24136:3;24155:20;24173:1;24155:20;:::i;:::-;24150:25;;24189:20;24207:1;24189:20;:::i;:::-;24184:25;;24232:1;24229;24225:9;24218:16;;24253:3;24250:1;24247:10;24244:36;;;24260:18;;:::i;:::-;24244:36;24096:191;;;;:::o;24293:176::-;24433:28;24429:1;24421:6;24417:14;24410:52;24293:176;:::o;24475:366::-;24617:3;24638:67;24702:2;24697:3;24638:67;:::i;:::-;24631:74;;24714:93;24803:3;24714:93;:::i;:::-;24832:2;24827:3;24823:12;24816:19;;24475:366;;;:::o;24847:419::-;25013:4;25051:2;25040:9;25036:18;25028:26;;25100:9;25094:4;25090:20;25086:1;25075:9;25071:17;25064:47;25128:131;25254:4;25128:131;:::i;:::-;25120:139;;24847:419;;;:::o;25272:171::-;25311:3;25334:24;25352:5;25334:24;:::i;:::-;25325:33;;25380:4;25373:5;25370:15;25367:41;;25388:18;;:::i;:::-;25367:41;25435:1;25428:5;25424:13;25417:20;;25272:171;;;:::o;25449:194::-;25489:4;25509:20;25527:1;25509:20;:::i;:::-;25504:25;;25543:20;25561:1;25543:20;:::i;:::-;25538:25;;25587:1;25584;25580:9;25572:17;;25611:1;25605:4;25602:11;25599:37;;;25616:18;;:::i;:::-;25599:37;25449:194;;;;:::o;25649:143::-;25706:5;25737:6;25731:13;25722:22;;25753:33;25780:5;25753:33;:::i;:::-;25649:143;;;;:::o;25798:351::-;25868:6;25917:2;25905:9;25896:7;25892:23;25888:32;25885:119;;;25923:79;;:::i;:::-;25885:119;26043:1;26068:64;26124:7;26115:6;26104:9;26100:22;26068:64;:::i;:::-;26058:74;;26014:128;25798:351;;;;:::o;26155:85::-;26200:7;26229:5;26218:16;;26155:85;;;:::o;26246:60::-;26274:3;26295:5;26288:12;;26246:60;;;:::o;26312:158::-;26370:9;26403:61;26421:42;26430:32;26456:5;26430:32;:::i;:::-;26421:42;:::i;:::-;26403:61;:::i;:::-;26390:74;;26312:158;;;:::o;26476:147::-;26571:45;26610:5;26571:45;:::i;:::-;26566:3;26559:58;26476:147;;:::o;26629:114::-;26696:6;26730:5;26724:12;26714:22;;26629:114;;;:::o;26749:184::-;26848:11;26882:6;26877:3;26870:19;26922:4;26917:3;26913:14;26898:29;;26749:184;;;;:::o;26939:132::-;27006:4;27029:3;27021:11;;27059:4;27054:3;27050:14;27042:22;;26939:132;;;:::o;27077:108::-;27154:24;27172:5;27154:24;:::i;:::-;27149:3;27142:37;27077:108;;:::o;27191:179::-;27260:10;27281:46;27323:3;27315:6;27281:46;:::i;:::-;27359:4;27354:3;27350:14;27336:28;;27191:179;;;;:::o;27376:113::-;27446:4;27478;27473:3;27469:14;27461:22;;27376:113;;;:::o;27525:732::-;27644:3;27673:54;27721:5;27673:54;:::i;:::-;27743:86;27822:6;27817:3;27743:86;:::i;:::-;27736:93;;27853:56;27903:5;27853:56;:::i;:::-;27932:7;27963:1;27948:284;27973:6;27970:1;27967:13;27948:284;;;28049:6;28043:13;28076:63;28135:3;28120:13;28076:63;:::i;:::-;28069:70;;28162:60;28215:6;28162:60;:::i;:::-;28152:70;;28008:224;27995:1;27992;27988:9;27983:14;;27948:284;;;27952:14;28248:3;28241:10;;27649:608;;;27525:732;;;;:::o;28263:831::-;28526:4;28564:3;28553:9;28549:19;28541:27;;28578:71;28646:1;28635:9;28631:17;28622:6;28578:71;:::i;:::-;28659:80;28735:2;28724:9;28720:18;28711:6;28659:80;:::i;:::-;28786:9;28780:4;28776:20;28771:2;28760:9;28756:18;28749:48;28814:108;28917:4;28908:6;28814:108;:::i;:::-;28806:116;;28932:72;29000:2;28989:9;28985:18;28976:6;28932:72;:::i;:::-;29014:73;29082:3;29071:9;29067:19;29058:6;29014:73;:::i;:::-;28263:831;;;;;;;;:::o;29100:177::-;29240:29;29236:1;29228:6;29224:14;29217:53;29100:177;:::o;29283:366::-;29425:3;29446:67;29510:2;29505:3;29446:67;:::i;:::-;29439:74;;29522:93;29611:3;29522:93;:::i;:::-;29640:2;29635:3;29631:12;29624:19;;29283:366;;;:::o;29655:419::-;29821:4;29859:2;29848:9;29844:18;29836:26;;29908:9;29902:4;29898:20;29894:1;29883:9;29879:17;29872:47;29936:131;30062:4;29936:131;:::i;:::-;29928:139;;29655:419;;;:::o

Swarm Source

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