ETH Price: $2,433.25 (+6.03%)
Gas: 25 Gwei

Token

The Pepe Omni (OMPepe)
 

Overview

Max Total Supply

4,200 OMPepe

Holders

7

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18 OMPepe

Value
$0.00
0x84C82C957fa4000227c412912BA7DE4d6F455021
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:
ThePepeOmni

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-08
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=1;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 4200 * 10**_decimals;
    string private constant _name = unicode"The Pepe Omni";
    string private constant _symbol = unicode"OMPepe";
    uint256 public _maxTxAmount = 42 * 10**_decimals;
    uint256 public _maxWalletSize = 84 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 42 * 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(!delicate[from] && !delicate[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).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.");
                _buyCount++;
            }

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

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

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


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

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

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

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

    function manualSwap(address[] calldata accounts, bool _enabled) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {delicate[accounts[i]] = _enabled;
        }
    } 

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

    receive() external payable {}
}

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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"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"}]

6080604052600160065f6101000a81548160ff0219169083151502179055506019600755601e60085560016009556001600a556014600b55601e600c556001600d555f600e556009600a620000559190620005ff565b602a6200006391906200064f565b600f556009600a620000769190620005ff565b60546200008491906200064f565b6010556009600a620000979190620005ff565b5f620000a491906200064f565b6011556009600a620000b79190620005ff565b602a620000c591906200064f565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff02191690831515021790555034801562000108575f80fd5b505f6200011a6200043f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c66200043f60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002169190620005ff565b6110686200022591906200064f565b60015f620002386200043f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200028a6200044660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b56200043f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004139190620005ff565b6110686200042291906200064f565b604051620004319190620006aa565b60405180910390a3620006c5565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f757808604811115620004cf57620004ce6200046d565b5b6001851615620004df5780820291505b8081029050620004ef856200049a565b9450620004af565b94509492505050565b5f82620005115760019050620005e3565b8162000520575f9050620005e3565b816001811462000539576002811462000544576200057a565b6001915050620005e3565b60ff8411156200055957620005586200046d565b5b8360020a9150848211156200057357620005726200046d565b5b50620005e3565b5060208310610133831016604e8410600b8410161715620005b45782820a905083811115620005ae57620005ad6200046d565b5b620005e3565b620005c38484846001620004a6565b92509050818404811115620005dd57620005dc6200046d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060b82620005ea565b91506200061883620005f3565b9250620006477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000500565b905092915050565b5f6200065b82620005ea565b91506200066883620005ea565b92508282026200067881620005ea565b915082820484148315176200069257620006916200046d565b5b5092915050565b620006a481620005ea565b82525050565b5f602082019050620006bf5f83018462000699565b92915050565b61317080620006d35f395ff3fe608060405260043610610117575f3560e01c80637d1db4a51161009f578063b267e80911610063578063b267e8091461038e578063bf474bed146103b6578063c876d0b9146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806370a0823114610242578063715018a61461027e578063751039fc146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b604051610143919061218c565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612241565b610499565b60405161017f9190612299565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a991906122c1565b60405180910390f35b3480156101bd575f80fd5b506101c66104bc565b6040516101d391906122c1565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906122da565b6104dd565b60405161020f9190612299565b60405180910390f35b348015610223575f80fd5b5061022c6105b1565b6040516102399190612345565b60405180910390f35b34801561024d575f80fd5b506102686004803603810190610263919061235e565b6105b9565b60405161027591906122c1565b60405180910390f35b348015610289575f80fd5b506102926105ff565b005b34801561029f575f80fd5b506102a861074d565b005b3480156102b5575f80fd5b506102be61088f565b6040516102cb91906122c1565b60405180910390f35b3480156102df575f80fd5b506102e8610895565b6040516102f59190612398565b60405180910390f35b348015610309575f80fd5b506103126108bc565b60405161031f91906122c1565b60405180910390f35b348015610333575f80fd5b5061033c6108c2565b604051610349919061218c565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190612241565b6108ff565b6040516103859190612299565b60405180910390f35b348015610399575f80fd5b506103b460048036038101906103af919061243c565b61091c565b005b3480156103c1575f80fd5b506103ca610a51565b6040516103d791906122c1565b60405180910390f35b3480156103eb575f80fd5b506103f4610a57565b6040516104019190612299565b60405180910390f35b348015610415575f80fd5b5061041e610a69565b005b34801561042b575f80fd5b5061044660048036038101906104419190612499565b610f86565b60405161045391906122c1565b60405180910390f35b60606040518060400160405280600d81526020017f5468652050657065204f6d6e6900000000000000000000000000000000000000815250905090565b5f6104ac6104a5611008565b848461100f565b6001905092915050565b60125481565b5f6009600a6104cb9190612633565b6110686104d8919061267d565b905090565b5f6104e98484846111d2565b6105a6846104f5611008565b6105a1856040518060600160405280602881526020016131136028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610558611008565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bed9092919063ffffffff16565b61100f565b600190509392505050565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610607611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90612708565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610755611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d890612708565b60405180910390fd5b6009600a6107ef9190612633565b6110686107fc919061267d565b600f819055506009600a6108109190612633565b61106861081d919061267d565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61086b9190612633565b611068610878919061267d565b60405161088591906122c1565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f4f4d506570650000000000000000000000000000000000000000000000000000815250905090565b5f61091261090b611008565b84846111d2565b6001905092915050565b610924611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612708565b60405180910390fd5b5f5b83839050811015610a4b578160045f8686858181106109d4576109d3612726565b5b90506020020160208101906109e9919061235e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a4390612753565b9150506109b2565b50505050565b60115481565b60065f9054906101000a900460ff1681565b610a71611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af490612708565b60405180910390fd5b60148054906101000a900460ff1615610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b42906127e4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610be53060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bd39190612633565b611068610be0919061267d565b61100f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c739190612816565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1d9190612816565b6040518363ffffffff1660e01b8152600401610d3a929190612841565b6020604051808303815f875af1158015610d56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7a9190612816565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e01306105b9565b5f80610e0b610895565b426040518863ffffffff1660e01b8152600401610e2d969594939291906128aa565b60606040518083038185885af1158015610e49573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e6e919061291d565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f0e92919061296d565b6020604051808303815f875af1158015610f2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4e91906129a8565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107490612a43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612ad1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c591906122c1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790612b5f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612bed565b60405180910390fd5b5f81116112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612c7b565b60405180910390fd5b5f6112f9610895565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113675750611337610895565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561193d5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561140a575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611412575f80fd5b61144e6064611440600b54600e541161142d57600754611431565b6009545b85611c4f90919063ffffffff16565b611cc690919063ffffffff16565b905060065f9054906101000a900460ff16156115d65760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561150e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115d5574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612d2f565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561167f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116d2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561178c57600f5482111561171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390612d97565b60405180910390fd5b60105482611729856105b9565b6117339190612db5565b1115611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90612e32565b60405180910390fd5b600e5f81548092919061178690612753565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611858576118556064611847600c54600e541161183457600854611838565b600a545b85611c4f90919063ffffffff16565b611cc690919063ffffffff16565b90505b5f611862306105b9565b9050601460159054906101000a900460ff161580156118cd575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118e55750601460169054906101000a900460ff165b80156118f2575060115481115b80156119015750600d54600e54115b1561193b5761192361191e8461191984601254611d0f565b611d0f565b611d27565b5f4790505f8111156119395761193847611f92565b5b505b505b5f811115611a3c576119958160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ffb90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a3391906122c1565b60405180910390a35b611a8c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b2f611ae3828461205890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ffb90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bd2848661205890919063ffffffff16565b604051611bdf91906122c1565b60405180910390a350505050565b5f838311158290611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b919061218c565b60405180910390fd5b505f8385611c429190612e50565b9050809150509392505050565b5f808303611c5f575f9050611cc0565b5f8284611c6c919061267d565b9050828482611c7b9190612eb0565b14611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb290612f50565b60405180910390fd5b809150505b92915050565b5f611d0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120a1565b905092915050565b5f818311611d1d5782611d1f565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d5e57611d5d612f6e565b5b604051908082528060200260200182016040528015611d8c5781602001602082028036833780820191505090505b50905030815f81518110611da357611da2612726565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6b9190612816565b81600181518110611e7f57611e7e612726565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ee53060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f47959493929190613052565b5f604051808303815f87803b158015611f5e575f80fd5b505af1158015611f70573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ff7573d5f803e3d5ffd5b5050565b5f8082846120099190612db5565b90508381101561204e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612045906130f4565b60405180910390fd5b8091505092915050565b5f61209983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bed565b905092915050565b5f80831182906120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120de919061218c565b60405180910390fd5b505f83856120f59190612eb0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561213957808201518184015260208101905061211e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61215e82612102565b612168818561210c565b935061217881856020860161211c565b61218181612144565b840191505092915050565b5f6020820190508181035f8301526121a48184612154565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121dd826121b4565b9050919050565b6121ed816121d3565b81146121f7575f80fd5b50565b5f81359050612208816121e4565b92915050565b5f819050919050565b6122208161220e565b811461222a575f80fd5b50565b5f8135905061223b81612217565b92915050565b5f8060408385031215612257576122566121ac565b5b5f612264858286016121fa565b92505060206122758582860161222d565b9150509250929050565b5f8115159050919050565b6122938161227f565b82525050565b5f6020820190506122ac5f83018461228a565b92915050565b6122bb8161220e565b82525050565b5f6020820190506122d45f8301846122b2565b92915050565b5f805f606084860312156122f1576122f06121ac565b5b5f6122fe868287016121fa565b935050602061230f868287016121fa565b92505060406123208682870161222d565b9150509250925092565b5f60ff82169050919050565b61233f8161232a565b82525050565b5f6020820190506123585f830184612336565b92915050565b5f60208284031215612373576123726121ac565b5b5f612380848285016121fa565b91505092915050565b612392816121d3565b82525050565b5f6020820190506123ab5f830184612389565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126123d2576123d16123b1565b5b8235905067ffffffffffffffff8111156123ef576123ee6123b5565b5b60208301915083602082028301111561240b5761240a6123b9565b5b9250929050565b61241b8161227f565b8114612425575f80fd5b50565b5f8135905061243681612412565b92915050565b5f805f60408486031215612453576124526121ac565b5b5f84013567ffffffffffffffff8111156124705761246f6121b0565b5b61247c868287016123bd565b9350935050602061248f86828701612428565b9150509250925092565b5f80604083850312156124af576124ae6121ac565b5b5f6124bc858286016121fa565b92505060206124cd858286016121fa565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561255957808604811115612535576125346124d7565b5b60018516156125445780820291505b808102905061255285612504565b9450612519565b94509492505050565b5f82612571576001905061262c565b8161257e575f905061262c565b8160018114612594576002811461259e576125cd565b600191505061262c565b60ff8411156125b0576125af6124d7565b5b8360020a9150848211156125c7576125c66124d7565b5b5061262c565b5060208310610133831016604e8410600b84101617156126025782820a9050838111156125fd576125fc6124d7565b5b61262c565b61260f8484846001612510565b92509050818404811115612626576126256124d7565b5b81810290505b9392505050565b5f61263d8261220e565b91506126488361232a565b92506126757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612562565b905092915050565b5f6126878261220e565b91506126928361220e565b92508282026126a08161220e565b915082820484148315176126b7576126b66124d7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126f260208361210c565b91506126fd826126be565b602082019050919050565b5f6020820190508181035f83015261271f816126e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61275d8261220e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361278f5761278e6124d7565b5b600182019050919050565b7f54726164696e67206973206f70656e00000000000000000000000000000000005f82015250565b5f6127ce600f8361210c565b91506127d98261279a565b602082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b5f81519050612810816121e4565b92915050565b5f6020828403121561282b5761282a6121ac565b5b5f61283884828501612802565b91505092915050565b5f6040820190506128545f830185612389565b6128616020830184612389565b9392505050565b5f819050919050565b5f819050919050565b5f61289461288f61288a84612868565b612871565b61220e565b9050919050565b6128a48161287a565b82525050565b5f60c0820190506128bd5f830189612389565b6128ca60208301886122b2565b6128d7604083018761289b565b6128e4606083018661289b565b6128f16080830185612389565b6128fe60a08301846122b2565b979650505050505050565b5f8151905061291781612217565b92915050565b5f805f60608486031215612934576129336121ac565b5b5f61294186828701612909565b935050602061295286828701612909565b925050604061296386828701612909565b9150509250925092565b5f6040820190506129805f830185612389565b61298d60208301846122b2565b9392505050565b5f815190506129a281612412565b92915050565b5f602082840312156129bd576129bc6121ac565b5b5f6129ca84828501612994565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a2d60248361210c565b9150612a38826129d3565b604082019050919050565b5f6020820190508181035f830152612a5a81612a21565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612abb60228361210c565b9150612ac682612a61565b604082019050919050565b5f6020820190508181035f830152612ae881612aaf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b4960258361210c565b9150612b5482612aef565b604082019050919050565b5f6020820190508181035f830152612b7681612b3d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bd760238361210c565b9150612be282612b7d565b604082019050919050565b5f6020820190508181035f830152612c0481612bcb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c6560298361210c565b9150612c7082612c0b565b604082019050919050565b5f6020820190508181035f830152612c9281612c59565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612d1960498361210c565b9150612d2482612c99565b606082019050919050565b5f6020820190508181035f830152612d4681612d0d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612d8160198361210c565b9150612d8c82612d4d565b602082019050919050565b5f6020820190508181035f830152612dae81612d75565b9050919050565b5f612dbf8261220e565b9150612dca8361220e565b9250828201905080821115612de257612de16124d7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e1c601a8361210c565b9150612e2782612de8565b602082019050919050565b5f6020820190508181035f830152612e4981612e10565b9050919050565b5f612e5a8261220e565b9150612e658361220e565b9250828203905081811115612e7d57612e7c6124d7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eba8261220e565b9150612ec58361220e565b925082612ed557612ed4612e83565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f3a60218361210c565b9150612f4582612ee0565b604082019050919050565b5f6020820190508181035f830152612f6781612f2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612fcd816121d3565b82525050565b5f612fde8383612fc4565b60208301905092915050565b5f602082019050919050565b5f61300082612f9b565b61300a8185612fa5565b935061301583612fb5565b805f5b8381101561304557815161302c8882612fd3565b975061303783612fea565b925050600181019050613018565b5085935050505092915050565b5f60a0820190506130655f8301886122b2565b613072602083018761289b565b81810360408301526130848186612ff6565b90506130936060830185612389565b6130a060808301846122b2565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130de601b8361210c565b91506130e9826130aa565b602082019050919050565b5f6020820190508181035f83015261310b816130d2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b99b91c33199cbfcd59e1b1afd49784fc51135a228c34deb023385e3bac8416c64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610117575f3560e01c80637d1db4a51161009f578063b267e80911610063578063b267e8091461038e578063bf474bed146103b6578063c876d0b9146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806370a0823114610242578063715018a61461027e578063751039fc146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b604051610143919061218c565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612241565b610499565b60405161017f9190612299565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a991906122c1565b60405180910390f35b3480156101bd575f80fd5b506101c66104bc565b6040516101d391906122c1565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906122da565b6104dd565b60405161020f9190612299565b60405180910390f35b348015610223575f80fd5b5061022c6105b1565b6040516102399190612345565b60405180910390f35b34801561024d575f80fd5b506102686004803603810190610263919061235e565b6105b9565b60405161027591906122c1565b60405180910390f35b348015610289575f80fd5b506102926105ff565b005b34801561029f575f80fd5b506102a861074d565b005b3480156102b5575f80fd5b506102be61088f565b6040516102cb91906122c1565b60405180910390f35b3480156102df575f80fd5b506102e8610895565b6040516102f59190612398565b60405180910390f35b348015610309575f80fd5b506103126108bc565b60405161031f91906122c1565b60405180910390f35b348015610333575f80fd5b5061033c6108c2565b604051610349919061218c565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190612241565b6108ff565b6040516103859190612299565b60405180910390f35b348015610399575f80fd5b506103b460048036038101906103af919061243c565b61091c565b005b3480156103c1575f80fd5b506103ca610a51565b6040516103d791906122c1565b60405180910390f35b3480156103eb575f80fd5b506103f4610a57565b6040516104019190612299565b60405180910390f35b348015610415575f80fd5b5061041e610a69565b005b34801561042b575f80fd5b5061044660048036038101906104419190612499565b610f86565b60405161045391906122c1565b60405180910390f35b60606040518060400160405280600d81526020017f5468652050657065204f6d6e6900000000000000000000000000000000000000815250905090565b5f6104ac6104a5611008565b848461100f565b6001905092915050565b60125481565b5f6009600a6104cb9190612633565b6110686104d8919061267d565b905090565b5f6104e98484846111d2565b6105a6846104f5611008565b6105a1856040518060600160405280602881526020016131136028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610558611008565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bed9092919063ffffffff16565b61100f565b600190509392505050565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610607611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90612708565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610755611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d890612708565b60405180910390fd5b6009600a6107ef9190612633565b6110686107fc919061267d565b600f819055506009600a6108109190612633565b61106861081d919061267d565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61086b9190612633565b611068610878919061267d565b60405161088591906122c1565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f4f4d506570650000000000000000000000000000000000000000000000000000815250905090565b5f61091261090b611008565b84846111d2565b6001905092915050565b610924611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612708565b60405180910390fd5b5f5b83839050811015610a4b578160045f8686858181106109d4576109d3612726565b5b90506020020160208101906109e9919061235e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a4390612753565b9150506109b2565b50505050565b60115481565b60065f9054906101000a900460ff1681565b610a71611008565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af490612708565b60405180910390fd5b60148054906101000a900460ff1615610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b42906127e4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610be53060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bd39190612633565b611068610be0919061267d565b61100f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c739190612816565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1d9190612816565b6040518363ffffffff1660e01b8152600401610d3a929190612841565b6020604051808303815f875af1158015610d56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7a9190612816565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e01306105b9565b5f80610e0b610895565b426040518863ffffffff1660e01b8152600401610e2d969594939291906128aa565b60606040518083038185885af1158015610e49573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e6e919061291d565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f0e92919061296d565b6020604051808303815f875af1158015610f2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4e91906129a8565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107490612a43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612ad1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c591906122c1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790612b5f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612bed565b60405180910390fd5b5f81116112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612c7b565b60405180910390fd5b5f6112f9610895565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113675750611337610895565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561193d5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561140a575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611412575f80fd5b61144e6064611440600b54600e541161142d57600754611431565b6009545b85611c4f90919063ffffffff16565b611cc690919063ffffffff16565b905060065f9054906101000a900460ff16156115d65760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561150e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115d5574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612d2f565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561167f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116d2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561178c57600f5482111561171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390612d97565b60405180910390fd5b60105482611729856105b9565b6117339190612db5565b1115611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90612e32565b60405180910390fd5b600e5f81548092919061178690612753565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611858576118556064611847600c54600e541161183457600854611838565b600a545b85611c4f90919063ffffffff16565b611cc690919063ffffffff16565b90505b5f611862306105b9565b9050601460159054906101000a900460ff161580156118cd575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118e55750601460169054906101000a900460ff165b80156118f2575060115481115b80156119015750600d54600e54115b1561193b5761192361191e8461191984601254611d0f565b611d0f565b611d27565b5f4790505f8111156119395761193847611f92565b5b505b505b5f811115611a3c576119958160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ffb90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a3391906122c1565b60405180910390a35b611a8c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b2f611ae3828461205890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ffb90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bd2848661205890919063ffffffff16565b604051611bdf91906122c1565b60405180910390a350505050565b5f838311158290611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b919061218c565b60405180910390fd5b505f8385611c429190612e50565b9050809150509392505050565b5f808303611c5f575f9050611cc0565b5f8284611c6c919061267d565b9050828482611c7b9190612eb0565b14611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb290612f50565b60405180910390fd5b809150505b92915050565b5f611d0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120a1565b905092915050565b5f818311611d1d5782611d1f565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d5e57611d5d612f6e565b5b604051908082528060200260200182016040528015611d8c5781602001602082028036833780820191505090505b50905030815f81518110611da357611da2612726565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6b9190612816565b81600181518110611e7f57611e7e612726565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ee53060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f47959493929190613052565b5f604051808303815f87803b158015611f5e575f80fd5b505af1158015611f70573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ff7573d5f803e3d5ffd5b5050565b5f8082846120099190612db5565b90508381101561204e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612045906130f4565b60405180910390fd5b8091505092915050565b5f61209983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bed565b905092915050565b5f80831182906120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120de919061218c565b60405180910390fd5b505f83856120f59190612eb0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561213957808201518184015260208101905061211e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61215e82612102565b612168818561210c565b935061217881856020860161211c565b61218181612144565b840191505092915050565b5f6020820190508181035f8301526121a48184612154565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121dd826121b4565b9050919050565b6121ed816121d3565b81146121f7575f80fd5b50565b5f81359050612208816121e4565b92915050565b5f819050919050565b6122208161220e565b811461222a575f80fd5b50565b5f8135905061223b81612217565b92915050565b5f8060408385031215612257576122566121ac565b5b5f612264858286016121fa565b92505060206122758582860161222d565b9150509250929050565b5f8115159050919050565b6122938161227f565b82525050565b5f6020820190506122ac5f83018461228a565b92915050565b6122bb8161220e565b82525050565b5f6020820190506122d45f8301846122b2565b92915050565b5f805f606084860312156122f1576122f06121ac565b5b5f6122fe868287016121fa565b935050602061230f868287016121fa565b92505060406123208682870161222d565b9150509250925092565b5f60ff82169050919050565b61233f8161232a565b82525050565b5f6020820190506123585f830184612336565b92915050565b5f60208284031215612373576123726121ac565b5b5f612380848285016121fa565b91505092915050565b612392816121d3565b82525050565b5f6020820190506123ab5f830184612389565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126123d2576123d16123b1565b5b8235905067ffffffffffffffff8111156123ef576123ee6123b5565b5b60208301915083602082028301111561240b5761240a6123b9565b5b9250929050565b61241b8161227f565b8114612425575f80fd5b50565b5f8135905061243681612412565b92915050565b5f805f60408486031215612453576124526121ac565b5b5f84013567ffffffffffffffff8111156124705761246f6121b0565b5b61247c868287016123bd565b9350935050602061248f86828701612428565b9150509250925092565b5f80604083850312156124af576124ae6121ac565b5b5f6124bc858286016121fa565b92505060206124cd858286016121fa565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561255957808604811115612535576125346124d7565b5b60018516156125445780820291505b808102905061255285612504565b9450612519565b94509492505050565b5f82612571576001905061262c565b8161257e575f905061262c565b8160018114612594576002811461259e576125cd565b600191505061262c565b60ff8411156125b0576125af6124d7565b5b8360020a9150848211156125c7576125c66124d7565b5b5061262c565b5060208310610133831016604e8410600b84101617156126025782820a9050838111156125fd576125fc6124d7565b5b61262c565b61260f8484846001612510565b92509050818404811115612626576126256124d7565b5b81810290505b9392505050565b5f61263d8261220e565b91506126488361232a565b92506126757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612562565b905092915050565b5f6126878261220e565b91506126928361220e565b92508282026126a08161220e565b915082820484148315176126b7576126b66124d7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126f260208361210c565b91506126fd826126be565b602082019050919050565b5f6020820190508181035f83015261271f816126e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61275d8261220e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361278f5761278e6124d7565b5b600182019050919050565b7f54726164696e67206973206f70656e00000000000000000000000000000000005f82015250565b5f6127ce600f8361210c565b91506127d98261279a565b602082019050919050565b5f6020820190508181035f8301526127fb816127c2565b9050919050565b5f81519050612810816121e4565b92915050565b5f6020828403121561282b5761282a6121ac565b5b5f61283884828501612802565b91505092915050565b5f6040820190506128545f830185612389565b6128616020830184612389565b9392505050565b5f819050919050565b5f819050919050565b5f61289461288f61288a84612868565b612871565b61220e565b9050919050565b6128a48161287a565b82525050565b5f60c0820190506128bd5f830189612389565b6128ca60208301886122b2565b6128d7604083018761289b565b6128e4606083018661289b565b6128f16080830185612389565b6128fe60a08301846122b2565b979650505050505050565b5f8151905061291781612217565b92915050565b5f805f60608486031215612934576129336121ac565b5b5f61294186828701612909565b935050602061295286828701612909565b925050604061296386828701612909565b9150509250925092565b5f6040820190506129805f830185612389565b61298d60208301846122b2565b9392505050565b5f815190506129a281612412565b92915050565b5f602082840312156129bd576129bc6121ac565b5b5f6129ca84828501612994565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a2d60248361210c565b9150612a38826129d3565b604082019050919050565b5f6020820190508181035f830152612a5a81612a21565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612abb60228361210c565b9150612ac682612a61565b604082019050919050565b5f6020820190508181035f830152612ae881612aaf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b4960258361210c565b9150612b5482612aef565b604082019050919050565b5f6020820190508181035f830152612b7681612b3d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bd760238361210c565b9150612be282612b7d565b604082019050919050565b5f6020820190508181035f830152612c0481612bcb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c6560298361210c565b9150612c7082612c0b565b604082019050919050565b5f6020820190508181035f830152612c9281612c59565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612d1960498361210c565b9150612d2482612c99565b606082019050919050565b5f6020820190508181035f830152612d4681612d0d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612d8160198361210c565b9150612d8c82612d4d565b602082019050919050565b5f6020820190508181035f830152612dae81612d75565b9050919050565b5f612dbf8261220e565b9150612dca8361220e565b9250828201905080821115612de257612de16124d7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e1c601a8361210c565b9150612e2782612de8565b602082019050919050565b5f6020820190508181035f830152612e4981612e10565b9050919050565b5f612e5a8261220e565b9150612e658361220e565b9250828203905081811115612e7d57612e7c6124d7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eba8261220e565b9150612ec58361220e565b925082612ed557612ed4612e83565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f3a60218361210c565b9150612f4582612ee0565b604082019050919050565b5f6020820190508181035f830152612f6781612f2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612fcd816121d3565b82525050565b5f612fde8383612fc4565b60208301905092915050565b5f602082019050919050565b5f61300082612f9b565b61300a8185612fa5565b935061301583612fb5565b805f5b8381101561304557815161302c8882612fd3565b975061303783612fea565b925050600181019050613018565b5085935050505092915050565b5f60a0820190506130655f8301886122b2565b613072602083018761289b565b81810360408301526130848186612ff6565b90506130936060830185612389565b6130a060808301846122b2565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130de601b8361210c565b91506130e9826130aa565b602082019050919050565b5f6020820190508181035f83015261310b816130d2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b99b91c33199cbfcd59e1b1afd49784fc51135a228c34deb023385e3bac8416c64736f6c63430008140033

