ETH Price: $3,440.56 (-1.16%)
Gas: 11 Gwei

Token

TETE (TETE)
 

Overview

Max Total Supply

42,069,000 TETE

Holders

103

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.672564616 TETE

Value
$0.00
0x0768afa47264368fb3223fab00bb9809765795f3
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:
TETEToken

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-05
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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 TETEToken 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    /// initial buy, sell fee till first 15 buys
    uint256 private _initialBuyTax=30;
    uint256 private _initialSellTax=80;

    ///final buy, sell fee
    uint256 private _finalBuyTax=30;
    uint256 private _finalSellTax=50;
    
    ///after how many buy sell should redue to final tax
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 42069000 * 10**_decimals; // 420.690 million max supply
    string private constant _name = "TETE" ;
    string private constant _symbol = "TETE" ;
    uint256 public _maxTxAmount = 841380 * 10**_decimals; // 2% of the supply
    uint256 public _maxWalletSize = 841380 * 10**_decimals; // 2% of the supply
    uint256 public _taxSwapThreshold= 42069 * 10**_decimals; //0.1% 
    uint256 public _maxTaxSwap= 420690 * 10**_decimals; //1%

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

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

    constructor () {
        _taxWallet = payable(0xE10B5d77FC7a57cddBdeA1067B592B66236bb8cF);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[0xf765c26967B41d4b3095F1AEb0f14E3681f379EB] = true;


        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function Buy_Tax() public view returns (uint256) {
        if (_buyCount <= 15) {
            return 2;
        }
        return _finalBuyTax;
    }

    function Sell_Tax() public view returns (uint256) {
        if (_buyCount <= 15) {
            return 3;
        }
        return _finalSellTax;
    }


    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 != owner() && to != owner() && from != address(this)) {
            

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapAndTax(min(amount,min(contractTokenBalance,_maxTaxSwap)));
            }
        }

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


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapAndTax(uint256 tokens) private lockTheSwap {
    //swap token for eth
    uint256 swapTokens = tokens;
    swapTokensForEth(swapTokens);

    //eth balance
    uint256 marketingPart = address(this).balance;

    if(marketingPart > 0){
        // send to mw
        (bool success,) = _taxWallet.call{value: marketingPart}("");
        require(success, "Transfer failed.");}

    }


    function swapTokensForEth(uint256 tokenAmount) private  {
        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.mul(3).div(100); // 3/100 of tottalsupply;
        _maxWalletSize=_tTotal.mul(7).div(100); // 7/100 of totalsupply;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_maxTxAmount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 BuyTax, uint256 SellTax) external onlyOwner{
      require(BuyTax<=_initialBuyTax &&SellTax <=_initialSellTax);
      _finalBuyTax = BuyTax;
      _finalSellTax = SellTax;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet || _msgSender() == owner());
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0){
            swapAndTax(tokenBalance);
        }
    }

}

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":"Buy_Tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Sell_Tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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":"BuyTax","type":"uint256"},{"internalType":"uint256","name":"SellTax","type":"uint256"}],"name":"reduceFee","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526001600560006101000a81548160ff021916908315150217905550601e6006556050600755601e6008556032600955600f600a55600f600b55600a600c556000600d556009600a6200005791906200069b565b620cd6a4620000679190620006ec565b600e556009600a6200007a91906200069b565b620cd6a46200008a9190620006ec565b600f556009600a6200009d91906200069b565b61a455620000ac9190620006ec565b6010556009600a620000bf91906200069b565b62066b52620000cf9190620006ec565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011557600080fd5b50600062000128620004d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073e10b5d77fc7a57cddbdea1067b592b66236bb8cf600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022b91906200069b565b630281ec086200023c9190620006ec565b6001600062000250620004d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a4620004d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073f765c26967b41d4b3095f1aeb0f14e3681f379eb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000443620004d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004a291906200069b565b630281ec08620004b39190620006ec565b604051620004c2919062000748565b60405180910390a362000765565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200058f5780860481111562000567576200056662000501565b5b6001851615620005775780820291505b8081029050620005878562000530565b945062000547565b94509492505050565b600082620005aa57600190506200067d565b81620005ba57600090506200067d565b8160018114620005d35760028114620005de5762000614565b60019150506200067d565b60ff841115620005f357620005f262000501565b5b8360020a9150848211156200060d576200060c62000501565b5b506200067d565b5060208310610133831016604e8410600b84101617156200064e5782820a90508381111562000648576200064762000501565b5b6200067d565b6200065d84848460016200053d565b9250905081840481111562000677576200067662000501565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006a88262000684565b9150620006b5836200068e565b9250620006e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000598565b905092915050565b6000620006f98262000684565b9150620007068362000684565b9250828202620007168162000684565b9150828204841483151762000730576200072f62000501565b5b5092915050565b620007428162000684565b82525050565b60006020820190506200075f600083018462000737565b92915050565b6133f980620007756000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab57806395d89b411161006f57806395d89b41146103ed578063a9059cbb14610418578063bf474bed14610455578063c876d0b914610480578063c9567bf9146104ab578063dd62ed3e146104c257610140565b80637d1db4a5146103165780637f9290d0146103415780638da5cb5b1461036c5780638f8bb50f146103975780638f9a55c0146103c257610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b57806370a0823114610282578063715018a6146102bf57806372333356146102d6578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104ff565b604051610167919061237d565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612438565b61053c565b6040516101a49190612493565b60405180910390f35b3480156101b957600080fd5b506101c261055a565b6040516101cf91906124bd565b60405180910390f35b3480156101e457600080fd5b506101ed610560565b6040516101fa91906124bd565b60405180910390f35b34801561020f57600080fd5b5061022a600480360381019061022591906124d8565b610584565b6040516102379190612493565b60405180910390f35b34801561024c57600080fd5b5061025561065d565b6040516102629190612547565b60405180910390f35b34801561027757600080fd5b50610280610666565b005b34801561028e57600080fd5b506102a960048036038101906102a49190612562565b61072e565b6040516102b691906124bd565b60405180910390f35b3480156102cb57600080fd5b506102d4610777565b005b3480156102e257600080fd5b506102fd60048036038101906102f8919061258f565b6108ca565b005b34801561030b57600080fd5b5061031461098e565b005b34801561032257600080fd5b5061032b610b0b565b60405161033891906124bd565b60405180910390f35b34801561034d57600080fd5b50610356610b11565b60405161036391906124bd565b60405180910390f35b34801561037857600080fd5b50610381610b2f565b60405161038e91906125de565b60405180910390f35b3480156103a357600080fd5b506103ac610b58565b6040516103b991906124bd565b60405180910390f35b3480156103ce57600080fd5b506103d7610b76565b6040516103e491906124bd565b60405180910390f35b3480156103f957600080fd5b50610402610b7c565b60405161040f919061237d565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190612438565b610bb9565b60405161044c9190612493565b60405180910390f35b34801561046157600080fd5b5061046a610bd7565b60405161047791906124bd565b60405180910390f35b34801561048c57600080fd5b50610495610bdd565b6040516104a29190612493565b60405180910390f35b3480156104b757600080fd5b506104c0610bf0565b005b3480156104ce57600080fd5b506104e960048036038101906104e491906125f9565b611128565b6040516104f691906124bd565b60405180910390f35b60606040518060400160405280600481526020017f5445544500000000000000000000000000000000000000000000000000000000815250905090565b60006105506105496111af565b84846111b7565b6001905092915050565b60115481565b60006009600a610570919061279b565b630281ec0861057f91906127e6565b905090565b6000610591848484611380565b6106528461059d6111af565b61064d8560405180606001604052806028815260200161339c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106036111af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d379092919063ffffffff16565b6111b7565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a76111af565b73ffffffffffffffffffffffffffffffffffffffff16148061070257506106cc610b2f565b73ffffffffffffffffffffffffffffffffffffffff166106ea6111af565b73ffffffffffffffffffffffffffffffffffffffff16145b61070b57600080fd5b60006107163061072e565b9050600081111561072b5761072a81611d9b565b5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61077f6111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080390612874565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108d26111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095690612874565b60405180910390fd5b600654821115801561097357506007548111155b61097c57600080fd5b81600881905550806009819055505050565b6109966111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90612874565b60405180910390fd5b610a666064610a5860036009600a610a3b919061279b565b630281ec08610a4a91906127e6565b611ec290919063ffffffff16565b611f3c90919063ffffffff16565b600e81905550610aaf6064610aa160076009600a610a84919061279b565b630281ec08610a9391906127e6565b611ec290919063ffffffff16565b611f3c90919063ffffffff16565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600e54604051610b0191906124bd565b60405180910390a1565b600e5481565b6000600f600d5411610b265760039050610b2c565b60095490505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600f600d5411610b6d5760029050610b73565b60085490505b90565b600f5481565b60606040518060400160405280600481526020017f5445544500000000000000000000000000000000000000000000000000000000815250905090565b6000610bcd610bc66111af565b8484611380565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610bf86111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90612874565b60405180910390fd5b601360149054906101000a900460ff1615610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc906128e0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d7330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d5f919061279b565b630281ec08610d6e91906127e6565b6111b7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e049190612915565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190612915565b6040518363ffffffff1660e01b8152600401610ece929190612942565b6020604051808303816000875af1158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f119190612915565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f9a3061072e565b600080610fa5610b2f565b426040518863ffffffff1660e01b8152600401610fc7969594939291906129b0565b60606040518083038185885af1158015610fe5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061100a9190612a26565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110ac929190612a79565b6020604051808303816000875af11580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef9190612ace565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90612b6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c90612bff565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161137391906124bd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612c91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590612d23565b60405180910390fd5b600081116114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612db5565b60405180910390fd5b60006114ab610b2f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561151957506114e9610b2f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7a57600560009054906101000a900460ff16156116e357601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116175750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116e25743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612e6d565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561178e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117e45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118dd57600e5482111561182e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182590612ed9565b60405180910390fd5b61186a606461185c600a54600d54116118495760065461184d565b6008545b85611ec290919063ffffffff16565b611f3c90919063ffffffff16565b9050600f54826118798561072e565b6118839190612ef9565b11156118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90612f79565b60405180910390fd5b600d60008154809291906118d790612f99565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119aa576119a76064611999600b54600d54116119865760075461198a565b6009545b85611ec290919063ffffffff16565b611f3c90919063ffffffff16565b90505b60006119b53061072e565b9050601360159054906101000a900460ff16158015611a215750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a395750601360169054906101000a900460ff165b8015611a46575060105481115b8015611a555750600c54600d54115b15611a7857611a77611a7284611a6d84601154611f86565b611f86565b611d9b565b5b505b6000811115611b7e57611ad581600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b7591906124bd565b60405180910390a35b611bd082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffd90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c77611c298284611ffd90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d1c8486611ffd90919063ffffffff16565b604051611d2991906124bd565b60405180910390a350505050565b6000838311158290611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76919061237d565b60405180910390fd5b5060008385611d8e9190612fe1565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000819050611dc481612047565b60004790506000811115611ea2576000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611e1a90613046565b60006040518083038185875af1925050503d8060008114611e57576040519150601f19603f3d011682016040523d82523d6000602084013e611e5c565b606091505b5050905080611ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e97906130a7565b60405180910390fd5b505b50506000601360156101000a81548160ff02191690831515021790555050565b6000808303611ed45760009050611f36565b60008284611ee291906127e6565b9050828482611ef191906130f6565b14611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2890613199565b60405180910390fd5b809150505b92915050565b6000611f7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228a565b905092915050565b6000818311611f955782611f97565b815b905092915050565b6000808284611fae9190612ef9565b905083811015611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90613205565b60405180910390fd5b8091505092915050565b600061203f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d37565b905092915050565b6000600267ffffffffffffffff81111561206457612063613225565b5b6040519080825280602002602001820160405280156120925781602001602082028036833780820191505090505b50905030816000815181106120aa576120a9613254565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612151573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121759190612915565b8160018151811061218957612188613254565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121f030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612254959493929190613341565b600060405180830381600087803b15801561226e57600080fd5b505af1158015612282573d6000803e3d6000fd5b505050505050565b600080831182906122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c8919061237d565b60405180910390fd5b50600083856122e091906130f6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561232757808201518184015260208101905061230c565b60008484015250505050565b6000601f19601f8301169050919050565b600061234f826122ed565b61235981856122f8565b9350612369818560208601612309565b61237281612333565b840191505092915050565b600060208201905081810360008301526123978184612344565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123cf826123a4565b9050919050565b6123df816123c4565b81146123ea57600080fd5b50565b6000813590506123fc816123d6565b92915050565b6000819050919050565b61241581612402565b811461242057600080fd5b50565b6000813590506124328161240c565b92915050565b6000806040838503121561244f5761244e61239f565b5b600061245d858286016123ed565b925050602061246e85828601612423565b9150509250929050565b60008115159050919050565b61248d81612478565b82525050565b60006020820190506124a86000830184612484565b92915050565b6124b781612402565b82525050565b60006020820190506124d260008301846124ae565b92915050565b6000806000606084860312156124f1576124f061239f565b5b60006124ff868287016123ed565b9350506020612510868287016123ed565b925050604061252186828701612423565b9150509250925092565b600060ff82169050919050565b6125418161252b565b82525050565b600060208201905061255c6000830184612538565b92915050565b6000602082840312156125785761257761239f565b5b6000612586848285016123ed565b91505092915050565b600080604083850312156125a6576125a561239f565b5b60006125b485828601612423565b92505060206125c585828601612423565b9150509250929050565b6125d8816123c4565b82525050565b60006020820190506125f360008301846125cf565b92915050565b600080604083850312156126105761260f61239f565b5b600061261e858286016123ed565b925050602061262f858286016123ed565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126bf5780860481111561269b5761269a612639565b5b60018516156126aa5780820291505b80810290506126b885612668565b945061267f565b94509492505050565b6000826126d85760019050612794565b816126e65760009050612794565b81600181146126fc576002811461270657612735565b6001915050612794565b60ff84111561271857612717612639565b5b8360020a91508482111561272f5761272e612639565b5b50612794565b5060208310610133831016604e8410600b841016171561276a5782820a90508381111561276557612764612639565b5b612794565b6127778484846001612675565b9250905081840481111561278e5761278d612639565b5b81810290505b9392505050565b60006127a682612402565b91506127b18361252b565b92506127de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126c8565b905092915050565b60006127f182612402565b91506127fc83612402565b925082820261280a81612402565b9150828204841483151761282157612820612639565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061285e6020836122f8565b915061286982612828565b602082019050919050565b6000602082019050818103600083015261288d81612851565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128ca6017836122f8565b91506128d582612894565b602082019050919050565b600060208201905081810360008301526128f9816128bd565b9050919050565b60008151905061290f816123d6565b92915050565b60006020828403121561292b5761292a61239f565b5b600061293984828501612900565b91505092915050565b600060408201905061295760008301856125cf565b61296460208301846125cf565b9392505050565b6000819050919050565b6000819050919050565b600061299a6129956129908461296b565b612975565b612402565b9050919050565b6129aa8161297f565b82525050565b600060c0820190506129c560008301896125cf565b6129d260208301886124ae565b6129df60408301876129a1565b6129ec60608301866129a1565b6129f960808301856125cf565b612a0660a08301846124ae565b979650505050505050565b600081519050612a208161240c565b92915050565b600080600060608486031215612a3f57612a3e61239f565b5b6000612a4d86828701612a11565b9350506020612a5e86828701612a11565b9250506040612a6f86828701612a11565b9150509250925092565b6000604082019050612a8e60008301856125cf565b612a9b60208301846124ae565b9392505050565b612aab81612478565b8114612ab657600080fd5b50565b600081519050612ac881612aa2565b92915050565b600060208284031215612ae457612ae361239f565b5b6000612af284828501612ab9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b576024836122f8565b9150612b6282612afb565b604082019050919050565b60006020820190508181036000830152612b8681612b4a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612be96022836122f8565b9150612bf482612b8d565b604082019050919050565b60006020820190508181036000830152612c1881612bdc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c7b6025836122f8565b9150612c8682612c1f565b604082019050919050565b60006020820190508181036000830152612caa81612c6e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0d6023836122f8565b9150612d1882612cb1565b604082019050919050565b60006020820190508181036000830152612d3c81612d00565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d9f6029836122f8565b9150612daa82612d43565b604082019050919050565b60006020820190508181036000830152612dce81612d92565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612e576049836122f8565b9150612e6282612dd5565b606082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ec36019836122f8565b9150612ece82612e8d565b602082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b6000612f0482612402565b9150612f0f83612402565b9250828201905080821115612f2757612f26612639565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f63601a836122f8565b9150612f6e82612f2d565b602082019050919050565b60006020820190508181036000830152612f9281612f56565b9050919050565b6000612fa482612402565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd657612fd5612639565b5b600182019050919050565b6000612fec82612402565b9150612ff783612402565b925082820390508181111561300f5761300e612639565b5b92915050565b600081905092915050565b50565b6000613030600083613015565b915061303b82613020565b600082019050919050565b600061305182613023565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b60006130916010836122f8565b915061309c8261305b565b602082019050919050565b600060208201905081810360008301526130c081613084565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061310182612402565b915061310c83612402565b92508261311c5761311b6130c7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131836021836122f8565b915061318e82613127565b604082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131ef601b836122f8565b91506131fa826131b9565b602082019050919050565b6000602082019050818103600083015261321e816131e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132b8816123c4565b82525050565b60006132ca83836132af565b60208301905092915050565b6000602082019050919050565b60006132ee82613283565b6132f8818561328e565b93506133038361329f565b8060005b8381101561333457815161331b88826132be565b9750613326836132d6565b925050600181019050613307565b5085935050505092915050565b600060a08201905061335660008301886124ae565b61336360208301876129a1565b818103604083015261337581866132e3565b905061338460608301856125cf565b61339160808301846124ae565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220735854b20b72c5e5d4ea533d7a9a1f90d82091da45b061e67bedadb1794888b664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab57806395d89b411161006f57806395d89b41146103ed578063a9059cbb14610418578063bf474bed14610455578063c876d0b914610480578063c9567bf9146104ab578063dd62ed3e146104c257610140565b80637d1db4a5146103165780637f9290d0146103415780638da5cb5b1461036c5780638f8bb50f146103975780638f9a55c0146103c257610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b57806370a0823114610282578063715018a6146102bf57806372333356146102d6578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104ff565b604051610167919061237d565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612438565b61053c565b6040516101a49190612493565b60405180910390f35b3480156101b957600080fd5b506101c261055a565b6040516101cf91906124bd565b60405180910390f35b3480156101e457600080fd5b506101ed610560565b6040516101fa91906124bd565b60405180910390f35b34801561020f57600080fd5b5061022a600480360381019061022591906124d8565b610584565b6040516102379190612493565b60405180910390f35b34801561024c57600080fd5b5061025561065d565b6040516102629190612547565b60405180910390f35b34801561027757600080fd5b50610280610666565b005b34801561028e57600080fd5b506102a960048036038101906102a49190612562565b61072e565b6040516102b691906124bd565b60405180910390f35b3480156102cb57600080fd5b506102d4610777565b005b3480156102e257600080fd5b506102fd60048036038101906102f8919061258f565b6108ca565b005b34801561030b57600080fd5b5061031461098e565b005b34801561032257600080fd5b5061032b610b0b565b60405161033891906124bd565b60405180910390f35b34801561034d57600080fd5b50610356610b11565b60405161036391906124bd565b60405180910390f35b34801561037857600080fd5b50610381610b2f565b60405161038e91906125de565b60405180910390f35b3480156103a357600080fd5b506103ac610b58565b6040516103b991906124bd565b60405180910390f35b3480156103ce57600080fd5b506103d7610b76565b6040516103e491906124bd565b60405180910390f35b3480156103f957600080fd5b50610402610b7c565b60405161040f919061237d565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190612438565b610bb9565b60405161044c9190612493565b60405180910390f35b34801561046157600080fd5b5061046a610bd7565b60405161047791906124bd565b60405180910390f35b34801561048c57600080fd5b50610495610bdd565b6040516104a29190612493565b60405180910390f35b3480156104b757600080fd5b506104c0610bf0565b005b3480156104ce57600080fd5b506104e960048036038101906104e491906125f9565b611128565b6040516104f691906124bd565b60405180910390f35b60606040518060400160405280600481526020017f5445544500000000000000000000000000000000000000000000000000000000815250905090565b60006105506105496111af565b84846111b7565b6001905092915050565b60115481565b60006009600a610570919061279b565b630281ec0861057f91906127e6565b905090565b6000610591848484611380565b6106528461059d6111af565b61064d8560405180606001604052806028815260200161339c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106036111af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d379092919063ffffffff16565b6111b7565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a76111af565b73ffffffffffffffffffffffffffffffffffffffff16148061070257506106cc610b2f565b73ffffffffffffffffffffffffffffffffffffffff166106ea6111af565b73ffffffffffffffffffffffffffffffffffffffff16145b61070b57600080fd5b60006107163061072e565b9050600081111561072b5761072a81611d9b565b5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61077f6111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080390612874565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108d26111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095690612874565b60405180910390fd5b600654821115801561097357506007548111155b61097c57600080fd5b81600881905550806009819055505050565b6109966111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90612874565b60405180910390fd5b610a666064610a5860036009600a610a3b919061279b565b630281ec08610a4a91906127e6565b611ec290919063ffffffff16565b611f3c90919063ffffffff16565b600e81905550610aaf6064610aa160076009600a610a84919061279b565b630281ec08610a9391906127e6565b611ec290919063ffffffff16565b611f3c90919063ffffffff16565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600e54604051610b0191906124bd565b60405180910390a1565b600e5481565b6000600f600d5411610b265760039050610b2c565b60095490505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600f600d5411610b6d5760029050610b73565b60085490505b90565b600f5481565b60606040518060400160405280600481526020017f5445544500000000000000000000000000000000000000000000000000000000815250905090565b6000610bcd610bc66111af565b8484611380565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610bf86111af565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90612874565b60405180910390fd5b601360149054906101000a900460ff1615610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc906128e0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d7330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d5f919061279b565b630281ec08610d6e91906127e6565b6111b7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e049190612915565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190612915565b6040518363ffffffff1660e01b8152600401610ece929190612942565b6020604051808303816000875af1158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f119190612915565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f9a3061072e565b600080610fa5610b2f565b426040518863ffffffff1660e01b8152600401610fc7969594939291906129b0565b60606040518083038185885af1158015610fe5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061100a9190612a26565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110ac929190612a79565b6020604051808303816000875af11580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef9190612ace565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90612b6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c90612bff565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161137391906124bd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612c91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590612d23565b60405180910390fd5b600081116114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612db5565b60405180910390fd5b60006114ab610b2f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561151957506114e9610b2f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7a57600560009054906101000a900460ff16156116e357601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116175750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116e25743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612e6d565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561178e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117e45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118dd57600e5482111561182e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182590612ed9565b60405180910390fd5b61186a606461185c600a54600d54116118495760065461184d565b6008545b85611ec290919063ffffffff16565b611f3c90919063ffffffff16565b9050600f54826118798561072e565b6118839190612ef9565b11156118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90612f79565b60405180910390fd5b600d60008154809291906118d790612f99565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119aa576119a76064611999600b54600d54116119865760075461198a565b6009545b85611ec290919063ffffffff16565b611f3c90919063ffffffff16565b90505b60006119b53061072e565b9050601360159054906101000a900460ff16158015611a215750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a395750601360169054906101000a900460ff165b8015611a46575060105481115b8015611a555750600c54600d54115b15611a7857611a77611a7284611a6d84601154611f86565b611f86565b611d9b565b5b505b6000811115611b7e57611ad581600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b7591906124bd565b60405180910390a35b611bd082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffd90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c77611c298284611ffd90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d1c8486611ffd90919063ffffffff16565b604051611d2991906124bd565b60405180910390a350505050565b6000838311158290611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76919061237d565b60405180910390fd5b5060008385611d8e9190612fe1565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000819050611dc481612047565b60004790506000811115611ea2576000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611e1a90613046565b60006040518083038185875af1925050503d8060008114611e57576040519150601f19603f3d011682016040523d82523d6000602084013e611e5c565b606091505b5050905080611ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e97906130a7565b60405180910390fd5b505b50506000601360156101000a81548160ff02191690831515021790555050565b6000808303611ed45760009050611f36565b60008284611ee291906127e6565b9050828482611ef191906130f6565b14611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2890613199565b60405180910390fd5b809150505b92915050565b6000611f7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228a565b905092915050565b6000818311611f955782611f97565b815b905092915050565b6000808284611fae9190612ef9565b905083811015611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90613205565b60405180910390fd5b8091505092915050565b600061203f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d37565b905092915050565b6000600267ffffffffffffffff81111561206457612063613225565b5b6040519080825280602002602001820160405280156120925781602001602082028036833780820191505090505b50905030816000815181106120aa576120a9613254565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612151573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121759190612915565b8160018151811061218957612188613254565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121f030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612254959493929190613341565b600060405180830381600087803b15801561226e57600080fd5b505af1158015612282573d6000803e3d6000fd5b505050505050565b600080831182906122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c8919061237d565b60405180910390fd5b50600083856122e091906130f6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561232757808201518184015260208101905061230c565b60008484015250505050565b6000601f19601f8301169050919050565b600061234f826122ed565b61235981856122f8565b9350612369818560208601612309565b61237281612333565b840191505092915050565b600060208201905081810360008301526123978184612344565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123cf826123a4565b9050919050565b6123df816123c4565b81146123ea57600080fd5b50565b6000813590506123fc816123d6565b92915050565b6000819050919050565b61241581612402565b811461242057600080fd5b50565b6000813590506124328161240c565b92915050565b6000806040838503121561244f5761244e61239f565b5b600061245d858286016123ed565b925050602061246e85828601612423565b9150509250929050565b60008115159050919050565b61248d81612478565b82525050565b60006020820190506124a86000830184612484565b92915050565b6124b781612402565b82525050565b60006020820190506124d260008301846124ae565b92915050565b6000806000606084860312156124f1576124f061239f565b5b60006124ff868287016123ed565b9350506020612510868287016123ed565b925050604061252186828701612423565b9150509250925092565b600060ff82169050919050565b6125418161252b565b82525050565b600060208201905061255c6000830184612538565b92915050565b6000602082840312156125785761257761239f565b5b6000612586848285016123ed565b91505092915050565b600080604083850312156125a6576125a561239f565b5b60006125b485828601612423565b92505060206125c585828601612423565b9150509250929050565b6125d8816123c4565b82525050565b60006020820190506125f360008301846125cf565b92915050565b600080604083850312156126105761260f61239f565b5b600061261e858286016123ed565b925050602061262f858286016123ed565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126bf5780860481111561269b5761269a612639565b5b60018516156126aa5780820291505b80810290506126b885612668565b945061267f565b94509492505050565b6000826126d85760019050612794565b816126e65760009050612794565b81600181146126fc576002811461270657612735565b6001915050612794565b60ff84111561271857612717612639565b5b8360020a91508482111561272f5761272e612639565b5b50612794565b5060208310610133831016604e8410600b841016171561276a5782820a90508381111561276557612764612639565b5b612794565b6127778484846001612675565b9250905081840481111561278e5761278d612639565b5b81810290505b9392505050565b60006127a682612402565b91506127b18361252b565b92506127de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126c8565b905092915050565b60006127f182612402565b91506127fc83612402565b925082820261280a81612402565b9150828204841483151761282157612820612639565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061285e6020836122f8565b915061286982612828565b602082019050919050565b6000602082019050818103600083015261288d81612851565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128ca6017836122f8565b91506128d582612894565b602082019050919050565b600060208201905081810360008301526128f9816128bd565b9050919050565b60008151905061290f816123d6565b92915050565b60006020828403121561292b5761292a61239f565b5b600061293984828501612900565b91505092915050565b600060408201905061295760008301856125cf565b61296460208301846125cf565b9392505050565b6000819050919050565b6000819050919050565b600061299a6129956129908461296b565b612975565b612402565b9050919050565b6129aa8161297f565b82525050565b600060c0820190506129c560008301896125cf565b6129d260208301886124ae565b6129df60408301876129a1565b6129ec60608301866129a1565b6129f960808301856125cf565b612a0660a08301846124ae565b979650505050505050565b600081519050612a208161240c565b92915050565b600080600060608486031215612a3f57612a3e61239f565b5b6000612a4d86828701612a11565b9350506020612a5e86828701612a11565b9250506040612a6f86828701612a11565b9150509250925092565b6000604082019050612a8e60008301856125cf565b612a9b60208301846124ae565b9392505050565b612aab81612478565b8114612ab657600080fd5b50565b600081519050612ac881612aa2565b92915050565b600060208284031215612ae457612ae361239f565b5b6000612af284828501612ab9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b576024836122f8565b9150612b6282612afb565b604082019050919050565b60006020820190508181036000830152612b8681612b4a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612be96022836122f8565b9150612bf482612b8d565b604082019050919050565b60006020820190508181036000830152612c1881612bdc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c7b6025836122f8565b9150612c8682612c1f565b604082019050919050565b60006020820190508181036000830152612caa81612c6e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0d6023836122f8565b9150612d1882612cb1565b604082019050919050565b60006020820190508181036000830152612d3c81612d00565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d9f6029836122f8565b9150612daa82612d43565b604082019050919050565b60006020820190508181036000830152612dce81612d92565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612e576049836122f8565b9150612e6282612dd5565b606082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ec36019836122f8565b9150612ece82612e8d565b602082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b6000612f0482612402565b9150612f0f83612402565b9250828201905080821115612f2757612f26612639565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f63601a836122f8565b9150612f6e82612f2d565b602082019050919050565b60006020820190508181036000830152612f9281612f56565b9050919050565b6000612fa482612402565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd657612fd5612639565b5b600182019050919050565b6000612fec82612402565b9150612ff783612402565b925082820390508181111561300f5761300e612639565b5b92915050565b600081905092915050565b50565b6000613030600083613015565b915061303b82613020565b600082019050919050565b600061305182613023565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b60006130916010836122f8565b915061309c8261305b565b602082019050919050565b600060208201905081810360008301526130c081613084565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061310182612402565b915061310c83612402565b92508261311c5761311b6130c7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131836021836122f8565b915061318e82613127565b604082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131ef601b836122f8565b91506131fa826131b9565b602082019050919050565b6000602082019050818103600083015261321e816131e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132b8816123c4565b82525050565b60006132ca83836132af565b60208301905092915050565b6000602082019050919050565b60006132ee82613283565b6132f8818561328e565b93506133038361329f565b8060005b8381101561333457815161331b88826132be565b9750613326836132d6565b925050600181019050613307565b5085935050505092915050565b600060a08201905061335660008301886124ae565b61336360208301876129a1565b818103604083015261337581866132e3565b905061338460608301856125cf565b61339160808301846124ae565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220735854b20b72c5e5d4ea533d7a9a1f90d82091da45b061e67bedadb1794888b664736f6c63430008130033

