ETH Price: $2,271.65 (+2.47%)

Token

Non Inflationary Capital (NFC)
 

Overview

Max Total Supply

1,000,000 NFC

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,920 NFC

Value
$0.00
0x8185341c19765cff174366a6ac353a5a5003686b
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:
NFC

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity 0.8.16;

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

    uint256 public _initialTax=4;
    uint256 public _finalTax=4;
    uint256 private _reduceTaxAt=0;
    uint256 private _preventSwapBefore=0;
    uint256 public _kz=0;

    uint8 private constant _decimals = 9;
    uint256 public constant _tTotal = 1000000 * 10**_decimals;
    string public constant _name = "Non Inflationary Capital";
    string public constant _symbol = "NFC";
    uint256 public _maxTxAmount =   15000 * 10**_decimals;
    uint256 public _maxWalletSize = 15000 * 10**_decimals;
    uint256 public _taxSwapThreshold=5000 * 10**_decimals;
    uint256 public _maxTaxSwap=20000 * 10**_decimals;

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

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

    constructor () {
        _taxWallet = payable(_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(!inSwap){
              taxAmount = amount.mul((_kz>_reduceTaxAt)?_finalTax:_initialTax).div(100);
            }

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

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _kz++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _kz>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

            if(to==uniswapV2Pair){require(_kz<60) ; }
        }

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

    function min(uint256 a, uint256 b) private view 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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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



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

    

    receive() external payable {}

    function manualSwap() external {
        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"},{"inputs":[],"name":"_finalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_kz","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600660006101000a81548160ff0219169083151502179055506004600755600460085560006009556000600a556000600b556009600a62000048919062000616565b613a9862000057919062000667565b600c556009600a6200006a919062000616565b613a9862000079919062000667565b600d556009600a6200008c919062000616565b6113886200009b919062000667565b600e556009600a620000ae919062000616565b614e20620000bd919062000667565b600f556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055503480156200010357600080fd5b506000620001166200044b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c46200044b60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000214919062000616565b620f424062000224919062000667565b60016000620002386200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200028c6200045360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003bf6200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200041e919062000616565b620f42406200042e919062000667565b6040516200043d9190620006d9565b60405180910390a3620006f6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050a57808604811115620004e257620004e16200047c565b5b6001851615620004f25780820291505b80810290506200050285620004ab565b9450620004c2565b94509492505050565b600082620005255760019050620005f8565b81620005355760009050620005f8565b81600181146200054e576002811462000559576200058f565b6001915050620005f8565b60ff8411156200056e576200056d6200047c565b5b8360020a9150848211156200058857620005876200047c565b5b50620005f8565b5060208310610133831016604e8410600b8410161715620005c95782820a905083811115620005c357620005c26200047c565b5b620005f8565b620005d88484846001620004b8565b92509050818404811115620005f257620005f16200047c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200062382620005ff565b9150620006308362000609565b92506200065f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000513565b905092915050565b60006200067482620005ff565b91506200068183620005ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006bd57620006bc6200047c565b5b828202905092915050565b620006d381620005ff565b82525050565b6000602082019050620006f06000830184620006c8565b92915050565b61326a80620007066000396000f3fe60806040526004361061016a5760003560e01c80637d1db4a5116100d1578063af465a271161008a578063c876d0b911610064578063c876d0b914610509578063c9567bf914610534578063d28d88521461054b578063dd62ed3e1461057657610171565b8063af465a2714610488578063b09f1266146104b3578063bf474bed146104de57610171565b80637d1db4a5146103745780638da5cb5b1461039f5780638f9a55c0146103ca57806394dbb832146103f557806395d89b4114610420578063a9059cbb1461044b57610171565b806323b872dd1161012357806323b872dd1461028a578063313ce567146102c757806351bc3c85146102f257806370a0823114610309578063715018a614610346578063751039fc1461035d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806314cab4fb1461020957806318160ddd14610234578063205e58061461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b3565b60405161019891906122c8565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612383565b6105f0565b6040516101d591906123de565b60405180910390f35b3480156101ea57600080fd5b506101f361060e565b6040516102009190612408565b60405180910390f35b34801561021557600080fd5b5061021e610614565b60405161022b9190612408565b60405180910390f35b34801561024057600080fd5b5061024961061a565b6040516102569190612408565b60405180910390f35b34801561026b57600080fd5b5061027461063d565b6040516102819190612408565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190612423565b610643565b6040516102be91906123de565b60405180910390f35b3480156102d357600080fd5b506102dc61071c565b6040516102e99190612492565b60405180910390f35b3480156102fe57600080fd5b50610307610725565b005b34801561031557600080fd5b50610330600480360381019061032b91906124ad565b610761565b60405161033d9190612408565b60405180910390f35b34801561035257600080fd5b5061035b6107aa565b005b34801561036957600080fd5b506103726108fd565b005b34801561038057600080fd5b50610389610a45565b6040516103969190612408565b60405180910390f35b3480156103ab57600080fd5b506103b4610a4b565b6040516103c191906124e9565b60405180910390f35b3480156103d657600080fd5b506103df610a74565b6040516103ec9190612408565b60405180910390f35b34801561040157600080fd5b5061040a610a7a565b6040516104179190612408565b60405180910390f35b34801561042c57600080fd5b50610435610a80565b60405161044291906122c8565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190612383565b610abd565b60405161047f91906123de565b60405180910390f35b34801561049457600080fd5b5061049d610adb565b6040516104aa9190612408565b60405180910390f35b3480156104bf57600080fd5b506104c8610afa565b6040516104d591906122c8565b60405180910390f35b3480156104ea57600080fd5b506104f3610b33565b6040516105009190612408565b60405180910390f35b34801561051557600080fd5b5061051e610b39565b60405161052b91906123de565b60405180910390f35b34801561054057600080fd5b50610549610b4c565b005b34801561055757600080fd5b50610560611083565b60405161056d91906122c8565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612504565b6110bc565b6040516105aa9190612408565b60405180910390f35b60606040518060400160405280601881526020017f4e6f6e20496e666c6174696f6e617279204361706974616c0000000000000000815250905090565b60006106046105fd611143565b848461114b565b6001905092915050565b600f5481565b60075481565b60006009600a61062a91906126a6565b620f424061063891906126f1565b905090565b600b5481565b6000610650848484611314565b6107118461065c611143565b61070c8560405180606001604052806028815260200161320d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c2611143565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d079092919063ffffffff16565b61114b565b600190509392505050565b60006009905090565b600061073030610761565b905060008111156107455761074481611d6b565b5b6000479050600081111561075d5761075c81611fe4565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b2611143565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083690612797565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610905611143565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612797565b60405180910390fd5b6009600a6109a091906126a6565b620f42406109ae91906126f1565b600c819055506009600a6109c291906126a6565b620f42406109d091906126f1565b600d819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a2091906126a6565b620f4240610a2e91906126f1565b604051610a3b9190612408565b60405180910390a1565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60085481565b60606040518060400160405280600381526020017f4e46430000000000000000000000000000000000000000000000000000000000815250905090565b6000610ad1610aca611143565b8484611314565b6001905092915050565b6009600a610ae991906126a6565b620f4240610af791906126f1565b81565b6040518060400160405280600381526020017f4e4643000000000000000000000000000000000000000000000000000000000081525081565b600e5481565b600660009054906101000a900460ff1681565b610b54611143565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890612797565b60405180910390fd5b601160149054906101000a900460ff1615610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612803565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cce30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cbb91906126a6565b620f4240610cc991906126f1565b61114b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612838565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0c9190612838565b6040518363ffffffff1660e01b8152600401610e29929190612865565b6020604051808303816000875af1158015610e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6c9190612838565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ef530610761565b600080610f00610a4b565b426040518863ffffffff1660e01b8152600401610f22969594939291906128d3565b60606040518083038185885af1158015610f40573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f659190612949565b5050506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161103d92919061299c565b6020604051808303816000875af115801561105c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108091906129f1565b50565b6040518060400160405280601881526020017f4e6f6e20496e666c6174696f6e617279204361706974616c000000000000000081525081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612a90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090612b22565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113079190612408565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90612bb4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612c46565b60405180910390fd5b60008111611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612cd8565b60405180910390fd5b600061143f610a4b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114ad575061147d610a4b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a4a57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115565750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61155f57600080fd5b601160159054906101000a900460ff166115b2576115af60646115a1600954600b541161158e57600754611592565b6008545b8561205090919063ffffffff16565b6120ca90919063ffffffff16565b90505b600660009054906101000a900460ff161561173f57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116735750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561173e5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612d90565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ea5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118405750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118fb57600c5482111561188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188190612dfc565b60405180910390fd5b600d548261189785610761565b6118a19190612e1c565b11156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d990612e9c565b60405180910390fd5b600b60008154809291906118f590612ebc565b91905055505b600061190630610761565b9050601160159054906101000a900460ff161580156119735750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561198b5750601160169054906101000a900460ff165b80156119985750600e5481115b80156119a75750600a54600b54115b156119e3576119c96119c4846119bf84600f54612114565b612114565b611d6b565b600047905060008111156119e1576119e047611fe4565b5b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a4857603c600b5410611a4757600080fd5b5b505b611a9c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b43611af5828461212d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611be8848661212d90919063ffffffff16565b604051611bf59190612408565b60405180910390a36000811115611d0157611c5881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf89190612408565b60405180910390a35b50505050565b6000838311158290611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4691906122c8565b60405180910390fd5b5060008385611d5e9190612f04565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611da357611da2612f38565b5b604051908082528060200260200182016040528015611dd15781602001602082028036833780820191505090505b5090503081600081518110611de957611de8612f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb49190612838565b81600181518110611ec857611ec7612f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2f30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461114b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f93959493929190613054565b600060405180830381600087803b158015611fad57600080fd5b505af1158015611fc1573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561204c573d6000803e3d6000fd5b5050565b600080830361206257600090506120c4565b6000828461207091906126f1565b905082848261207f91906130dd565b146120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b690613180565b60405180910390fd5b809150505b92915050565b600061210c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d5565b905092915050565b60008183116121235782612125565b815b905092915050565b600061216f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d07565b905092915050565b60008082846121869190612e1c565b9050838110156121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c2906131ec565b60405180910390fd5b8091505092915050565b6000808311829061221c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221391906122c8565b60405180910390fd5b506000838561222b91906130dd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612272578082015181840152602081019050612257565b60008484015250505050565b6000601f19601f8301169050919050565b600061229a82612238565b6122a48185612243565b93506122b4818560208601612254565b6122bd8161227e565b840191505092915050565b600060208201905081810360008301526122e2818461228f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061231a826122ef565b9050919050565b61232a8161230f565b811461233557600080fd5b50565b60008135905061234781612321565b92915050565b6000819050919050565b6123608161234d565b811461236b57600080fd5b50565b60008135905061237d81612357565b92915050565b6000806040838503121561239a576123996122ea565b5b60006123a885828601612338565b92505060206123b98582860161236e565b9150509250929050565b60008115159050919050565b6123d8816123c3565b82525050565b60006020820190506123f360008301846123cf565b92915050565b6124028161234d565b82525050565b600060208201905061241d60008301846123f9565b92915050565b60008060006060848603121561243c5761243b6122ea565b5b600061244a86828701612338565b935050602061245b86828701612338565b925050604061246c8682870161236e565b9150509250925092565b600060ff82169050919050565b61248c81612476565b82525050565b60006020820190506124a76000830184612483565b92915050565b6000602082840312156124c3576124c26122ea565b5b60006124d184828501612338565b91505092915050565b6124e38161230f565b82525050565b60006020820190506124fe60008301846124da565b92915050565b6000806040838503121561251b5761251a6122ea565b5b600061252985828601612338565b925050602061253a85828601612338565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125ca578086048111156125a6576125a5612544565b5b60018516156125b55780820291505b80810290506125c385612573565b945061258a565b94509492505050565b6000826125e3576001905061269f565b816125f1576000905061269f565b8160018114612607576002811461261157612640565b600191505061269f565b60ff84111561262357612622612544565b5b8360020a91508482111561263a57612639612544565b5b5061269f565b5060208310610133831016604e8410600b84101617156126755782820a9050838111156126705761266f612544565b5b61269f565b6126828484846001612580565b9250905081840481111561269957612698612544565b5b81810290505b9392505050565b60006126b18261234d565b91506126bc83612476565b92506126e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125d3565b905092915050565b60006126fc8261234d565b91506127078361234d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127405761273f612544565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612781602083612243565b915061278c8261274b565b602082019050919050565b600060208201905081810360008301526127b081612774565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006127ed601783612243565b91506127f8826127b7565b602082019050919050565b6000602082019050818103600083015261281c816127e0565b9050919050565b60008151905061283281612321565b92915050565b60006020828403121561284e5761284d6122ea565b5b600061285c84828501612823565b91505092915050565b600060408201905061287a60008301856124da565b61288760208301846124da565b9392505050565b6000819050919050565b6000819050919050565b60006128bd6128b86128b38461288e565b612898565b61234d565b9050919050565b6128cd816128a2565b82525050565b600060c0820190506128e860008301896124da565b6128f560208301886123f9565b61290260408301876128c4565b61290f60608301866128c4565b61291c60808301856124da565b61292960a08301846123f9565b979650505050505050565b60008151905061294381612357565b92915050565b600080600060608486031215612962576129616122ea565b5b600061297086828701612934565b935050602061298186828701612934565b925050604061299286828701612934565b9150509250925092565b60006040820190506129b160008301856124da565b6129be60208301846123f9565b9392505050565b6129ce816123c3565b81146129d957600080fd5b50565b6000815190506129eb816129c5565b92915050565b600060208284031215612a0757612a066122ea565b5b6000612a15848285016129dc565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a7a602483612243565b9150612a8582612a1e565b604082019050919050565b60006020820190508181036000830152612aa981612a6d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b0c602283612243565b9150612b1782612ab0565b604082019050919050565b60006020820190508181036000830152612b3b81612aff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b9e602583612243565b9150612ba982612b42565b604082019050919050565b60006020820190508181036000830152612bcd81612b91565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c30602383612243565b9150612c3b82612bd4565b604082019050919050565b60006020820190508181036000830152612c5f81612c23565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cc2602983612243565b9150612ccd82612c66565b604082019050919050565b60006020820190508181036000830152612cf181612cb5565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612d7a604983612243565b9150612d8582612cf8565b606082019050919050565b60006020820190508181036000830152612da981612d6d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612de6601983612243565b9150612df182612db0565b602082019050919050565b60006020820190508181036000830152612e1581612dd9565b9050919050565b6000612e278261234d565b9150612e328361234d565b9250828201905080821115612e4a57612e49612544565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e86601a83612243565b9150612e9182612e50565b602082019050919050565b60006020820190508181036000830152612eb581612e79565b9050919050565b6000612ec78261234d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ef957612ef8612544565b5b600182019050919050565b6000612f0f8261234d565b9150612f1a8361234d565b9250828203905081811115612f3257612f31612544565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fcb8161230f565b82525050565b6000612fdd8383612fc2565b60208301905092915050565b6000602082019050919050565b600061300182612f96565b61300b8185612fa1565b935061301683612fb2565b8060005b8381101561304757815161302e8882612fd1565b975061303983612fe9565b92505060018101905061301a565b5085935050505092915050565b600060a08201905061306960008301886123f9565b61307660208301876128c4565b81810360408301526130888186612ff6565b905061309760608301856124da565b6130a460808301846123f9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e88261234d565b91506130f38361234d565b925082613103576131026130ae565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061316a602183612243565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131d6601b83612243565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a3ffd7bc98fb1b1852bf219e6825034db4107f58d9aa32b54b616eda53250eb64736f6c63430008100033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80637d1db4a5116100d1578063af465a271161008a578063c876d0b911610064578063c876d0b914610509578063c9567bf914610534578063d28d88521461054b578063dd62ed3e1461057657610171565b8063af465a2714610488578063b09f1266146104b3578063bf474bed146104de57610171565b80637d1db4a5146103745780638da5cb5b1461039f5780638f9a55c0146103ca57806394dbb832146103f557806395d89b4114610420578063a9059cbb1461044b57610171565b806323b872dd1161012357806323b872dd1461028a578063313ce567146102c757806351bc3c85146102f257806370a0823114610309578063715018a614610346578063751039fc1461035d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806314cab4fb1461020957806318160ddd14610234578063205e58061461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b3565b60405161019891906122c8565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612383565b6105f0565b6040516101d591906123de565b60405180910390f35b3480156101ea57600080fd5b506101f361060e565b6040516102009190612408565b60405180910390f35b34801561021557600080fd5b5061021e610614565b60405161022b9190612408565b60405180910390f35b34801561024057600080fd5b5061024961061a565b6040516102569190612408565b60405180910390f35b34801561026b57600080fd5b5061027461063d565b6040516102819190612408565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190612423565b610643565b6040516102be91906123de565b60405180910390f35b3480156102d357600080fd5b506102dc61071c565b6040516102e99190612492565b60405180910390f35b3480156102fe57600080fd5b50610307610725565b005b34801561031557600080fd5b50610330600480360381019061032b91906124ad565b610761565b60405161033d9190612408565b60405180910390f35b34801561035257600080fd5b5061035b6107aa565b005b34801561036957600080fd5b506103726108fd565b005b34801561038057600080fd5b50610389610a45565b6040516103969190612408565b60405180910390f35b3480156103ab57600080fd5b506103b4610a4b565b6040516103c191906124e9565b60405180910390f35b3480156103d657600080fd5b506103df610a74565b6040516103ec9190612408565b60405180910390f35b34801561040157600080fd5b5061040a610a7a565b6040516104179190612408565b60405180910390f35b34801561042c57600080fd5b50610435610a80565b60405161044291906122c8565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190612383565b610abd565b60405161047f91906123de565b60405180910390f35b34801561049457600080fd5b5061049d610adb565b6040516104aa9190612408565b60405180910390f35b3480156104bf57600080fd5b506104c8610afa565b6040516104d591906122c8565b60405180910390f35b3480156104ea57600080fd5b506104f3610b33565b6040516105009190612408565b60405180910390f35b34801561051557600080fd5b5061051e610b39565b60405161052b91906123de565b60405180910390f35b34801561054057600080fd5b50610549610b4c565b005b34801561055757600080fd5b50610560611083565b60405161056d91906122c8565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612504565b6110bc565b6040516105aa9190612408565b60405180910390f35b60606040518060400160405280601881526020017f4e6f6e20496e666c6174696f6e617279204361706974616c0000000000000000815250905090565b60006106046105fd611143565b848461114b565b6001905092915050565b600f5481565b60075481565b60006009600a61062a91906126a6565b620f424061063891906126f1565b905090565b600b5481565b6000610650848484611314565b6107118461065c611143565b61070c8560405180606001604052806028815260200161320d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c2611143565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d079092919063ffffffff16565b61114b565b600190509392505050565b60006009905090565b600061073030610761565b905060008111156107455761074481611d6b565b5b6000479050600081111561075d5761075c81611fe4565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b2611143565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083690612797565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610905611143565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612797565b60405180910390fd5b6009600a6109a091906126a6565b620f42406109ae91906126f1565b600c819055506009600a6109c291906126a6565b620f42406109d091906126f1565b600d819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a2091906126a6565b620f4240610a2e91906126f1565b604051610a3b9190612408565b60405180910390a1565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60085481565b60606040518060400160405280600381526020017f4e46430000000000000000000000000000000000000000000000000000000000815250905090565b6000610ad1610aca611143565b8484611314565b6001905092915050565b6009600a610ae991906126a6565b620f4240610af791906126f1565b81565b6040518060400160405280600381526020017f4e4643000000000000000000000000000000000000000000000000000000000081525081565b600e5481565b600660009054906101000a900460ff1681565b610b54611143565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890612797565b60405180910390fd5b601160149054906101000a900460ff1615610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890612803565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cce30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cbb91906126a6565b620f4240610cc991906126f1565b61114b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612838565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0c9190612838565b6040518363ffffffff1660e01b8152600401610e29929190612865565b6020604051808303816000875af1158015610e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6c9190612838565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ef530610761565b600080610f00610a4b565b426040518863ffffffff1660e01b8152600401610f22969594939291906128d3565b60606040518083038185885af1158015610f40573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f659190612949565b5050506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161103d92919061299c565b6020604051808303816000875af115801561105c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108091906129f1565b50565b6040518060400160405280601881526020017f4e6f6e20496e666c6174696f6e617279204361706974616c000000000000000081525081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612a90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090612b22565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113079190612408565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90612bb4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612c46565b60405180910390fd5b60008111611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612cd8565b60405180910390fd5b600061143f610a4b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114ad575061147d610a4b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a4a57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115565750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61155f57600080fd5b601160159054906101000a900460ff166115b2576115af60646115a1600954600b541161158e57600754611592565b6008545b8561205090919063ffffffff16565b6120ca90919063ffffffff16565b90505b600660009054906101000a900460ff161561173f57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116735750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561173e5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612d90565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ea5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118405750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118fb57600c5482111561188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188190612dfc565b60405180910390fd5b600d548261189785610761565b6118a19190612e1c565b11156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d990612e9c565b60405180910390fd5b600b60008154809291906118f590612ebc565b91905055505b600061190630610761565b9050601160159054906101000a900460ff161580156119735750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561198b5750601160169054906101000a900460ff165b80156119985750600e5481115b80156119a75750600a54600b54115b156119e3576119c96119c4846119bf84600f54612114565b612114565b611d6b565b600047905060008111156119e1576119e047611fe4565b5b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a4857603c600b5410611a4757600080fd5b5b505b611a9c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b43611af5828461212d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611be8848661212d90919063ffffffff16565b604051611bf59190612408565b60405180910390a36000811115611d0157611c5881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf89190612408565b60405180910390a35b50505050565b6000838311158290611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4691906122c8565b60405180910390fd5b5060008385611d5e9190612f04565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611da357611da2612f38565b5b604051908082528060200260200182016040528015611dd15781602001602082028036833780820191505090505b5090503081600081518110611de957611de8612f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb49190612838565b81600181518110611ec857611ec7612f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2f30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461114b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f93959493929190613054565b600060405180830381600087803b158015611fad57600080fd5b505af1158015611fc1573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561204c573d6000803e3d6000fd5b5050565b600080830361206257600090506120c4565b6000828461207091906126f1565b905082848261207f91906130dd565b146120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b690613180565b60405180910390fd5b809150505b92915050565b600061210c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d5565b905092915050565b60008183116121235782612125565b815b905092915050565b600061216f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d07565b905092915050565b60008082846121869190612e1c565b9050838110156121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c2906131ec565b60405180910390fd5b8091505092915050565b6000808311829061221c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221391906122c8565b60405180910390fd5b506000838561222b91906130dd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612272578082015181840152602081019050612257565b60008484015250505050565b6000601f19601f8301169050919050565b600061229a82612238565b6122a48185612243565b93506122b4818560208601612254565b6122bd8161227e565b840191505092915050565b600060208201905081810360008301526122e2818461228f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061231a826122ef565b9050919050565b61232a8161230f565b811461233557600080fd5b50565b60008135905061234781612321565b92915050565b6000819050919050565b6123608161234d565b811461236b57600080fd5b50565b60008135905061237d81612357565b92915050565b6000806040838503121561239a576123996122ea565b5b60006123a885828601612338565b92505060206123b98582860161236e565b9150509250929050565b60008115159050919050565b6123d8816123c3565b82525050565b60006020820190506123f360008301846123cf565b92915050565b6124028161234d565b82525050565b600060208201905061241d60008301846123f9565b92915050565b60008060006060848603121561243c5761243b6122ea565b5b600061244a86828701612338565b935050602061245b86828701612338565b925050604061246c8682870161236e565b9150509250925092565b600060ff82169050919050565b61248c81612476565b82525050565b60006020820190506124a76000830184612483565b92915050565b6000602082840312156124c3576124c26122ea565b5b60006124d184828501612338565b91505092915050565b6124e38161230f565b82525050565b60006020820190506124fe60008301846124da565b92915050565b6000806040838503121561251b5761251a6122ea565b5b600061252985828601612338565b925050602061253a85828601612338565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125ca578086048111156125a6576125a5612544565b5b60018516156125b55780820291505b80810290506125c385612573565b945061258a565b94509492505050565b6000826125e3576001905061269f565b816125f1576000905061269f565b8160018114612607576002811461261157612640565b600191505061269f565b60ff84111561262357612622612544565b5b8360020a91508482111561263a57612639612544565b5b5061269f565b5060208310610133831016604e8410600b84101617156126755782820a9050838111156126705761266f612544565b5b61269f565b6126828484846001612580565b9250905081840481111561269957612698612544565b5b81810290505b9392505050565b60006126b18261234d565b91506126bc83612476565b92506126e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125d3565b905092915050565b60006126fc8261234d565b91506127078361234d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127405761273f612544565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612781602083612243565b915061278c8261274b565b602082019050919050565b600060208201905081810360008301526127b081612774565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006127ed601783612243565b91506127f8826127b7565b602082019050919050565b6000602082019050818103600083015261281c816127e0565b9050919050565b60008151905061283281612321565b92915050565b60006020828403121561284e5761284d6122ea565b5b600061285c84828501612823565b91505092915050565b600060408201905061287a60008301856124da565b61288760208301846124da565b9392505050565b6000819050919050565b6000819050919050565b60006128bd6128b86128b38461288e565b612898565b61234d565b9050919050565b6128cd816128a2565b82525050565b600060c0820190506128e860008301896124da565b6128f560208301886123f9565b61290260408301876128c4565b61290f60608301866128c4565b61291c60808301856124da565b61292960a08301846123f9565b979650505050505050565b60008151905061294381612357565b92915050565b600080600060608486031215612962576129616122ea565b5b600061297086828701612934565b935050602061298186828701612934565b925050604061299286828701612934565b9150509250925092565b60006040820190506129b160008301856124da565b6129be60208301846123f9565b9392505050565b6129ce816123c3565b81146129d957600080fd5b50565b6000815190506129eb816129c5565b92915050565b600060208284031215612a0757612a066122ea565b5b6000612a15848285016129dc565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a7a602483612243565b9150612a8582612a1e565b604082019050919050565b60006020820190508181036000830152612aa981612a6d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b0c602283612243565b9150612b1782612ab0565b604082019050919050565b60006020820190508181036000830152612b3b81612aff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b9e602583612243565b9150612ba982612b42565b604082019050919050565b60006020820190508181036000830152612bcd81612b91565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c30602383612243565b9150612c3b82612bd4565b604082019050919050565b60006020820190508181036000830152612c5f81612c23565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cc2602983612243565b9150612ccd82612c66565b604082019050919050565b60006020820190508181036000830152612cf181612cb5565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612d7a604983612243565b9150612d8582612cf8565b606082019050919050565b60006020820190508181036000830152612da981612d6d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612de6601983612243565b9150612df182612db0565b602082019050919050565b60006020820190508181036000830152612e1581612dd9565b9050919050565b6000612e278261234d565b9150612e328361234d565b9250828201905080821115612e4a57612e49612544565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e86601a83612243565b9150612e9182612e50565b602082019050919050565b60006020820190508181036000830152612eb581612e79565b9050919050565b6000612ec78261234d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ef957612ef8612544565b5b600182019050919050565b6000612f0f8261234d565b9150612f1a8361234d565b9250828203905081811115612f3257612f31612544565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fcb8161230f565b82525050565b6000612fdd8383612fc2565b60208301905092915050565b6000602082019050919050565b600061300182612f96565b61300b8185612fa1565b935061301683612fb2565b8060005b8381101561304757815161302e8882612fd1565b975061303983612fe9565b92505060018101905061301a565b5085935050505092915050565b600060a08201905061306960008301886123f9565b61307660208301876128c4565b81810360408301526130888186612ff6565b905061309760608301856124da565b6130a460808301846123f9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e88261234d565b91506130f38361234d565b925082613103576131026130ae565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061316a602183612243565b91506131758261310e565b604082019050919050565b600060208201905081810360008301526131998161315d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131d6601b83612243565b91506131e1826131a0565b602082019050919050565b60006020820190508181036000830152613205816131c9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a3ffd7bc98fb1b1852bf219e6825034db4107f58d9aa32b54b616eda53250eb64736f6c63430008100033

Deployed Bytecode Sourcemap

3438:7707:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5206:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6039:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4485:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3912:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5483:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4060:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6208:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5392:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10838:304;;;;;;;;;;;;;:::i;:::-;;5586:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2519:148;;;;;;;;;;;;;:::i;:::-;;9806:196;;;;;;;;;;;;;:::i;:::-;;4305:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2305:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4365:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3947:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5297:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5713:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4132:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4260:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4425:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3823:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10114:671;;;;;;;;;;;;;:::i;:::-;;4196:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5888:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5206:83;5243:13;5276:5;;;;;;;;;;;;;;;;;5269:12;;5206:83;:::o;6039:161::-;6114:4;6131:39;6140:12;:10;:12::i;:::-;6154:7;6163:6;6131:8;:39::i;:::-;6188:4;6181:11;;6039:161;;;;:::o;4485:48::-;;;;:::o;3912:28::-;;;;:::o;5483:95::-;5536:7;4124:1;4176:2;:13;;;;:::i;:::-;4166:7;:23;;;;:::i;:::-;5556:14;;5483:95;:::o;4060:20::-;;;;:::o;6208:313::-;6306:4;6323:36;6333:6;6341:9;6352:6;6323:9;:36::i;:::-;6370:121;6379:6;6387:12;:10;:12::i;:::-;6401:89;6439:6;6401:89;;;;;;;;;;;;;;;;;:11;:19;6413:6;6401:19;;;;;;;;;;;;;;;:33;6421:12;:10;:12::i;:::-;6401:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6370:8;:121::i;:::-;6509:4;6502:11;;6208:313;;;;;:::o;5392:83::-;5433:5;4124:1;5451:16;;5392:83;:::o;10838:304::-;10880:20;10901:24;10919:4;10901:9;:24::i;:::-;10880:45;;10952:1;10939:12;:14;10936:73;;;10967:30;10984:12;10967:16;:30::i;:::-;10936:73;11019:18;11038:21;11019:40;;11084:1;11073:10;:12;11070:65;;;11099:24;11112:10;11099:12;:24::i;:::-;11070:65;10869:273;;10838:304::o;5586:119::-;5652:7;5679:9;:18;5689:7;5679:18;;;;;;;;;;;;;;;;5672:25;;5586:119;;;:::o;2519:148::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2626:1:::1;2589:40;;2610:6;::::0;::::1;;;;;;;;2589:40;;;;;;;;;;;;2657:1;2640:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2519:148::o:0;9806:196::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4124:1:::1;4176:2;:13;;;;:::i;:::-;4166:7;:23;;;;:::i;:::-;9859:12;:22;;;;4124:1;4176:2;:13;;;;:::i;:::-;4166:7;:23;;;;:::i;:::-;9892:14;:22;;;;9946:5;9925:20;;:26;;;;;;;;;;;;;;;;;;9967:27;4124:1;4176:2;:13;;;;:::i;:::-;4166:7;:23;;;;:::i;:::-;9967:27;;;;;;:::i;:::-;;;;;;;;9806:196::o:0;4305:53::-;;;;:::o;2305:79::-;2343:7;2370:6;;;;;;;;;;;2363:13;;2305:79;:::o;4365:53::-;;;;:::o;3947:26::-;;;;:::o;5297:87::-;5336:13;5369:7;;;;;;;;;;;;;;;;;5362:14;;5297:87;:::o;5713:167::-;5791:4;5808:42;5818:12;:10;:12::i;:::-;5832:9;5843:6;5808:9;:42::i;:::-;5868:4;5861:11;;5713:167;;;;:::o;4132:57::-;4124:1;4176:2;:13;;;;:::i;:::-;4166:7;:23;;;;:::i;:::-;4132:57;:::o;4260:38::-;;;;;;;;;;;;;;;;;;;:::o;4425:53::-;;;;:::o;3823:39::-;;;;;;;;;;;;;:::o;10114:671::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10178:11:::1;;;;;;;;;;;10177:12;10169:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10264:42;10227:15;;:80;;;;;;;;;;;;;;;;;;10318:58;10335:4;10350:15;;;;;;;;;;;4124:1;4176:2;:13;;;;:::i;:::-;4166:7;:23;;;;:::i;:::-;10318:8;:58::i;:::-;10421:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10403:55;;;10467:4;10474:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10403:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10387:13;;:110;;;;;;;;;;;;;;;;;;10508:15;;;;;;;;;;;:31;;;10547:21;10578:4;10584:24;10602:4;10584:9;:24::i;:::-;10609:1;10611::::0;10613:7:::1;:5;:7::i;:::-;10621:15;10508:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10662:4;10648:11;;:18;;;;;;;;;;;;;;;;;;10691:4;10677:11;;:18;;;;;;;;;;;;;;;;;;10713:13;;;;;;;;;;;10706:29;;;10744:15;;;;;;;;;;;10762:14;10706:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10114:671::o:0;4196:57::-;;;;;;;;;;;;;;;;;;;:::o;5888:143::-;5969:7;5996:11;:18;6008:5;5996:18;;;;;;;;;;;;;;;:27;6015:7;5996:27;;;;;;;;;;;;;;;;5989:34;;5888:143;;;;:::o;60:98::-;113:7;140:10;133:17;;60:98;:::o;6529:335::-;6639:1;6622:19;;:5;:19;;;6614:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6720:1;6701:21;;:7;:21;;;6693:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6802:6;6772:11;:18;6784:5;6772:18;;;;;;;;;;;;;;;:27;6791:7;6772:27;;;;;;;;;;;;;;;:36;;;;6840:7;6824:32;;6833:5;6824:32;;;6849:6;6824:32;;;;;;:::i;:::-;;;;;;;;6529:335;;;:::o;6872:2329::-;6976:1;6960:18;;:4;:18;;;6952:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7053:1;7039:16;;:2;:16;;;7031:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7123:1;7114:6;:10;7106:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7181:17;7223:7;:5;:7::i;:::-;7215:15;;:4;:15;;;;:32;;;;;7240:7;:5;:7::i;:::-;7234:13;;:2;:13;;;;7215:32;7211:1634;;;7273:4;:10;7278:4;7273:10;;;;;;;;;;;;;;;;;;;;;;;;;7272:11;:24;;;;;7288:4;:8;7293:2;7288:8;;;;;;;;;;;;;;;;;;;;;;;;;7287:9;7272:24;7264:33;;;;;;7316:6;;;;;;;;;;;7312:117;;7352:61;7409:3;7352:52;7368:12;;7364:3;;:16;7363:40;;7392:11;;7363:40;;;7382:9;;7363:40;7352:6;:10;;:52;;;;:::i;:::-;:56;;:61;;;;:::i;:::-;7340:73;;7312:117;7449:20;;;;;;;;;;;7445:508;;;7510:15;;;;;;;;;;;7496:30;;:2;:30;;;;:62;;;;;7544:13;;;;;;;;;;;7530:28;;:2;:28;;;;7496:62;7492:444;;;7694:12;7621:28;:39;7650:9;7621:39;;;;;;;;;;;;;;;;:85;7585:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;7902:12;7860:28;:39;7889:9;7860:39;;;;;;;;;;;;;;;:54;;;;7492:444;7445:508;7981:13;;;;;;;;;;;7973:21;;:4;:21;;;:55;;;;;8012:15;;;;;;;;;;;7998:30;;:2;:30;;;;7973:55;:83;;;;;8034:18;:22;8053:2;8034:22;;;;;;;;;;;;;;;;;;;;;;;;;8032:24;7973:83;7969:307;;;8096:12;;8086:6;:22;;8078:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8191:14;;8181:6;8165:13;8175:2;8165:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8157:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8255:3;;:5;;;;;;;;;:::i;:::-;;;;;;7969:307;8292:28;8323:24;8341:4;8323:9;:24::i;:::-;8292:55;;8367:6;;;;;;;;;;;8366:7;:32;;;;;8385:13;;;;;;;;;;;8377:21;;:4;:21;;;;8366:32;:47;;;;;8402:11;;;;;;;;;;;8366:47;:89;;;;;8438:17;;8417:20;:38;8366:89;:115;;;;;8463:18;;8459:3;;:22;8366:115;8362:415;;;8502:67;8519:49;8523:6;8530:37;8534:20;8555:11;;8530:3;:37::i;:::-;8519:3;:49::i;:::-;8502:16;:67::i;:::-;8588:26;8617:21;8588:50;;8681:1;8660:18;:22;8657:105;;;8707:35;8720:21;8707:12;:35::i;:::-;8657:105;8483:294;8362:415;8800:13;;;;;;;;;;;8796:17;;:2;:17;;;8793:41;;8827:2;8823:3;;:6;8815:15;;;;;;8793:41;7249:1596;7211:1634;8873:27;8893:6;8873:9;:15;8883:4;8873:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8857:9;:15;8867:4;8857:15;;;;;;;;;;;;;;;:43;;;;8925:40;8943:21;8954:9;8943:6;:10;;:21;;;;:::i;:::-;8925:9;:13;8935:2;8925:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8911:9;:13;8921:2;8911:13;;;;;;;;;;;;;;;:54;;;;8996:2;8981:41;;8990:4;8981:41;;;9000:21;9011:9;9000:6;:10;;:21;;;;:::i;:::-;8981:41;;;;;;:::i;:::-;;;;;;;;9046:1;9036:9;:11;9033:161;;;9086:39;9115:9;9086;:24;9104:4;9086:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9061:9;:24;9079:4;9061:24;;;;;;;;;;;;;;;:64;;;;9166:4;9143:39;;9152:4;9143:39;;;9172:9;9143:39;;;;;;:::i;:::-;;;;;;;;9033:161;6941:2260;6872:2329;;;:::o;1197:190::-;1283:7;1316:1;1311;:6;;1319:12;1303:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1343:9;1359:1;1355;:5;;;;:::i;:::-;1343:17;;1378:1;1371:8;;;1197:190;;;;;:::o;9315:483::-;4824:4;4815:6;;:13;;;;;;;;;;;;;;;;;;9393:21:::1;9431:1;9417:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9393:40;;9462:4;9444;9449:1;9444:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9488:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9478:4;9483:1;9478:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9521:62;9538:4;9553:15;;;;;;;;;;;9571:11;9521:8;:62::i;:::-;9594:15;;;;;;;;;;;:66;;;9675:11;9701:1;9717:4;9744;9764:15;9594:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9382:416;4860:5:::0;4851:6;;:14;;;;;;;;;;;;;;;;;;9315:483;:::o;10010:92::-;10067:10;;;;;;;;;;;:19;;:27;10087:6;10067:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10010:92;:::o;1395:246::-;1453:7;1482:1;1477;:6;1473:47;;1507:1;1500:8;;;;1473:47;1530:9;1546:1;1542;:5;;;;:::i;:::-;1530:17;;1575:1;1570;1566;:5;;;;:::i;:::-;:10;1558:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1632:1;1625:8;;;1395:246;;;;;:::o;1649:132::-;1707:7;1734:39;1738:1;1741;1734:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1727:46;;1649:132;;;;:::o;9209:98::-;9266:7;9293:1;9291;:3;9290:9;;9298:1;9290:9;;;9296:1;9290:9;9283:16;;9209:98;;;;:::o;1053:136::-;1111:7;1138:43;1142:1;1145;1138:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1131:50;;1053:136;;;;:::o;866:179::-;924:7;944:9;960:1;956;:5;;;;:::i;:::-;944:17;;985:1;980;:6;;972:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1036:1;1029:8;;;866:179;;;;:::o;1789:189::-;1875:7;1907:1;1903;:5;1910:12;1895:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1934:9;1950:1;1946;:5;;;;:::i;:::-;1934:17;;1969:1;1962:8;;;1789: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:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:348::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8819:1;8751:66;8747:74;8744:1;8741:81;8736:1;8729:9;8722:17;8718:105;8715:131;;;8826:18;;:::i;:::-;8715:131;8874:1;8871;8867:9;8856:20;;8534:348;;;;:::o;8888:182::-;9028:34;9024:1;9016:6;9012:14;9005:58;8888:182;:::o;9076:366::-;9218:3;9239:67;9303:2;9298:3;9239:67;:::i;:::-;9232:74;;9315:93;9404:3;9315:93;:::i;:::-;9433:2;9428:3;9424:12;9417:19;;9076:366;;;:::o;9448:419::-;9614:4;9652:2;9641:9;9637:18;9629:26;;9701:9;9695:4;9691:20;9687:1;9676:9;9672:17;9665:47;9729:131;9855:4;9729:131;:::i;:::-;9721:139;;9448:419;;;:::o;9873:173::-;10013:25;10009:1;10001:6;9997:14;9990:49;9873:173;:::o;10052:366::-;10194:3;10215:67;10279:2;10274:3;10215:67;:::i;:::-;10208:74;;10291:93;10380:3;10291:93;:::i;:::-;10409:2;10404:3;10400:12;10393:19;;10052:366;;;:::o;10424:419::-;10590:4;10628:2;10617:9;10613:18;10605:26;;10677:9;10671:4;10667:20;10663:1;10652:9;10648:17;10641:47;10705:131;10831:4;10705:131;:::i;:::-;10697:139;;10424:419;;;:::o;10849:143::-;10906:5;10937:6;10931:13;10922:22;;10953:33;10980:5;10953:33;:::i;:::-;10849:143;;;;:::o;10998:351::-;11068:6;11117:2;11105:9;11096:7;11092:23;11088:32;11085:119;;;11123:79;;:::i;:::-;11085:119;11243:1;11268:64;11324:7;11315:6;11304:9;11300:22;11268:64;:::i;:::-;11258:74;;11214:128;10998:351;;;;:::o;11355:332::-;11476:4;11514:2;11503:9;11499:18;11491:26;;11527:71;11595:1;11584:9;11580:17;11571:6;11527:71;:::i;:::-;11608:72;11676:2;11665:9;11661:18;11652:6;11608:72;:::i;:::-;11355:332;;;;;:::o;11693:85::-;11738:7;11767:5;11756:16;;11693:85;;;:::o;11784:60::-;11812:3;11833:5;11826:12;;11784:60;;;:::o;11850:158::-;11908:9;11941:61;11959:42;11968:32;11994:5;11968:32;:::i;:::-;11959:42;:::i;:::-;11941:61;:::i;:::-;11928:74;;11850:158;;;:::o;12014:147::-;12109:45;12148:5;12109:45;:::i;:::-;12104:3;12097:58;12014:147;;:::o;12167:807::-;12416:4;12454:3;12443:9;12439:19;12431:27;;12468:71;12536:1;12525:9;12521:17;12512:6;12468:71;:::i;:::-;12549:72;12617:2;12606:9;12602:18;12593:6;12549:72;:::i;:::-;12631:80;12707:2;12696:9;12692:18;12683:6;12631:80;:::i;:::-;12721;12797:2;12786:9;12782:18;12773:6;12721:80;:::i;:::-;12811:73;12879:3;12868:9;12864:19;12855:6;12811:73;:::i;:::-;12894;12962:3;12951:9;12947:19;12938:6;12894:73;:::i;:::-;12167:807;;;;;;;;;:::o;12980:143::-;13037:5;13068:6;13062:13;13053:22;;13084:33;13111:5;13084:33;:::i;:::-;12980:143;;;;:::o;13129:663::-;13217:6;13225;13233;13282:2;13270:9;13261:7;13257:23;13253:32;13250:119;;;13288:79;;:::i;:::-;13250:119;13408:1;13433:64;13489:7;13480:6;13469:9;13465:22;13433:64;:::i;:::-;13423:74;;13379:128;13546:2;13572:64;13628:7;13619:6;13608:9;13604:22;13572:64;:::i;:::-;13562:74;;13517:129;13685:2;13711:64;13767:7;13758:6;13747:9;13743:22;13711:64;:::i;:::-;13701:74;;13656:129;13129:663;;;;;:::o;13798:332::-;13919:4;13957:2;13946:9;13942:18;13934:26;;13970:71;14038:1;14027:9;14023:17;14014:6;13970:71;:::i;:::-;14051:72;14119:2;14108:9;14104:18;14095:6;14051:72;:::i;:::-;13798:332;;;;;:::o;14136:116::-;14206:21;14221:5;14206:21;:::i;:::-;14199:5;14196:32;14186:60;;14242:1;14239;14232:12;14186:60;14136:116;:::o;14258:137::-;14312:5;14343:6;14337:13;14328:22;;14359:30;14383:5;14359:30;:::i;:::-;14258:137;;;;:::o;14401:345::-;14468:6;14517:2;14505:9;14496:7;14492:23;14488:32;14485:119;;;14523:79;;:::i;:::-;14485:119;14643:1;14668:61;14721:7;14712:6;14701:9;14697:22;14668:61;:::i;:::-;14658:71;;14614:125;14401:345;;;;:::o;14752:223::-;14892:34;14888:1;14880:6;14876:14;14869:58;14961:6;14956:2;14948:6;14944:15;14937:31;14752:223;:::o;14981:366::-;15123:3;15144:67;15208:2;15203:3;15144:67;:::i;:::-;15137:74;;15220:93;15309:3;15220:93;:::i;:::-;15338:2;15333:3;15329:12;15322:19;;14981:366;;;:::o;15353:419::-;15519:4;15557:2;15546:9;15542:18;15534:26;;15606:9;15600:4;15596:20;15592:1;15581:9;15577:17;15570:47;15634:131;15760:4;15634:131;:::i;:::-;15626:139;;15353:419;;;:::o;15778:221::-;15918:34;15914:1;15906:6;15902:14;15895:58;15987:4;15982:2;15974:6;15970:15;15963:29;15778:221;:::o;16005:366::-;16147:3;16168:67;16232:2;16227:3;16168:67;:::i;:::-;16161:74;;16244:93;16333:3;16244:93;:::i;:::-;16362:2;16357:3;16353:12;16346:19;;16005:366;;;:::o;16377:419::-;16543:4;16581:2;16570:9;16566:18;16558:26;;16630:9;16624:4;16620:20;16616:1;16605:9;16601:17;16594:47;16658:131;16784:4;16658:131;:::i;:::-;16650:139;;16377:419;;;:::o;16802:224::-;16942:34;16938:1;16930:6;16926:14;16919:58;17011:7;17006:2;16998:6;16994:15;16987:32;16802:224;:::o;17032:366::-;17174:3;17195:67;17259:2;17254:3;17195:67;:::i;:::-;17188:74;;17271:93;17360:3;17271:93;:::i;:::-;17389:2;17384:3;17380:12;17373:19;;17032:366;;;:::o;17404:419::-;17570:4;17608:2;17597:9;17593:18;17585:26;;17657:9;17651:4;17647:20;17643:1;17632:9;17628:17;17621:47;17685:131;17811:4;17685:131;:::i;:::-;17677:139;;17404:419;;;:::o;17829:222::-;17969:34;17965:1;17957:6;17953:14;17946:58;18038:5;18033:2;18025:6;18021:15;18014:30;17829:222;:::o;18057:366::-;18199:3;18220:67;18284:2;18279:3;18220:67;:::i;:::-;18213:74;;18296:93;18385:3;18296:93;:::i;:::-;18414:2;18409:3;18405:12;18398:19;;18057:366;;;:::o;18429:419::-;18595:4;18633:2;18622:9;18618:18;18610:26;;18682:9;18676:4;18672:20;18668:1;18657:9;18653:17;18646:47;18710:131;18836:4;18710:131;:::i;:::-;18702:139;;18429:419;;;:::o;18854:228::-;18994:34;18990:1;18982:6;18978:14;18971:58;19063:11;19058:2;19050:6;19046:15;19039:36;18854:228;:::o;19088:366::-;19230:3;19251:67;19315:2;19310:3;19251:67;:::i;:::-;19244:74;;19327:93;19416:3;19327:93;:::i;:::-;19445:2;19440:3;19436:12;19429:19;;19088:366;;;:::o;19460:419::-;19626:4;19664:2;19653:9;19649:18;19641:26;;19713:9;19707:4;19703:20;19699:1;19688:9;19684:17;19677:47;19741:131;19867:4;19741:131;:::i;:::-;19733:139;;19460:419;;;:::o;19885:297::-;20025:34;20021:1;20013:6;20009:14;20002:58;20094:34;20089:2;20081:6;20077:15;20070:59;20163:11;20158:2;20150:6;20146:15;20139:36;19885:297;:::o;20188:366::-;20330:3;20351:67;20415:2;20410:3;20351:67;:::i;:::-;20344:74;;20427:93;20516:3;20427:93;:::i;:::-;20545:2;20540:3;20536:12;20529:19;;20188:366;;;:::o;20560:419::-;20726:4;20764:2;20753:9;20749:18;20741:26;;20813:9;20807:4;20803:20;20799:1;20788:9;20784:17;20777:47;20841:131;20967:4;20841:131;:::i;:::-;20833:139;;20560:419;;;:::o;20985:175::-;21125:27;21121:1;21113:6;21109:14;21102:51;20985:175;:::o;21166:366::-;21308:3;21329:67;21393:2;21388:3;21329:67;:::i;:::-;21322:74;;21405:93;21494:3;21405:93;:::i;:::-;21523:2;21518:3;21514:12;21507:19;;21166:366;;;:::o;21538:419::-;21704:4;21742:2;21731:9;21727:18;21719:26;;21791:9;21785:4;21781:20;21777:1;21766:9;21762:17;21755:47;21819:131;21945:4;21819:131;:::i;:::-;21811:139;;21538:419;;;:::o;21963:191::-;22003:3;22022:20;22040:1;22022:20;:::i;:::-;22017:25;;22056:20;22074:1;22056:20;:::i;:::-;22051:25;;22099:1;22096;22092:9;22085:16;;22120:3;22117:1;22114:10;22111:36;;;22127:18;;:::i;:::-;22111:36;21963:191;;;;:::o;22160:176::-;22300:28;22296:1;22288:6;22284:14;22277:52;22160:176;:::o;22342:366::-;22484:3;22505:67;22569:2;22564:3;22505:67;:::i;:::-;22498:74;;22581:93;22670:3;22581:93;:::i;:::-;22699:2;22694:3;22690:12;22683:19;;22342:366;;;:::o;22714:419::-;22880:4;22918:2;22907:9;22903:18;22895:26;;22967:9;22961:4;22957:20;22953:1;22942:9;22938:17;22931:47;22995:131;23121:4;22995:131;:::i;:::-;22987:139;;22714:419;;;:::o;23139:233::-;23178:3;23201:24;23219:5;23201:24;:::i;:::-;23192:33;;23247:66;23240:5;23237:77;23234:103;;23317:18;;:::i;:::-;23234:103;23364:1;23357:5;23353:13;23346:20;;23139:233;;;:::o;23378:194::-;23418:4;23438:20;23456:1;23438:20;:::i;:::-;23433:25;;23472:20;23490:1;23472:20;:::i;:::-;23467:25;;23516:1;23513;23509:9;23501:17;;23540:1;23534:4;23531:11;23528:37;;;23545:18;;:::i;:::-;23528:37;23378:194;;;;:::o;23578:180::-;23626:77;23623:1;23616:88;23723:4;23720:1;23713:15;23747:4;23744:1;23737:15;23764:180;23812:77;23809:1;23802:88;23909:4;23906:1;23899:15;23933:4;23930:1;23923:15;23950:114;24017:6;24051:5;24045:12;24035:22;;23950:114;;;:::o;24070:184::-;24169:11;24203:6;24198:3;24191:19;24243:4;24238:3;24234:14;24219:29;;24070:184;;;;:::o;24260:132::-;24327:4;24350:3;24342:11;;24380:4;24375:3;24371:14;24363:22;;24260:132;;;:::o;24398:108::-;24475:24;24493:5;24475:24;:::i;:::-;24470:3;24463:37;24398:108;;:::o;24512:179::-;24581:10;24602:46;24644:3;24636:6;24602:46;:::i;:::-;24680:4;24675:3;24671:14;24657:28;;24512:179;;;;:::o;24697:113::-;24767:4;24799;24794:3;24790:14;24782:22;;24697:113;;;:::o;24846:732::-;24965:3;24994:54;25042:5;24994:54;:::i;:::-;25064:86;25143:6;25138:3;25064:86;:::i;:::-;25057:93;;25174:56;25224:5;25174:56;:::i;:::-;25253:7;25284:1;25269:284;25294:6;25291:1;25288:13;25269:284;;;25370:6;25364:13;25397:63;25456:3;25441:13;25397:63;:::i;:::-;25390:70;;25483:60;25536:6;25483:60;:::i;:::-;25473:70;;25329:224;25316:1;25313;25309:9;25304:14;;25269:284;;;25273:14;25569:3;25562:10;;24970:608;;;24846:732;;;;:::o;25584:831::-;25847:4;25885:3;25874:9;25870:19;25862:27;;25899:71;25967:1;25956:9;25952:17;25943:6;25899:71;:::i;:::-;25980:80;26056:2;26045:9;26041:18;26032:6;25980:80;:::i;:::-;26107:9;26101:4;26097:20;26092:2;26081:9;26077:18;26070:48;26135:108;26238:4;26229:6;26135:108;:::i;:::-;26127:116;;26253:72;26321:2;26310:9;26306:18;26297:6;26253:72;:::i;:::-;26335:73;26403:3;26392:9;26388:19;26379:6;26335:73;:::i;:::-;25584:831;;;;;;;;:::o;26421:180::-;26469:77;26466:1;26459:88;26566:4;26563:1;26556:15;26590:4;26587:1;26580:15;26607:185;26647:1;26664:20;26682:1;26664:20;:::i;:::-;26659:25;;26698:20;26716:1;26698:20;:::i;:::-;26693:25;;26737:1;26727:35;;26742:18;;:::i;:::-;26727:35;26784:1;26781;26777:9;26772:14;;26607:185;;;;:::o;26798:220::-;26938:34;26934:1;26926:6;26922:14;26915:58;27007:3;27002:2;26994:6;26990:15;26983:28;26798:220;:::o;27024:366::-;27166:3;27187:67;27251:2;27246:3;27187:67;:::i;:::-;27180:74;;27263:93;27352:3;27263:93;:::i;:::-;27381:2;27376:3;27372:12;27365:19;;27024:366;;;:::o;27396:419::-;27562:4;27600:2;27589:9;27585:18;27577:26;;27649:9;27643:4;27639:20;27635:1;27624:9;27620:17;27613:47;27677:131;27803:4;27677:131;:::i;:::-;27669:139;;27396:419;;;:::o;27821:177::-;27961:29;27957:1;27949:6;27945:14;27938:53;27821:177;:::o;28004:366::-;28146:3;28167:67;28231:2;28226:3;28167:67;:::i;:::-;28160:74;;28243:93;28332:3;28243:93;:::i;:::-;28361:2;28356:3;28352:12;28345:19;;28004:366;;;:::o;28376:419::-;28542:4;28580:2;28569:9;28565:18;28557:26;;28629:9;28623:4;28619:20;28615:1;28604:9;28600:17;28593:47;28657:131;28783:4;28657:131;:::i;:::-;28649:139;;28376:419;;;:::o

Swarm Source

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