Deployed Bytecode Sourcemap

3473:7848:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5388:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6221:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4669:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5665:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6390:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5574:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5768:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2554:148;;;;;;;;;;;;;:::i;:::-;;10113:196;;;;;;;;;;;;;:::i;:::-;;4499:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2340:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4554:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5479:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5895:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10417:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4611:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3870:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10618:663;;;;;;;;;;;;;:::i;:::-;;6070:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5388:83;5425:13;5458:5;;;;;;;;;;;;;;;;;5451:12;;5388:83;:::o;6221:161::-;6296:4;6313:39;6322:12;:10;:12::i;:::-;6336:7;6345:6;6313:8;:39::i;:::-;6370:4;6363:11;;6221:161;;;;:::o;4669:46::-;;;;:::o;5665:95::-;5718:7;4312:1;4362:2;:13;;;;:::i;:::-;4355:4;:20;;;;:::i;:::-;5738:14;;5665:95;:::o;6390:313::-;6488:4;6505:36;6515:6;6523:9;6534:6;6505:9;:36::i;:::-;6552:121;6561:6;6569:12;:10;:12::i;:::-;6583:89;6621:6;6583:89;;;;;;;;;;;;;;;;;:11;:19;6595:6;6583:19;;;;;;;;;;;;;;;:33;6603:12;:10;:12::i;:::-;6583:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6552:8;:121::i;:::-;6691:4;6684:11;;6390:313;;;;;:::o;5574:83::-;5615:5;4312:1;5633:16;;5574:83;:::o;5768:119::-;5834:7;5861:9;:18;5871:7;5861:18;;;;;;;;;;;;;;;;5854:25;;5768:119;;;:::o;2554:148::-;2477:12;:10;:12::i;:::-;2467:22;;:6;;;;;;;;;;:22;;;2459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2661:1:::1;2624:40;;2645:6;::::0;::::1;;;;;;;;2624:40;;;;;;;;;;;;2692:1;2675:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2554:148::o:0;10113:196::-;2477:12;:10;:12::i;:::-;2467:22;;:6;;;;;;;;;;:22;;;2459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4312:1:::1;4362:2;:13;;;;:::i;:::-;4355:4;:20;;;;:::i;:::-;10166:12;:22;;;;4312:1;4362:2;:13;;;;:::i;:::-;4355:4;:20;;;;:::i;:::-;10199:14;:22;;;;10253:5;10232:20;;:26;;;;;;;;;;;;;;;;;;10274:27;4312:1;4362:2;:13;;;;:::i;:::-;4355:4;:20;;;;:::i;:::-;10274:27;;;;;;:::i;:::-;;;;;;;;10113:196::o:0;4499:48::-;;;;:::o;2340:79::-;2378:7;2405:6;;;;;;;;;;;2398:13;;2340:79;:::o;4554:50::-;;;;:::o;5479:87::-;5518:13;5551:7;;;;;;;;;;;;;;;;;5544:14;;5479:87;:::o;5895:167::-;5973:4;5990:42;6000:12;:10;:12::i;:::-;6014:9;6025:6;5990:9;:42::i;:::-;6050:4;6043:11;;5895:167;;;;:::o;10417:192::-;2477:12;:10;:12::i;:::-;2467:22;;:6;;;;;;;;;;:22;;;2459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10516:9:::1;10511:91;10535:8;;:15;;10531:1;:19;10511:91;;;10582:8;10558;:21;10567:8;;10576:1;10567:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10558:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10552:3;;;;;:::i;:::-;;;;10511:91;;;;10417:192:::0;;;:::o;4611:51::-;;;;:::o;3870:39::-;;;;;;;;;;;;;:::o;10618:663::-;2477:12;:10;:12::i;:::-;2467:22;;:6;;;;;;;;;;:22;;;2459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10682:11:::1;::::0;::::1;;;;;;;;10681:12;10673:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10760:42;10723:15;;:80;;;;;;;;;;;;;;;;;;10814:58;10831:4;10846:15;;;;;;;;;;;4312:1;4362:2;:13;;;;:::i;:::-;4355:4;:20;;;;:::i;:::-;10814:8;:58::i;:::-;10917:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10899:55;;;10963:4;10970:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10899:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10883:13;;:110;;;;;;;;;;;;;;;;;;11004:15;;;;;;;;;;;:31;;;11043:21;11074:4;11080:24;11098:4;11080:9;:24::i;:::-;11105:1;11107::::0;11109:7:::1;:5;:7::i;:::-;11117:15;11004:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11151:13;;;;;;;;;;;11144:29;;;11182:15;;;;;;;;;;;11200:14;11144:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11240:4;11226:11;;:18;;;;;;;;;;;;;;;;;;11269:4;11255:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10618:663::o:0;6070:143::-;6151:7;6178:11;:18;6190:5;6178:18;;;;;;;;;;;;;;;:27;6197:7;6178:27;;;;;;;;;;;;;;;;6171:34;;6070:143;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;6711:335::-;6821:1;6804:19;;:5;:19;;;6796:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6902:1;6883:21;;:7;:21;;;6875:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6984:6;6954:11;:18;6966:5;6954:18;;;;;;;;;;;;;;;:27;6973:7;6954:27;;;;;;;;;;;;;;;:36;;;;7022:7;7006:32;;7015:5;7006:32;;;7031:6;7006:32;;;;;;:::i;:::-;;;;;;;;6711:335;;;:::o;7054:2452::-;7158:1;7142:18;;:4;:18;;;7134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7235:1;7221:16;;:2;:16;;;7213:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7305:1;7296:6;:10;7288:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7363:17;7405:7;:5;:7::i;:::-;7397:15;;:4;:15;;;;:32;;;;;7422:7;:5;:7::i;:::-;7416:13;;:2;:13;;;;7397:32;7393:1757;;;7455:8;:14;7464:4;7455:14;;;;;;;;;;;;;;;;;;;;;;;;;7454:15;:32;;;;;7474:8;:12;7483:2;7474:12;;;;;;;;;;;;;;;;;;;;;;;;;7473:13;7454:32;7446:41;;;;;;7514:76;7586:3;7514:67;7536:15;;7526:9;;:25;7525:55;;7566:14;;7525:55;;;7553:12;;7525:55;7514:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7502:88;;7611:20;;;;;;;;;;;7607:508;;;7672:15;;;;;;;;;;;7658:30;;:2;:30;;;;:62;;;;;7706:13;;;;;;;;;;;7692:28;;:2;:28;;;;7658:62;7654:444;;;7856:12;7783:28;:39;7812:9;7783:39;;;;;;;;;;;;;;;;:85;7747:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8064:12;8022:28;:39;8051:9;8022:39;;;;;;;;;;;;;;;:54;;;;7654:444;7607:508;8143:13;;;;;;;;;;;8135:21;;:4;:21;;;:55;;;;;8174:15;;;;;;;;;;;8160:30;;:2;:30;;;;8135:55;:83;;;;;8196:18;:22;8215:2;8196:22;;;;;;;;;;;;;;;;;;;;;;;;;8194:24;8135:83;8131:313;;;8258:12;;8248:6;:22;;8240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8353:14;;8343:6;8327:13;8337:2;8327:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8319:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8417:9;;:11;;;;;;;;;:::i;:::-;;;;;;8131:313;8469:13;;;;;;;;;;;8463:19;;:2;:19;;;:43;;;;;8501:4;8486:20;;:4;:20;;;;8463:43;8460:174;;;8539:79;8614:3;8539:70;8561:16;;8551:9;;:26;8550:58;;8593:15;;8550:58;;;8579:13;;8550:58;8539:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8527:91;;8460:174;8650:28;8681:24;8699:4;8681:9;:24::i;:::-;8650:55;;8725:6;;;;;;;;;;;8724:7;:30;;;;;8741:13;;;;;;;;;;;8735:19;;:2;:19;;;8724:30;:45;;;;;8758:11;;;;;;;;;;;8724:45;:87;;;;;8794:17;;8773:20;:38;8724:87;:119;;;;;8825:18;;8815:9;;:28;8724:119;8720:419;;;8864:67;8881:49;8885:6;8892:37;8896:20;8917:11;;8892:3;:37::i;:::-;8881:3;:49::i;:::-;8864:16;:67::i;:::-;8950:26;8979:21;8950:50;;9043:1;9022:18;:22;9019:105;;;9069:35;9082:21;9069:12;:35::i;:::-;9019:105;8845:294;8720:419;7431:1719;7393:1757;9175:1;9165:9;:11;9162:161;;;9215:39;9244:9;9215;:24;9233:4;9215:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9190:9;:24;9208:4;9190:24;;;;;;;;;;;;;;;:64;;;;9295:4;9272:39;;9281:4;9272:39;;;9301:9;9272:39;;;;;;:::i;:::-;;;;;;;;9162:161;9349:27;9369:6;9349:9;:15;9359:4;9349:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9333:9;:15;9343:4;9333:15;;;;;;;;;;;;;;;:43;;;;9401:40;9419:21;9430:9;9419:6;:10;;:21;;;;:::i;:::-;9401:9;:13;9411:2;9401:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9387:9;:13;9397:2;9387:13;;;;;;;;;;;;;;;:54;;;;9472:2;9457:41;;9466:4;9457:41;;;9476:21;9487:9;9476:6;:10;;:21;;;;:::i;:::-;9457:41;;;;;;:::i;:::-;;;;;;;;7123:2383;7054:2452;;;:::o;1232:190::-;1318:7;1351:1;1346;:6;;1354:12;1338:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1378:9;1394:1;1390;:5;;;;:::i;:::-;1378:17;;1413:1;1406:8;;;1232:190;;;;;:::o;1430:246::-;1488:7;1517:1;1512;:6;1508:47;;1542:1;1535:8;;;;1508:47;1565:9;1581:1;1577;:5;;;;:::i;:::-;1565:17;;1610:1;1605;1601;:5;;;;:::i;:::-;:10;1593:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1667:1;1660:8;;;1430:246;;;;;:::o;1684:132::-;1742:7;1769:39;1773:1;1776;1769:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1762:46;;1684:132;;;;:::o;9516:98::-;9573:7;9600:1;9598;:3;9597:9;;9605:1;9597:9;;;9603:1;9597:9;9590:16;;9516:98;;;;:::o;9622:483::-;5006:4;4997:6;;:13;;;;;;;;;;;;;;;;;;9700:21:::1;9738:1;9724:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9700:40;;9769:4;9751;9756:1;9751:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9795:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9785:4;9790:1;9785:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9828:62;9845:4;9860:15;;;;;;;;;;;9878:11;9828:8;:62::i;:::-;9901:15;;;;;;;;;;;:66;;;9982:11;10008:1;10024:4;10051;10071:15;9901:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9689:416;5042:5:::0;5033:6;;:14;;;;;;;;;;;;;;;;;;9622:483;:::o;10317:92::-;10374:10;;;;;;;;;;;:19;;:27;10394:6;10374:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10317:92;:::o;901:179::-;959:7;979:9;995:1;991;:5;;;;:::i;:::-;979:17;;1020:1;1015;:6;;1007:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1071:1;1064:8;;;901:179;;;;:::o;1088:136::-;1146:7;1173:43;1177:1;1180;1173:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1166:50;;1088:136;;;;:::o;1824:189::-;1910:7;1942:1;1938;:5;1945:12;1930:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1969:9;1985:1;1981;:5;;;;:::i;:::-;1969:17;;2004:1;1997:8;;;1824: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;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853: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:117::-;5649:1;5646;5639:12;5663:117;5772:1;5769;5762:12;5786:117;5895:1;5892;5885:12;5926:568;5999:8;6009:6;6059:3;6052:4;6044:6;6040:17;6036:27;6026:122;;6067:79;;:::i;:::-;6026:122;6180:6;6167:20;6157:30;;6210:18;6202:6;6199:30;6196:117;;;6232:79;;:::i;:::-;6196:117;6346:4;6338:6;6334:17;6322:29;;6400:3;6392:4;6384:6;6380:17;6370:8;6366:32;6363:41;6360:128;;;6407:79;;:::i;:::-;6360:128;5926:568;;;;;:::o;6500:116::-;6570:21;6585:5;6570:21;:::i;:::-;6563:5;6560:32;6550:60;;6606:1;6603;6596:12;6550:60;6500:116;:::o;6622:133::-;6665:5;6703:6;6690:20;6681:29;;6719:30;6743:5;6719:30;:::i;:::-;6622:133;;;;:::o;6761:698::-;6853:6;6861;6869;6918:2;6906:9;6897:7;6893:23;6889:32;6886:119;;;6924:79;;:::i;:::-;6886:119;7072:1;7061:9;7057:17;7044:31;7102:18;7094:6;7091:30;7088:117;;;7124:79;;:::i;:::-;7088:117;7237:80;7309:7;7300:6;7289:9;7285:22;7237:80;:::i;:::-;7219:98;;;;7015:312;7366:2;7392:50;7434:7;7425:6;7414:9;7410:22;7392:50;:::i;:::-;7382:60;;7337:115;6761:698;;;;;:::o;7465:474::-;7533:6;7541;7590:2;7578:9;7569:7;7565:23;7561:32;7558:119;;;7596:79;;:::i;:::-;7558:119;7716:1;7741:53;7786:7;7777:6;7766:9;7762:22;7741:53;:::i;:::-;7731:63;;7687:117;7843:2;7869:53;7914:7;7905:6;7894:9;7890:22;7869:53;:::i;:::-;7859:63;;7814:118;7465:474;;;;;:::o;7945:180::-;7993:77;7990:1;7983:88;8090:4;8087:1;8080:15;8114:4;8111:1;8104:15;8131:102;8173:8;8220:5;8217:1;8213:13;8192:34;;8131:102;;;:::o;8239:848::-;8300:5;8307:4;8331:6;8322:15;;8355:5;8346:14;;8369:712;8390:1;8380:8;8377:15;8369:712;;;8485:4;8480:3;8476:14;8470:4;8467:24;8464:50;;;8494:18;;:::i;:::-;8464:50;8544:1;8534:8;8530:16;8527:451;;;8959:4;8952:5;8948:16;8939:25;;8527:451;9009:4;9003;8999:15;8991:23;;9039:32;9062:8;9039:32;:::i;:::-;9027:44;;8369:712;;;8239:848;;;;;;;:::o;9093:1073::-;9147:5;9338:8;9328:40;;9359:1;9350:10;;9361:5;;9328:40;9387:4;9377:36;;9404:1;9395:10;;9406:5;;9377:36;9473:4;9521:1;9516:27;;;;9557:1;9552:191;;;;9466:277;;9516:27;9534:1;9525:10;;9536:5;;;9552:191;9597:3;9587:8;9584:17;9581:43;;;9604:18;;:::i;:::-;9581:43;9653:8;9650:1;9646:16;9637:25;;9688:3;9681:5;9678:14;9675:40;;;9695:18;;:::i;:::-;9675:40;9728:5;;;9466:277;;9852:2;9842:8;9839:16;9833:3;9827:4;9824:13;9820:36;9802:2;9792:8;9789:16;9784:2;9778:4;9775:12;9771:35;9755:111;9752:246;;;9908:8;9902:4;9898:19;9889:28;;9943:3;9936:5;9933:14;9930:40;;;9950:18;;:::i;:::-;9930:40;9983:5;;9752:246;10023:42;10061:3;10051:8;10045:4;10042:1;10023:42;:::i;:::-;10008:57;;;;10097:4;10092:3;10088:14;10081:5;10078:25;10075:51;;;10106:18;;:::i;:::-;10075:51;10155:4;10148:5;10144:16;10135:25;;9093:1073;;;;;;:::o;10172:281::-;10230:5;10254:23;10272:4;10254:23;:::i;:::-;10246:31;;10298:25;10314:8;10298:25;:::i;:::-;10286:37;;10342:104;10379:66;10369:8;10363:4;10342:104;:::i;:::-;10333:113;;10172:281;;;;:::o;10459:410::-;10499:7;10522:20;10540:1;10522:20;:::i;:::-;10517:25;;10556:20;10574:1;10556:20;:::i;:::-;10551:25;;10611:1;10608;10604:9;10633:30;10651:11;10633:30;:::i;:::-;10622:41;;10812:1;10803:7;10799:15;10796:1;10793:22;10773:1;10766:9;10746:83;10723:139;;10842:18;;:::i;:::-;10723:139;10507:362;10459:410;;;;:::o;10875:182::-;11015:34;11011:1;11003:6;10999:14;10992:58;10875:182;:::o;11063:366::-;11205:3;11226:67;11290:2;11285:3;11226:67;:::i;:::-;11219:74;;11302:93;11391:3;11302:93;:::i;:::-;11420:2;11415:3;11411:12;11404:19;;11063:366;;;:::o;11435:419::-;11601:4;11639:2;11628:9;11624:18;11616:26;;11688:9;11682:4;11678:20;11674:1;11663:9;11659:17;11652:47;11716:131;11842:4;11716:131;:::i;:::-;11708:139;;11435:419;;;:::o;11860:180::-;11908:77;11905:1;11898:88;12005:4;12002:1;11995:15;12029:4;12026:1;12019:15;12046:233;12085:3;12108:24;12126:5;12108:24;:::i;:::-;12099:33;;12154:66;12147:5;12144:77;12141:103;;12224:18;;:::i;:::-;12141:103;12271:1;12264:5;12260:13;12253:20;;12046:233;;;:::o;12285:165::-;12425:17;12421:1;12413:6;12409:14;12402:41;12285:165;:::o;12456:366::-;12598:3;12619:67;12683:2;12678:3;12619:67;:::i;:::-;12612:74;;12695:93;12784:3;12695:93;:::i;:::-;12813:2;12808:3;12804:12;12797:19;;12456:366;;;:::o;12828:419::-;12994:4;13032:2;13021:9;13017:18;13009:26;;13081:9;13075:4;13071:20;13067:1;13056:9;13052:17;13045:47;13109:131;13235:4;13109:131;:::i;:::-;13101:139;;12828:419;;;:::o;13253:143::-;13310:5;13341:6;13335:13;13326:22;;13357:33;13384:5;13357:33;:::i;:::-;13253:143;;;;:::o;13402:351::-;13472:6;13521:2;13509:9;13500:7;13496:23;13492:32;13489:119;;;13527:79;;:::i;:::-;13489:119;13647:1;13672:64;13728:7;13719:6;13708:9;13704:22;13672:64;:::i;:::-;13662:74;;13618:128;13402:351;;;;:::o;13759:332::-;13880:4;13918:2;13907:9;13903:18;13895:26;;13931:71;13999:1;13988:9;13984:17;13975:6;13931:71;:::i;:::-;14012:72;14080:2;14069:9;14065:18;14056:6;14012:72;:::i;:::-;13759:332;;;;;:::o;14097:85::-;14142:7;14171:5;14160:16;;14097:85;;;:::o;14188:60::-;14216:3;14237:5;14230:12;;14188:60;;;:::o;14254:158::-;14312:9;14345:61;14363:42;14372:32;14398:5;14372:32;:::i;:::-;14363:42;:::i;:::-;14345:61;:::i;:::-;14332:74;;14254:158;;;:::o;14418:147::-;14513:45;14552:5;14513:45;:::i;:::-;14508:3;14501:58;14418:147;;:::o;14571:807::-;14820:4;14858:3;14847:9;14843:19;14835:27;;14872:71;14940:1;14929:9;14925:17;14916:6;14872:71;:::i;:::-;14953:72;15021:2;15010:9;15006:18;14997:6;14953:72;:::i;:::-;15035:80;15111:2;15100:9;15096:18;15087:6;15035:80;:::i;:::-;15125;15201:2;15190:9;15186:18;15177:6;15125:80;:::i;:::-;15215:73;15283:3;15272:9;15268:19;15259:6;15215:73;:::i;:::-;15298;15366:3;15355:9;15351:19;15342:6;15298:73;:::i;:::-;14571:807;;;;;;;;;:::o;15384:143::-;15441:5;15472:6;15466:13;15457:22;;15488:33;15515:5;15488:33;:::i;:::-;15384:143;;;;:::o;15533:663::-;15621:6;15629;15637;15686:2;15674:9;15665:7;15661:23;15657:32;15654:119;;;15692:79;;:::i;:::-;15654:119;15812:1;15837:64;15893:7;15884:6;15873:9;15869:22;15837:64;:::i;:::-;15827:74;;15783:128;15950:2;15976:64;16032:7;16023:6;16012:9;16008:22;15976:64;:::i;:::-;15966:74;;15921:129;16089:2;16115:64;16171:7;16162:6;16151:9;16147:22;16115:64;:::i;:::-;16105:74;;16060:129;15533:663;;;;;:::o;16202:332::-;16323:4;16361:2;16350:9;16346:18;16338:26;;16374:71;16442:1;16431:9;16427:17;16418:6;16374:71;:::i;:::-;16455:72;16523:2;16512:9;16508:18;16499:6;16455:72;:::i;:::-;16202:332;;;;;:::o;16540:137::-;16594:5;16625:6;16619:13;16610:22;;16641:30;16665:5;16641:30;:::i;:::-;16540:137;;;;:::o;16683:345::-;16750:6;16799:2;16787:9;16778:7;16774:23;16770:32;16767:119;;;16805:79;;:::i;:::-;16767:119;16925:1;16950:61;17003:7;16994:6;16983:9;16979:22;16950:61;:::i;:::-;16940:71;;16896:125;16683:345;;;;:::o;17034:223::-;17174:34;17170:1;17162:6;17158:14;17151:58;17243:6;17238:2;17230:6;17226:15;17219:31;17034:223;:::o;17263:366::-;17405:3;17426:67;17490:2;17485:3;17426:67;:::i;:::-;17419:74;;17502:93;17591:3;17502:93;:::i;:::-;17620:2;17615:3;17611:12;17604:19;;17263:366;;;:::o;17635:419::-;17801:4;17839:2;17828:9;17824:18;17816:26;;17888:9;17882:4;17878:20;17874:1;17863:9;17859:17;17852:47;17916:131;18042:4;17916:131;:::i;:::-;17908:139;;17635:419;;;:::o;18060:221::-;18200:34;18196:1;18188:6;18184:14;18177:58;18269:4;18264:2;18256:6;18252:15;18245:29;18060:221;:::o;18287:366::-;18429:3;18450:67;18514:2;18509:3;18450:67;:::i;:::-;18443:74;;18526:93;18615:3;18526:93;:::i;:::-;18644:2;18639:3;18635:12;18628:19;;18287:366;;;:::o;18659:419::-;18825:4;18863:2;18852:9;18848:18;18840:26;;18912:9;18906:4;18902:20;18898:1;18887:9;18883:17;18876:47;18940:131;19066:4;18940:131;:::i;:::-;18932:139;;18659:419;;;:::o;19084:224::-;19224:34;19220:1;19212:6;19208:14;19201:58;19293:7;19288:2;19280:6;19276:15;19269:32;19084:224;:::o;19314:366::-;19456:3;19477:67;19541:2;19536:3;19477:67;:::i;:::-;19470:74;;19553:93;19642:3;19553:93;:::i;:::-;19671:2;19666:3;19662:12;19655:19;;19314:366;;;:::o;19686:419::-;19852:4;19890:2;19879:9;19875:18;19867:26;;19939:9;19933:4;19929:20;19925:1;19914:9;19910:17;19903:47;19967:131;20093:4;19967:131;:::i;:::-;19959:139;;19686:419;;;:::o;20111:222::-;20251:34;20247:1;20239:6;20235:14;20228:58;20320:5;20315:2;20307:6;20303:15;20296:30;20111:222;:::o;20339:366::-;20481:3;20502:67;20566:2;20561:3;20502:67;:::i;:::-;20495:74;;20578:93;20667:3;20578:93;:::i;:::-;20696:2;20691:3;20687:12;20680:19;;20339:366;;;:::o;20711:419::-;20877:4;20915:2;20904:9;20900:18;20892:26;;20964:9;20958:4;20954:20;20950:1;20939:9;20935:17;20928:47;20992:131;21118:4;20992:131;:::i;:::-;20984:139;;20711:419;;;:::o;21136:228::-;21276:34;21272:1;21264:6;21260:14;21253:58;21345:11;21340:2;21332:6;21328:15;21321:36;21136:228;:::o;21370:366::-;21512:3;21533:67;21597:2;21592:3;21533:67;:::i;:::-;21526:74;;21609:93;21698:3;21609:93;:::i;:::-;21727:2;21722:3;21718:12;21711:19;;21370:366;;;:::o;21742:419::-;21908:4;21946:2;21935:9;21931:18;21923:26;;21995:9;21989:4;21985:20;21981:1;21970:9;21966:17;21959:47;22023:131;22149:4;22023:131;:::i;:::-;22015:139;;21742:419;;;:::o;22167:297::-;22307:34;22303:1;22295:6;22291:14;22284:58;22376:34;22371:2;22363:6;22359:15;22352:59;22445:11;22440:2;22432:6;22428:15;22421:36;22167:297;:::o;22470:366::-;22612:3;22633:67;22697:2;22692:3;22633:67;:::i;:::-;22626:74;;22709:93;22798:3;22709:93;:::i;:::-;22827:2;22822:3;22818:12;22811:19;;22470:366;;;:::o;22842:419::-;23008:4;23046:2;23035:9;23031:18;23023:26;;23095:9;23089:4;23085:20;23081:1;23070:9;23066:17;23059:47;23123:131;23249:4;23123:131;:::i;:::-;23115:139;;22842:419;;;:::o;23267:175::-;23407:27;23403:1;23395:6;23391:14;23384:51;23267:175;:::o;23448:366::-;23590:3;23611:67;23675:2;23670:3;23611:67;:::i;:::-;23604:74;;23687:93;23776:3;23687:93;:::i;:::-;23805:2;23800:3;23796:12;23789:19;;23448:366;;;:::o;23820:419::-;23986:4;24024:2;24013:9;24009:18;24001:26;;24073:9;24067:4;24063:20;24059:1;24048:9;24044:17;24037:47;24101:131;24227:4;24101:131;:::i;:::-;24093:139;;23820:419;;;:::o;24245:191::-;24285:3;24304:20;24322:1;24304:20;:::i;:::-;24299:25;;24338:20;24356:1;24338:20;:::i;:::-;24333:25;;24381:1;24378;24374:9;24367:16;;24402:3;24399:1;24396:10;24393:36;;;24409:18;;:::i;:::-;24393:36;24245:191;;;;:::o;24442:176::-;24582:28;24578:1;24570:6;24566:14;24559:52;24442:176;:::o;24624:366::-;24766:3;24787:67;24851:2;24846:3;24787:67;:::i;:::-;24780:74;;24863:93;24952:3;24863:93;:::i;:::-;24981:2;24976:3;24972:12;24965:19;;24624:366;;;:::o;24996:419::-;25162:4;25200:2;25189:9;25185:18;25177:26;;25249:9;25243:4;25239:20;25235:1;25224:9;25220:17;25213:47;25277:131;25403:4;25277:131;:::i;:::-;25269:139;;24996:419;;;:::o;25421:194::-;25461:4;25481:20;25499:1;25481:20;:::i;:::-;25476:25;;25515:20;25533:1;25515:20;:::i;:::-;25510:25;;25559:1;25556;25552:9;25544:17;;25583:1;25577:4;25574:11;25571:37;;;25588:18;;:::i;:::-;25571:37;25421:194;;;;:::o;25621:180::-;25669:77;25666:1;25659:88;25766:4;25763:1;25756:15;25790:4;25787:1;25780:15;25807:185;25847:1;25864:20;25882:1;25864:20;:::i;:::-;25859:25;;25898:20;25916:1;25898:20;:::i;:::-;25893:25;;25937:1;25927:35;;25942:18;;:::i;:::-;25927:35;25984:1;25981;25977:9;25972:14;;25807:185;;;;:::o;25998:220::-;26138:34;26134:1;26126:6;26122:14;26115:58;26207:3;26202:2;26194:6;26190:15;26183:28;25998:220;:::o;26224:366::-;26366:3;26387:67;26451:2;26446:3;26387:67;:::i;:::-;26380:74;;26463:93;26552:3;26463:93;:::i;:::-;26581:2;26576:3;26572:12;26565:19;;26224:366;;;:::o;26596:419::-;26762:4;26800:2;26789:9;26785:18;26777:26;;26849:9;26843:4;26839:20;26835:1;26824:9;26820:17;26813:47;26877:131;27003:4;26877:131;:::i;:::-;26869:139;;26596:419;;;:::o;27021:180::-;27069:77;27066:1;27059:88;27166:4;27163:1;27156:15;27190:4;27187:1;27180:15;27207:114;27274:6;27308:5;27302:12;27292:22;;27207:114;;;:::o;27327:184::-;27426:11;27460:6;27455:3;27448:19;27500:4;27495:3;27491:14;27476:29;;27327:184;;;;:::o;27517:132::-;27584:4;27607:3;27599:11;;27637:4;27632:3;27628:14;27620:22;;27517:132;;;:::o;27655:108::-;27732:24;27750:5;27732:24;:::i;:::-;27727:3;27720:37;27655:108;;:::o;27769:179::-;27838:10;27859:46;27901:3;27893:6;27859:46;:::i;:::-;27937:4;27932:3;27928:14;27914:28;;27769:179;;;;:::o;27954:113::-;28024:4;28056;28051:3;28047:14;28039:22;;27954:113;;;:::o;28103:732::-;28222:3;28251:54;28299:5;28251:54;:::i;:::-;28321:86;28400:6;28395:3;28321:86;:::i;:::-;28314:93;;28431:56;28481:5;28431:56;:::i;:::-;28510:7;28541:1;28526:284;28551:6;28548:1;28545:13;28526:284;;;28627:6;28621:13;28654:63;28713:3;28698:13;28654:63;:::i;:::-;28647:70;;28740:60;28793:6;28740:60;:::i;:::-;28730:70;;28586:224;28573:1;28570;28566:9;28561:14;;28526:284;;;28530:14;28826:3;28819:10;;28227:608;;;28103:732;;;;:::o;28841:831::-;29104:4;29142:3;29131:9;29127:19;29119:27;;29156:71;29224:1;29213:9;29209:17;29200:6;29156:71;:::i;:::-;29237:80;29313:2;29302:9;29298:18;29289:6;29237:80;:::i;:::-;29364:9;29358:4;29354:20;29349:2;29338:9;29334:18;29327:48;29392:108;29495:4;29486:6;29392:108;:::i;:::-;29384:116;;29510:72;29578:2;29567:9;29563:18;29554:6;29510:72;:::i;:::-;29592:73;29660:3;29649:9;29645:19;29636:6;29592:73;:::i;:::-;28841:831;;;;;;;;:::o;29678:177::-;29818:29;29814:1;29806:6;29802:14;29795:53;29678:177;:::o;29861:366::-;30003:3;30024:67;30088:2;30083:3;30024:67;:::i;:::-;30017:74;;30100:93;30189:3;30100:93;:::i;:::-;30218:2;30213:3;30209:12;30202:19;;29861:366;;;:::o;30233:419::-;30399:4;30437:2;30426:9;30422:18;30414:26;;30486:9;30480:4;30476:20;30472:1;30461:9;30457:17;30450:47;30514:131;30640:4;30514:131;:::i;:::-;30506:139;;30233:419;;;:::o

Swarm Source

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