Deployed Bytecode Sourcemap

3475:8945:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6838:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4839:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6282:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7007:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6191:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12164:251;;;;;;;;;;;;;:::i;:::-;;6385:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2556:148;;;;;;;;;;;;;:::i;:::-;;11911:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10933:283;;;;;;;;;;;;;:::i;:::-;;4609:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5840:155;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2342:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5679:153;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4688:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6512:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4769:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3822:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11226:671;;;;;;;;;;;;;:::i;:::-;;6687:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6005:83;6042:13;6075:5;;;;;;;;;;;;;;;;;6068:12;;6005:83;:::o;6838:161::-;6913:4;6930:39;6939:12;:10;:12::i;:::-;6953:7;6962:6;6930:8;:39::i;:::-;6987:4;6980:11;;6838:161;;;;:::o;4839:50::-;;;;:::o;6282:95::-;6335:7;4411:1;4465:2;:13;;;;:::i;:::-;4454:8;:24;;;;:::i;:::-;6355:14;;6282:95;:::o;7007:313::-;7105:4;7122:36;7132:6;7140:9;7151:6;7122:9;:36::i;:::-;7169:121;7178:6;7186:12;:10;:12::i;:::-;7200:89;7238:6;7200:89;;;;;;;;;;;;;;;;;:11;:19;7212:6;7200:19;;;;;;;;;;;;;;;:33;7220:12;:10;:12::i;:::-;7200:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7169:8;:121::i;:::-;7308:4;7301:11;;7007:313;;;;;:::o;6191:83::-;6232:5;4411:1;6250:16;;6191:83;:::o;12164:251::-;12230:10;;;;;;;;;;;12214:26;;:12;:10;:12::i;:::-;:26;;;:53;;;;12260:7;:5;:7::i;:::-;12244:23;;:12;:10;:12::i;:::-;:23;;;12214:53;12206:62;;;;;;12279:20;12302:24;12320:4;12302:9;:24::i;:::-;12279:47;;12355:1;12340:12;:16;12337:71;;;12372:24;12383:12;12372:10;:24::i;:::-;12337:71;12195:220;12164:251::o;6385:119::-;6451:7;6478:9;:18;6488:7;6478:18;;;;;;;;;;;;;;;;6471:25;;6385:119;;;:::o;2556:148::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2663:1:::1;2626:40;;2647:6;::::0;::::1;;;;;;;;2626:40;;;;;;;;;;;;2694:1;2677:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2556:148::o:0;11911:208::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12006:14:::1;;11998:6;:22;;:50;;;;;12033:15;;12023:7;:25;;11998:50;11990:59;;;::::0;::::1;;12073:6;12058:12;:21;;;;12104:7;12088:13;:23;;;;11911:208:::0;;:::o;10933:283::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11000:23:::1;11019:3;11000:14;11012:1;4411;4465:2;:13;;;;:::i;:::-;4454:8;:24;;;;:::i;:::-;11000:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;10986:12;:37;;;;11075:23;11094:3;11075:14;11087:1;4411;4465:2;:13;;;;:::i;:::-;4454:8;:24;;;;:::i;:::-;11075:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11060:14;:38;;;;11155:5;11134:20;;:26;;;;;;;;;;;;;;;;;;11176:32;11195:12;;11176:32;;;;;;:::i;:::-;;;;;;;;10933:283::o:0;4609:52::-;;;;:::o;5840:155::-;5881:7;5918:2;5905:9;;:15;5901:56;;5944:1;5937:8;;;;5901:56;5974:13;;5967:20;;5840:155;;:::o;2342:79::-;2380:7;2407:6;;;;;;;;;;;2400:13;;2342:79;:::o;5679:153::-;5719:7;5756:2;5743:9;;:15;5739:56;;5782:1;5775:8;;;;5739:56;5812:12;;5805:19;;5679:153;;:::o;4688:54::-;;;;:::o;6096:87::-;6135:13;6168:7;;;;;;;;;;;;;;;;;6161:14;;6096:87;:::o;6512:167::-;6590:4;6607:42;6617:12;:10;:12::i;:::-;6631:9;6642:6;6607:9;:42::i;:::-;6667:4;6660:11;;6512:167;;;;:::o;4769:55::-;;;;:::o;3822:39::-;;;;;;;;;;;;;:::o;11226:671::-;2479:12;:10;:12::i;:::-;2469:22;;:6;;;;;;;;;;:22;;;2461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11290:11:::1;;;;;;;;;;;11289:12;11281:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11376:42;11339:15;;:80;;;;;;;;;;;;;;;;;;11430:58;11447:4;11462:15;;;;;;;;;;;4411:1;4465:2;:13;;;;:::i;:::-;4454:8;:24;;;;:::i;:::-;11430:8;:58::i;:::-;11533:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11515:55;;;11579:4;11586:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11515:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11499:13;;:110;;;;;;;;;;;;;;;;;;11620:15;;;;;;;;;;;:31;;;11659:21;11690:4;11696:24;11714:4;11696:9;:24::i;:::-;11721:1;11723::::0;11725:7:::1;:5;:7::i;:::-;11733:15;11620:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11767:13;;;;;;;;;;;11760:29;;;11798:15;;;;;;;;;;;11816:14;11760:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11856:4;11842:11;;:18;;;;;;;;;;;;;;;;;;11885:4;11871:11;;:18;;;;;;;;;;;;;;;;;;11226:671::o:0;6687:143::-;6768:7;6795:11;:18;6807:5;6795:18;;;;;;;;;;;;;;;:27;6814:7;6795:27;;;;;;;;;;;;;;;;6788:34;;6687:143;;;;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;7328:335::-;7438:1;7421:19;;:5;:19;;;7413:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7519:1;7500:21;;:7;:21;;;7492:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7601:6;7571:11;:18;7583:5;7571:18;;;;;;;;;;;;;;;:27;7590:7;7571:27;;;;;;;;;;;;;;;:36;;;;7639:7;7623:32;;7632:5;7623:32;;;7648:6;7623:32;;;;;;:::i;:::-;;;;;;;;7328:335;;;:::o;7671:2243::-;7775:1;7759:18;;:4;:18;;;7751:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7852:1;7838:16;;:2;:16;;;7830:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7922:1;7913:6;:10;7905:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7980:17;8022:7;:5;:7::i;:::-;8014:15;;:4;:15;;;;:32;;;;;8039:7;:5;:7::i;:::-;8033:13;;:2;:13;;;;8014:32;:57;;;;;8066:4;8050:21;;:4;:21;;;;8014:57;8010:1548;;;8108:20;;;;;;;;;;;8104:508;;;8169:15;;;;;;;;;;;8155:30;;:2;:30;;;;:62;;;;;8203:13;;;;;;;;;;;8189:28;;:2;:28;;;;8155:62;8151:444;;;8353:12;8280:28;:39;8309:9;8280:39;;;;;;;;;;;;;;;;:85;8244:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8561:12;8519:28;:39;8548:9;8519:39;;;;;;;;;;;;;;;:54;;;;8151:444;8104:508;8640:13;;;;;;;;;;;8632:21;;:4;:21;;;:55;;;;;8671:15;;;;;;;;;;;8657:30;;:2;:30;;;;8632:55;:83;;;;;8693:18;:22;8712:2;8693:22;;;;;;;;;;;;;;;;;;;;;;;;;8691:24;8632:83;8628:420;;;8755:12;;8745:6;:22;;8737:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8828:76;8900:3;8828:67;8850:15;;8840:9;;:25;8839:55;;8880:14;;8839:55;;;8867:12;;8839:55;8828:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8816:88;;8957:14;;8947:6;8931:13;8941:2;8931:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8923:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9021:9;;:11;;;;;;;;;:::i;:::-;;;;;;8628:420;9073:13;;;;;;;;;;;9067:19;;:2;:19;;;:43;;;;;9105:4;9090:20;;:4;:20;;;;9067:43;9064:174;;;9143:79;9218:3;9143:70;9165:16;;9155:9;;:26;9154:58;;9197:15;;9154:58;;;9183:13;;9154:58;9143:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9131:91;;9064:174;9254:28;9285:24;9303:4;9285:9;:24::i;:::-;9254:55;;9329:6;;;;;;;;;;;9328:7;:32;;;;;9347:13;;;;;;;;;;;9339:21;;:2;:21;;;9328:32;:47;;;;;9364:11;;;;;;;;;;;9328:47;:89;;;;;9400:17;;9379:20;:38;9328:89;:121;;;;;9431:18;;9421:9;;:28;9328:121;9324:223;;;9470:61;9481:49;9485:6;9492:37;9496:20;9517:11;;9492:3;:37::i;:::-;9481:3;:49::i;:::-;9470:10;:61::i;:::-;9324:223;8073:1485;8010:1548;9583:1;9573:9;:11;9570:161;;;9623:39;9652:9;9623;:24;9641:4;9623:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9598:9;:24;9616:4;9598:24;;;;;;;;;;;;;;;:64;;;;9703:4;9680:39;;9689:4;9680:39;;;9709:9;9680:39;;;;;;:::i;:::-;;;;;;;;9570:161;9757:27;9777:6;9757:9;:15;9767:4;9757:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9741:9;:15;9751:4;9741:15;;;;;;;;;;;;;;;:43;;;;9809:40;9827:21;9838:9;9827:6;:10;;:21;;;;:::i;:::-;9809:9;:13;9819:2;9809:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9795:9;:13;9805:2;9795:13;;;;;;;;;;;;;;;:54;;;;9880:2;9865:41;;9874:4;9865:41;;;9884:21;9895:9;9884:6;:10;;:21;;;;:::i;:::-;9865:41;;;;;;:::i;:::-;;;;;;;;7740:2174;7671:2243;;;:::o;1234:190::-;1320:7;1353:1;1348;:6;;1356:12;1340:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1380:9;1396:1;1392;:5;;;;:::i;:::-;1380:17;;1415:1;1408:8;;;1234:190;;;;;:::o;10030:405::-;5185:4;5176:6;;:13;;;;;;;;;;;;;;;;;;10119:18:::1;10140:6;10119:27;;10153:28;10170:10;10153:16;:28::i;:::-;10209:21;10233;10209:45;;10282:1;10266:13;:17;10263:163;;;10319:12;10336:10;;;;;;;;;;;:15;;10359:13;10336:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10318:59;;;10396:7;10388:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;10284:142;10263:163;10086:349;;5221:5:::0;5212:6;;:14;;;;;;;;;;;;;;;;;;10030:405;:::o;1432:246::-;1490:7;1519:1;1514;:6;1510:47;;1544:1;1537:8;;;;1510:47;1567:9;1583:1;1579;:5;;;;:::i;:::-;1567:17;;1612:1;1607;1603;:5;;;;:::i;:::-;:10;1595:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1669:1;1662:8;;;1432:246;;;;;:::o;1686:132::-;1744:7;1771:39;1775:1;1778;1771:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1764:46;;1686:132;;;;:::o;9924:98::-;9981:7;10008:1;10006;:3;10005:9;;10013:1;10005:9;;;10011:1;10005:9;9998:16;;9924:98;;;;:::o;903:179::-;961:7;981:9;997:1;993;:5;;;;:::i;:::-;981:17;;1022:1;1017;:6;;1009:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1073:1;1066:8;;;903:179;;;;:::o;1090:136::-;1148:7;1175:43;1179:1;1182;1175:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1168:50;;1090:136;;;;:::o;10445:472::-;10512:21;10550:1;10536:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10512:40;;10581:4;10563;10568:1;10563:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10607:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10597:4;10602:1;10597:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;10640:62;10657:4;10672:15;;;;;;;;;;;10690:11;10640:8;:62::i;:::-;10713:15;;;;;;;;;;;:66;;;10794:11;10820:1;10836:4;10863;10883:15;10713:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10501:416;10445:472;:::o;1826:189::-;1912:7;1944:1;1940;:5;1947:12;1932:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1971:9;1987:1;1983;:5;;;;:::i;:::-;1971:17;;2006:1;1999:8;;;1826:189;;;;;:::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;1430:117::-;1539:1;1536;1529: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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:173::-;10555:25;10551:1;10543:6;10539:14;10532:49;10415:173;:::o;10594:366::-;10736:3;10757:67;10821:2;10816:3;10757:67;:::i;:::-;10750:74;;10833:93;10922:3;10833:93;:::i;:::-;10951:2;10946:3;10942:12;10935:19;;10594:366;;;:::o;10966:419::-;11132:4;11170:2;11159:9;11155:18;11147:26;;11219:9;11213:4;11209:20;11205:1;11194:9;11190:17;11183:47;11247:131;11373:4;11247:131;:::i;:::-;11239:139;;10966:419;;;:::o;11391:143::-;11448:5;11479:6;11473:13;11464:22;;11495:33;11522:5;11495:33;:::i;:::-;11391:143;;;;:::o;11540:351::-;11610:6;11659:2;11647:9;11638:7;11634:23;11630:32;11627:119;;;11665:79;;:::i;:::-;11627:119;11785:1;11810:64;11866:7;11857:6;11846:9;11842:22;11810:64;:::i;:::-;11800:74;;11756:128;11540:351;;;;:::o;11897:332::-;12018:4;12056:2;12045:9;12041:18;12033:26;;12069:71;12137:1;12126:9;12122:17;12113:6;12069:71;:::i;:::-;12150:72;12218:2;12207:9;12203:18;12194:6;12150:72;:::i;:::-;11897:332;;;;;:::o;12235:85::-;12280:7;12309:5;12298:16;;12235:85;;;:::o;12326:60::-;12354:3;12375:5;12368:12;;12326:60;;;:::o;12392:158::-;12450:9;12483:61;12501:42;12510:32;12536:5;12510:32;:::i;:::-;12501:42;:::i;:::-;12483:61;:::i;:::-;12470:74;;12392:158;;;:::o;12556:147::-;12651:45;12690:5;12651:45;:::i;:::-;12646:3;12639:58;12556:147;;:::o;12709:807::-;12958:4;12996:3;12985:9;12981:19;12973:27;;13010:71;13078:1;13067:9;13063:17;13054:6;13010:71;:::i;:::-;13091:72;13159:2;13148:9;13144:18;13135:6;13091:72;:::i;:::-;13173:80;13249:2;13238:9;13234:18;13225:6;13173:80;:::i;:::-;13263;13339:2;13328:9;13324:18;13315:6;13263:80;:::i;:::-;13353:73;13421:3;13410:9;13406:19;13397:6;13353:73;:::i;:::-;13436;13504:3;13493:9;13489:19;13480:6;13436:73;:::i;:::-;12709:807;;;;;;;;;:::o;13522:143::-;13579:5;13610:6;13604:13;13595:22;;13626:33;13653:5;13626:33;:::i;:::-;13522:143;;;;:::o;13671:663::-;13759:6;13767;13775;13824:2;13812:9;13803:7;13799:23;13795:32;13792:119;;;13830:79;;:::i;:::-;13792:119;13950:1;13975:64;14031:7;14022:6;14011:9;14007:22;13975:64;:::i;:::-;13965:74;;13921:128;14088:2;14114:64;14170:7;14161:6;14150:9;14146:22;14114:64;:::i;:::-;14104:74;;14059:129;14227:2;14253:64;14309:7;14300:6;14289:9;14285:22;14253:64;:::i;:::-;14243:74;;14198:129;13671:663;;;;;:::o;14340:332::-;14461:4;14499:2;14488:9;14484:18;14476:26;;14512:71;14580:1;14569:9;14565:17;14556:6;14512:71;:::i;:::-;14593:72;14661:2;14650:9;14646:18;14637:6;14593:72;:::i;:::-;14340:332;;;;;:::o;14678:116::-;14748:21;14763:5;14748:21;:::i;:::-;14741:5;14738:32;14728:60;;14784:1;14781;14774:12;14728:60;14678:116;:::o;14800:137::-;14854:5;14885:6;14879:13;14870:22;;14901:30;14925:5;14901:30;:::i;:::-;14800:137;;;;:::o;14943:345::-;15010:6;15059:2;15047:9;15038:7;15034:23;15030:32;15027:119;;;15065:79;;:::i;:::-;15027:119;15185:1;15210:61;15263:7;15254:6;15243:9;15239:22;15210:61;:::i;:::-;15200:71;;15156:125;14943:345;;;;:::o;15294:223::-;15434:34;15430:1;15422:6;15418:14;15411:58;15503:6;15498:2;15490:6;15486:15;15479:31;15294:223;:::o;15523:366::-;15665:3;15686:67;15750:2;15745:3;15686:67;:::i;:::-;15679:74;;15762:93;15851:3;15762:93;:::i;:::-;15880:2;15875:3;15871:12;15864:19;;15523:366;;;:::o;15895:419::-;16061:4;16099:2;16088:9;16084:18;16076:26;;16148:9;16142:4;16138:20;16134:1;16123:9;16119:17;16112:47;16176:131;16302:4;16176:131;:::i;:::-;16168:139;;15895:419;;;:::o;16320:221::-;16460:34;16456:1;16448:6;16444:14;16437:58;16529:4;16524:2;16516:6;16512:15;16505:29;16320:221;:::o;16547:366::-;16689:3;16710:67;16774:2;16769:3;16710:67;:::i;:::-;16703:74;;16786:93;16875:3;16786:93;:::i;:::-;16904:2;16899:3;16895:12;16888:19;;16547:366;;;:::o;16919:419::-;17085:4;17123:2;17112:9;17108:18;17100:26;;17172:9;17166:4;17162:20;17158:1;17147:9;17143:17;17136:47;17200:131;17326:4;17200:131;:::i;:::-;17192:139;;16919:419;;;:::o;17344:224::-;17484:34;17480:1;17472:6;17468:14;17461:58;17553:7;17548:2;17540:6;17536:15;17529:32;17344:224;:::o;17574:366::-;17716:3;17737:67;17801:2;17796:3;17737:67;:::i;:::-;17730:74;;17813:93;17902:3;17813:93;:::i;:::-;17931:2;17926:3;17922:12;17915:19;;17574:366;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;17946:419;;;:::o;18371:222::-;18511:34;18507:1;18499:6;18495:14;18488:58;18580:5;18575:2;18567:6;18563:15;18556:30;18371:222;:::o;18599:366::-;18741:3;18762:67;18826:2;18821:3;18762:67;:::i;:::-;18755:74;;18838:93;18927:3;18838:93;:::i;:::-;18956:2;18951:3;18947:12;18940:19;;18599:366;;;:::o;18971:419::-;19137:4;19175:2;19164:9;19160:18;19152:26;;19224:9;19218:4;19214:20;19210:1;19199:9;19195:17;19188:47;19252:131;19378:4;19252:131;:::i;:::-;19244:139;;18971:419;;;:::o;19396:228::-;19536:34;19532:1;19524:6;19520:14;19513:58;19605:11;19600:2;19592:6;19588:15;19581:36;19396:228;:::o;19630:366::-;19772:3;19793:67;19857:2;19852:3;19793:67;:::i;:::-;19786:74;;19869:93;19958:3;19869:93;:::i;:::-;19987:2;19982:3;19978:12;19971:19;;19630:366;;;:::o;20002:419::-;20168:4;20206:2;20195:9;20191:18;20183:26;;20255:9;20249:4;20245:20;20241:1;20230:9;20226:17;20219:47;20283:131;20409:4;20283:131;:::i;:::-;20275:139;;20002:419;;;:::o;20427:297::-;20567:34;20563:1;20555:6;20551:14;20544:58;20636:34;20631:2;20623:6;20619:15;20612:59;20705:11;20700:2;20692:6;20688:15;20681:36;20427:297;:::o;20730:366::-;20872:3;20893:67;20957:2;20952:3;20893:67;:::i;:::-;20886:74;;20969:93;21058:3;20969:93;:::i;:::-;21087:2;21082:3;21078:12;21071:19;;20730:366;;;:::o;21102:419::-;21268:4;21306:2;21295:9;21291:18;21283:26;;21355:9;21349:4;21345:20;21341:1;21330:9;21326:17;21319:47;21383:131;21509:4;21383:131;:::i;:::-;21375:139;;21102:419;;;:::o;21527:175::-;21667:27;21663:1;21655:6;21651:14;21644:51;21527:175;:::o;21708:366::-;21850:3;21871:67;21935:2;21930:3;21871:67;:::i;:::-;21864:74;;21947:93;22036:3;21947:93;:::i;:::-;22065:2;22060:3;22056:12;22049:19;;21708:366;;;:::o;22080:419::-;22246:4;22284:2;22273:9;22269:18;22261:26;;22333:9;22327:4;22323:20;22319:1;22308:9;22304:17;22297:47;22361:131;22487:4;22361:131;:::i;:::-;22353:139;;22080:419;;;:::o;22505:191::-;22545:3;22564:20;22582:1;22564:20;:::i;:::-;22559:25;;22598:20;22616:1;22598:20;:::i;:::-;22593:25;;22641:1;22638;22634:9;22627:16;;22662:3;22659:1;22656:10;22653:36;;;22669:18;;:::i;:::-;22653:36;22505:191;;;;:::o;22702:176::-;22842:28;22838:1;22830:6;22826:14;22819:52;22702:176;:::o;22884:366::-;23026:3;23047:67;23111:2;23106:3;23047:67;:::i;:::-;23040:74;;23123:93;23212:3;23123:93;:::i;:::-;23241:2;23236:3;23232:12;23225:19;;22884:366;;;:::o;23256:419::-;23422:4;23460:2;23449:9;23445:18;23437:26;;23509:9;23503:4;23499:20;23495:1;23484:9;23480:17;23473:47;23537:131;23663:4;23537:131;:::i;:::-;23529:139;;23256:419;;;:::o;23681:233::-;23720:3;23743:24;23761:5;23743:24;:::i;:::-;23734:33;;23789:66;23782:5;23779:77;23776:103;;23859:18;;:::i;:::-;23776:103;23906:1;23899:5;23895:13;23888:20;;23681:233;;;:::o;23920:194::-;23960:4;23980:20;23998:1;23980:20;:::i;:::-;23975:25;;24014:20;24032:1;24014:20;:::i;:::-;24009:25;;24058:1;24055;24051:9;24043:17;;24082:1;24076:4;24073:11;24070:37;;;24087:18;;:::i;:::-;24070:37;23920:194;;;;:::o;24120:147::-;24221:11;24258:3;24243:18;;24120:147;;;;:::o;24273:114::-;;:::o;24393:398::-;24552:3;24573:83;24654:1;24649:3;24573:83;:::i;:::-;24566:90;;24665:93;24754:3;24665:93;:::i;:::-;24783:1;24778:3;24774:11;24767:18;;24393:398;;;:::o;24797:379::-;24981:3;25003:147;25146:3;25003:147;:::i;:::-;24996:154;;25167:3;25160:10;;24797:379;;;:::o;25182:166::-;25322:18;25318:1;25310:6;25306:14;25299:42;25182:166;:::o;25354:366::-;25496:3;25517:67;25581:2;25576:3;25517:67;:::i;:::-;25510:74;;25593:93;25682:3;25593:93;:::i;:::-;25711:2;25706:3;25702:12;25695:19;;25354:366;;;:::o;25726:419::-;25892:4;25930:2;25919:9;25915:18;25907:26;;25979:9;25973:4;25969:20;25965:1;25954:9;25950:17;25943:47;26007:131;26133:4;26007:131;:::i;:::-;25999:139;;25726:419;;;:::o;26151:180::-;26199:77;26196:1;26189:88;26296:4;26293:1;26286:15;26320:4;26317:1;26310:15;26337:185;26377:1;26394:20;26412:1;26394:20;:::i;:::-;26389:25;;26428:20;26446:1;26428:20;:::i;:::-;26423:25;;26467:1;26457:35;;26472:18;;:::i;:::-;26457:35;26514:1;26511;26507:9;26502:14;;26337:185;;;;:::o;26528:220::-;26668:34;26664:1;26656:6;26652:14;26645:58;26737:3;26732:2;26724:6;26720:15;26713:28;26528:220;:::o;26754:366::-;26896:3;26917:67;26981:2;26976:3;26917:67;:::i;:::-;26910:74;;26993:93;27082:3;26993:93;:::i;:::-;27111:2;27106:3;27102:12;27095:19;;26754:366;;;:::o;27126:419::-;27292:4;27330:2;27319:9;27315:18;27307:26;;27379:9;27373:4;27369:20;27365:1;27354:9;27350:17;27343:47;27407:131;27533:4;27407:131;:::i;:::-;27399:139;;27126:419;;;:::o;27551:177::-;27691:29;27687:1;27679:6;27675:14;27668:53;27551:177;:::o;27734:366::-;27876:3;27897:67;27961:2;27956:3;27897:67;:::i;:::-;27890:74;;27973:93;28062:3;27973:93;:::i;:::-;28091:2;28086:3;28082:12;28075:19;;27734:366;;;:::o;28106:419::-;28272:4;28310:2;28299:9;28295:18;28287:26;;28359:9;28353:4;28349:20;28345:1;28334:9;28330:17;28323:47;28387:131;28513:4;28387:131;:::i;:::-;28379:139;;28106:419;;;:::o;28531:180::-;28579:77;28576:1;28569:88;28676:4;28673:1;28666:15;28700:4;28697:1;28690:15;28717:180;28765:77;28762:1;28755:88;28862:4;28859:1;28852:15;28886:4;28883:1;28876:15;28903:114;28970:6;29004:5;28998:12;28988:22;;28903:114;;;:::o;29023:184::-;29122:11;29156:6;29151:3;29144:19;29196:4;29191:3;29187:14;29172:29;;29023:184;;;;:::o;29213:132::-;29280:4;29303:3;29295:11;;29333:4;29328:3;29324:14;29316:22;;29213:132;;;:::o;29351:108::-;29428:24;29446:5;29428:24;:::i;:::-;29423:3;29416:37;29351:108;;:::o;29465:179::-;29534:10;29555:46;29597:3;29589:6;29555:46;:::i;:::-;29633:4;29628:3;29624:14;29610:28;;29465:179;;;;:::o;29650:113::-;29720:4;29752;29747:3;29743:14;29735:22;;29650:113;;;:::o;29799:732::-;29918:3;29947:54;29995:5;29947:54;:::i;:::-;30017:86;30096:6;30091:3;30017:86;:::i;:::-;30010:93;;30127:56;30177:5;30127:56;:::i;:::-;30206:7;30237:1;30222:284;30247:6;30244:1;30241:13;30222:284;;;30323:6;30317:13;30350:63;30409:3;30394:13;30350:63;:::i;:::-;30343:70;;30436:60;30489:6;30436:60;:::i;:::-;30426:70;;30282:224;30269:1;30266;30262:9;30257:14;;30222:284;;;30226:14;30522:3;30515:10;;29923:608;;;29799:732;;;;:::o;30537:831::-;30800:4;30838:3;30827:9;30823:19;30815:27;;30852:71;30920:1;30909:9;30905:17;30896:6;30852:71;:::i;:::-;30933:80;31009:2;30998:9;30994:18;30985:6;30933:80;:::i;:::-;31060:9;31054:4;31050:20;31045:2;31034:9;31030:18;31023:48;31088:108;31191:4;31182:6;31088:108;:::i;:::-;31080:116;;31206:72;31274:2;31263:9;31259:18;31250:6;31206:72;:::i;:::-;31288:73;31356:3;31345:9;31341:19;31332:6;31288:73;:::i;:::-;30537:831;;;;;;;;:::o

Swarm Source

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