ETH Price: $3,412.00 (+0.81%)
Gas: 3 Gwei

Token

catwifnotail (MANX)
 

Overview

Max Total Supply

100,000,000 MANX

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
435,400.847721359 MANX

Value
$0.00
0x6fa1974371a909f7daf04f394ea5c9781abe18f0
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:
manx

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-17
*/

// SPDX-License-Identifier: UNLICENSE

/*

https://catmanx.xyz
https://t.me/catwifnotail
https://x.com/catwifnottail

*/

pragma solidity 0.8.23;

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 manx is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=9;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"catwifnotail";
    string private constant _symbol = unicode"MANX";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 2000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

    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()) {
            require(!bots[from] && !bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _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) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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


    function enableTrading() 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 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600960065560196007555f6008555f6009556014600a556014600b556014600c555f600d555f600e556009600a6200003d9190620005fa565b621e84806200004d91906200064a565b600f556009600a620000609190620005fa565b621e84806200007091906200064a565b6010556009600a620000839190620005fa565b620f42406200009391906200064a565b6011556009600a620000a69190620005fa565b621e8480620000b691906200064a565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f60165534801562000101575f80fd5b505f620001136200043a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001bf6200043a60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200020e9190620005fa565b6305f5e1006200021f91906200064a565b60015f620002326200043a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002846200044160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003ae6200043a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200040c9190620005fa565b6305f5e1006200041d91906200064a565b6040516200042c9190620006a5565b60405180910390a3620006c0565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f257808604811115620004ca57620004c962000468565b5b6001851615620004da5780820291505b8081029050620004ea8562000495565b9450620004aa565b94509492505050565b5f826200050c5760019050620005de565b816200051b575f9050620005de565b81600181146200053457600281146200053f5762000575565b6001915050620005de565b60ff84111562000554576200055362000468565b5b8360020a9150848211156200056e576200056d62000468565b5b50620005de565b5060208310610133831016604e8410600b8410161715620005af5782820a905083811115620005a957620005a862000468565b5b620005de565b620005be8484846001620004a1565b92509050818404811115620005d857620005d762000468565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060682620005e5565b91506200061383620005ee565b9250620006427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004fb565b905092915050565b5f6200065682620005e5565b91506200066383620005e5565b92508282026200067381620005e5565b915082820484148315176200068d576200068c62000468565b5b5092915050565b6200069f81620005e5565b82525050565b5f602082019050620006ba5f83018462000694565b92915050565b6130ab80620006ce5f395ff3fe608060405260043610610122575f3560e01c8063751039fc1161009f57806395d89b411161006357806395d89b4114610375578063a9059cbb1461039f578063bf474bed146103db578063dd62ed3e14610405578063ec1f3f631461044157610129565b8063751039fc146102cb5780637d1db4a5146102e15780638a8c523c1461030b5780638da5cb5b146103215780638f9a55c01461034b57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce5671461023957806351bc3c851461026357806370a0823114610279578063715018a6146102b557610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610469565b60405161014e91906121a5565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612256565b6104a6565b60405161018a91906122ae565b60405180910390f35b34801561019e575f80fd5b506101a76104c3565b6040516101b491906122d6565b60405180910390f35b3480156101c8575f80fd5b506101d16104c9565b005b3480156101de575f80fd5b506101e761059d565b6040516101f491906122d6565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906122ef565b6105c0565b60405161023091906122ae565b60405180910390f35b348015610244575f80fd5b5061024d610694565b60405161025a919061235a565b60405180910390f35b34801561026e575f80fd5b5061027761069c565b005b348015610284575f80fd5b5061029f600480360381019061029a9190612373565b610733565b6040516102ac91906122d6565b60405180910390f35b3480156102c0575f80fd5b506102c9610779565b005b3480156102d6575f80fd5b506102df6108c7565b005b3480156102ec575f80fd5b506102f56109f6565b60405161030291906122d6565b60405180910390f35b348015610316575f80fd5b5061031f6109fc565b005b34801561032c575f80fd5b50610335610f1b565b60405161034291906123ad565b60405180910390f35b348015610356575f80fd5b5061035f610f42565b60405161036c91906122d6565b60405180910390f35b348015610380575f80fd5b50610389610f48565b60405161039691906121a5565b60405180910390f35b3480156103aa575f80fd5b506103c560048036038101906103c09190612256565b610f85565b6040516103d291906122ae565b60405180910390f35b3480156103e6575f80fd5b506103ef610fa2565b6040516103fc91906122d6565b60405180910390f35b348015610410575f80fd5b5061042b600480360381019061042691906123c6565b610fa8565b60405161043891906122d6565b60405180910390f35b34801561044c575f80fd5b5061046760048036038101906104629190612404565b61102a565b005b60606040518060400160405280600c81526020017f6361747769666e6f7461696c0000000000000000000000000000000000000000815250905090565b5f6104b96104b26110b6565b84846110bd565b6001905092915050565b60125481565b6104d16110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461055d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055490612479565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161059391906124d9565b60405180910390a1565b5f6009600a6105ac919061264e565b6305f5e1006105bb9190612698565b905090565b5f6105cc848484611280565b610689846105d86110b6565b6106848560405180606001604052806028815260200161304e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063b6110b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c079092919063ffffffff16565b6110bd565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106dc6110b6565b73ffffffffffffffffffffffffffffffffffffffff16146106fb575f80fd5b5f61070530610733565b90505f8111156107195761071881611c69565b5b5f4790505f81111561072f5761072e81611ed4565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107816110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080490612479565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108cf6110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290612479565b60405180910390fd5b6009600a610969919061264e565b6305f5e1006109789190612698565b600f819055506009600a61098c919061264e565b6305f5e10061099b9190612698565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109d0919061264e565b6305f5e1006109df9190612698565b6040516109ec91906122d6565b60405180910390a1565b600f5481565b610a046110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790612479565b60405180910390fd5b60148054906101000a900460ff1615610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad590612723565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7a3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b66919061264e565b6305f5e100610b759190612698565b6110bd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c089190612755565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb29190612755565b6040518363ffffffff1660e01b8152600401610ccf929190612780565b6020604051808303815f875af1158015610ceb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0f9190612755565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d9630610733565b5f80610da0610f1b565b426040518863ffffffff1660e01b8152600401610dc2969594939291906127a7565b60606040518083038185885af1158015610dde573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e03919061281a565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ea392919061286a565b6020604051808303815f875af1158015610ebf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee391906128bb565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4d414e5800000000000000000000000000000000000000000000000000000000815250905090565b5f610f98610f916110b6565b8484611280565b6001905092915050565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106a6110b6565b73ffffffffffffffffffffffffffffffffffffffff1614611089575f80fd5b600854811115801561109d57506009548111155b6110a5575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290612956565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906129e4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127391906122d6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612a72565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361135c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135390612b00565b60405180910390fd5b5f811161139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590612b8e565b60405180910390fd5b5f6113a7610f1b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561141557506113e5610f1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119575760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114b8575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114c0575f80fd5b5f600e54036115085761150560646114f7600a54600e54116114e4576006546114e8565b6008545b85611f3c90919063ffffffff16565b611fb390919063ffffffff16565b90505b5f600e54111561153d5761153a606461152c600d5485611f3c90919063ffffffff16565b611fb390919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115e6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611639575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561173157600f54821115611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a90612bf6565b60405180910390fd5b6010548261169085610733565b61169a9190612c14565b11156116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290612c91565b60405180910390fd5b6117176064611709600a54600e54116116f6576006546116fa565b6008545b85611f3c90919063ffffffff16565b611fb390919063ffffffff16565b9050600e5f81548092919061172b90612caf565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117fd576117fa60646117ec600b54600e54116117d9576007546117dd565b6009545b85611f3c90919063ffffffff16565b611fb390919063ffffffff16565b90505b5f61180730610733565b9050601460159054906101000a900460ff16158015611872575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561188a5750601460169054906101000a900460ff165b8015611897575060115481115b80156118a65750600c54600e54115b15611955576016544311156118bd575f6015819055505b600360155410611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990612d40565b60405180910390fd5b61191f61191a8461191584601254611ffc565b611ffc565b611c69565b5f4790505f8111156119355761193447611ed4565b5b60155f81548092919061194790612caf565b919050555043601681905550505b505b5f811115611a56576119af8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4d91906122d6565b60405180910390a35b611aa68260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b49611afd828461207190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bec848661207190919063ffffffff16565b604051611bf991906122d6565b60405180910390a350505050565b5f838311158290611c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4591906121a5565b60405180910390fd5b505f8385611c5c9190612d5e565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ca057611c9f612d91565b5b604051908082528060200260200182016040528015611cce5781602001602082028036833780820191505090505b50905030815f81518110611ce557611ce4612dbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dad9190612755565b81600181518110611dc157611dc0612dbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e273060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e89959493929190612ea2565b5f604051808303815f87803b158015611ea0575f80fd5b505af1158015611eb2573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f38573d5f803e3d5ffd5b5050565b5f808303611f4c575f9050611fad565b5f8284611f599190612698565b9050828482611f689190612f27565b14611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90612fc7565b60405180910390fd5b809150505b92915050565b5f611ff483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120ba565b905092915050565b5f81831161200a578261200c565b815b905092915050565b5f8082846120229190612c14565b905083811015612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e9061302f565b60405180910390fd5b8091505092915050565b5f6120b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c07565b905092915050565b5f8083118290612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f791906121a5565b60405180910390fd5b505f838561210e9190612f27565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612152578082015181840152602081019050612137565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121778261211b565b6121818185612125565b9350612191818560208601612135565b61219a8161215d565b840191505092915050565b5f6020820190508181035f8301526121bd818461216d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121f2826121c9565b9050919050565b612202816121e8565b811461220c575f80fd5b50565b5f8135905061221d816121f9565b92915050565b5f819050919050565b61223581612223565b811461223f575f80fd5b50565b5f813590506122508161222c565b92915050565b5f806040838503121561226c5761226b6121c5565b5b5f6122798582860161220f565b925050602061228a85828601612242565b9150509250929050565b5f8115159050919050565b6122a881612294565b82525050565b5f6020820190506122c15f83018461229f565b92915050565b6122d081612223565b82525050565b5f6020820190506122e95f8301846122c7565b92915050565b5f805f60608486031215612306576123056121c5565b5b5f6123138682870161220f565b93505060206123248682870161220f565b925050604061233586828701612242565b9150509250925092565b5f60ff82169050919050565b6123548161233f565b82525050565b5f60208201905061236d5f83018461234b565b92915050565b5f60208284031215612388576123876121c5565b5b5f6123958482850161220f565b91505092915050565b6123a7816121e8565b82525050565b5f6020820190506123c05f83018461239e565b92915050565b5f80604083850312156123dc576123db6121c5565b5b5f6123e98582860161220f565b92505060206123fa8582860161220f565b9150509250929050565b5f60208284031215612419576124186121c5565b5b5f61242684828501612242565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612463602083612125565b915061246e8261242f565b602082019050919050565b5f6020820190508181035f83015261249081612457565b9050919050565b5f819050919050565b5f819050919050565b5f6124c36124be6124b984612497565b6124a0565b612223565b9050919050565b6124d3816124a9565b82525050565b5f6020820190506124ec5f8301846124ca565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612574578086048111156125505761254f6124f2565b5b600185161561255f5780820291505b808102905061256d8561251f565b9450612534565b94509492505050565b5f8261258c5760019050612647565b81612599575f9050612647565b81600181146125af57600281146125b9576125e8565b6001915050612647565b60ff8411156125cb576125ca6124f2565b5b8360020a9150848211156125e2576125e16124f2565b5b50612647565b5060208310610133831016604e8410600b841016171561261d5782820a905083811115612618576126176124f2565b5b612647565b61262a848484600161252b565b92509050818404811115612641576126406124f2565b5b81810290505b9392505050565b5f61265882612223565b91506126638361233f565b92506126907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461257d565b905092915050565b5f6126a282612223565b91506126ad83612223565b92508282026126bb81612223565b915082820484148315176126d2576126d16124f2565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61270d601783612125565b9150612718826126d9565b602082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b5f8151905061274f816121f9565b92915050565b5f6020828403121561276a576127696121c5565b5b5f61277784828501612741565b91505092915050565b5f6040820190506127935f83018561239e565b6127a0602083018461239e565b9392505050565b5f60c0820190506127ba5f83018961239e565b6127c760208301886122c7565b6127d460408301876124ca565b6127e160608301866124ca565b6127ee608083018561239e565b6127fb60a08301846122c7565b979650505050505050565b5f815190506128148161222c565b92915050565b5f805f60608486031215612831576128306121c5565b5b5f61283e86828701612806565b935050602061284f86828701612806565b925050604061286086828701612806565b9150509250925092565b5f60408201905061287d5f83018561239e565b61288a60208301846122c7565b9392505050565b61289a81612294565b81146128a4575f80fd5b50565b5f815190506128b581612891565b92915050565b5f602082840312156128d0576128cf6121c5565b5b5f6128dd848285016128a7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612940602483612125565b915061294b826128e6565b604082019050919050565b5f6020820190508181035f83015261296d81612934565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129ce602283612125565b91506129d982612974565b604082019050919050565b5f6020820190508181035f8301526129fb816129c2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a5c602583612125565b9150612a6782612a02565b604082019050919050565b5f6020820190508181035f830152612a8981612a50565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612aea602383612125565b9150612af582612a90565b604082019050919050565b5f6020820190508181035f830152612b1781612ade565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b78602983612125565b9150612b8382612b1e565b604082019050919050565b5f6020820190508181035f830152612ba581612b6c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612be0601983612125565b9150612beb82612bac565b602082019050919050565b5f6020820190508181035f830152612c0d81612bd4565b9050919050565b5f612c1e82612223565b9150612c2983612223565b9250828201905080821115612c4157612c406124f2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c7b601a83612125565b9150612c8682612c47565b602082019050919050565b5f6020820190508181035f830152612ca881612c6f565b9050919050565b5f612cb982612223565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ceb57612cea6124f2565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612d2a601783612125565b9150612d3582612cf6565b602082019050919050565b5f6020820190508181035f830152612d5781612d1e565b9050919050565b5f612d6882612223565b9150612d7383612223565b9250828203905081811115612d8b57612d8a6124f2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e1d816121e8565b82525050565b5f612e2e8383612e14565b60208301905092915050565b5f602082019050919050565b5f612e5082612deb565b612e5a8185612df5565b9350612e6583612e05565b805f5b83811015612e95578151612e7c8882612e23565b9750612e8783612e3a565b925050600181019050612e68565b5085935050505092915050565b5f60a082019050612eb55f8301886122c7565b612ec260208301876124ca565b8181036040830152612ed48186612e46565b9050612ee3606083018561239e565b612ef060808301846122c7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f3182612223565b9150612f3c83612223565b925082612f4c57612f4b612efa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb1602183612125565b9150612fbc82612f57565b604082019050919050565b5f6020820190508181035f830152612fde81612fa5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613019601b83612125565b915061302482612fe5565b602082019050919050565b5f6020820190508181035f8301526130468161300d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e2c3fdc27dee9414f8e83733567f5064a788163a4f0c07d9b77f657c8dc03df064736f6c63430008170033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063751039fc1161009f57806395d89b411161006357806395d89b4114610375578063a9059cbb1461039f578063bf474bed146103db578063dd62ed3e14610405578063ec1f3f631461044157610129565b8063751039fc146102cb5780637d1db4a5146102e15780638a8c523c1461030b5780638da5cb5b146103215780638f9a55c01461034b57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce5671461023957806351bc3c851461026357806370a0823114610279578063715018a6146102b557610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610469565b60405161014e91906121a5565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612256565b6104a6565b60405161018a91906122ae565b60405180910390f35b34801561019e575f80fd5b506101a76104c3565b6040516101b491906122d6565b60405180910390f35b3480156101c8575f80fd5b506101d16104c9565b005b3480156101de575f80fd5b506101e761059d565b6040516101f491906122d6565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906122ef565b6105c0565b60405161023091906122ae565b60405180910390f35b348015610244575f80fd5b5061024d610694565b60405161025a919061235a565b60405180910390f35b34801561026e575f80fd5b5061027761069c565b005b348015610284575f80fd5b5061029f600480360381019061029a9190612373565b610733565b6040516102ac91906122d6565b60405180910390f35b3480156102c0575f80fd5b506102c9610779565b005b3480156102d6575f80fd5b506102df6108c7565b005b3480156102ec575f80fd5b506102f56109f6565b60405161030291906122d6565b60405180910390f35b348015610316575f80fd5b5061031f6109fc565b005b34801561032c575f80fd5b50610335610f1b565b60405161034291906123ad565b60405180910390f35b348015610356575f80fd5b5061035f610f42565b60405161036c91906122d6565b60405180910390f35b348015610380575f80fd5b50610389610f48565b60405161039691906121a5565b60405180910390f35b3480156103aa575f80fd5b506103c560048036038101906103c09190612256565b610f85565b6040516103d291906122ae565b60405180910390f35b3480156103e6575f80fd5b506103ef610fa2565b6040516103fc91906122d6565b60405180910390f35b348015610410575f80fd5b5061042b600480360381019061042691906123c6565b610fa8565b60405161043891906122d6565b60405180910390f35b34801561044c575f80fd5b5061046760048036038101906104629190612404565b61102a565b005b60606040518060400160405280600c81526020017f6361747769666e6f7461696c0000000000000000000000000000000000000000815250905090565b5f6104b96104b26110b6565b84846110bd565b6001905092915050565b60125481565b6104d16110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461055d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055490612479565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161059391906124d9565b60405180910390a1565b5f6009600a6105ac919061264e565b6305f5e1006105bb9190612698565b905090565b5f6105cc848484611280565b610689846105d86110b6565b6106848560405180606001604052806028815260200161304e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063b6110b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c079092919063ffffffff16565b6110bd565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106dc6110b6565b73ffffffffffffffffffffffffffffffffffffffff16146106fb575f80fd5b5f61070530610733565b90505f8111156107195761071881611c69565b5b5f4790505f81111561072f5761072e81611ed4565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107816110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080490612479565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108cf6110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290612479565b60405180910390fd5b6009600a610969919061264e565b6305f5e1006109789190612698565b600f819055506009600a61098c919061264e565b6305f5e10061099b9190612698565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109d0919061264e565b6305f5e1006109df9190612698565b6040516109ec91906122d6565b60405180910390a1565b600f5481565b610a046110b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790612479565b60405180910390fd5b60148054906101000a900460ff1615610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad590612723565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7a3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b66919061264e565b6305f5e100610b759190612698565b6110bd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c089190612755565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb29190612755565b6040518363ffffffff1660e01b8152600401610ccf929190612780565b6020604051808303815f875af1158015610ceb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0f9190612755565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d9630610733565b5f80610da0610f1b565b426040518863ffffffff1660e01b8152600401610dc2969594939291906127a7565b60606040518083038185885af1158015610dde573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e03919061281a565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ea392919061286a565b6020604051808303815f875af1158015610ebf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee391906128bb565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4d414e5800000000000000000000000000000000000000000000000000000000815250905090565b5f610f98610f916110b6565b8484611280565b6001905092915050565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106a6110b6565b73ffffffffffffffffffffffffffffffffffffffff1614611089575f80fd5b600854811115801561109d57506009548111155b6110a5575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290612956565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906129e4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127391906122d6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612a72565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361135c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135390612b00565b60405180910390fd5b5f811161139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590612b8e565b60405180910390fd5b5f6113a7610f1b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561141557506113e5610f1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119575760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114b8575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114c0575f80fd5b5f600e54036115085761150560646114f7600a54600e54116114e4576006546114e8565b6008545b85611f3c90919063ffffffff16565b611fb390919063ffffffff16565b90505b5f600e54111561153d5761153a606461152c600d5485611f3c90919063ffffffff16565b611fb390919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115e6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611639575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561173157600f54821115611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a90612bf6565b60405180910390fd5b6010548261169085610733565b61169a9190612c14565b11156116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290612c91565b60405180910390fd5b6117176064611709600a54600e54116116f6576006546116fa565b6008545b85611f3c90919063ffffffff16565b611fb390919063ffffffff16565b9050600e5f81548092919061172b90612caf565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117fd576117fa60646117ec600b54600e54116117d9576007546117dd565b6009545b85611f3c90919063ffffffff16565b611fb390919063ffffffff16565b90505b5f61180730610733565b9050601460159054906101000a900460ff16158015611872575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561188a5750601460169054906101000a900460ff165b8015611897575060115481115b80156118a65750600c54600e54115b15611955576016544311156118bd575f6015819055505b600360155410611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990612d40565b60405180910390fd5b61191f61191a8461191584601254611ffc565b611ffc565b611c69565b5f4790505f8111156119355761193447611ed4565b5b60155f81548092919061194790612caf565b919050555043601681905550505b505b5f811115611a56576119af8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4d91906122d6565b60405180910390a35b611aa68260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461207190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b49611afd828461207190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bec848661207190919063ffffffff16565b604051611bf991906122d6565b60405180910390a350505050565b5f838311158290611c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4591906121a5565b60405180910390fd5b505f8385611c5c9190612d5e565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ca057611c9f612d91565b5b604051908082528060200260200182016040528015611cce5781602001602082028036833780820191505090505b50905030815f81518110611ce557611ce4612dbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dad9190612755565b81600181518110611dc157611dc0612dbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e273060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e89959493929190612ea2565b5f604051808303815f87803b158015611ea0575f80fd5b505af1158015611eb2573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f38573d5f803e3d5ffd5b5050565b5f808303611f4c575f9050611fad565b5f8284611f599190612698565b9050828482611f689190612f27565b14611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90612fc7565b60405180910390fd5b809150505b92915050565b5f611ff483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120ba565b905092915050565b5f81831161200a578261200c565b815b905092915050565b5f8082846120229190612c14565b905083811015612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e9061302f565b60405180910390fd5b8091505092915050565b5f6120b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c07565b905092915050565b5f8083118290612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f791906121a5565b60405180910390fd5b505f838561210e9190612f27565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612152578082015181840152602081019050612137565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121778261211b565b6121818185612125565b9350612191818560208601612135565b61219a8161215d565b840191505092915050565b5f6020820190508181035f8301526121bd818461216d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121f2826121c9565b9050919050565b612202816121e8565b811461220c575f80fd5b50565b5f8135905061221d816121f9565b92915050565b5f819050919050565b61223581612223565b811461223f575f80fd5b50565b5f813590506122508161222c565b92915050565b5f806040838503121561226c5761226b6121c5565b5b5f6122798582860161220f565b925050602061228a85828601612242565b9150509250929050565b5f8115159050919050565b6122a881612294565b82525050565b5f6020820190506122c15f83018461229f565b92915050565b6122d081612223565b82525050565b5f6020820190506122e95f8301846122c7565b92915050565b5f805f60608486031215612306576123056121c5565b5b5f6123138682870161220f565b93505060206123248682870161220f565b925050604061233586828701612242565b9150509250925092565b5f60ff82169050919050565b6123548161233f565b82525050565b5f60208201905061236d5f83018461234b565b92915050565b5f60208284031215612388576123876121c5565b5b5f6123958482850161220f565b91505092915050565b6123a7816121e8565b82525050565b5f6020820190506123c05f83018461239e565b92915050565b5f80604083850312156123dc576123db6121c5565b5b5f6123e98582860161220f565b92505060206123fa8582860161220f565b9150509250929050565b5f60208284031215612419576124186121c5565b5b5f61242684828501612242565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612463602083612125565b915061246e8261242f565b602082019050919050565b5f6020820190508181035f83015261249081612457565b9050919050565b5f819050919050565b5f819050919050565b5f6124c36124be6124b984612497565b6124a0565b612223565b9050919050565b6124d3816124a9565b82525050565b5f6020820190506124ec5f8301846124ca565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612574578086048111156125505761254f6124f2565b5b600185161561255f5780820291505b808102905061256d8561251f565b9450612534565b94509492505050565b5f8261258c5760019050612647565b81612599575f9050612647565b81600181146125af57600281146125b9576125e8565b6001915050612647565b60ff8411156125cb576125ca6124f2565b5b8360020a9150848211156125e2576125e16124f2565b5b50612647565b5060208310610133831016604e8410600b841016171561261d5782820a905083811115612618576126176124f2565b5b612647565b61262a848484600161252b565b92509050818404811115612641576126406124f2565b5b81810290505b9392505050565b5f61265882612223565b91506126638361233f565b92506126907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461257d565b905092915050565b5f6126a282612223565b91506126ad83612223565b92508282026126bb81612223565b915082820484148315176126d2576126d16124f2565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61270d601783612125565b9150612718826126d9565b602082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b5f8151905061274f816121f9565b92915050565b5f6020828403121561276a576127696121c5565b5b5f61277784828501612741565b91505092915050565b5f6040820190506127935f83018561239e565b6127a0602083018461239e565b9392505050565b5f60c0820190506127ba5f83018961239e565b6127c760208301886122c7565b6127d460408301876124ca565b6127e160608301866124ca565b6127ee608083018561239e565b6127fb60a08301846122c7565b979650505050505050565b5f815190506128148161222c565b92915050565b5f805f60608486031215612831576128306121c5565b5b5f61283e86828701612806565b935050602061284f86828701612806565b925050604061286086828701612806565b9150509250925092565b5f60408201905061287d5f83018561239e565b61288a60208301846122c7565b9392505050565b61289a81612294565b81146128a4575f80fd5b50565b5f815190506128b581612891565b92915050565b5f602082840312156128d0576128cf6121c5565b5b5f6128dd848285016128a7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612940602483612125565b915061294b826128e6565b604082019050919050565b5f6020820190508181035f83015261296d81612934565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129ce602283612125565b91506129d982612974565b604082019050919050565b5f6020820190508181035f8301526129fb816129c2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a5c602583612125565b9150612a6782612a02565b604082019050919050565b5f6020820190508181035f830152612a8981612a50565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612aea602383612125565b9150612af582612a90565b604082019050919050565b5f6020820190508181035f830152612b1781612ade565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b78602983612125565b9150612b8382612b1e565b604082019050919050565b5f6020820190508181035f830152612ba581612b6c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612be0601983612125565b9150612beb82612bac565b602082019050919050565b5f6020820190508181035f830152612c0d81612bd4565b9050919050565b5f612c1e82612223565b9150612c2983612223565b9250828201905080821115612c4157612c406124f2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c7b601a83612125565b9150612c8682612c47565b602082019050919050565b5f6020820190508181035f830152612ca881612c6f565b9050919050565b5f612cb982612223565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ceb57612cea6124f2565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612d2a601783612125565b9150612d3582612cf6565b602082019050919050565b5f6020820190508181035f830152612d5781612d1e565b9050919050565b5f612d6882612223565b9150612d7383612223565b9250828203905081811115612d8b57612d8a6124f2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e1d816121e8565b82525050565b5f612e2e8383612e14565b60208301905092915050565b5f602082019050919050565b5f612e5082612deb565b612e5a8185612df5565b9350612e6583612e05565b805f5b83811015612e95578151612e7c8882612e23565b9750612e8783612e3a565b925050600181019050612e68565b5085935050505092915050565b5f60a082019050612eb55f8301886122c7565b612ec260208301876124ca565b8181036040830152612ed48186612e46565b9050612ee3606083018561239e565b612ef060808301846122c7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f3182612223565b9150612f3c83612223565b925082612f4c57612f4b612efa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb1602183612125565b9150612fbc82612f57565b604082019050919050565b5f6020820190508181035f830152612fde81612fa5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613019601b83612125565b915061302482612fe5565b602082019050919050565b5f6020820190508181035f8301526130468161300d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e2c3fdc27dee9414f8e83733567f5064a788163a4f0c07d9b77f657c8dc03df064736f6c63430008170033

Deployed Bytecode Sourcemap

3570:8385:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6370:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4693:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10425:119;;;;;;;;;;;;;:::i;:::-;;5814:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6539:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5723:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11604:348;;;;;;;;;;;;;:::i;:::-;;5917:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2651:148;;;;;;;;;;;;;:::i;:::-;;10258:159;;;;;;;;;;;;;:::i;:::-;;4507:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10654:673;;;;;;;;;;;;;:::i;:::-;;2437:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4567:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5628:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6044:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4629:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6219:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11341:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5537:83;5574:13;5607:5;;;;;;;;;;;;;;;;;5600:12;;5537:83;:::o;6370:161::-;6445:4;6462:39;6471:12;:10;:12::i;:::-;6485:7;6494:6;6462:8;:39::i;:::-;6519:4;6512:11;;6370:161;;;;:::o;4693:51::-;;;;:::o;10425:119::-;2574:12;:10;:12::i;:::-;2564:22;;:6;;;;;;;;;;:22;;;2556:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10498:1:::1;10483:12;:16;;;;10515:21;10534:1;10515:21;;;;;;:::i;:::-;;;;;;;;10425:119::o:0;5814:95::-;5867:7;4318:1;4373:2;:13;;;;:::i;:::-;4361:9;:25;;;;:::i;:::-;5887:14;;5814:95;:::o;6539:313::-;6637:4;6654:36;6664:6;6672:9;6683:6;6654:9;:36::i;:::-;6701:121;6710:6;6718:12;:10;:12::i;:::-;6732:89;6770:6;6732:89;;;;;;;;;;;;;;;;;:11;:19;6744:6;6732:19;;;;;;;;;;;;;;;:33;6752:12;:10;:12::i;:::-;6732:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6701:8;:121::i;:::-;6840:4;6833:11;;6539:313;;;;;:::o;5723:83::-;5764:5;4318:1;5782:16;;5723:83;:::o;11604:348::-;11668:10;;;;;;;;;;;11654:24;;:12;:10;:12::i;:::-;:24;;;11646:33;;;;;;11690:20;11711:24;11729:4;11711:9;:24::i;:::-;11690:45;;11762:1;11749:12;:14;11746:73;;;11777:30;11794:12;11777:16;:30::i;:::-;11746:73;11829:18;11848:21;11829:40;;11894:1;11883:10;:12;11880:65;;;11909:24;11922:10;11909:12;:24::i;:::-;11880:65;11635:317;;11604:348::o;5917:119::-;5983:7;6010:9;:18;6020:7;6010:18;;;;;;;;;;;;;;;;6003:25;;5917:119;;;:::o;2651:148::-;2574:12;:10;:12::i;:::-;2564:22;;:6;;;;;;;;;;:22;;;2556:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2758:1:::1;2721:40;;2742:6;::::0;::::1;;;;;;;;2721:40;;;;;;;;;;;;2789:1;2772:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2651:148::o:0;10258:159::-;2574:12;:10;:12::i;:::-;2564:22;;:6;;;;;;;;;;:22;;;2556:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4318:1:::1;4373:2;:13;;;;:::i;:::-;4361:9;:25;;;;:::i;:::-;10311:12;:22;;;;4318:1;4373:2;:13;;;;:::i;:::-;4361:9;:25;;;;:::i;:::-;10344:14;:22;;;;10382:27;4318:1;4373:2;:13;;;;:::i;:::-;4361:9;:25;;;;:::i;:::-;10382:27;;;;;;:::i;:::-;;;;;;;;10258:159::o:0;4507:53::-;;;;:::o;10654:673::-;2574:12;:10;:12::i;:::-;2564:22;;:6;;;;;;;;;;:22;;;2556:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10720:11:::1;::::0;::::1;;;;;;;;10719:12;10711:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10806:42;10769:15;;:80;;;;;;;;;;;;;;;;;;10860:58;10877:4;10892:15;;;;;;;;;;;4318:1;4373:2;:13;;;;:::i;:::-;4361:9;:25;;;;:::i;:::-;10860:8;:58::i;:::-;10963:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10945:55;;;11009:4;11016:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10945:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10929:13;;:110;;;;;;;;;;;;;;;;;;11050:15;;;;;;;;;;;:31;;;11089:21;11120:4;11126:24;11144:4;11126:9;:24::i;:::-;11151:1;11153::::0;11155:7:::1;:5;:7::i;:::-;11163:15;11050:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11197:13;;;;;;;;;;;11190:29;;;11228:15;;;;;;;;;;;11246:14;11190:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11286:4;11272:11;;:18;;;;;;;;;;;;;;;;;;11315:4;11301:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10654:673::o:0;2437:79::-;2475:7;2502:6;;;;;;;;;;;2495:13;;2437:79;:::o;4567:55::-;;;;:::o;5628:87::-;5667:13;5700:7;;;;;;;;;;;;;;;;;5693:14;;5628:87;:::o;6044:167::-;6122:4;6139:42;6149:12;:10;:12::i;:::-;6163:9;6174:6;6139:9;:42::i;:::-;6199:4;6192:11;;6044:167;;;;:::o;4629:57::-;;;;:::o;6219:143::-;6300:7;6327:11;:18;6339:5;6327:18;;;;;;;;;;;;;;;:27;6346:7;6327:27;;;;;;;;;;;;;;;;6320:34;;6219:143;;;;:::o;11341:218::-;11416:10;;;;;;;;;;;11402:24;;:12;:10;:12::i;:::-;:24;;;11394:33;;;;;;11453:12;;11444:7;:21;;:47;;;;;11478:13;;11469:7;:22;;11444:47;11436:56;;;;;;11514:7;11501:12;:20;;;;11544:7;11530:13;:21;;;;11341:218;:::o;192:98::-;245:7;272:10;265:17;;192:98;:::o;6860:335::-;6970:1;6953:19;;:5;:19;;;6945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7051:1;7032:21;;:7;:21;;;7024:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7133:6;7103:11;:18;7115:5;7103:18;;;;;;;;;;;;;;;:27;7122:7;7103:27;;;;;;;;;;;;;;;:36;;;;7171:7;7155:32;;7164:5;7155:32;;;7180:6;7155:32;;;;;;:::i;:::-;;;;;;;;6860:335;;;:::o;7203:2448::-;7307:1;7291:18;;:4;:18;;;7283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7384:1;7370:16;;:2;:16;;;7362:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7454:1;7445:6;:10;7437:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7512:17;7554:7;:5;:7::i;:::-;7546:15;;:4;:15;;;;:32;;;;;7571:7;:5;:7::i;:::-;7565:13;;:2;:13;;;;7546:32;7542:1753;;;7604:4;:10;7609:4;7604:10;;;;;;;;;;;;;;;;;;;;;;;;;7603:11;:24;;;;;7619:4;:8;7624:2;7619:8;;;;;;;;;;;;;;;;;;;;;;;;;7618:9;7603:24;7595:33;;;;;;7659:1;7648:9;;:12;7645:139;;7692:76;7764:3;7692:67;7714:15;;7704:9;;:25;7703:55;;7744:14;;7703:55;;;7731:12;;7703:55;7692:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7680:88;;7645:139;7811:1;7801:9;;:11;7798:95;;;7844:33;7873:3;7844:24;7855:12;;7844:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7832:45;;7798:95;7921:13;;;;;;;;;;;7913:21;;:4;:21;;;:55;;;;;7952:15;;;;;;;;;;;7938:30;;:2;:30;;;;7913:55;:83;;;;;7974:18;:22;7993:2;7974:22;;;;;;;;;;;;;;;;;;;;;;;;;7972:24;7913:83;7909:420;;;8036:12;;8026:6;:22;;8018:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8131:14;;8121:6;8105:13;8115:2;8105:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8097:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8207:76;8279:3;8207:67;8229:15;;8219:9;;:25;8218:55;;8259:14;;8218:55;;;8246:12;;8218:55;8207:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8195:88;;8302:9;;:11;;;;;;;;;:::i;:::-;;;;;;7909:420;8354:13;;;;;;;;;;;8348:19;;:2;:19;;;:43;;;;;8386:4;8371:20;;:4;:20;;;;8348:43;8345:174;;;8424:79;8499:3;8424:70;8446:16;;8436:9;;:26;8435:58;;8478:15;;8435:58;;;8464:13;;8435:58;8424:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8412:91;;8345:174;8535:28;8566:24;8584:4;8566:9;:24::i;:::-;8535:55;;8610:6;;;;;;;;;;;8609:7;:30;;;;;8626:13;;;;;;;;;;;8620:19;;:2;:19;;;8609:30;:45;;;;;8643:11;;;;;;;;;;;8609:45;:89;;;;;8681:17;;8658:20;:40;8609:89;:123;;;;;8714:18;;8702:9;;:30;8609:123;8605:679;;;8772:13;;8757:12;:28;8753:90;;;8822:1;8810:9;:13;;;;8753:90;8881:1;8869:9;;:13;8861:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8929:69;8946:51;8950:6;8958:38;8962:20;8984:11;;8958:3;:38::i;:::-;8946:3;:51::i;:::-;8929:16;:69::i;:::-;9017:26;9046:21;9017:50;;9111:1;9090:18;:22;9086:106;;;9137:35;9150:21;9137:12;:35::i;:::-;9086:106;9210:9;;:11;;;;;;;;;:::i;:::-;;;;;;9256:12;9240:13;:28;;;;8734:550;8605:679;7580:1715;7542:1753;9320:1;9310:9;:11;9307:161;;;9360:39;9389:9;9360;:24;9378:4;9360:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9335:9;:24;9353:4;9335:24;;;;;;;;;;;;;;;:64;;;;9440:4;9417:39;;9426:4;9417:39;;;9446:9;9417:39;;;;;;:::i;:::-;;;;;;;;9307:161;9494:27;9514:6;9494:9;:15;9504:4;9494:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9478:9;:15;9488:4;9478:15;;;;;;;;;;;;;;;:43;;;;9546:40;9564:21;9575:9;9564:6;:10;;:21;;;;:::i;:::-;9546:9;:13;9556:2;9546:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9532:9;:13;9542:2;9532:13;;;;;;;;;;;;;;;:54;;;;9617:2;9602:41;;9611:4;9602:41;;;9621:21;9632:9;9621:6;:10;;:21;;;;:::i;:::-;9602:41;;;;;;:::i;:::-;;;;;;;;7272:2379;7203:2448;;;:::o;1329:190::-;1415:7;1448:1;1443;:6;;1451:12;1435:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1475:9;1491:1;1487;:5;;;;:::i;:::-;1475:17;;1510:1;1503:8;;;1329:190;;;;;:::o;9767:483::-;5155:4;5146:6;;:13;;;;;;;;;;;;;;;;;;9845:21:::1;9883:1;9869:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9845:40;;9914:4;9896;9901:1;9896:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9940:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9930:4;9935:1;9930:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9973:62;9990:4;10005:15;;;;;;;;;;;10023:11;9973:8;:62::i;:::-;10046:15;;;;;;;;;;;:66;;;10127:11;10153:1;10169:4;10196;10216:15;10046:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9834:416;5191:5:::0;5182:6;;:14;;;;;;;;;;;;;;;;;;9767:483;:::o;10552:92::-;10609:10;;;;;;;;;;;:19;;:27;10629:6;10609:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10552:92;:::o;1527:246::-;1585:7;1614:1;1609;:6;1605:47;;1639:1;1632:8;;;;1605:47;1662:9;1678:1;1674;:5;;;;:::i;:::-;1662:17;;1707:1;1702;1698;:5;;;;:::i;:::-;:10;1690:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1764:1;1757:8;;;1527:246;;;;;:::o;1781:132::-;1839:7;1866:39;1870:1;1873;1866:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1859:46;;1781:132;;;;:::o;9661:98::-;9718:7;9745:1;9743;:3;9742:9;;9750:1;9742:9;;;9748:1;9742:9;9735:16;;9661:98;;;;:::o;998:179::-;1056:7;1076:9;1092:1;1088;:5;;;;:::i;:::-;1076:17;;1117:1;1112;:6;;1104:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1168:1;1161:8;;;998:179;;;;:::o;1185:136::-;1243:7;1270:43;1274:1;1277;1270:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1263:50;;1185:136;;;;:::o;1921:189::-;2007:7;2039:1;2035;:5;2042:12;2027:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2066:9;2082:1;2078;:5;;;;:::i;:::-;2066:17;;2101:1;2094:8;;;1921: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:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:182::-;6495:34;6491:1;6483:6;6479:14;6472:58;6355:182;:::o;6543:366::-;6685:3;6706:67;6770:2;6765:3;6706:67;:::i;:::-;6699:74;;6782:93;6871:3;6782:93;:::i;:::-;6900:2;6895:3;6891:12;6884:19;;6543:366;;;:::o;6915:419::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7168:9;7162:4;7158:20;7154:1;7143:9;7139:17;7132:47;7196:131;7322:4;7196:131;:::i;:::-;7188:139;;6915:419;;;:::o;7340:85::-;7385:7;7414:5;7403:16;;7340:85;;;:::o;7431:60::-;7459:3;7480:5;7473:12;;7431:60;;;:::o;7497:158::-;7555:9;7588:61;7606:42;7615:32;7641:5;7615:32;:::i;:::-;7606:42;:::i;:::-;7588:61;:::i;:::-;7575:74;;7497:158;;;:::o;7661:147::-;7756:45;7795:5;7756:45;:::i;:::-;7751:3;7744:58;7661:147;;:::o;7814:238::-;7915:4;7953:2;7942:9;7938:18;7930:26;;7966:79;8042:1;8031:9;8027:17;8018:6;7966:79;:::i;:::-;7814:238;;;;:::o;8058:180::-;8106:77;8103:1;8096:88;8203:4;8200:1;8193:15;8227:4;8224:1;8217:15;8244:102;8286:8;8333:5;8330:1;8326:13;8305:34;;8244:102;;;:::o;8352:848::-;8413:5;8420:4;8444:6;8435:15;;8468:5;8459:14;;8482:712;8503:1;8493:8;8490:15;8482:712;;;8598:4;8593:3;8589:14;8583:4;8580:24;8577:50;;;8607:18;;:::i;:::-;8577:50;8657:1;8647:8;8643:16;8640:451;;;9072:4;9065:5;9061:16;9052:25;;8640:451;9122:4;9116;9112:15;9104:23;;9152:32;9175:8;9152:32;:::i;:::-;9140:44;;8482:712;;;8352:848;;;;;;;:::o;9206:1073::-;9260:5;9451:8;9441:40;;9472:1;9463:10;;9474:5;;9441:40;9500:4;9490:36;;9517:1;9508:10;;9519:5;;9490:36;9586:4;9634:1;9629:27;;;;9670:1;9665:191;;;;9579:277;;9629:27;9647:1;9638:10;;9649:5;;;9665:191;9710:3;9700:8;9697:17;9694:43;;;9717:18;;:::i;:::-;9694:43;9766:8;9763:1;9759:16;9750:25;;9801:3;9794:5;9791:14;9788:40;;;9808:18;;:::i;:::-;9788:40;9841:5;;;9579:277;;9965:2;9955:8;9952:16;9946:3;9940:4;9937:13;9933:36;9915:2;9905:8;9902:16;9897:2;9891:4;9888:12;9884:35;9868:111;9865:246;;;10021:8;10015:4;10011:19;10002:28;;10056:3;10049:5;10046:14;10043:40;;;10063:18;;:::i;:::-;10043:40;10096:5;;9865:246;10136:42;10174:3;10164:8;10158:4;10155:1;10136:42;:::i;:::-;10121:57;;;;10210:4;10205:3;10201:14;10194:5;10191:25;10188:51;;;10219:18;;:::i;:::-;10188:51;10268:4;10261:5;10257:16;10248:25;;9206:1073;;;;;;:::o;10285:281::-;10343:5;10367:23;10385:4;10367:23;:::i;:::-;10359:31;;10411:25;10427:8;10411:25;:::i;:::-;10399:37;;10455:104;10492:66;10482:8;10476:4;10455:104;:::i;:::-;10446:113;;10285:281;;;;:::o;10572:410::-;10612:7;10635:20;10653:1;10635:20;:::i;:::-;10630:25;;10669:20;10687:1;10669:20;:::i;:::-;10664:25;;10724:1;10721;10717:9;10746:30;10764:11;10746:30;:::i;:::-;10735:41;;10925:1;10916:7;10912:15;10909:1;10906:22;10886:1;10879:9;10859:83;10836:139;;10955:18;;:::i;:::-;10836:139;10620:362;10572:410;;;;:::o;10988:173::-;11128:25;11124:1;11116:6;11112:14;11105:49;10988:173;:::o;11167:366::-;11309:3;11330:67;11394:2;11389:3;11330:67;:::i;:::-;11323:74;;11406:93;11495:3;11406:93;:::i;:::-;11524:2;11519:3;11515:12;11508:19;;11167:366;;;:::o;11539:419::-;11705:4;11743:2;11732:9;11728:18;11720:26;;11792:9;11786:4;11782:20;11778:1;11767:9;11763:17;11756:47;11820:131;11946:4;11820:131;:::i;:::-;11812:139;;11539:419;;;:::o;11964:143::-;12021:5;12052:6;12046:13;12037:22;;12068:33;12095:5;12068:33;:::i;:::-;11964:143;;;;:::o;12113:351::-;12183:6;12232:2;12220:9;12211:7;12207:23;12203:32;12200:119;;;12238:79;;:::i;:::-;12200:119;12358:1;12383:64;12439:7;12430:6;12419:9;12415:22;12383:64;:::i;:::-;12373:74;;12329:128;12113:351;;;;:::o;12470:332::-;12591:4;12629:2;12618:9;12614:18;12606:26;;12642:71;12710:1;12699:9;12695:17;12686:6;12642:71;:::i;:::-;12723:72;12791:2;12780:9;12776:18;12767:6;12723:72;:::i;:::-;12470:332;;;;;:::o;12808:807::-;13057:4;13095:3;13084:9;13080:19;13072:27;;13109:71;13177:1;13166:9;13162:17;13153:6;13109:71;:::i;:::-;13190:72;13258:2;13247:9;13243:18;13234:6;13190:72;:::i;:::-;13272:80;13348:2;13337:9;13333:18;13324:6;13272:80;:::i;:::-;13362;13438:2;13427:9;13423:18;13414:6;13362:80;:::i;:::-;13452:73;13520:3;13509:9;13505:19;13496:6;13452:73;:::i;:::-;13535;13603:3;13592:9;13588:19;13579:6;13535:73;:::i;:::-;12808:807;;;;;;;;;:::o;13621:143::-;13678:5;13709:6;13703:13;13694:22;;13725:33;13752:5;13725:33;:::i;:::-;13621:143;;;;:::o;13770:663::-;13858:6;13866;13874;13923:2;13911:9;13902:7;13898:23;13894:32;13891:119;;;13929:79;;:::i;:::-;13891:119;14049:1;14074:64;14130:7;14121:6;14110:9;14106:22;14074:64;:::i;:::-;14064:74;;14020:128;14187:2;14213:64;14269:7;14260:6;14249:9;14245:22;14213:64;:::i;:::-;14203:74;;14158:129;14326:2;14352:64;14408:7;14399:6;14388:9;14384:22;14352:64;:::i;:::-;14342:74;;14297:129;13770:663;;;;;:::o;14439:332::-;14560:4;14598:2;14587:9;14583:18;14575:26;;14611:71;14679:1;14668:9;14664:17;14655:6;14611:71;:::i;:::-;14692:72;14760:2;14749:9;14745:18;14736:6;14692:72;:::i;:::-;14439:332;;;;;:::o;14777:116::-;14847:21;14862:5;14847:21;:::i;:::-;14840:5;14837:32;14827:60;;14883:1;14880;14873:12;14827:60;14777:116;:::o;14899:137::-;14953:5;14984:6;14978:13;14969:22;;15000:30;15024:5;15000:30;:::i;:::-;14899:137;;;;:::o;15042:345::-;15109:6;15158:2;15146:9;15137:7;15133:23;15129:32;15126:119;;;15164:79;;:::i;:::-;15126:119;15284:1;15309:61;15362:7;15353:6;15342:9;15338:22;15309:61;:::i;:::-;15299:71;;15255:125;15042:345;;;;:::o;15393:223::-;15533:34;15529:1;15521:6;15517:14;15510:58;15602:6;15597:2;15589:6;15585:15;15578:31;15393:223;:::o;15622:366::-;15764:3;15785:67;15849:2;15844:3;15785:67;:::i;:::-;15778:74;;15861:93;15950:3;15861:93;:::i;:::-;15979:2;15974:3;15970:12;15963:19;;15622:366;;;:::o;15994:419::-;16160:4;16198:2;16187:9;16183:18;16175:26;;16247:9;16241:4;16237:20;16233:1;16222:9;16218:17;16211:47;16275:131;16401:4;16275:131;:::i;:::-;16267:139;;15994:419;;;:::o;16419:221::-;16559:34;16555:1;16547:6;16543:14;16536:58;16628:4;16623:2;16615:6;16611:15;16604:29;16419:221;:::o;16646:366::-;16788:3;16809:67;16873:2;16868:3;16809:67;:::i;:::-;16802:74;;16885:93;16974:3;16885:93;:::i;:::-;17003:2;16998:3;16994:12;16987:19;;16646:366;;;:::o;17018:419::-;17184:4;17222:2;17211:9;17207:18;17199:26;;17271:9;17265:4;17261:20;17257:1;17246:9;17242:17;17235:47;17299:131;17425:4;17299:131;:::i;:::-;17291:139;;17018:419;;;:::o;17443:224::-;17583:34;17579:1;17571:6;17567:14;17560:58;17652:7;17647:2;17639:6;17635:15;17628:32;17443:224;:::o;17673:366::-;17815:3;17836:67;17900:2;17895:3;17836:67;:::i;:::-;17829:74;;17912:93;18001:3;17912:93;:::i;:::-;18030:2;18025:3;18021:12;18014:19;;17673:366;;;:::o;18045:419::-;18211:4;18249:2;18238:9;18234:18;18226:26;;18298:9;18292:4;18288:20;18284:1;18273:9;18269:17;18262:47;18326:131;18452:4;18326:131;:::i;:::-;18318:139;;18045:419;;;:::o;18470:222::-;18610:34;18606:1;18598:6;18594:14;18587:58;18679:5;18674:2;18666:6;18662:15;18655:30;18470:222;:::o;18698:366::-;18840:3;18861:67;18925:2;18920:3;18861:67;:::i;:::-;18854:74;;18937:93;19026:3;18937:93;:::i;:::-;19055:2;19050:3;19046:12;19039:19;;18698:366;;;:::o;19070:419::-;19236:4;19274:2;19263:9;19259:18;19251:26;;19323:9;19317:4;19313:20;19309:1;19298:9;19294:17;19287:47;19351:131;19477:4;19351:131;:::i;:::-;19343:139;;19070:419;;;:::o;19495:228::-;19635:34;19631:1;19623:6;19619:14;19612:58;19704:11;19699:2;19691:6;19687:15;19680:36;19495:228;:::o;19729:366::-;19871:3;19892:67;19956:2;19951:3;19892:67;:::i;:::-;19885:74;;19968:93;20057:3;19968:93;:::i;:::-;20086:2;20081:3;20077:12;20070:19;;19729:366;;;:::o;20101:419::-;20267:4;20305:2;20294:9;20290:18;20282:26;;20354:9;20348:4;20344:20;20340:1;20329:9;20325:17;20318:47;20382:131;20508:4;20382:131;:::i;:::-;20374:139;;20101:419;;;:::o;20526:175::-;20666:27;20662:1;20654:6;20650:14;20643:51;20526:175;:::o;20707:366::-;20849:3;20870:67;20934:2;20929:3;20870:67;:::i;:::-;20863:74;;20946:93;21035:3;20946:93;:::i;:::-;21064:2;21059:3;21055:12;21048:19;;20707:366;;;:::o;21079:419::-;21245:4;21283:2;21272:9;21268:18;21260:26;;21332:9;21326:4;21322:20;21318:1;21307:9;21303:17;21296:47;21360:131;21486:4;21360:131;:::i;:::-;21352:139;;21079:419;;;:::o;21504:191::-;21544:3;21563:20;21581:1;21563:20;:::i;:::-;21558:25;;21597:20;21615:1;21597:20;:::i;:::-;21592:25;;21640:1;21637;21633:9;21626:16;;21661:3;21658:1;21655:10;21652:36;;;21668:18;;:::i;:::-;21652:36;21504:191;;;;:::o;21701:176::-;21841:28;21837:1;21829:6;21825:14;21818:52;21701:176;:::o;21883:366::-;22025:3;22046:67;22110:2;22105:3;22046:67;:::i;:::-;22039:74;;22122:93;22211:3;22122:93;:::i;:::-;22240:2;22235:3;22231:12;22224:19;;21883:366;;;:::o;22255:419::-;22421:4;22459:2;22448:9;22444:18;22436:26;;22508:9;22502:4;22498:20;22494:1;22483:9;22479:17;22472:47;22536:131;22662:4;22536:131;:::i;:::-;22528:139;;22255:419;;;:::o;22680:233::-;22719:3;22742:24;22760:5;22742:24;:::i;:::-;22733:33;;22788:66;22781:5;22778:77;22775:103;;22858:18;;:::i;:::-;22775:103;22905:1;22898:5;22894:13;22887:20;;22680:233;;;:::o;22919:173::-;23059:25;23055:1;23047:6;23043:14;23036:49;22919:173;:::o;23098:366::-;23240:3;23261:67;23325:2;23320:3;23261:67;:::i;:::-;23254:74;;23337:93;23426:3;23337:93;:::i;:::-;23455:2;23450:3;23446:12;23439:19;;23098:366;;;:::o;23470:419::-;23636:4;23674:2;23663:9;23659:18;23651:26;;23723:9;23717:4;23713:20;23709:1;23698:9;23694:17;23687:47;23751:131;23877:4;23751:131;:::i;:::-;23743:139;;23470:419;;;:::o;23895:194::-;23935:4;23955:20;23973:1;23955:20;:::i;:::-;23950:25;;23989:20;24007:1;23989:20;:::i;:::-;23984:25;;24033:1;24030;24026:9;24018:17;;24057:1;24051:4;24048:11;24045:37;;;24062:18;;:::i;:::-;24045:37;23895:194;;;;:::o;24095:180::-;24143:77;24140:1;24133:88;24240:4;24237:1;24230:15;24264:4;24261:1;24254:15;24281:180;24329:77;24326:1;24319:88;24426:4;24423:1;24416:15;24450:4;24447:1;24440:15;24467:114;24534:6;24568:5;24562:12;24552:22;;24467:114;;;:::o;24587:184::-;24686:11;24720:6;24715:3;24708:19;24760:4;24755:3;24751:14;24736:29;;24587:184;;;;:::o;24777:132::-;24844:4;24867:3;24859:11;;24897:4;24892:3;24888:14;24880:22;;24777:132;;;:::o;24915:108::-;24992:24;25010:5;24992:24;:::i;:::-;24987:3;24980:37;24915:108;;:::o;25029:179::-;25098:10;25119:46;25161:3;25153:6;25119:46;:::i;:::-;25197:4;25192:3;25188:14;25174:28;;25029:179;;;;:::o;25214:113::-;25284:4;25316;25311:3;25307:14;25299:22;;25214:113;;;:::o;25363:732::-;25482:3;25511:54;25559:5;25511:54;:::i;:::-;25581:86;25660:6;25655:3;25581:86;:::i;:::-;25574:93;;25691:56;25741:5;25691:56;:::i;:::-;25770:7;25801:1;25786:284;25811:6;25808:1;25805:13;25786:284;;;25887:6;25881:13;25914:63;25973:3;25958:13;25914:63;:::i;:::-;25907:70;;26000:60;26053:6;26000:60;:::i;:::-;25990:70;;25846:224;25833:1;25830;25826:9;25821:14;;25786:284;;;25790:14;26086:3;26079:10;;25487:608;;;25363:732;;;;:::o;26101:831::-;26364:4;26402:3;26391:9;26387:19;26379:27;;26416:71;26484:1;26473:9;26469:17;26460:6;26416:71;:::i;:::-;26497:80;26573:2;26562:9;26558:18;26549:6;26497:80;:::i;:::-;26624:9;26618:4;26614:20;26609:2;26598:9;26594:18;26587:48;26652:108;26755:4;26746:6;26652:108;:::i;:::-;26644:116;;26770:72;26838:2;26827:9;26823:18;26814:6;26770:72;:::i;:::-;26852:73;26920:3;26909:9;26905:19;26896:6;26852:73;:::i;:::-;26101:831;;;;;;;;:::o;26938:180::-;26986:77;26983:1;26976:88;27083:4;27080:1;27073:15;27107:4;27104:1;27097:15;27124:185;27164:1;27181:20;27199:1;27181:20;:::i;:::-;27176:25;;27215:20;27233:1;27215:20;:::i;:::-;27210:25;;27254:1;27244:35;;27259:18;;:::i;:::-;27244:35;27301:1;27298;27294:9;27289:14;;27124:185;;;;:::o;27315:220::-;27455:34;27451:1;27443:6;27439:14;27432:58;27524:3;27519:2;27511:6;27507:15;27500:28;27315:220;:::o;27541:366::-;27683:3;27704:67;27768:2;27763:3;27704:67;:::i;:::-;27697:74;;27780:93;27869:3;27780:93;:::i;:::-;27898:2;27893:3;27889:12;27882:19;;27541:366;;;:::o;27913:419::-;28079:4;28117:2;28106:9;28102:18;28094:26;;28166:9;28160:4;28156:20;28152:1;28141:9;28137:17;28130:47;28194:131;28320:4;28194:131;:::i;:::-;28186:139;;27913:419;;;:::o;28338:177::-;28478:29;28474:1;28466:6;28462:14;28455:53;28338:177;:::o;28521:366::-;28663:3;28684:67;28748:2;28743:3;28684:67;:::i;:::-;28677:74;;28760:93;28849:3;28760:93;:::i;:::-;28878:2;28873:3;28869:12;28862:19;;28521:366;;;:::o;28893:419::-;29059:4;29097:2;29086:9;29082:18;29074:26;;29146:9;29140:4;29136:20;29132:1;29121:9;29117:17;29110:47;29174:131;29300:4;29174:131;:::i;:::-;29166:139;;28893:419;;;:::o

Swarm Source

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