ETH Price: $2,852.50 (-10.29%)
Gas: 14 Gwei

Token

Omni (OMN)
 

Overview

Max Total Supply

100,000,000 OMN

Holders

324 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$13,909.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
37,108.303730291714701992 OMN

Value
$5.16 ( ~0.0018089419293657 Eth) [0.0371%]
0x971592feff06cb30e94dd97545294127260005d2
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

OMNI is a leading provider of AI-powered development tools. Our mission is to simplify the software development process and make it accessible to all levels of expertise.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OMNI

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-30
*/

/**
    Innovative Solutions for all levels of expertise. 
    Provide code generation with precision and speed, 
    Automate Your Development Process, AI-Assisted Design-to-Code Conversion
    
    https://t.me/omnifoundation
    https://x.com/omnfoundation
    https://www.omnifoundation.io

**/

pragma solidity 0.8.16;
// SPDX-License-Identifier: MIT
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 OMNI 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;

    address payable private _taxWallet;

    string private constant _name = unicode"Omni";
    string private constant _symbol = unicode"OMN";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;

    uint256 private _buyTax = 25;
    uint256 private _sellTax = 25;
    uint256 private _pSwapBefore = 5;
    uint256 private _bCount = 0;

    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 100000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event TradingOpened();
    event LimitRemoved();
    event TaxUpdated(uint256 buyTax, uint256 sellTax);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;

        excludeFromFee(owner(), true);
        excludeFromFee(address(this), true);
        excludeFromFee(address(0xdead), true);
        excludeFromFee(_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) && to != address(0), "ERC20: transfer the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require( 
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading is not yet open"
                );
            }

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

            if ( to == uniswapV2Pair && from != address(this)){
                taxAmount = amount.mul(_sellTax).div(100);
            } else if (from == uniswapV2Pair && to != address(this)){
                taxAmount = amount.mul(_buyTax).div(100);   
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && 
                contractTokenBalance > _taxSwapThreshold && 
                _bCount > _pSwapBefore 
            ) {
                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 excludeFromFee(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[account] = excluded;
    }

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

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

    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 initialize() external onlyOwner {
        require(!tradingOpen,"initialize: init already called");
        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);
    }

    function setInitialTax(uint256 _bTax, uint256 _sTax) external onlyOwner {
        _buyTax=_bTax;
        _sellTax=_sTax;
        emit TaxUpdated(_buyTax, _sellTax);
    }

    function onOpenTrade() external onlyOwner() {
        require(!tradingOpen,"onOpenTrade: trading already open");
        swapEnabled=true;
        tradingOpen=true;
        emit TradingOpened();
    }

    function onRemoveLimit() external onlyOwner{
        _maxTxAmount=_tTotal;
        _maxWalletSize=_tTotal;
        emit LimitRemoved();
    }

    function setFinalTax(uint256 _bTax, uint256 _sTax) external onlyOwner {
        require(tradingOpen, "onUpdateBuyTax: trading is not yet open");
        require(_bTax <= 10 && _sTax <= 10, "onUpdateBuyTax: final buy / sell tax should be less than or equal to 10");
        _buyTax=_bTax;
        _sellTax=_sTax;
        emit TaxUpdated(_buyTax, _sellTax);
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);

        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function onClearStuckEth() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == _taxWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function manualSend() external onlyOwner{
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

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":[],"name":"LimitRemoved","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":false,"internalType":"uint256","name":"buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"TaxUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"onClearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onOpenTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bTax","type":"uint256"},{"internalType":"uint256","name":"_sTax","type":"uint256"}],"name":"setFinalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bTax","type":"uint256"},{"internalType":"uint256","name":"_sTax","type":"uint256"}],"name":"setInitialTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260196005556019600655600560075560006008556012600a6200002891906200063d565b620f42406200003891906200068e565b6009556012600a6200004b91906200063d565b620f42406200005b91906200068e565b600a556012600a6200006e91906200063d565b620186a06200007e91906200068e565b600b556012600a6200009191906200063d565b620f4240620000a191906200068e565b600c556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff021916908315150217905550348015620000e757600080fd5b506000620000fa6200037760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001a86200037760201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001f891906200063d565b6305f5e1006200020991906200068e565b600160006200021d6200037760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200027d6200026f6200037f60201b60201c565b6001620003a860201b60201c565b62000290306001620003a860201b60201c565b620002a561dead6001620003a860201b60201c565b620002da600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620003a860201b60201c565b620002ea6200037760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200034991906200063d565b6305f5e1006200035a91906200068e565b60405162000369919062000700565b60405180910390a3620007a0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003b86200037760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000448576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200043f906200077e565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200053157808604811115620005095762000508620004a3565b5b6001851615620005195780820291505b80810290506200052985620004d2565b9450620004e9565b94509492505050565b6000826200054c57600190506200061f565b816200055c57600090506200061f565b81600181146200057557600281146200058057620005b6565b60019150506200061f565b60ff841115620005955762000594620004a3565b5b8360020a915084821115620005af57620005ae620004a3565b5b506200061f565b5060208310610133831016604e8410600b8410161715620005f05782820a905083811115620005ea57620005e9620004a3565b5b6200061f565b620005ff8484846001620004df565b92509050818404811115620006195762000618620004a3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200064a8262000626565b9150620006578362000630565b9250620006867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200053a565b905092915050565b60006200069b8262000626565b9150620006a88362000626565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006e457620006e3620004a3565b5b828202905092915050565b620006fa8162000626565b82525050565b6000602082019050620007176000830184620006ef565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620007666020836200071d565b915062000773826200072e565b602082019050919050565b60006020820190508181036000830152620007998162000757565b9050919050565b6138e080620007b06000396000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b657806395d89b411161006f57806395d89b411461041b578063a9059cbb14610446578063bf474bed14610483578063dd62ed3e146104ae578063df8408fe146104eb578063f42938901461051457610156565b80637d1db4a5146103315780638129fc1c1461035c57806382116718146103735780638aa0480a1461039c5780638da5cb5b146103c55780638f9a55c0146103f057610156565b806351bc3c851161010857806351bc3c851461028157806354f6515e1461029857806358ea4b8d146102af57806370a08231146102c6578063715018a61461030357806379736fa51461031a57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061052b565b60405161017d91906126f0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906127ab565b610568565b6040516101ba9190612806565b60405180910390f35b3480156101cf57600080fd5b506101d8610586565b6040516101e59190612830565b60405180910390f35b3480156101fa57600080fd5b5061020361058c565b6040516102109190612830565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061284b565b6105b0565b60405161024d9190612806565b60405180910390f35b34801561026257600080fd5b5061026b610689565b60405161027891906128ba565b60405180910390f35b34801561028d57600080fd5b50610296610692565b005b3480156102a457600080fd5b506102ad61072f565b005b3480156102bb57600080fd5b506102c461081c565b005b3480156102d257600080fd5b506102ed60048036038101906102e891906128d5565b610925565b6040516102fa9190612830565b60405180910390f35b34801561030f57600080fd5b5061031861096e565b005b34801561032657600080fd5b5061032f610ac1565b005b34801561033d57600080fd5b50610346610c0a565b6040516103539190612830565b60405180910390f35b34801561036857600080fd5b50610371610c10565b005b34801561037f57600080fd5b5061039a60048036038101906103959190612902565b611112565b005b3480156103a857600080fd5b506103c360048036038101906103be9190612902565b611296565b005b3480156103d157600080fd5b506103da61137a565b6040516103e79190612951565b60405180910390f35b3480156103fc57600080fd5b506104056113a3565b6040516104129190612830565b60405180910390f35b34801561042757600080fd5b506104306113a9565b60405161043d91906126f0565b60405180910390f35b34801561045257600080fd5b5061046d600480360381019061046891906127ab565b6113e6565b60405161047a9190612806565b60405180910390f35b34801561048f57600080fd5b50610498611404565b6040516104a59190612830565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d0919061296c565b61140a565b6040516104e29190612830565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d91906129d8565b611491565b005b34801561052057600080fd5b50610529611581565b005b60606040518060400160405280600481526020017f4f6d6e6900000000000000000000000000000000000000000000000000000000815250905090565b600061057c610575611627565b848461162f565b6001905092915050565b600c5481565b60006012600a61059c9190612b7a565b6305f5e1006105ab9190612bc5565b905090565b60006105bd8484846117f8565b61067e846105c9611627565b6106798560405180606001604052806028815260200161388360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062f611627565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f9092919063ffffffff16565b61162f565b600190509392505050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d3611627565b73ffffffffffffffffffffffffffffffffffffffff16146106f357600080fd5b60006106fe30610925565b905060008111156107135761071281612193565b5b6000479050600081111561072b5761072a8161240c565b5b5050565b60004711610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990612c6b565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107b3611627565b73ffffffffffffffffffffffffffffffffffffffff16146107d357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610819573d6000803e3d6000fd5b50565b610824611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a890612cd7565b60405180910390fd5b6012600a6108bf9190612b7a565b6305f5e1006108ce9190612bc5565b6009819055506012600a6108e29190612b7a565b6305f5e1006108f19190612bc5565b600a819055507fb376fd6b9b3ab68eb910bb1a8ad220eb88f9c95ae961d97d684d116c5332bd6760405160405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610976611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90612cd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ac9611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d90612cd7565b60405180910390fd5b600e60149054906101000a900460ff1615610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612d69565b60405180910390fd5b6001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b60095481565b610c18611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612cd7565b60405180910390fd5b600e60149054906101000a900460ff1615610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec90612dd5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610d7f9190612b7a565b6305f5e100610d8e9190612bc5565b61162f565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e249190612e0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed19190612e0a565b6040518363ffffffff1660e01b8152600401610eee929190612e37565b6020604051808303816000875af1158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f319190612e0a565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fba30610925565b600080610fc561137a565b426040518863ffffffff1660e01b8152600401610fe796959493929190612ea5565b60606040518083038185885af1158015611005573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061102a9190612f1b565b505050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110cc929190612f6e565b6020604051808303816000875af11580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190612fac565b50565b61111a611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119e90612cd7565b60405180910390fd5b600e60149054906101000a900460ff166111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed9061304b565b60405180910390fd5b600a82111580156112085750600a8111155b611247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123e90613103565b60405180910390fd5b81600581905550806006819055507fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560560055460065460405161128a929190613123565b60405180910390a15050565b61129e611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132290612cd7565b60405180910390fd5b81600581905550806006819055507fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560560055460065460405161136e929190613123565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600381526020017f4f4d4e0000000000000000000000000000000000000000000000000000000000815250905090565b60006113fa6113f3611627565b84846117f8565b6001905092915050565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611499611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90612cd7565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611589611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612cd7565b60405180910390fd5b60004790506116248161240c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611695906131be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613250565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117eb9190612830565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118625750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611898906132bc565b60405180910390fd5b600081116118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db9061334e565b60405180910390fd5b60006118ee61137a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561195c575061192c61137a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e7257600e60149054906101000a900460ff16611a5657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a165750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c906133ba565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b015750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b575750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c1257600954821115611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b989061344c565b60405180910390fd5b600a5482611bae85610925565b611bb8919061346c565b1115611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613512565b60405180910390fd5b60086000815480929190611c0c90613532565b91905055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c9b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ccf57611cc86064611cba6006548561247890919063ffffffff16565b6124f290919063ffffffff16565b9050611d89565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d5857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d8857611d856064611d776005548561247890919063ffffffff16565b6124f290919063ffffffff16565b90505b5b6000611d9430610925565b9050600e60159054906101000a900460ff16158015611e005750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e185750600e60169054906101000a900460ff165b8015611e255750600b5481115b8015611e345750600754600854115b15611e7057611e56611e5184611e4c84600c5461253c565b61253c565b612193565b60004790506000811115611e6e57611e6d4761240c565b5b505b505b6000811115611f7657611ecd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f6d9190612830565b60405180910390a35b611fc882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206f61202182846125b390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61211484866125b390919063ffffffff16565b6040516121219190612830565b60405180910390a350505050565b6000838311158290612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e91906126f0565b60405180910390fd5b5060008385612186919061357a565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121cb576121ca6135ae565b5b6040519080825280602002602001820160405280156121f95781602001602082028036833780820191505090505b5090503081600081518110612211576122106135dd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122dc9190612e0a565b816001815181106122f0576122ef6135dd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061235730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461162f565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123bb9594939291906136ca565b600060405180830381600087803b1580156123d557600080fd5b505af11580156123e9573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612474573d6000803e3d6000fd5b5050565b600080830361248a57600090506124ec565b600082846124989190612bc5565b90508284826124a79190613753565b146124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de906137f6565b60405180910390fd5b809150505b92915050565b600061253483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125fd565b905092915050565b600081831161254b578261254d565b815b905092915050565b6000808284612564919061346c565b9050838110156125a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a090613862565b60405180910390fd5b8091505092915050565b60006125f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061212f565b905092915050565b60008083118290612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b91906126f0565b60405180910390fd5b50600083856126539190613753565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269a57808201518184015260208101905061267f565b60008484015250505050565b6000601f19601f8301169050919050565b60006126c282612660565b6126cc818561266b565b93506126dc81856020860161267c565b6126e5816126a6565b840191505092915050565b6000602082019050818103600083015261270a81846126b7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061274282612717565b9050919050565b61275281612737565b811461275d57600080fd5b50565b60008135905061276f81612749565b92915050565b6000819050919050565b61278881612775565b811461279357600080fd5b50565b6000813590506127a58161277f565b92915050565b600080604083850312156127c2576127c1612712565b5b60006127d085828601612760565b92505060206127e185828601612796565b9150509250929050565b60008115159050919050565b612800816127eb565b82525050565b600060208201905061281b60008301846127f7565b92915050565b61282a81612775565b82525050565b60006020820190506128456000830184612821565b92915050565b60008060006060848603121561286457612863612712565b5b600061287286828701612760565b935050602061288386828701612760565b925050604061289486828701612796565b9150509250925092565b600060ff82169050919050565b6128b48161289e565b82525050565b60006020820190506128cf60008301846128ab565b92915050565b6000602082840312156128eb576128ea612712565b5b60006128f984828501612760565b91505092915050565b6000806040838503121561291957612918612712565b5b600061292785828601612796565b925050602061293885828601612796565b9150509250929050565b61294b81612737565b82525050565b60006020820190506129666000830184612942565b92915050565b6000806040838503121561298357612982612712565b5b600061299185828601612760565b92505060206129a285828601612760565b9150509250929050565b6129b5816127eb565b81146129c057600080fd5b50565b6000813590506129d2816129ac565b92915050565b600080604083850312156129ef576129ee612712565b5b60006129fd85828601612760565b9250506020612a0e858286016129c3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a9e57808604811115612a7a57612a79612a18565b5b6001851615612a895780820291505b8081029050612a9785612a47565b9450612a5e565b94509492505050565b600082612ab75760019050612b73565b81612ac55760009050612b73565b8160018114612adb5760028114612ae557612b14565b6001915050612b73565b60ff841115612af757612af6612a18565b5b8360020a915084821115612b0e57612b0d612a18565b5b50612b73565b5060208310610133831016604e8410600b8410161715612b495782820a905083811115612b4457612b43612a18565b5b612b73565b612b568484846001612a54565b92509050818404811115612b6d57612b6c612a18565b5b81810290505b9392505050565b6000612b8582612775565b9150612b908361289e565b9250612bbd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612aa7565b905092915050565b6000612bd082612775565b9150612bdb83612775565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c1457612c13612a18565b5b828202905092915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000612c5560168361266b565b9150612c6082612c1f565b602082019050919050565b60006020820190508181036000830152612c8481612c48565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cc160208361266b565b9150612ccc82612c8b565b602082019050919050565b60006020820190508181036000830152612cf081612cb4565b9050919050565b7f6f6e4f70656e54726164653a2074726164696e6720616c7265616479206f706560008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5360218361266b565b9150612d5e82612cf7565b604082019050919050565b60006020820190508181036000830152612d8281612d46565b9050919050565b7f696e697469616c697a653a20696e697420616c72656164792063616c6c656400600082015250565b6000612dbf601f8361266b565b9150612dca82612d89565b602082019050919050565b60006020820190508181036000830152612dee81612db2565b9050919050565b600081519050612e0481612749565b92915050565b600060208284031215612e2057612e1f612712565b5b6000612e2e84828501612df5565b91505092915050565b6000604082019050612e4c6000830185612942565b612e596020830184612942565b9392505050565b6000819050919050565b6000819050919050565b6000612e8f612e8a612e8584612e60565b612e6a565b612775565b9050919050565b612e9f81612e74565b82525050565b600060c082019050612eba6000830189612942565b612ec76020830188612821565b612ed46040830187612e96565b612ee16060830186612e96565b612eee6080830185612942565b612efb60a0830184612821565b979650505050505050565b600081519050612f158161277f565b92915050565b600080600060608486031215612f3457612f33612712565b5b6000612f4286828701612f06565b9350506020612f5386828701612f06565b9250506040612f6486828701612f06565b9150509250925092565b6000604082019050612f836000830185612942565b612f906020830184612821565b9392505050565b600081519050612fa6816129ac565b92915050565b600060208284031215612fc257612fc1612712565b5b6000612fd084828501612f97565b91505092915050565b7f6f6e5570646174654275795461783a2074726164696e67206973206e6f74207960008201527f6574206f70656e00000000000000000000000000000000000000000000000000602082015250565b600061303560278361266b565b915061304082612fd9565b604082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b7f6f6e5570646174654275795461783a2066696e616c20627579202f2073656c6c60008201527f207461782073686f756c64206265206c657373207468616e206f72206571756160208201527f6c20746f20313000000000000000000000000000000000000000000000000000604082015250565b60006130ed60478361266b565b91506130f88261306b565b606082019050919050565b6000602082019050818103600083015261311c816130e0565b9050919050565b60006040820190506131386000830185612821565b6131456020830184612821565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006131a860248361266b565b91506131b38261314c565b604082019050919050565b600060208201905081810360008301526131d78161319b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061323a60228361266b565b9150613245826131de565b604082019050919050565b600060208201905081810360008301526132698161322d565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b60006132a660208361266b565b91506132b182613270565b602082019050919050565b600060208201905081810360008301526132d581613299565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061333860298361266b565b9150613343826132dc565b604082019050919050565b600060208201905081810360008301526133678161332b565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b60006133a460178361266b565b91506133af8261336e565b602082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b600061343660248361266b565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b600061347782612775565b915061348283612775565b925082820190508082111561349a57613499612a18565b5b92915050565b7f5f7472616e736665723a204578636565647320746865206d617857616c6c657460008201527f53697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006134fc60258361266b565b9150613507826134a0565b604082019050919050565b6000602082019050818103600083015261352b816134ef565b9050919050565b600061353d82612775565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361356f5761356e612a18565b5b600182019050919050565b600061358582612775565b915061359083612775565b92508282039050818111156135a8576135a7612a18565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61364181612737565b82525050565b60006136538383613638565b60208301905092915050565b6000602082019050919050565b60006136778261360c565b6136818185613617565b935061368c83613628565b8060005b838110156136bd5781516136a48882613647565b97506136af8361365f565b925050600181019050613690565b5085935050505092915050565b600060a0820190506136df6000830188612821565b6136ec6020830187612e96565b81810360408301526136fe818661366c565b905061370d6060830185612942565b61371a6080830184612821565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061375e82612775565b915061376983612775565b92508261377957613778613724565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137e060218361266b565b91506137eb82613784565b604082019050919050565b6000602082019050818103600083015261380f816137d3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061384c601b8361266b565b915061385782613816565b602082019050919050565b6000602082019050818103600083015261387b8161383f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122008d5a4f0932e12edee15f03e50e189cc8c427ee9fa5787b83f514821bc3bdbef64736f6c63430008100033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80637d1db4a5116100b657806395d89b411161006f57806395d89b411461041b578063a9059cbb14610446578063bf474bed14610483578063dd62ed3e146104ae578063df8408fe146104eb578063f42938901461051457610156565b80637d1db4a5146103315780638129fc1c1461035c57806382116718146103735780638aa0480a1461039c5780638da5cb5b146103c55780638f9a55c0146103f057610156565b806351bc3c851161010857806351bc3c851461028157806354f6515e1461029857806358ea4b8d146102af57806370a08231146102c6578063715018a61461030357806379736fa51461031a57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061052b565b60405161017d91906126f0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906127ab565b610568565b6040516101ba9190612806565b60405180910390f35b3480156101cf57600080fd5b506101d8610586565b6040516101e59190612830565b60405180910390f35b3480156101fa57600080fd5b5061020361058c565b6040516102109190612830565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061284b565b6105b0565b60405161024d9190612806565b60405180910390f35b34801561026257600080fd5b5061026b610689565b60405161027891906128ba565b60405180910390f35b34801561028d57600080fd5b50610296610692565b005b3480156102a457600080fd5b506102ad61072f565b005b3480156102bb57600080fd5b506102c461081c565b005b3480156102d257600080fd5b506102ed60048036038101906102e891906128d5565b610925565b6040516102fa9190612830565b60405180910390f35b34801561030f57600080fd5b5061031861096e565b005b34801561032657600080fd5b5061032f610ac1565b005b34801561033d57600080fd5b50610346610c0a565b6040516103539190612830565b60405180910390f35b34801561036857600080fd5b50610371610c10565b005b34801561037f57600080fd5b5061039a60048036038101906103959190612902565b611112565b005b3480156103a857600080fd5b506103c360048036038101906103be9190612902565b611296565b005b3480156103d157600080fd5b506103da61137a565b6040516103e79190612951565b60405180910390f35b3480156103fc57600080fd5b506104056113a3565b6040516104129190612830565b60405180910390f35b34801561042757600080fd5b506104306113a9565b60405161043d91906126f0565b60405180910390f35b34801561045257600080fd5b5061046d600480360381019061046891906127ab565b6113e6565b60405161047a9190612806565b60405180910390f35b34801561048f57600080fd5b50610498611404565b6040516104a59190612830565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d0919061296c565b61140a565b6040516104e29190612830565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d91906129d8565b611491565b005b34801561052057600080fd5b50610529611581565b005b60606040518060400160405280600481526020017f4f6d6e6900000000000000000000000000000000000000000000000000000000815250905090565b600061057c610575611627565b848461162f565b6001905092915050565b600c5481565b60006012600a61059c9190612b7a565b6305f5e1006105ab9190612bc5565b905090565b60006105bd8484846117f8565b61067e846105c9611627565b6106798560405180606001604052806028815260200161388360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062f611627565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f9092919063ffffffff16565b61162f565b600190509392505050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d3611627565b73ffffffffffffffffffffffffffffffffffffffff16146106f357600080fd5b60006106fe30610925565b905060008111156107135761071281612193565b5b6000479050600081111561072b5761072a8161240c565b5b5050565b60004711610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990612c6b565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107b3611627565b73ffffffffffffffffffffffffffffffffffffffff16146107d357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610819573d6000803e3d6000fd5b50565b610824611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a890612cd7565b60405180910390fd5b6012600a6108bf9190612b7a565b6305f5e1006108ce9190612bc5565b6009819055506012600a6108e29190612b7a565b6305f5e1006108f19190612bc5565b600a819055507fb376fd6b9b3ab68eb910bb1a8ad220eb88f9c95ae961d97d684d116c5332bd6760405160405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610976611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90612cd7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ac9611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d90612cd7565b60405180910390fd5b600e60149054906101000a900460ff1615610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612d69565b60405180910390fd5b6001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b60095481565b610c18611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612cd7565b60405180910390fd5b600e60149054906101000a900460ff1615610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec90612dd5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610d7f9190612b7a565b6305f5e100610d8e9190612bc5565b61162f565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e249190612e0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed19190612e0a565b6040518363ffffffff1660e01b8152600401610eee929190612e37565b6020604051808303816000875af1158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f319190612e0a565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fba30610925565b600080610fc561137a565b426040518863ffffffff1660e01b8152600401610fe796959493929190612ea5565b60606040518083038185885af1158015611005573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061102a9190612f1b565b505050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110cc929190612f6e565b6020604051808303816000875af11580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190612fac565b50565b61111a611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119e90612cd7565b60405180910390fd5b600e60149054906101000a900460ff166111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed9061304b565b60405180910390fd5b600a82111580156112085750600a8111155b611247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123e90613103565b60405180910390fd5b81600581905550806006819055507fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560560055460065460405161128a929190613123565b60405180910390a15050565b61129e611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132290612cd7565b60405180910390fd5b81600581905550806006819055507fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560560055460065460405161136e929190613123565b60405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600381526020017f4f4d4e0000000000000000000000000000000000000000000000000000000000815250905090565b60006113fa6113f3611627565b84846117f8565b6001905092915050565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611499611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90612cd7565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611589611627565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612cd7565b60405180910390fd5b60004790506116248161240c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611695906131be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613250565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117eb9190612830565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118625750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611898906132bc565b60405180910390fd5b600081116118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db9061334e565b60405180910390fd5b60006118ee61137a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561195c575061192c61137a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e7257600e60149054906101000a900460ff16611a5657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a165750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c906133ba565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b015750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b575750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c1257600954821115611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b989061344c565b60405180910390fd5b600a5482611bae85610925565b611bb8919061346c565b1115611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613512565b60405180910390fd5b60086000815480929190611c0c90613532565b91905055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c9b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ccf57611cc86064611cba6006548561247890919063ffffffff16565b6124f290919063ffffffff16565b9050611d89565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d5857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d8857611d856064611d776005548561247890919063ffffffff16565b6124f290919063ffffffff16565b90505b5b6000611d9430610925565b9050600e60159054906101000a900460ff16158015611e005750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e185750600e60169054906101000a900460ff165b8015611e255750600b5481115b8015611e345750600754600854115b15611e7057611e56611e5184611e4c84600c5461253c565b61253c565b612193565b60004790506000811115611e6e57611e6d4761240c565b5b505b505b6000811115611f7657611ecd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f6d9190612830565b60405180910390a35b611fc882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206f61202182846125b390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61211484866125b390919063ffffffff16565b6040516121219190612830565b60405180910390a350505050565b6000838311158290612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e91906126f0565b60405180910390fd5b5060008385612186919061357a565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121cb576121ca6135ae565b5b6040519080825280602002602001820160405280156121f95781602001602082028036833780820191505090505b5090503081600081518110612211576122106135dd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122dc9190612e0a565b816001815181106122f0576122ef6135dd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061235730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461162f565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123bb9594939291906136ca565b600060405180830381600087803b1580156123d557600080fd5b505af11580156123e9573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612474573d6000803e3d6000fd5b5050565b600080830361248a57600090506124ec565b600082846124989190612bc5565b90508284826124a79190613753565b146124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de906137f6565b60405180910390fd5b809150505b92915050565b600061253483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125fd565b905092915050565b600081831161254b578261254d565b815b905092915050565b6000808284612564919061346c565b9050838110156125a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a090613862565b60405180910390fd5b8091505092915050565b60006125f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061212f565b905092915050565b60008083118290612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b91906126f0565b60405180910390fd5b50600083856126539190613753565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269a57808201518184015260208101905061267f565b60008484015250505050565b6000601f19601f8301169050919050565b60006126c282612660565b6126cc818561266b565b93506126dc81856020860161267c565b6126e5816126a6565b840191505092915050565b6000602082019050818103600083015261270a81846126b7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061274282612717565b9050919050565b61275281612737565b811461275d57600080fd5b50565b60008135905061276f81612749565b92915050565b6000819050919050565b61278881612775565b811461279357600080fd5b50565b6000813590506127a58161277f565b92915050565b600080604083850312156127c2576127c1612712565b5b60006127d085828601612760565b92505060206127e185828601612796565b9150509250929050565b60008115159050919050565b612800816127eb565b82525050565b600060208201905061281b60008301846127f7565b92915050565b61282a81612775565b82525050565b60006020820190506128456000830184612821565b92915050565b60008060006060848603121561286457612863612712565b5b600061287286828701612760565b935050602061288386828701612760565b925050604061289486828701612796565b9150509250925092565b600060ff82169050919050565b6128b48161289e565b82525050565b60006020820190506128cf60008301846128ab565b92915050565b6000602082840312156128eb576128ea612712565b5b60006128f984828501612760565b91505092915050565b6000806040838503121561291957612918612712565b5b600061292785828601612796565b925050602061293885828601612796565b9150509250929050565b61294b81612737565b82525050565b60006020820190506129666000830184612942565b92915050565b6000806040838503121561298357612982612712565b5b600061299185828601612760565b92505060206129a285828601612760565b9150509250929050565b6129b5816127eb565b81146129c057600080fd5b50565b6000813590506129d2816129ac565b92915050565b600080604083850312156129ef576129ee612712565b5b60006129fd85828601612760565b9250506020612a0e858286016129c3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a9e57808604811115612a7a57612a79612a18565b5b6001851615612a895780820291505b8081029050612a9785612a47565b9450612a5e565b94509492505050565b600082612ab75760019050612b73565b81612ac55760009050612b73565b8160018114612adb5760028114612ae557612b14565b6001915050612b73565b60ff841115612af757612af6612a18565b5b8360020a915084821115612b0e57612b0d612a18565b5b50612b73565b5060208310610133831016604e8410600b8410161715612b495782820a905083811115612b4457612b43612a18565b5b612b73565b612b568484846001612a54565b92509050818404811115612b6d57612b6c612a18565b5b81810290505b9392505050565b6000612b8582612775565b9150612b908361289e565b9250612bbd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612aa7565b905092915050565b6000612bd082612775565b9150612bdb83612775565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c1457612c13612a18565b5b828202905092915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000612c5560168361266b565b9150612c6082612c1f565b602082019050919050565b60006020820190508181036000830152612c8481612c48565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cc160208361266b565b9150612ccc82612c8b565b602082019050919050565b60006020820190508181036000830152612cf081612cb4565b9050919050565b7f6f6e4f70656e54726164653a2074726164696e6720616c7265616479206f706560008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5360218361266b565b9150612d5e82612cf7565b604082019050919050565b60006020820190508181036000830152612d8281612d46565b9050919050565b7f696e697469616c697a653a20696e697420616c72656164792063616c6c656400600082015250565b6000612dbf601f8361266b565b9150612dca82612d89565b602082019050919050565b60006020820190508181036000830152612dee81612db2565b9050919050565b600081519050612e0481612749565b92915050565b600060208284031215612e2057612e1f612712565b5b6000612e2e84828501612df5565b91505092915050565b6000604082019050612e4c6000830185612942565b612e596020830184612942565b9392505050565b6000819050919050565b6000819050919050565b6000612e8f612e8a612e8584612e60565b612e6a565b612775565b9050919050565b612e9f81612e74565b82525050565b600060c082019050612eba6000830189612942565b612ec76020830188612821565b612ed46040830187612e96565b612ee16060830186612e96565b612eee6080830185612942565b612efb60a0830184612821565b979650505050505050565b600081519050612f158161277f565b92915050565b600080600060608486031215612f3457612f33612712565b5b6000612f4286828701612f06565b9350506020612f5386828701612f06565b9250506040612f6486828701612f06565b9150509250925092565b6000604082019050612f836000830185612942565b612f906020830184612821565b9392505050565b600081519050612fa6816129ac565b92915050565b600060208284031215612fc257612fc1612712565b5b6000612fd084828501612f97565b91505092915050565b7f6f6e5570646174654275795461783a2074726164696e67206973206e6f74207960008201527f6574206f70656e00000000000000000000000000000000000000000000000000602082015250565b600061303560278361266b565b915061304082612fd9565b604082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b7f6f6e5570646174654275795461783a2066696e616c20627579202f2073656c6c60008201527f207461782073686f756c64206265206c657373207468616e206f72206571756160208201527f6c20746f20313000000000000000000000000000000000000000000000000000604082015250565b60006130ed60478361266b565b91506130f88261306b565b606082019050919050565b6000602082019050818103600083015261311c816130e0565b9050919050565b60006040820190506131386000830185612821565b6131456020830184612821565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006131a860248361266b565b91506131b38261314c565b604082019050919050565b600060208201905081810360008301526131d78161319b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061323a60228361266b565b9150613245826131de565b604082019050919050565b600060208201905081810360008301526132698161322d565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b60006132a660208361266b565b91506132b182613270565b602082019050919050565b600060208201905081810360008301526132d581613299565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061333860298361266b565b9150613343826132dc565b604082019050919050565b600060208201905081810360008301526133678161332b565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b60006133a460178361266b565b91506133af8261336e565b602082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b600061343660248361266b565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b600061347782612775565b915061348283612775565b925082820190508082111561349a57613499612a18565b5b92915050565b7f5f7472616e736665723a204578636565647320746865206d617857616c6c657460008201527f53697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006134fc60258361266b565b9150613507826134a0565b604082019050919050565b6000602082019050818103600083015261352b816134ef565b9050919050565b600061353d82612775565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361356f5761356e612a18565b5b600182019050919050565b600061358582612775565b915061359083612775565b92508282039050818111156135a8576135a7612a18565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61364181612737565b82525050565b60006136538383613638565b60208301905092915050565b6000602082019050919050565b60006136778261360c565b6136818185613617565b935061368c83613628565b8060005b838110156136bd5781516136a48882613647565b97506136af8361365f565b925050600181019050613690565b5085935050505092915050565b600060a0820190506136df6000830188612821565b6136ec6020830187612e96565b81810360408301526136fe818661366c565b905061370d6060830185612942565b61371a6080830184612821565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061375e82612775565b915061376983612775565b92508261377957613778613724565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137e060218361266b565b91506137eb82613784565b604082019050919050565b6000602082019050818103600083015261380f816137d3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061384c601b8361266b565b915061385782613816565b602082019050919050565b6000602082019050818103600083015261387b8161383f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122008d5a4f0932e12edee15f03e50e189cc8c427ee9fa5787b83f514821bc3bdbef64736f6c63430008100033

Deployed Bytecode Sourcemap

3780:8621:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5472:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6305:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4647:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5749:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6474:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5658:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11649:358;;;;;;;;;;;;;:::i;:::-;;12015:223;;;;;;;;;;;;;:::i;:::-;;11084:145;;;;;;;;;;;;;:::i;:::-;;5852:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2861:148;;;;;;;;;;;;;:::i;:::-;;10871:205;;;;;;;;;;;;;:::i;:::-;;4461:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10063:618;;;;;;;;;;;;;:::i;:::-;;11237:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10689:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2647:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4521:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5563:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5979:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4583:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6154:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9228:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12246:152;;;;;;;;;;;;;:::i;:::-;;5472:83;5509:13;5542:5;;;;;;;;;;;;;;;;;5535:12;;5472:83;:::o;6305:161::-;6380:4;6397:39;6406:12;:10;:12::i;:::-;6420:7;6429:6;6397:8;:39::i;:::-;6454:4;6447:11;;6305:161;;;;:::o;4647:52::-;;;;:::o;5749:95::-;5802:7;4237:2;4293;:13;;;;:::i;:::-;4281:9;:25;;;;:::i;:::-;5822:14;;5749:95;:::o;6474:313::-;6572:4;6589:36;6599:6;6607:9;6618:6;6589:9;:36::i;:::-;6636:121;6645:6;6653:12;:10;:12::i;:::-;6667:89;6705:6;6667:89;;;;;;;;;;;;;;;;;:11;:19;6679:6;6667:19;;;;;;;;;;;;;;;:33;6687:12;:10;:12::i;:::-;6667:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6636:8;:121::i;:::-;6775:4;6768:11;;6474:313;;;;;:::o;5658:83::-;5699:5;4237:2;5717:16;;5658:83;:::o;11649:358::-;11715:10;;;;;;;;;;;11699:26;;:12;:10;:12::i;:::-;:26;;;11691:35;;;;;;11739:20;11762:24;11780:4;11762:9;:24::i;:::-;11739:47;;11813:1;11800:12;:14;11797:73;;;11828:30;11845:12;11828:16;:30::i;:::-;11797:73;11882:18;11903:21;11882:42;;11949:1;11938:10;:12;11935:65;;;11964:24;11977:10;11964:12;:24::i;:::-;11935:65;11680:327;;11649:358::o;12015:223::-;12094:1;12070:21;:25;12062:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12157:10;;;;;;;;;;;12141:26;;:12;:10;:12::i;:::-;:26;;;12133:35;;;;;;12187:10;12179:28;;:51;12208:21;12179:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12015:223::o;11084:145::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4237:2:::1;4293;:13;;;;:::i;:::-;4281:9;:25;;;;:::i;:::-;11138:12;:20;;;;4237:2;4293;:13;;;;:::i;:::-;4281:9;:25;;;;:::i;:::-;11169:14;:22;;;;11207:14;;;;;;;;;;11084:145::o:0;5852:119::-;5918:7;5945:9;:18;5955:7;5945:18;;;;;;;;;;;;;;;;5938:25;;5852:119;;;:::o;2861:148::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2968:1:::1;2931:40;;2952:6;::::0;::::1;;;;;;;;2931:40;;;;;;;;;;;;2999:1;2982:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2861:148::o:0;10871:205::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10935:11:::1;;;;;;;;;;;10934:12;10926:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11006:4;10994:11;;:16;;;;;;;;;;;;;;;;;;11033:4;11021:11;;:16;;;;;;;;;;;;;;;;;;11053:15;;;;;;;;;;10871:205::o:0;4461:53::-;;;;:::o;10063:618::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10124:11:::1;;;;;;;;;;;10123:12;10115:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;10218:42;10181:15;;:80;;;;;;;;;;;;;;;;;;10272:58;10289:4;10304:15;;;;;;;;;;;4237:2;4293;:13;;;;:::i;:::-;4281:9;:25;;;;:::i;:::-;10272:8;:58::i;:::-;10375:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10357:55;;;10421:4;10428:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10357:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10341:13;;:110;;;;;;;;;;;;;;;;;;10462:15;;;;;;;;;;;:31;;;10501:21;10532:4;10538:24;10556:4;10538:9;:24::i;:::-;10563:1;10565::::0;10567:7:::1;:5;:7::i;:::-;10575:15;10462:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10609:13;;;;;;;;;;;10602:29;;;10640:15;;;;;;;;;;;10658:14;10602:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10063:618::o:0;11237:367::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11326:11:::1;;;;;;;;;;;11318:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11409:2;11400:5;:11;;:26;;;;;11424:2;11415:5;:11;;11400:26;11392:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11521:5;11513:7;:13;;;;11546:5;11537:8;:14;;;;11567:29;11578:7;;11587:8;;11567:29;;;;;;;:::i;:::-;;;;;;;;11237:367:::0;;:::o;10689:174::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10780:5:::1;10772:7;:13;;;;10805:5;10796:8;:14;;;;10826:29;10837:7;;10846:8;;10826:29;;;;;;;:::i;:::-;;;;;;;;10689:174:::0;;:::o;2647:79::-;2685:7;2712:6;;;;;;;;;;;2705:13;;2647:79;:::o;4521:55::-;;;;:::o;5563:87::-;5602:13;5635:7;;;;;;;;;;;;;;;;;5628:14;;5563:87;:::o;5979:167::-;6057:4;6074:42;6084:12;:10;:12::i;:::-;6098:9;6109:6;6074:9;:42::i;:::-;6134:4;6127:11;;5979:167;;;;:::o;4583:57::-;;;;:::o;6154:143::-;6235:7;6262:11;:18;6274:5;6262:18;;;;;;;;;;;;;;;:27;6281:7;6262:27;;;;;;;;;;;;;;;;6255:34;;6154:143;;;;:::o;9228:130::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9342:8:::1;9312:18;:27;9331:7;9312:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9228:130:::0;;:::o;12246:152::-;2784:12;:10;:12::i;:::-;2774:22;;:6;;;;;;;;;;:22;;;2766:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12297:26:::1;12326:21;12297:50;;12358:32;12371:18;12358:12;:32::i;:::-;12286:112;12246:152::o:0;402:98::-;455:7;482:10;475:17;;402:98;:::o;6795:335::-;6905:1;6888:19;;:5;:19;;;6880:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6986:1;6967:21;;:7;:21;;;6959:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7068:6;7038:11;:18;7050:5;7038:18;;;;;;;;;;;;;;;:27;7057:7;7038:27;;;;;;;;;;;;;;;:36;;;;7106:7;7090:32;;7099:5;7090:32;;;7115:6;7090:32;;;;;;:::i;:::-;;;;;;;;6795:335;;;:::o;7138:2082::-;7242:1;7226:18;;:4;:18;;;;:38;;;;;7262:1;7248:16;;:2;:16;;;;7226:38;7218:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7329:1;7320:6;:10;7312:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7387:17;7431:7;:5;:7::i;:::-;7423:15;;:4;:15;;;;:32;;;;;7448:7;:5;:7::i;:::-;7442:13;;:2;:13;;;;7423:32;7419:1440;;;7477:11;;;;;;;;;;;7472:201;;7540:18;:22;7559:2;7540:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;7566:18;:24;7585:4;7566:24;;;;;;;;;;;;;;;;;;;;;;;;;7540:50;7509:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;7472:201;7701:13;;;;;;;;;;;7693:21;;:4;:21;;;:55;;;;;7732:15;;;;;;;;;;;7718:30;;:2;:30;;;;7693:55;:83;;;;;7754:18;:22;7773:2;7754:22;;;;;;;;;;;;;;;;;;;;;;;;;7752:24;7693:83;7689:332;;;7815:12;;7805:6;:22;;7797:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7921:14;;7911:6;7895:13;7905:2;7895:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7887:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;7996:7;;:9;;;;;;;;;:::i;:::-;;;;;;7689:332;8048:13;;;;;;;;;;;8042:19;;:2;:19;;;:44;;;;;8081:4;8065:21;;:4;:21;;;;8042:44;8037:259;;;8118:29;8143:3;8118:20;8129:8;;8118:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8106:41;;8037:259;;;8181:13;;;;;;;;;;;8173:21;;:4;:21;;;:44;;;;;8212:4;8198:19;;:2;:19;;;;8173:44;8169:127;;;8249:28;8273:3;8249:19;8260:7;;8249:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8237:40;;8169:127;8037:259;8312:28;8343:24;8361:4;8343:9;:24::i;:::-;8312:55;;8387:6;;;;;;;;;;;8386:7;:30;;;;;8403:13;;;;;;;;;;;8397:19;;:2;:19;;;8386:30;:45;;;;;8420:11;;;;;;;;;;;8386:45;:107;;;;;8476:17;;8453:20;:40;8386:107;:151;;;;;8525:12;;8515:7;;:22;8386:151;8382:466;;;8573:67;8590:49;8594:6;8601:37;8605:20;8626:11;;8601:3;:37::i;:::-;8590:3;:49::i;:::-;8573:16;:67::i;:::-;8659:26;8688:21;8659:50;;8752:1;8731:18;:22;8728:105;;;8778:35;8791:21;8778:12;:35::i;:::-;8728:105;8554:294;8382:466;7457:1402;7419:1440;8886:1;8874:9;:13;8871:164;;;8927:39;8956:9;8927;:24;8945:4;8927:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8902:9;:24;8920:4;8902:24;;;;;;;;;;;;;;;:64;;;;9007:4;8984:39;;8993:4;8984:39;;;9013:9;8984:39;;;;;;:::i;:::-;;;;;;;;8871:164;9063:27;9083:6;9063:9;:15;9073:4;9063:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9047:9;:15;9057:4;9047:15;;;;;;;;;;;;;;;:43;;;;9115:40;9133:21;9144:9;9133:6;:10;;:21;;;;:::i;:::-;9115:9;:13;9125:2;9115:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9101:9;:13;9111:2;9101:13;;;;;;;;;;;;;;;:54;;;;9186:2;9171:41;;9180:4;9171:41;;;9190:21;9201:9;9190:6;:10;;:21;;;;:::i;:::-;9171:41;;;;;;:::i;:::-;;;;;;;;7207:2013;7138:2082;;;:::o;1539:190::-;1625:7;1658:1;1653;:6;;1661:12;1645:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1685:9;1701:1;1697;:5;;;;:::i;:::-;1685:17;;1720:1;1713:8;;;1539:190;;;;;:::o;9572:483::-;5055:4;5046:6;;:13;;;;;;;;;;;;;;;;;;9650:21:::1;9688:1;9674:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9650:40;;9719:4;9701;9706:1;9701:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9745:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9735:4;9740:1;9735:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9778:62;9795:4;9810:15;;;;;;;;;;;9828:11;9778:8;:62::i;:::-;9851:15;;;;;;;;;;;:66;;;9932:11;9958:1;9974:4;10001;10021:15;9851:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9639:416;5091:5:::0;5082:6;;:14;;;;;;;;;;;;;;;;;;9572:483;:::o;9472:92::-;9529:10;;;;;;;;;;;:19;;:27;9549:6;9529:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9472:92;:::o;1737:246::-;1795:7;1824:1;1819;:6;1815:47;;1849:1;1842:8;;;;1815:47;1872:9;1888:1;1884;:5;;;;:::i;:::-;1872:17;;1917:1;1912;1908;:5;;;;:::i;:::-;:10;1900:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1974:1;1967:8;;;1737:246;;;;;:::o;1991:132::-;2049:7;2076:39;2080:1;2083;2076:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2069:46;;1991:132;;;;:::o;9366:98::-;9423:7;9450:1;9448;:3;9447:9;;9455:1;9447:9;;;9453:1;9447:9;9440:16;;9366:98;;;;:::o;1208:179::-;1266:7;1286:9;1302:1;1298;:5;;;;:::i;:::-;1286:17;;1327:1;1322;:6;;1314:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1378:1;1371:8;;;1208:179;;;;:::o;1395:136::-;1453:7;1480:43;1484:1;1487;1480:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1473:50;;1395:136;;;;:::o;2131:189::-;2217:7;2249:1;2245;:5;2252:12;2237:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2276:9;2292:1;2288;:5;;;;:::i;:::-;2276:17;;2311:1;2304:8;;;2131:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500: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:468::-;6826:6;6834;6883:2;6871:9;6862:7;6858:23;6854:32;6851:119;;;6889:79;;:::i;:::-;6851:119;7009:1;7034:53;7079:7;7070:6;7059:9;7055:22;7034:53;:::i;:::-;7024:63;;6980:117;7136:2;7162:50;7204:7;7195:6;7184:9;7180:22;7162:50;:::i;:::-;7152:60;;7107:115;6761:468;;;;;:::o;7235:180::-;7283:77;7280:1;7273:88;7380:4;7377:1;7370:15;7404:4;7401:1;7394:15;7421:102;7463:8;7510:5;7507:1;7503:13;7482:34;;7421:102;;;:::o;7529:848::-;7590:5;7597:4;7621:6;7612:15;;7645:5;7636:14;;7659:712;7680:1;7670:8;7667:15;7659:712;;;7775:4;7770:3;7766:14;7760:4;7757:24;7754:50;;;7784:18;;:::i;:::-;7754:50;7834:1;7824:8;7820:16;7817:451;;;8249:4;8242:5;8238:16;8229:25;;7817:451;8299:4;8293;8289:15;8281:23;;8329:32;8352:8;8329:32;:::i;:::-;8317:44;;7659:712;;;7529:848;;;;;;;:::o;8383:1073::-;8437:5;8628:8;8618:40;;8649:1;8640:10;;8651:5;;8618:40;8677:4;8667:36;;8694:1;8685:10;;8696:5;;8667:36;8763:4;8811:1;8806:27;;;;8847:1;8842:191;;;;8756:277;;8806:27;8824:1;8815:10;;8826:5;;;8842:191;8887:3;8877:8;8874:17;8871:43;;;8894:18;;:::i;:::-;8871:43;8943:8;8940:1;8936:16;8927:25;;8978:3;8971:5;8968:14;8965:40;;;8985:18;;:::i;:::-;8965:40;9018:5;;;8756:277;;9142:2;9132:8;9129:16;9123:3;9117:4;9114:13;9110:36;9092:2;9082:8;9079:16;9074:2;9068:4;9065:12;9061:35;9045:111;9042:246;;;9198:8;9192:4;9188:19;9179:28;;9233:3;9226:5;9223:14;9220:40;;;9240:18;;:::i;:::-;9220:40;9273:5;;9042:246;9313:42;9351:3;9341:8;9335:4;9332:1;9313:42;:::i;:::-;9298:57;;;;9387:4;9382:3;9378:14;9371:5;9368:25;9365:51;;;9396:18;;:::i;:::-;9365:51;9445:4;9438:5;9434:16;9425:25;;8383:1073;;;;;;:::o;9462:281::-;9520:5;9544:23;9562:4;9544:23;:::i;:::-;9536:31;;9588:25;9604:8;9588:25;:::i;:::-;9576:37;;9632:104;9669:66;9659:8;9653:4;9632:104;:::i;:::-;9623:113;;9462:281;;;;:::o;9749:348::-;9789:7;9812:20;9830:1;9812:20;:::i;:::-;9807:25;;9846:20;9864:1;9846:20;:::i;:::-;9841:25;;10034:1;9966:66;9962:74;9959:1;9956:81;9951:1;9944:9;9937:17;9933:105;9930:131;;;10041:18;;:::i;:::-;9930:131;10089:1;10086;10082:9;10071:20;;9749:348;;;;:::o;10103:172::-;10243:24;10239:1;10231:6;10227:14;10220:48;10103:172;:::o;10281:366::-;10423:3;10444:67;10508:2;10503:3;10444:67;:::i;:::-;10437:74;;10520:93;10609:3;10520:93;:::i;:::-;10638:2;10633:3;10629:12;10622:19;;10281:366;;;:::o;10653:419::-;10819:4;10857:2;10846:9;10842:18;10834:26;;10906:9;10900:4;10896:20;10892:1;10881:9;10877:17;10870:47;10934:131;11060:4;10934:131;:::i;:::-;10926:139;;10653:419;;;:::o;11078:182::-;11218:34;11214:1;11206:6;11202:14;11195:58;11078:182;:::o;11266:366::-;11408:3;11429:67;11493:2;11488:3;11429:67;:::i;:::-;11422:74;;11505:93;11594:3;11505:93;:::i;:::-;11623:2;11618:3;11614:12;11607:19;;11266:366;;;:::o;11638:419::-;11804:4;11842:2;11831:9;11827:18;11819:26;;11891:9;11885:4;11881:20;11877:1;11866:9;11862:17;11855:47;11919:131;12045:4;11919:131;:::i;:::-;11911:139;;11638:419;;;:::o;12063:220::-;12203:34;12199:1;12191:6;12187:14;12180:58;12272:3;12267:2;12259:6;12255:15;12248:28;12063:220;:::o;12289:366::-;12431:3;12452:67;12516:2;12511:3;12452:67;:::i;:::-;12445:74;;12528:93;12617:3;12528:93;:::i;:::-;12646:2;12641:3;12637:12;12630:19;;12289:366;;;:::o;12661:419::-;12827:4;12865:2;12854:9;12850:18;12842:26;;12914:9;12908:4;12904:20;12900:1;12889:9;12885:17;12878:47;12942:131;13068:4;12942:131;:::i;:::-;12934:139;;12661:419;;;:::o;13086:181::-;13226:33;13222:1;13214:6;13210:14;13203:57;13086:181;:::o;13273:366::-;13415:3;13436:67;13500:2;13495:3;13436:67;:::i;:::-;13429:74;;13512:93;13601:3;13512:93;:::i;:::-;13630:2;13625:3;13621:12;13614:19;;13273:366;;;:::o;13645:419::-;13811:4;13849:2;13838:9;13834:18;13826:26;;13898:9;13892:4;13888:20;13884:1;13873:9;13869:17;13862:47;13926:131;14052:4;13926:131;:::i;:::-;13918:139;;13645:419;;;:::o;14070:143::-;14127:5;14158:6;14152:13;14143:22;;14174:33;14201:5;14174:33;:::i;:::-;14070:143;;;;:::o;14219:351::-;14289:6;14338:2;14326:9;14317:7;14313:23;14309:32;14306:119;;;14344:79;;:::i;:::-;14306:119;14464:1;14489:64;14545:7;14536:6;14525:9;14521:22;14489:64;:::i;:::-;14479:74;;14435:128;14219:351;;;;:::o;14576:332::-;14697:4;14735:2;14724:9;14720:18;14712:26;;14748:71;14816:1;14805:9;14801:17;14792:6;14748:71;:::i;:::-;14829:72;14897:2;14886:9;14882:18;14873:6;14829:72;:::i;:::-;14576:332;;;;;:::o;14914:85::-;14959:7;14988:5;14977:16;;14914:85;;;:::o;15005:60::-;15033:3;15054:5;15047:12;;15005:60;;;:::o;15071:158::-;15129:9;15162:61;15180:42;15189:32;15215:5;15189:32;:::i;:::-;15180:42;:::i;:::-;15162:61;:::i;:::-;15149:74;;15071:158;;;:::o;15235:147::-;15330:45;15369:5;15330:45;:::i;:::-;15325:3;15318:58;15235:147;;:::o;15388:807::-;15637:4;15675:3;15664:9;15660:19;15652:27;;15689:71;15757:1;15746:9;15742:17;15733:6;15689:71;:::i;:::-;15770:72;15838:2;15827:9;15823:18;15814:6;15770:72;:::i;:::-;15852:80;15928:2;15917:9;15913:18;15904:6;15852:80;:::i;:::-;15942;16018:2;16007:9;16003:18;15994:6;15942:80;:::i;:::-;16032:73;16100:3;16089:9;16085:19;16076:6;16032:73;:::i;:::-;16115;16183:3;16172:9;16168:19;16159:6;16115:73;:::i;:::-;15388:807;;;;;;;;;:::o;16201:143::-;16258:5;16289:6;16283:13;16274:22;;16305:33;16332:5;16305:33;:::i;:::-;16201:143;;;;:::o;16350:663::-;16438:6;16446;16454;16503:2;16491:9;16482:7;16478:23;16474:32;16471:119;;;16509:79;;:::i;:::-;16471:119;16629:1;16654:64;16710:7;16701:6;16690:9;16686:22;16654:64;:::i;:::-;16644:74;;16600:128;16767:2;16793:64;16849:7;16840:6;16829:9;16825:22;16793:64;:::i;:::-;16783:74;;16738:129;16906:2;16932:64;16988:7;16979:6;16968:9;16964:22;16932:64;:::i;:::-;16922:74;;16877:129;16350:663;;;;;:::o;17019:332::-;17140:4;17178:2;17167:9;17163:18;17155:26;;17191:71;17259:1;17248:9;17244:17;17235:6;17191:71;:::i;:::-;17272:72;17340:2;17329:9;17325:18;17316:6;17272:72;:::i;:::-;17019:332;;;;;:::o;17357:137::-;17411:5;17442:6;17436:13;17427:22;;17458:30;17482:5;17458:30;:::i;:::-;17357:137;;;;:::o;17500:345::-;17567:6;17616:2;17604:9;17595:7;17591:23;17587:32;17584:119;;;17622:79;;:::i;:::-;17584:119;17742:1;17767:61;17820:7;17811:6;17800:9;17796:22;17767:61;:::i;:::-;17757:71;;17713:125;17500:345;;;;:::o;17851:226::-;17991:34;17987:1;17979:6;17975:14;17968:58;18060:9;18055:2;18047:6;18043:15;18036:34;17851:226;:::o;18083:366::-;18225:3;18246:67;18310:2;18305:3;18246:67;:::i;:::-;18239:74;;18322:93;18411:3;18322:93;:::i;:::-;18440:2;18435:3;18431:12;18424:19;;18083:366;;;:::o;18455:419::-;18621:4;18659:2;18648:9;18644:18;18636:26;;18708:9;18702:4;18698:20;18694:1;18683:9;18679:17;18672:47;18736:131;18862:4;18736:131;:::i;:::-;18728:139;;18455:419;;;:::o;18880:295::-;19020:34;19016:1;19008:6;19004:14;18997:58;19089:34;19084:2;19076:6;19072:15;19065:59;19158:9;19153:2;19145:6;19141:15;19134:34;18880:295;:::o;19181:366::-;19323:3;19344:67;19408:2;19403:3;19344:67;:::i;:::-;19337:74;;19420:93;19509:3;19420:93;:::i;:::-;19538:2;19533:3;19529:12;19522:19;;19181:366;;;:::o;19553:419::-;19719:4;19757:2;19746:9;19742:18;19734:26;;19806:9;19800:4;19796:20;19792:1;19781:9;19777:17;19770:47;19834:131;19960:4;19834:131;:::i;:::-;19826:139;;19553:419;;;:::o;19978:332::-;20099:4;20137:2;20126:9;20122:18;20114:26;;20150:71;20218:1;20207:9;20203:17;20194:6;20150:71;:::i;:::-;20231:72;20299:2;20288:9;20284:18;20275:6;20231:72;:::i;:::-;19978:332;;;;;:::o;20316:223::-;20456:34;20452:1;20444:6;20440:14;20433:58;20525:6;20520:2;20512:6;20508:15;20501:31;20316:223;:::o;20545:366::-;20687:3;20708:67;20772:2;20767:3;20708:67;:::i;:::-;20701:74;;20784:93;20873:3;20784:93;:::i;:::-;20902:2;20897:3;20893:12;20886:19;;20545:366;;;:::o;20917:419::-;21083:4;21121:2;21110:9;21106:18;21098:26;;21170:9;21164:4;21160:20;21156:1;21145:9;21141:17;21134:47;21198:131;21324:4;21198:131;:::i;:::-;21190:139;;20917:419;;;:::o;21342:221::-;21482:34;21478:1;21470:6;21466:14;21459:58;21551:4;21546:2;21538:6;21534:15;21527:29;21342:221;:::o;21569:366::-;21711:3;21732:67;21796:2;21791:3;21732:67;:::i;:::-;21725:74;;21808:93;21897:3;21808:93;:::i;:::-;21926:2;21921:3;21917:12;21910:19;;21569:366;;;:::o;21941:419::-;22107:4;22145:2;22134:9;22130:18;22122:26;;22194:9;22188:4;22184:20;22180:1;22169:9;22165:17;22158:47;22222:131;22348:4;22222:131;:::i;:::-;22214:139;;21941:419;;;:::o;22366:182::-;22506:34;22502:1;22494:6;22490:14;22483:58;22366:182;:::o;22554:366::-;22696:3;22717:67;22781:2;22776:3;22717:67;:::i;:::-;22710:74;;22793:93;22882:3;22793:93;:::i;:::-;22911:2;22906:3;22902:12;22895:19;;22554:366;;;:::o;22926:419::-;23092:4;23130:2;23119:9;23115:18;23107:26;;23179:9;23173:4;23169:20;23165:1;23154:9;23150:17;23143:47;23207:131;23333:4;23207:131;:::i;:::-;23199:139;;22926:419;;;:::o;23351:228::-;23491:34;23487:1;23479:6;23475:14;23468:58;23560:11;23555:2;23547:6;23543:15;23536:36;23351:228;:::o;23585:366::-;23727:3;23748:67;23812:2;23807:3;23748:67;:::i;:::-;23741:74;;23824:93;23913:3;23824:93;:::i;:::-;23942:2;23937:3;23933:12;23926:19;;23585:366;;;:::o;23957:419::-;24123:4;24161:2;24150:9;24146:18;24138:26;;24210:9;24204:4;24200:20;24196:1;24185:9;24181:17;24174:47;24238:131;24364:4;24238:131;:::i;:::-;24230:139;;23957:419;;;:::o;24382:173::-;24522:25;24518:1;24510:6;24506:14;24499:49;24382:173;:::o;24561:366::-;24703:3;24724:67;24788:2;24783:3;24724:67;:::i;:::-;24717:74;;24800:93;24889:3;24800:93;:::i;:::-;24918:2;24913:3;24909:12;24902:19;;24561:366;;;:::o;24933:419::-;25099:4;25137:2;25126:9;25122:18;25114:26;;25186:9;25180:4;25176:20;25172:1;25161:9;25157:17;25150:47;25214:131;25340:4;25214:131;:::i;:::-;25206:139;;24933:419;;;:::o;25358:223::-;25498:34;25494:1;25486:6;25482:14;25475:58;25567:6;25562:2;25554:6;25550:15;25543:31;25358:223;:::o;25587:366::-;25729:3;25750:67;25814:2;25809:3;25750:67;:::i;:::-;25743:74;;25826:93;25915:3;25826:93;:::i;:::-;25944:2;25939:3;25935:12;25928:19;;25587:366;;;:::o;25959:419::-;26125:4;26163:2;26152:9;26148:18;26140:26;;26212:9;26206:4;26202:20;26198:1;26187:9;26183:17;26176:47;26240:131;26366:4;26240:131;:::i;:::-;26232:139;;25959:419;;;:::o;26384:191::-;26424:3;26443:20;26461:1;26443:20;:::i;:::-;26438:25;;26477:20;26495:1;26477:20;:::i;:::-;26472:25;;26520:1;26517;26513:9;26506:16;;26541:3;26538:1;26535:10;26532:36;;;26548:18;;:::i;:::-;26532:36;26384:191;;;;:::o;26581:224::-;26721:34;26717:1;26709:6;26705:14;26698:58;26790:7;26785:2;26777:6;26773:15;26766:32;26581:224;:::o;26811:366::-;26953:3;26974:67;27038:2;27033:3;26974:67;:::i;:::-;26967:74;;27050:93;27139:3;27050:93;:::i;:::-;27168:2;27163:3;27159:12;27152:19;;26811:366;;;:::o;27183:419::-;27349:4;27387:2;27376:9;27372:18;27364:26;;27436:9;27430:4;27426:20;27422:1;27411:9;27407:17;27400:47;27464:131;27590:4;27464:131;:::i;:::-;27456:139;;27183:419;;;:::o;27608:233::-;27647:3;27670:24;27688:5;27670:24;:::i;:::-;27661:33;;27716:66;27709:5;27706:77;27703:103;;27786:18;;:::i;:::-;27703:103;27833:1;27826:5;27822:13;27815:20;;27608:233;;;:::o;27847:194::-;27887:4;27907:20;27925:1;27907:20;:::i;:::-;27902:25;;27941:20;27959:1;27941:20;:::i;:::-;27936:25;;27985:1;27982;27978:9;27970:17;;28009:1;28003:4;28000:11;27997:37;;;28014:18;;:::i;:::-;27997:37;27847:194;;;;:::o;28047:180::-;28095:77;28092:1;28085:88;28192:4;28189:1;28182:15;28216:4;28213:1;28206:15;28233:180;28281:77;28278:1;28271:88;28378:4;28375:1;28368:15;28402:4;28399:1;28392:15;28419:114;28486:6;28520:5;28514:12;28504:22;;28419:114;;;:::o;28539:184::-;28638:11;28672:6;28667:3;28660:19;28712:4;28707:3;28703:14;28688:29;;28539:184;;;;:::o;28729:132::-;28796:4;28819:3;28811:11;;28849:4;28844:3;28840:14;28832:22;;28729:132;;;:::o;28867:108::-;28944:24;28962:5;28944:24;:::i;:::-;28939:3;28932:37;28867:108;;:::o;28981:179::-;29050:10;29071:46;29113:3;29105:6;29071:46;:::i;:::-;29149:4;29144:3;29140:14;29126:28;;28981:179;;;;:::o;29166:113::-;29236:4;29268;29263:3;29259:14;29251:22;;29166:113;;;:::o;29315:732::-;29434:3;29463:54;29511:5;29463:54;:::i;:::-;29533:86;29612:6;29607:3;29533:86;:::i;:::-;29526:93;;29643:56;29693:5;29643:56;:::i;:::-;29722:7;29753:1;29738:284;29763:6;29760:1;29757:13;29738:284;;;29839:6;29833:13;29866:63;29925:3;29910:13;29866:63;:::i;:::-;29859:70;;29952:60;30005:6;29952:60;:::i;:::-;29942:70;;29798:224;29785:1;29782;29778:9;29773:14;;29738:284;;;29742:14;30038:3;30031:10;;29439:608;;;29315:732;;;;:::o;30053:831::-;30316:4;30354:3;30343:9;30339:19;30331:27;;30368:71;30436:1;30425:9;30421:17;30412:6;30368:71;:::i;:::-;30449:80;30525:2;30514:9;30510:18;30501:6;30449:80;:::i;:::-;30576:9;30570:4;30566:20;30561:2;30550:9;30546:18;30539:48;30604:108;30707:4;30698:6;30604:108;:::i;:::-;30596:116;;30722:72;30790:2;30779:9;30775:18;30766:6;30722:72;:::i;:::-;30804:73;30872:3;30861:9;30857:19;30848:6;30804:73;:::i;:::-;30053:831;;;;;;;;:::o;30890:180::-;30938:77;30935:1;30928:88;31035:4;31032:1;31025:15;31059:4;31056:1;31049:15;31076:185;31116:1;31133:20;31151:1;31133:20;:::i;:::-;31128:25;;31167:20;31185:1;31167:20;:::i;:::-;31162:25;;31206:1;31196:35;;31211:18;;:::i;:::-;31196:35;31253:1;31250;31246:9;31241:14;;31076:185;;;;:::o;31267:220::-;31407:34;31403:1;31395:6;31391:14;31384:58;31476:3;31471:2;31463:6;31459:15;31452:28;31267:220;:::o;31493:366::-;31635:3;31656:67;31720:2;31715:3;31656:67;:::i;:::-;31649:74;;31732:93;31821:3;31732:93;:::i;:::-;31850:2;31845:3;31841:12;31834:19;;31493:366;;;:::o;31865:419::-;32031:4;32069:2;32058:9;32054:18;32046:26;;32118:9;32112:4;32108:20;32104:1;32093:9;32089:17;32082:47;32146:131;32272:4;32146:131;:::i;:::-;32138:139;;31865:419;;;:::o;32290:177::-;32430:29;32426:1;32418:6;32414:14;32407:53;32290:177;:::o;32473:366::-;32615:3;32636:67;32700:2;32695:3;32636:67;:::i;:::-;32629:74;;32712:93;32801:3;32712:93;:::i;:::-;32830:2;32825:3;32821:12;32814:19;;32473:366;;;:::o;32845:419::-;33011:4;33049:2;33038:9;33034:18;33026:26;;33098:9;33092:4;33088:20;33084:1;33073:9;33069:17;33062:47;33126:131;33252:4;33126:131;:::i;:::-;33118:139;;32845:419;;;:::o

Swarm Source

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