ETH Price: $3,009.41 (+4.46%)
Gas: 2 Gwei

Token

Spongebob Squarepants (SPONGE)
 

Overview

Max Total Supply

69,420,000,000 SPONGE

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
asmallpenguin.eth
Balance
246,587,089.512545686 SPONGE

Value
$0.00
0x42141fc6ea7cb9b8ec5450a4cbcb9bc40b5022e6
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SpongebobSquarepants

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-29
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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;
    address private _previousOwner;
    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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    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 SpongebobSquarepants is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private constant _tTotal = 69420 * 10**6 * 10**9;
    uint256 private fee1=20;
    uint256 private fee2=20;
    string private constant _name = unicode"Spongebob Squarepants";
    string private constant _symbol = unicode"SPONGE";
    uint256 private _maxTxAmount = _tTotal.div(50);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);
    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_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 _tOwned[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 changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function changeFees(uint256 _buy, uint256 _sell) external {
        require(_msgSender() == _deployer);
        require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%");
        fee1 = _buy;
        fee2 = _sell;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }


    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = 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");

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance bub");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(from,to,amount);
    }

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

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (10 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address[] memory notbot) public {
        require(_msgSender() == _deployer);
        for(uint i=0;i<notbot.length;i++){bots[notbot[i]] = false;}
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":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":[{"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":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260146009556014600a556200003260326803c3656232739e00006200066060201b6200126f1790919060201c565b600b556200005960326803c3656232739e00006200066060201b6200126f1790919060201c565b600c55620000816103e86803c3656232739e00006200066060201b6200126f1790919060201c565b600d556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000620000cc620006b260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506803c3656232739e0000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200020e620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200046e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004949190620007b5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200051e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005449190620007b5565b6040518363ffffffff1660e01b815260040162000563929190620007f8565b6020604051808303816000875af115801562000583573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a99190620007b5565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6803c3656232739e000060405162000652919062000840565b60405180910390a362000982565b6000620006aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006e360201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200072d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007249190620008f7565b60405180910390fd5b50600083856200073e91906200094a565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200077d8262000750565b9050919050565b6200078f8162000770565b81146200079b57600080fd5b50565b600081519050620007af8162000784565b92915050565b600060208284031215620007ce57620007cd6200074b565b5b6000620007de848285016200079e565b91505092915050565b620007f28162000770565b82525050565b60006040820190506200080f6000830185620007e7565b6200081e6020830184620007e7565b9392505050565b6000819050919050565b6200083a8162000825565b82525050565b60006020820190506200085760008301846200082f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620008995780820151818401526020810190506200087c565b60008484015250505050565b6000601f19601f8301169050919050565b6000620008c3826200085d565b620008cf818562000868565b9350620008e181856020860162000879565b620008ec81620008a5565b840191505092915050565b60006020820190508181036000830152620009138184620008b6565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009578262000825565b9150620009648362000825565b9250826200097757620009766200091b565b5b828204905092915050565b6133f180620009926000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063c3c8cd801161006f578063c3c8cd80146103f9578063c9567bf914610410578063c97c182114610427578063dd62ed3e14610450578063e57f14e11461048d578063f2fde38b146104b657610140565b8063751039fc146103265780638da5cb5b1461033d57806395d89b4114610368578063a9059cbb14610393578063b515566a146103d057610140565b806323b872dd116100fd57806323b872dd1461022a578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806321ecff5b1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b6040516101679190612466565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612530565b61051c565b6040516101a4919061258b565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906125a6565b61053a565b005b3480156101e257600080fd5b506101eb6106be565b6040516101f891906125e2565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906125fd565b6106cf565b005b34801561023657600080fd5b50610251600480360381019061024c919061263d565b610793565b60405161025e919061258b565b60405180910390f35b34801561027357600080fd5b5061027c61086c565b60405161028991906126ac565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906126c7565b610875565b005b3480156102c757600080fd5b506102d06108e0565b005b3480156102de57600080fd5b506102f960048036038101906102f491906125a6565b610952565b60405161030691906125e2565b60405180910390f35b34801561031b57600080fd5b5061032461099b565b005b34801561033257600080fd5b5061033b610aee565b005b34801561034957600080fd5b50610352610b71565b60405161035f9190612703565b60405180910390f35b34801561037457600080fd5b5061037d610b9a565b60405161038a9190612466565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b59190612530565b610bd7565b6040516103c7919061258b565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190612866565b610bf5565b005b34801561040557600080fd5b5061040e610d1f565b005b34801561041c57600080fd5b50610425610d99565b005b34801561043357600080fd5b5061044e60048036038101906104499190612866565b610ee4565b005b34801561045c57600080fd5b50610477600480360381019061047291906128af565b610fda565b60405161048491906125e2565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906125a6565b611061565b005b3480156104c257600080fd5b506104dd60048036038101906104d891906125a6565b61111d565b005b60606040518060400160405280601581526020017f53706f6e6765626f622053717561726570616e74730000000000000000000000815250905090565b60006105306105296112b9565b84846112c1565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057b6112b9565b73ffffffffffffffffffffffffffffffffffffffff161461059b57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106189190612703565b602060405180830381865afa158015610635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106599190612904565b6040518363ffffffff1660e01b8152600401610676929190612990565b6020604051808303816000875af1158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b991906129e5565b505050565b60006803c3656232739e0000905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107106112b9565b73ffffffffffffffffffffffffffffffffffffffff161461073057600080fd5b60648211158015610742575060648111155b610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077890612a5e565b60405180910390fd5b8160098190555080600a819055505050565b60006107a084848461148a565b610861846107ac6112b9565b61085c8560405180606001604052806028815260200161339460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108126112b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b649092919063ffffffff16565b6112c1565b600190509392505050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b66112b9565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109216112b9565b73ffffffffffffffffffffffffffffffffffffffff161461094157600080fd5b600047905061094f81611bc8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a36112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2790612aca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f6112b9565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6803c3656232739e0000600b819055506803c3656232739e0000600c81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53504f4e47450000000000000000000000000000000000000000000000000000815250905090565b6000610beb610be46112b9565b848461148a565b6001905092915050565b610bfd6112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8190612aca565b60405180910390fd5b60005b8151811015610d1b57600160056000848481518110610caf57610cae612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d1390612b48565b915050610c8d565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d606112b9565b73ffffffffffffffffffffffffffffffffffffffff1614610d8057600080fd5b6000610d8b30610952565b9050610d9681611c34565b50565b610da16112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2590612aca565b60405180910390fd5b601160149054906101000a900460ff1615610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7590612bdc565b60405180910390fd5b610e98610e8a30610952565b47610e93610b71565b611ead565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061025842610edc9190612bfc565b600781905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f256112b9565b73ffffffffffffffffffffffffffffffffffffffff1614610f4557600080fd5b60005b8151811015610fd657600060056000848481518110610f6a57610f69612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fce90612b48565b915050610f48565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110a26112b9565b73ffffffffffffffffffffffffffffffffffffffff16146110c257600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111256112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990612aca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006112b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fc2565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790612ca2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361139f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139690612d34565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147d91906125e2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612dc6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612e58565b60405180910390fd5b600081116115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612eea565b60405180910390fd5b6009546008819055506115bc610b71565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561162a57506115fa610b71565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116d35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116dc57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117875750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117dd5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ea575060075442105b1561192957600c5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183d9190612bfc565b111561187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612f56565b60405180910390fd5b600b5481111561188d57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d857600080fd5b601e426118e59190612bfc565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160159054906101000a900460ff161580156119945750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119ac5750601160169054906101000a900460ff165b8015611a025750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a43576000611a1230610952565b9050600d54811115611a4157611a2781611c34565b60004790506000811115611a3f57611a3e47611bc8565b5b505b505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611aef5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b455750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b5457600a546008819055505b611b5f838383612025565b505050565b6000838311158290611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba39190612466565b60405180910390fd5b5060008385611bbb9190612f76565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c30573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6c57611c6b612723565b5b604051908082528060200260200182016040528015611c9a5781602001602082028036833780820191505090505b5090503081600081518110611cb257611cb1612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7d9190612fbf565b81600181518110611d9157611d90612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df830601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112c1565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5c9594939291906130e5565b600060405180830381600087803b158015611e7657600080fd5b505af1158015611e8a573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611ef530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856112c1565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f5c9695949392919061313f565b60606040518083038185885af1158015611f7a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f9f91906131a0565b5050506000601160156101000a81548160ff021916908315150217905550505050565b60008083118290612009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120009190612466565b60405180910390fd5b50600083856120189190613222565b9050809150509392505050565b60008061203183612260565b9150915061208783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061211c82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fe90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121b181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fe90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161225191906125e2565b60405180910390a35050505050565b600080600061228e6103e86122806008548761235c90919063ffffffff16565b61126f90919063ffffffff16565b905060006122a582866122b490919063ffffffff16565b90508082935093505050915091565b60006122f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b64565b905092915050565b600080828461230d9190612bfc565b905083811015612352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123499061329f565b60405180910390fd5b8091505092915050565b600080830361236e57600090506123d0565b6000828461237c91906132bf565b905082848261238b9190613222565b146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290613373565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124105780820151818401526020810190506123f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612438826123d6565b61244281856123e1565b93506124528185602086016123f2565b61245b8161241c565b840191505092915050565b60006020820190508181036000830152612480818461242d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124c78261249c565b9050919050565b6124d7816124bc565b81146124e257600080fd5b50565b6000813590506124f4816124ce565b92915050565b6000819050919050565b61250d816124fa565b811461251857600080fd5b50565b60008135905061252a81612504565b92915050565b6000806040838503121561254757612546612492565b5b6000612555858286016124e5565b92505060206125668582860161251b565b9150509250929050565b60008115159050919050565b61258581612570565b82525050565b60006020820190506125a0600083018461257c565b92915050565b6000602082840312156125bc576125bb612492565b5b60006125ca848285016124e5565b91505092915050565b6125dc816124fa565b82525050565b60006020820190506125f760008301846125d3565b92915050565b6000806040838503121561261457612613612492565b5b60006126228582860161251b565b92505060206126338582860161251b565b9150509250929050565b60008060006060848603121561265657612655612492565b5b6000612664868287016124e5565b9350506020612675868287016124e5565b92505060406126868682870161251b565b9150509250925092565b600060ff82169050919050565b6126a681612690565b82525050565b60006020820190506126c1600083018461269d565b92915050565b6000602082840312156126dd576126dc612492565b5b60006126eb8482850161251b565b91505092915050565b6126fd816124bc565b82525050565b600060208201905061271860008301846126f4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61275b8261241c565b810181811067ffffffffffffffff8211171561277a57612779612723565b5b80604052505050565b600061278d612488565b90506127998282612752565b919050565b600067ffffffffffffffff8211156127b9576127b8612723565b5b602082029050602081019050919050565b600080fd5b60006127e26127dd8461279e565b612783565b90508083825260208201905060208402830185811115612805576128046127ca565b5b835b8181101561282e578061281a88826124e5565b845260208401935050602081019050612807565b5050509392505050565b600082601f83011261284d5761284c61271e565b5b813561285d8482602086016127cf565b91505092915050565b60006020828403121561287c5761287b612492565b5b600082013567ffffffffffffffff81111561289a57612899612497565b5b6128a684828501612838565b91505092915050565b600080604083850312156128c6576128c5612492565b5b60006128d4858286016124e5565b92505060206128e5858286016124e5565b9150509250929050565b6000815190506128fe81612504565b92915050565b60006020828403121561291a57612919612492565b5b6000612928848285016128ef565b91505092915050565b6000819050919050565b600061295661295161294c8461249c565b612931565b61249c565b9050919050565b60006129688261293b565b9050919050565b600061297a8261295d565b9050919050565b61298a8161296f565b82525050565b60006040820190506129a56000830185612981565b6129b260208301846125d3565b9392505050565b6129c281612570565b81146129cd57600080fd5b50565b6000815190506129df816129b9565b92915050565b6000602082840312156129fb576129fa612492565b5b6000612a09848285016129d0565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612a486019836123e1565b9150612a5382612a12565b602082019050919050565b60006020820190508181036000830152612a7781612a3b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ab46020836123e1565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b53826124fa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b8557612b84612b19565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612bc66017836123e1565b9150612bd182612b90565b602082019050919050565b60006020820190508181036000830152612bf581612bb9565b9050919050565b6000612c07826124fa565b9150612c12836124fa565b9250828201905080821115612c2a57612c29612b19565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c8c6024836123e1565b9150612c9782612c30565b604082019050919050565b60006020820190508181036000830152612cbb81612c7f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1e6022836123e1565b9150612d2982612cc2565b604082019050919050565b60006020820190508181036000830152612d4d81612d11565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612db06025836123e1565b9150612dbb82612d54565b604082019050919050565b60006020820190508181036000830152612ddf81612da3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e426023836123e1565b9150612e4d82612de6565b604082019050919050565b60006020820190508181036000830152612e7181612e35565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ed46029836123e1565b9150612edf82612e78565b604082019050919050565b60006020820190508181036000830152612f0381612ec7565b9050919050565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b6000612f406010836123e1565b9150612f4b82612f0a565b602082019050919050565b60006020820190508181036000830152612f6f81612f33565b9050919050565b6000612f81826124fa565b9150612f8c836124fa565b9250828203905081811115612fa457612fa3612b19565b5b92915050565b600081519050612fb9816124ce565b92915050565b600060208284031215612fd557612fd4612492565b5b6000612fe384828501612faa565b91505092915050565b6000819050919050565b600061301161300c61300784612fec565b612931565b6124fa565b9050919050565b61302181612ff6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61305c816124bc565b82525050565b600061306e8383613053565b60208301905092915050565b6000602082019050919050565b600061309282613027565b61309c8185613032565b93506130a783613043565b8060005b838110156130d85781516130bf8882613062565b97506130ca8361307a565b9250506001810190506130ab565b5085935050505092915050565b600060a0820190506130fa60008301886125d3565b6131076020830187613018565b81810360408301526131198186613087565b905061312860608301856126f4565b61313560808301846125d3565b9695505050505050565b600060c08201905061315460008301896126f4565b61316160208301886125d3565b61316e6040830187613018565b61317b6060830186613018565b61318860808301856126f4565b61319560a08301846125d3565b979650505050505050565b6000806000606084860312156131b9576131b8612492565b5b60006131c7868287016128ef565b93505060206131d8868287016128ef565b92505060406131e9868287016128ef565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061322d826124fa565b9150613238836124fa565b925082613248576132476131f3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613289601b836123e1565b915061329482613253565b602082019050919050565b600060208201905081810360008301526132b88161327c565b9050919050565b60006132ca826124fa565b91506132d5836124fa565b92508282026132e3816124fa565b915082820484148315176132fa576132f9612b19565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061335d6021836123e1565b915061336882613301565b604082019050919050565b6000602082019050818103600083015261338c81613350565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208174aadeb55d5248dca88a8d2859b25268c9569559709875f321b7ce0a4127b564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063c3c8cd801161006f578063c3c8cd80146103f9578063c9567bf914610410578063c97c182114610427578063dd62ed3e14610450578063e57f14e11461048d578063f2fde38b146104b657610140565b8063751039fc146103265780638da5cb5b1461033d57806395d89b4114610368578063a9059cbb14610393578063b515566a146103d057610140565b806323b872dd116100fd57806323b872dd1461022a578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806321ecff5b1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b6040516101679190612466565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612530565b61051c565b6040516101a4919061258b565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906125a6565b61053a565b005b3480156101e257600080fd5b506101eb6106be565b6040516101f891906125e2565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906125fd565b6106cf565b005b34801561023657600080fd5b50610251600480360381019061024c919061263d565b610793565b60405161025e919061258b565b60405180910390f35b34801561027357600080fd5b5061027c61086c565b60405161028991906126ac565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906126c7565b610875565b005b3480156102c757600080fd5b506102d06108e0565b005b3480156102de57600080fd5b506102f960048036038101906102f491906125a6565b610952565b60405161030691906125e2565b60405180910390f35b34801561031b57600080fd5b5061032461099b565b005b34801561033257600080fd5b5061033b610aee565b005b34801561034957600080fd5b50610352610b71565b60405161035f9190612703565b60405180910390f35b34801561037457600080fd5b5061037d610b9a565b60405161038a9190612466565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b59190612530565b610bd7565b6040516103c7919061258b565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190612866565b610bf5565b005b34801561040557600080fd5b5061040e610d1f565b005b34801561041c57600080fd5b50610425610d99565b005b34801561043357600080fd5b5061044e60048036038101906104499190612866565b610ee4565b005b34801561045c57600080fd5b50610477600480360381019061047291906128af565b610fda565b60405161048491906125e2565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906125a6565b611061565b005b3480156104c257600080fd5b506104dd60048036038101906104d891906125a6565b61111d565b005b60606040518060400160405280601581526020017f53706f6e6765626f622053717561726570616e74730000000000000000000000815250905090565b60006105306105296112b9565b84846112c1565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057b6112b9565b73ffffffffffffffffffffffffffffffffffffffff161461059b57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106189190612703565b602060405180830381865afa158015610635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106599190612904565b6040518363ffffffff1660e01b8152600401610676929190612990565b6020604051808303816000875af1158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b991906129e5565b505050565b60006803c3656232739e0000905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107106112b9565b73ffffffffffffffffffffffffffffffffffffffff161461073057600080fd5b60648211158015610742575060648111155b610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077890612a5e565b60405180910390fd5b8160098190555080600a819055505050565b60006107a084848461148a565b610861846107ac6112b9565b61085c8560405180606001604052806028815260200161339460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108126112b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b649092919063ffffffff16565b6112c1565b600190509392505050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b66112b9565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109216112b9565b73ffffffffffffffffffffffffffffffffffffffff161461094157600080fd5b600047905061094f81611bc8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a36112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2790612aca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f6112b9565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6803c3656232739e0000600b819055506803c3656232739e0000600c81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53504f4e47450000000000000000000000000000000000000000000000000000815250905090565b6000610beb610be46112b9565b848461148a565b6001905092915050565b610bfd6112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8190612aca565b60405180910390fd5b60005b8151811015610d1b57600160056000848481518110610caf57610cae612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d1390612b48565b915050610c8d565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d606112b9565b73ffffffffffffffffffffffffffffffffffffffff1614610d8057600080fd5b6000610d8b30610952565b9050610d9681611c34565b50565b610da16112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2590612aca565b60405180910390fd5b601160149054906101000a900460ff1615610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7590612bdc565b60405180910390fd5b610e98610e8a30610952565b47610e93610b71565b611ead565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061025842610edc9190612bfc565b600781905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f256112b9565b73ffffffffffffffffffffffffffffffffffffffff1614610f4557600080fd5b60005b8151811015610fd657600060056000848481518110610f6a57610f69612aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fce90612b48565b915050610f48565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110a26112b9565b73ffffffffffffffffffffffffffffffffffffffff16146110c257600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111256112b9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990612aca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006112b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fc2565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790612ca2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361139f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139690612d34565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147d91906125e2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612dc6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612e58565b60405180910390fd5b600081116115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612eea565b60405180910390fd5b6009546008819055506115bc610b71565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561162a57506115fa610b71565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116d35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116dc57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117875750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117dd5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ea575060075442105b1561192957600c5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183d9190612bfc565b111561187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612f56565b60405180910390fd5b600b5481111561188d57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d857600080fd5b601e426118e59190612bfc565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160159054906101000a900460ff161580156119945750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119ac5750601160169054906101000a900460ff165b8015611a025750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a43576000611a1230610952565b9050600d54811115611a4157611a2781611c34565b60004790506000811115611a3f57611a3e47611bc8565b5b505b505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611aef5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b455750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b5457600a546008819055505b611b5f838383612025565b505050565b6000838311158290611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba39190612466565b60405180910390fd5b5060008385611bbb9190612f76565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c30573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6c57611c6b612723565b5b604051908082528060200260200182016040528015611c9a5781602001602082028036833780820191505090505b5090503081600081518110611cb257611cb1612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7d9190612fbf565b81600181518110611d9157611d90612aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df830601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112c1565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5c9594939291906130e5565b600060405180830381600087803b158015611e7657600080fd5b505af1158015611e8a573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611ef530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856112c1565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f5c9695949392919061313f565b60606040518083038185885af1158015611f7a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f9f91906131a0565b5050506000601160156101000a81548160ff021916908315150217905550505050565b60008083118290612009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120009190612466565b60405180910390fd5b50600083856120189190613222565b9050809150509392505050565b60008061203183612260565b9150915061208783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061211c82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fe90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121b181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fe90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161225191906125e2565b60405180910390a35050505050565b600080600061228e6103e86122806008548761235c90919063ffffffff16565b61126f90919063ffffffff16565b905060006122a582866122b490919063ffffffff16565b90508082935093505050915091565b60006122f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b64565b905092915050565b600080828461230d9190612bfc565b905083811015612352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123499061329f565b60405180910390fd5b8091505092915050565b600080830361236e57600090506123d0565b6000828461237c91906132bf565b905082848261238b9190613222565b146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290613373565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124105780820151818401526020810190506123f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612438826123d6565b61244281856123e1565b93506124528185602086016123f2565b61245b8161241c565b840191505092915050565b60006020820190508181036000830152612480818461242d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124c78261249c565b9050919050565b6124d7816124bc565b81146124e257600080fd5b50565b6000813590506124f4816124ce565b92915050565b6000819050919050565b61250d816124fa565b811461251857600080fd5b50565b60008135905061252a81612504565b92915050565b6000806040838503121561254757612546612492565b5b6000612555858286016124e5565b92505060206125668582860161251b565b9150509250929050565b60008115159050919050565b61258581612570565b82525050565b60006020820190506125a0600083018461257c565b92915050565b6000602082840312156125bc576125bb612492565b5b60006125ca848285016124e5565b91505092915050565b6125dc816124fa565b82525050565b60006020820190506125f760008301846125d3565b92915050565b6000806040838503121561261457612613612492565b5b60006126228582860161251b565b92505060206126338582860161251b565b9150509250929050565b60008060006060848603121561265657612655612492565b5b6000612664868287016124e5565b9350506020612675868287016124e5565b92505060406126868682870161251b565b9150509250925092565b600060ff82169050919050565b6126a681612690565b82525050565b60006020820190506126c1600083018461269d565b92915050565b6000602082840312156126dd576126dc612492565b5b60006126eb8482850161251b565b91505092915050565b6126fd816124bc565b82525050565b600060208201905061271860008301846126f4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61275b8261241c565b810181811067ffffffffffffffff8211171561277a57612779612723565b5b80604052505050565b600061278d612488565b90506127998282612752565b919050565b600067ffffffffffffffff8211156127b9576127b8612723565b5b602082029050602081019050919050565b600080fd5b60006127e26127dd8461279e565b612783565b90508083825260208201905060208402830185811115612805576128046127ca565b5b835b8181101561282e578061281a88826124e5565b845260208401935050602081019050612807565b5050509392505050565b600082601f83011261284d5761284c61271e565b5b813561285d8482602086016127cf565b91505092915050565b60006020828403121561287c5761287b612492565b5b600082013567ffffffffffffffff81111561289a57612899612497565b5b6128a684828501612838565b91505092915050565b600080604083850312156128c6576128c5612492565b5b60006128d4858286016124e5565b92505060206128e5858286016124e5565b9150509250929050565b6000815190506128fe81612504565b92915050565b60006020828403121561291a57612919612492565b5b6000612928848285016128ef565b91505092915050565b6000819050919050565b600061295661295161294c8461249c565b612931565b61249c565b9050919050565b60006129688261293b565b9050919050565b600061297a8261295d565b9050919050565b61298a8161296f565b82525050565b60006040820190506129a56000830185612981565b6129b260208301846125d3565b9392505050565b6129c281612570565b81146129cd57600080fd5b50565b6000815190506129df816129b9565b92915050565b6000602082840312156129fb576129fa612492565b5b6000612a09848285016129d0565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612a486019836123e1565b9150612a5382612a12565b602082019050919050565b60006020820190508181036000830152612a7781612a3b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ab46020836123e1565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b53826124fa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b8557612b84612b19565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612bc66017836123e1565b9150612bd182612b90565b602082019050919050565b60006020820190508181036000830152612bf581612bb9565b9050919050565b6000612c07826124fa565b9150612c12836124fa565b9250828201905080821115612c2a57612c29612b19565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c8c6024836123e1565b9150612c9782612c30565b604082019050919050565b60006020820190508181036000830152612cbb81612c7f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1e6022836123e1565b9150612d2982612cc2565b604082019050919050565b60006020820190508181036000830152612d4d81612d11565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612db06025836123e1565b9150612dbb82612d54565b604082019050919050565b60006020820190508181036000830152612ddf81612da3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e426023836123e1565b9150612e4d82612de6565b604082019050919050565b60006020820190508181036000830152612e7181612e35565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ed46029836123e1565b9150612edf82612e78565b604082019050919050565b60006020820190508181036000830152612f0381612ec7565b9050919050565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b6000612f406010836123e1565b9150612f4b82612f0a565b602082019050919050565b60006020820190508181036000830152612f6f81612f33565b9050919050565b6000612f81826124fa565b9150612f8c836124fa565b9250828203905081811115612fa457612fa3612b19565b5b92915050565b600081519050612fb9816124ce565b92915050565b600060208284031215612fd557612fd4612492565b5b6000612fe384828501612faa565b91505092915050565b6000819050919050565b600061301161300c61300784612fec565b612931565b6124fa565b9050919050565b61302181612ff6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61305c816124bc565b82525050565b600061306e8383613053565b60208301905092915050565b6000602082019050919050565b600061309282613027565b61309c8185613032565b93506130a783613043565b8060005b838110156130d85781516130bf8882613062565b97506130ca8361307a565b9250506001810190506130ab565b5085935050505092915050565b600060a0820190506130fa60008301886125d3565b6131076020830187613018565b81810360408301526131198186613087565b905061312860608301856126f4565b61313560808301846125d3565b9695505050505050565b600060c08201905061315460008301896126f4565b61316160208301886125d3565b61316e6040830187613018565b61317b6060830186613018565b61318860808301856126f4565b61319560a08301846125d3565b979650505050505050565b6000806000606084860312156131b9576131b8612492565b5b60006131c7868287016128ef565b93505060206131d8868287016128ef565b92505060406131e9868287016128ef565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061322d826124fa565b9150613238836124fa565b925082613248576132476131f3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613289601b836123e1565b915061329482613253565b602082019050919050565b600060208201905081810360008301526132b88161327c565b9050919050565b60006132ca826124fa565b91506132d5836124fa565b92508282026132e3816124fa565b915082820484148315176132fa576132f9612b19565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061335d6021836123e1565b915061336882613301565b604082019050919050565b6000602082019050818103600083015261338c81613350565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208174aadeb55d5248dca88a8d2859b25268c9569559709875f321b7ce0a4127b564736f6c63430008120033

Deployed Bytecode Sourcemap

3700:8775:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12228:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5827:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7020:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6550:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5736:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6876:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11787:188;;;;;;;;;;;;;:::i;:::-;;5930:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:148;;;;;;;;;;;;;:::i;:::-;;7259:156;;;;;;;;;;;;;:::i;:::-;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5641:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6055:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10762:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11586:189;;;;;;;;;;;;;:::i;:::-;;10455:295;;;;;;;;;;;;;:::i;:::-;;10938:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6230:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7425:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2598:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5550:83;5587:13;5620:5;;;;;;;;;;;;;;;;;5613:12;;5550:83;:::o;6381:161::-;6456:4;6473:39;6482:12;:10;:12::i;:::-;6496:7;6505:6;6473:8;:39::i;:::-;6530:4;6523:11;;6381:161;;;;:::o;12228:244::-;12317:9;;;;;;;;;;;12301:25;;:12;:10;:12::i;:::-;:25;;;12293:34;;;;;;12338:20;12368:12;12338:43;;12392:13;:22;;;12415:9;;;;;;;;;;;12425:13;:23;;;12457:4;12425:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12392:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12282:190;12228:244;:::o;5827:95::-;5880:7;4169:21;5900:14;;5827:95;:::o;7020:231::-;7113:9;;;;;;;;;;;7097:25;;:12;:10;:12::i;:::-;:25;;;7089:34;;;;;;7150:3;7142:4;:11;;:27;;;;;7166:3;7157:5;:12;;7142:27;7134:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7216:4;7209;:11;;;;7238:5;7231:4;:12;;;;7020:231;;:::o;6550:313::-;6648:4;6665:36;6675:6;6683:9;6694:6;6665:9;:36::i;:::-;6712:121;6721:6;6729:12;:10;:12::i;:::-;6743:89;6781:6;6743:89;;;;;;;;;;;;;;;;;:11;:19;6755:6;6743:19;;;;;;;;;;;;;;;:33;6763:12;:10;:12::i;:::-;6743:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6712:8;:121::i;:::-;6851:4;6844:11;;6550:313;;;;;:::o;5736:83::-;5777:5;4580:1;5795:16;;5736:83;:::o;6876:136::-;6962:9;;;;;;;;;;;6946:25;;:12;:10;:12::i;:::-;:25;;;6938:34;;;;;;6996:6;6983:10;:19;;;;6876:136;:::o;11787:188::-;11853:9;;;;;;;;;;;11837:25;;:12;:10;:12::i;:::-;:25;;;11829:34;;;;;;11874:26;11903:21;11874:50;;11935:32;11948:18;11935:12;:32::i;:::-;11818:157;11787:188::o;5930:117::-;5996:7;6023;:16;6031:7;6023:16;;;;;;;;;;;;;;;;6016:23;;5930:117;;;:::o;2779:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2886:1:::1;2849:40;;2870:6;::::0;::::1;;;;;;;;2849:40;;;;;;;;;;;;2917:1;2900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2779:148::o:0;7259:156::-;7327:9;;;;;;;;;;;7311:25;;:12;:10;:12::i;:::-;:25;;;7303:34;;;;;;4169:21;7348:12;:22;;;;4169:21;7381:16;:26;;;;7259:156::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;5641:87::-;5680:13;5713:7;;;;;;;;;;;;;;;;;5706:14;;5641:87;:::o;6055:167::-;6133:4;6150:42;6160:12;:10;:12::i;:::-;6174:9;6185:6;6150:9;:42::i;:::-;6210:4;6203:11;;6055:167;;;;:::o;10762:164::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10836:6:::1;10831:88;10852:5;:12;10848:1;:16;10831:88;;;10903:4;10886;:14;10891:5;10897:1;10891:8;;;;;;;;:::i;:::-;;;;;;;;10886:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10866:3;;;;;:::i;:::-;;;;10831:88;;;;10762:164:::0;:::o;11586:189::-;11652:9;;;;;;;;;;;11636:25;;:12;:10;:12::i;:::-;:25;;;11628:34;;;;;;11673:23;11699:24;11717:4;11699:9;:24::i;:::-;11673:50;;11734:33;11751:15;11734:16;:33::i;:::-;11617:158;11586:189::o;10455:295::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10519:11:::1;;;;;;;;;;;10518:12;10510:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10568:68;10581:24;10599:4;10581:9;:24::i;:::-;10606:21;10628:7;:5;:7::i;:::-;10568:12;:68::i;:::-;10661:4;10647:11;;:18;;;;;;;;;;;;;;;;;;10690:4;10676:11;;:18;;;;;;;;;;;;;;;;;;10731:10;10712:15;:30;;;;:::i;:::-;10705:4;:37;;;;10455:295::o:0;10938:170::-;11021:9;;;;;;;;;;;11005:25;;:12;:10;:12::i;:::-;:25;;;10997:34;;;;;;11046:6;11042:59;11057:6;:13;11055:1;:15;11042:59;;;11094:5;11076:4;:15;11081:6;11088:1;11081:9;;;;;;;;:::i;:::-;;;;;;;;11076:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11071:3;;;;;:::i;:::-;;;;11042:59;;;;10938:170;:::o;6230:143::-;6311:7;6338:11;:18;6350:5;6338:18;;;;;;;;;;;;;;;:27;6357:7;6338:27;;;;;;;;;;;;;;;;6331:34;;6230:143;;;;:::o;7425:147::-;7510:9;;;;;;;;;;;7494:25;;:12;:10;:12::i;:::-;:25;;;7486:34;;;;;;7560:4;7531:18;:26;7550:6;7531:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7425:147;:::o;2598:173::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2714:9:::1;2685:39;;2706:6;::::0;::::1;;;;;;;;2685:39;;;;;;;;;;;;2744:9;2735:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2598:173:::0;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;;1691:132;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;7585:335::-;7695:1;7678:19;;:5;:19;;;7670:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7776:1;7757:21;;:7;:21;;;7749:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7858:6;7828:11;:18;7840:5;7828:18;;;;;;;;;;;;;;;:27;7847:7;7828:27;;;;;;;;;;;;;;;:36;;;;7896:7;7880:32;;7889:5;7880:32;;;7905:6;7880:32;;;;;;:::i;:::-;;;;;;;;7585:335;;;:::o;7928:1617::-;8032:1;8016:18;;:4;:18;;;8008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8109:1;8095:16;;:2;:16;;;8087:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8179:1;8170:6;:10;8162:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8246:4;;8239;:11;;;;8273:7;:5;:7::i;:::-;8265:15;;:4;:15;;;;:32;;;;;8290:7;:5;:7::i;:::-;8284:13;;:2;:13;;;;8265:32;8261:1092;;;8323:4;:10;8328:4;8323:10;;;;;;;;;;;;;;;;;;;;;;;;;8322:11;:24;;;;;8338:4;:8;8343:2;8338:8;;;;;;;;;;;;;;;;;;;;;;;;;8337:9;8322:24;8314:33;;;;;;8374:13;;;;;;;;;;;8366:21;;:4;:21;;;:55;;;;;8405:15;;;;;;;;;;;8391:30;;:2;:30;;;;8366:55;:83;;;;;8427:18;:22;8446:2;8427:22;;;;;;;;;;;;;;;;;;;;;;;;;8425:24;8366:83;:111;;;;;8472:4;;8454:15;:22;8366:111;8362:422;;;8560:16;;8549:6;8535:7;:11;8543:2;8535:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;8534:42;;8526:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8633:12;;8623:6;:22;;8615:31;;;;;;8688:15;8673:8;:12;8682:2;8673:12;;;;;;;;;;;;;;;;:30;8665:39;;;;;;8757:10;8738:15;:30;;;;:::i;:::-;8723:8;:12;8732:2;8723:12;;;;;;;;;;;;;;;:45;;;;8362:422;8831:6;;;;;;;;;;;8830:7;:32;;;;;8849:13;;;;;;;;;;;8841:21;;:4;:21;;;;8830:32;:47;;;;;8866:11;;;;;;;;;;;8830:47;:76;;;;;8882:18;:24;8901:4;8882:24;;;;;;;;;;;;;;;;;;;;;;;;;8881:25;8830:76;8826:516;;;8927:28;8958:24;8976:4;8958:9;:24::i;:::-;8927:55;;9027:10;;9004:20;:33;9001:326;;;9061:38;9078:20;9061:16;:38::i;:::-;9122:26;9151:21;9122:50;;9219:1;9198:18;:22;9195:113;;;9249:35;9262:21;9249:12;:35::i;:::-;9195:113;9038:289;9001:326;8908:434;8826:516;8261:1092;9373:13;;;;;;;;;;;9367:19;;:2;:19;;;:55;;;;;9406:15;;;;;;;;;;;9390:32;;:4;:32;;;;9367:55;:85;;;;;9428:18;:24;9447:4;9428:24;;;;;;;;;;;;;;;;;;;;;;;;;9426:26;9367:85;9363:129;;;9476:4;;9469;:11;;;;9363:129;9504:33;9522:4;9527:2;9530:6;9504:17;:33::i;:::-;7928:1617;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;10352:91::-;10409:9;;;;;;;;;;;:18;;:26;10428:6;10409:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10352:91;:::o;9553:483::-;4905:4;4896:6;;:13;;;;;;;;;;;;;;;;;;9631:21:::1;9669:1;9655:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9631:40;;9700:4;9682;9687:1;9682:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9726:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9716:4;9721:1;9716:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9759:62;9776:4;9791:15;;;;;;;;;;;9809:11;9759:8;:62::i;:::-;9832:15;;;;;;;;;;;:66;;;9913:11;9939:1;9955:4;9982;10002:15;9832:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9620:416;4941:5:::0;4932:6;;:14;;;;;;;;;;;;;;;;;;9553:483;:::o;10050:288::-;4905:4;4896:6;;:13;;;;;;;;;;;;;;;;;;10156:60:::1;10173:4;10187:15;;;;;;;;;;;10204:11;10156:8;:60::i;:::-;10227:15;;;;;;;;;;;:31;;;10266:9;10285:4;10291:11;10303:1;10305::::0;10307:6:::1;10314:15;10227:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4941:5:::0;4932:6;;:14;;;;;;;;;;;;;;;;;;10050:288;;;:::o;1831:189::-;1917:7;1949:1;1945;:5;1952:12;1937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1831:189;;;;;:::o;11116:421::-;11215:22;11238:12;11254:20;11266:7;11254:11;:20::i;:::-;11214:60;;;;11303:28;11323:7;11303;:15;11311:6;11303:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11285:7;:15;11293:6;11285:15;;;;;;;;;;;;;;;:46;;;;11363:38;11386:14;11363:7;:18;11371:9;11363:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;11342:7;:18;11350:9;11342:18;;;;;;;;;;;;;;;:59;;;;11438:32;11465:4;11438:7;:22;11454:4;11438:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;11413:7;:22;11429:4;11413:22;;;;;;;;;;;;;;;:57;;;;11503:9;11486:43;;11495:6;11486:43;;;11514:14;11486:43;;;;;;:::i;:::-;;;;;;;;11203:334;;11116:421;;;:::o;11986:234::-;12046:7;12055;12075:12;12090:27;12112:4;12090:17;12102:4;;12090:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12075:42;;12128:23;12154:17;12166:4;12154:7;:11;;:17;;;;:::i;:::-;12128:43;;12190:15;12207:4;12182:30;;;;;;11986:234;;;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1173:50;;1095:136;;;;:::o;908:179::-;966:7;986:9;1002:1;998;:5;;;;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:1;1071:8;;;908:179;;;;:::o;1437:246::-;1495:7;1524:1;1519;:6;1515:47;;1549:1;1542:8;;;;1515:47;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1617:1;1612;1608;:5;;;;:::i;:::-;:10;1600:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1;1667:8;;;1437:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:474::-;4201:6;4209;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4511:2;4537:53;4582:7;4573:6;4562:9;4558:22;4537:53;:::i;:::-;4527:63;;4482:118;4133:474;;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:329::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:117::-;6464:1;6461;6454:12;6478:180;6526:77;6523:1;6516:88;6623:4;6620:1;6613:15;6647:4;6644:1;6637:15;6664:281;6747:27;6769:4;6747:27;:::i;:::-;6739:6;6735:40;6877:6;6865:10;6862:22;6841:18;6829:10;6826:34;6823:62;6820:88;;;6888:18;;:::i;:::-;6820:88;6928:10;6924:2;6917:22;6707:238;6664:281;;:::o;6951:129::-;6985:6;7012:20;;:::i;:::-;7002:30;;7041:33;7069:4;7061:6;7041:33;:::i;:::-;6951:129;;;:::o;7086:311::-;7163:4;7253:18;7245:6;7242:30;7239:56;;;7275:18;;:::i;:::-;7239:56;7325:4;7317:6;7313:17;7305:25;;7385:4;7379;7375:15;7367:23;;7086:311;;;:::o;7403:117::-;7512:1;7509;7502:12;7543:710;7639:5;7664:81;7680:64;7737:6;7680:64;:::i;:::-;7664:81;:::i;:::-;7655:90;;7765:5;7794:6;7787:5;7780:21;7828:4;7821:5;7817:16;7810:23;;7881:4;7873:6;7869:17;7861:6;7857:30;7910:3;7902:6;7899:15;7896:122;;;7929:79;;:::i;:::-;7896:122;8044:6;8027:220;8061:6;8056:3;8053:15;8027:220;;;8136:3;8165:37;8198:3;8186:10;8165:37;:::i;:::-;8160:3;8153:50;8232:4;8227:3;8223:14;8216:21;;8103:144;8087:4;8082:3;8078:14;8071:21;;8027:220;;;8031:21;7645:608;;7543:710;;;;;:::o;8276:370::-;8347:5;8396:3;8389:4;8381:6;8377:17;8373:27;8363:122;;8404:79;;:::i;:::-;8363:122;8521:6;8508:20;8546:94;8636:3;8628:6;8621:4;8613:6;8609:17;8546:94;:::i;:::-;8537:103;;8353:293;8276:370;;;;:::o;8652:539::-;8736:6;8785:2;8773:9;8764:7;8760:23;8756:32;8753:119;;;8791:79;;:::i;:::-;8753:119;8939:1;8928:9;8924:17;8911:31;8969:18;8961:6;8958:30;8955:117;;;8991:79;;:::i;:::-;8955:117;9096:78;9166:7;9157:6;9146:9;9142:22;9096:78;:::i;:::-;9086:88;;8882:302;8652:539;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:143::-;9734:5;9765:6;9759:13;9750:22;;9781:33;9808:5;9781:33;:::i;:::-;9677:143;;;;:::o;9826:351::-;9896:6;9945:2;9933:9;9924:7;9920:23;9916:32;9913:119;;;9951:79;;:::i;:::-;9913:119;10071:1;10096:64;10152:7;10143:6;10132:9;10128:22;10096:64;:::i;:::-;10086:74;;10042:128;9826:351;;;;:::o;10183:60::-;10211:3;10232:5;10225:12;;10183:60;;;:::o;10249:142::-;10299:9;10332:53;10350:34;10359:24;10377:5;10359:24;:::i;:::-;10350:34;:::i;:::-;10332:53;:::i;:::-;10319:66;;10249:142;;;:::o;10397:126::-;10447:9;10480:37;10511:5;10480:37;:::i;:::-;10467:50;;10397:126;;;:::o;10529:134::-;10587:9;10620:37;10651:5;10620:37;:::i;:::-;10607:50;;10529:134;;;:::o;10669:147::-;10764:45;10803:5;10764:45;:::i;:::-;10759:3;10752:58;10669:147;;:::o;10822:348::-;10951:4;10989:2;10978:9;10974:18;10966:26;;11002:79;11078:1;11067:9;11063:17;11054:6;11002:79;:::i;:::-;11091:72;11159:2;11148:9;11144:18;11135:6;11091:72;:::i;:::-;10822:348;;;;;:::o;11176:116::-;11246:21;11261:5;11246:21;:::i;:::-;11239:5;11236:32;11226:60;;11282:1;11279;11272:12;11226:60;11176:116;:::o;11298:137::-;11352:5;11383:6;11377:13;11368:22;;11399:30;11423:5;11399:30;:::i;:::-;11298:137;;;;:::o;11441:345::-;11508:6;11557:2;11545:9;11536:7;11532:23;11528:32;11525:119;;;11563:79;;:::i;:::-;11525:119;11683:1;11708:61;11761:7;11752:6;11741:9;11737:22;11708:61;:::i;:::-;11698:71;;11654:125;11441:345;;;;:::o;11792:175::-;11932:27;11928:1;11920:6;11916:14;11909:51;11792:175;:::o;11973:366::-;12115:3;12136:67;12200:2;12195:3;12136:67;:::i;:::-;12129:74;;12212:93;12301:3;12212:93;:::i;:::-;12330:2;12325:3;12321:12;12314:19;;11973:366;;;:::o;12345:419::-;12511:4;12549:2;12538:9;12534:18;12526:26;;12598:9;12592:4;12588:20;12584:1;12573:9;12569:17;12562:47;12626:131;12752:4;12626:131;:::i;:::-;12618:139;;12345:419;;;:::o;12770:182::-;12910:34;12906:1;12898:6;12894:14;12887:58;12770:182;:::o;12958:366::-;13100:3;13121:67;13185:2;13180:3;13121:67;:::i;:::-;13114:74;;13197:93;13286:3;13197:93;:::i;:::-;13315:2;13310:3;13306:12;13299:19;;12958:366;;;:::o;13330:419::-;13496:4;13534:2;13523:9;13519:18;13511:26;;13583:9;13577:4;13573:20;13569:1;13558:9;13554:17;13547:47;13611:131;13737:4;13611:131;:::i;:::-;13603:139;;13330:419;;;:::o;13755:180::-;13803:77;13800:1;13793:88;13900:4;13897:1;13890:15;13924:4;13921:1;13914:15;13941:180;13989:77;13986:1;13979:88;14086:4;14083:1;14076:15;14110:4;14107:1;14100:15;14127:233;14166:3;14189:24;14207:5;14189:24;:::i;:::-;14180:33;;14235:66;14228:5;14225:77;14222:103;;14305:18;;:::i;:::-;14222:103;14352:1;14345:5;14341:13;14334:20;;14127:233;;;:::o;14366:173::-;14506:25;14502:1;14494:6;14490:14;14483:49;14366:173;:::o;14545:366::-;14687:3;14708:67;14772:2;14767:3;14708:67;:::i;:::-;14701:74;;14784:93;14873:3;14784:93;:::i;:::-;14902:2;14897:3;14893:12;14886:19;;14545:366;;;:::o;14917:419::-;15083:4;15121:2;15110:9;15106:18;15098:26;;15170:9;15164:4;15160:20;15156:1;15145:9;15141:17;15134:47;15198:131;15324:4;15198:131;:::i;:::-;15190:139;;14917:419;;;:::o;15342:191::-;15382:3;15401:20;15419:1;15401:20;:::i;:::-;15396:25;;15435:20;15453:1;15435:20;:::i;:::-;15430:25;;15478:1;15475;15471:9;15464:16;;15499:3;15496:1;15493:10;15490:36;;;15506:18;;:::i;:::-;15490:36;15342:191;;;;:::o;15539:223::-;15679:34;15675:1;15667:6;15663:14;15656:58;15748:6;15743:2;15735:6;15731:15;15724:31;15539:223;:::o;15768:366::-;15910:3;15931:67;15995:2;15990:3;15931:67;:::i;:::-;15924:74;;16007:93;16096:3;16007:93;:::i;:::-;16125:2;16120:3;16116:12;16109:19;;15768:366;;;:::o;16140:419::-;16306:4;16344:2;16333:9;16329:18;16321:26;;16393:9;16387:4;16383:20;16379:1;16368:9;16364:17;16357:47;16421:131;16547:4;16421:131;:::i;:::-;16413:139;;16140:419;;;:::o;16565:221::-;16705:34;16701:1;16693:6;16689:14;16682:58;16774:4;16769:2;16761:6;16757:15;16750:29;16565:221;:::o;16792:366::-;16934:3;16955:67;17019:2;17014:3;16955:67;:::i;:::-;16948:74;;17031:93;17120:3;17031:93;:::i;:::-;17149:2;17144:3;17140:12;17133:19;;16792:366;;;:::o;17164:419::-;17330:4;17368:2;17357:9;17353:18;17345:26;;17417:9;17411:4;17407:20;17403:1;17392:9;17388:17;17381:47;17445:131;17571:4;17445:131;:::i;:::-;17437:139;;17164:419;;;:::o;17589:224::-;17729:34;17725:1;17717:6;17713:14;17706:58;17798:7;17793:2;17785:6;17781:15;17774:32;17589:224;:::o;17819:366::-;17961:3;17982:67;18046:2;18041:3;17982:67;:::i;:::-;17975:74;;18058:93;18147:3;18058:93;:::i;:::-;18176:2;18171:3;18167:12;18160:19;;17819:366;;;:::o;18191:419::-;18357:4;18395:2;18384:9;18380:18;18372:26;;18444:9;18438:4;18434:20;18430:1;18419:9;18415:17;18408:47;18472:131;18598:4;18472:131;:::i;:::-;18464:139;;18191:419;;;:::o;18616:222::-;18756:34;18752:1;18744:6;18740:14;18733:58;18825:5;18820:2;18812:6;18808:15;18801:30;18616:222;:::o;18844:366::-;18986:3;19007:67;19071:2;19066:3;19007:67;:::i;:::-;19000:74;;19083:93;19172:3;19083:93;:::i;:::-;19201:2;19196:3;19192:12;19185:19;;18844:366;;;:::o;19216:419::-;19382:4;19420:2;19409:9;19405:18;19397:26;;19469:9;19463:4;19459:20;19455:1;19444:9;19440:17;19433:47;19497:131;19623:4;19497:131;:::i;:::-;19489:139;;19216:419;;;:::o;19641:228::-;19781:34;19777:1;19769:6;19765:14;19758:58;19850:11;19845:2;19837:6;19833:15;19826:36;19641:228;:::o;19875:366::-;20017:3;20038:67;20102:2;20097:3;20038:67;:::i;:::-;20031:74;;20114:93;20203:3;20114:93;:::i;:::-;20232:2;20227:3;20223:12;20216:19;;19875:366;;;:::o;20247:419::-;20413:4;20451:2;20440:9;20436:18;20428:26;;20500:9;20494:4;20490:20;20486:1;20475:9;20471:17;20464:47;20528:131;20654:4;20528:131;:::i;:::-;20520:139;;20247:419;;;:::o;20672:166::-;20812:18;20808:1;20800:6;20796:14;20789:42;20672:166;:::o;20844:366::-;20986:3;21007:67;21071:2;21066:3;21007:67;:::i;:::-;21000:74;;21083:93;21172:3;21083:93;:::i;:::-;21201:2;21196:3;21192:12;21185:19;;20844:366;;;:::o;21216:419::-;21382:4;21420:2;21409:9;21405:18;21397:26;;21469:9;21463:4;21459:20;21455:1;21444:9;21440:17;21433:47;21497:131;21623:4;21497:131;:::i;:::-;21489:139;;21216:419;;;:::o;21641:194::-;21681:4;21701:20;21719:1;21701:20;:::i;:::-;21696:25;;21735:20;21753:1;21735:20;:::i;:::-;21730:25;;21779:1;21776;21772:9;21764:17;;21803:1;21797:4;21794:11;21791:37;;;21808:18;;:::i;:::-;21791:37;21641:194;;;;:::o;21841:143::-;21898:5;21929:6;21923:13;21914:22;;21945:33;21972:5;21945:33;:::i;:::-;21841:143;;;;:::o;21990:351::-;22060:6;22109:2;22097:9;22088:7;22084:23;22080:32;22077:119;;;22115:79;;:::i;:::-;22077:119;22235:1;22260:64;22316:7;22307:6;22296:9;22292:22;22260:64;:::i;:::-;22250:74;;22206:128;21990:351;;;;:::o;22347:85::-;22392:7;22421:5;22410:16;;22347:85;;;:::o;22438:158::-;22496:9;22529:61;22547:42;22556:32;22582:5;22556:32;:::i;:::-;22547:42;:::i;:::-;22529:61;:::i;:::-;22516:74;;22438:158;;;:::o;22602:147::-;22697:45;22736:5;22697:45;:::i;:::-;22692:3;22685:58;22602:147;;:::o;22755:114::-;22822:6;22856:5;22850:12;22840:22;;22755:114;;;:::o;22875:184::-;22974:11;23008:6;23003:3;22996:19;23048:4;23043:3;23039:14;23024:29;;22875:184;;;;:::o;23065:132::-;23132:4;23155:3;23147:11;;23185:4;23180:3;23176:14;23168:22;;23065:132;;;:::o;23203:108::-;23280:24;23298:5;23280:24;:::i;:::-;23275:3;23268:37;23203:108;;:::o;23317:179::-;23386:10;23407:46;23449:3;23441:6;23407:46;:::i;:::-;23485:4;23480:3;23476:14;23462:28;;23317:179;;;;:::o;23502:113::-;23572:4;23604;23599:3;23595:14;23587:22;;23502:113;;;:::o;23651:732::-;23770:3;23799:54;23847:5;23799:54;:::i;:::-;23869:86;23948:6;23943:3;23869:86;:::i;:::-;23862:93;;23979:56;24029:5;23979:56;:::i;:::-;24058:7;24089:1;24074:284;24099:6;24096:1;24093:13;24074:284;;;24175:6;24169:13;24202:63;24261:3;24246:13;24202:63;:::i;:::-;24195:70;;24288:60;24341:6;24288:60;:::i;:::-;24278:70;;24134:224;24121:1;24118;24114:9;24109:14;;24074:284;;;24078:14;24374:3;24367:10;;23775:608;;;23651:732;;;;:::o;24389:831::-;24652:4;24690:3;24679:9;24675:19;24667:27;;24704:71;24772:1;24761:9;24757:17;24748:6;24704:71;:::i;:::-;24785:80;24861:2;24850:9;24846:18;24837:6;24785:80;:::i;:::-;24912:9;24906:4;24902:20;24897:2;24886:9;24882:18;24875:48;24940:108;25043:4;25034:6;24940:108;:::i;:::-;24932:116;;25058:72;25126:2;25115:9;25111:18;25102:6;25058:72;:::i;:::-;25140:73;25208:3;25197:9;25193:19;25184:6;25140:73;:::i;:::-;24389:831;;;;;;;;:::o;25226:807::-;25475:4;25513:3;25502:9;25498:19;25490:27;;25527:71;25595:1;25584:9;25580:17;25571:6;25527:71;:::i;:::-;25608:72;25676:2;25665:9;25661:18;25652:6;25608:72;:::i;:::-;25690:80;25766:2;25755:9;25751:18;25742:6;25690:80;:::i;:::-;25780;25856:2;25845:9;25841:18;25832:6;25780:80;:::i;:::-;25870:73;25938:3;25927:9;25923:19;25914:6;25870:73;:::i;:::-;25953;26021:3;26010:9;26006:19;25997:6;25953:73;:::i;:::-;25226:807;;;;;;;;;:::o;26039:663::-;26127:6;26135;26143;26192:2;26180:9;26171:7;26167:23;26163:32;26160:119;;;26198:79;;:::i;:::-;26160:119;26318:1;26343:64;26399:7;26390:6;26379:9;26375:22;26343:64;:::i;:::-;26333:74;;26289:128;26456:2;26482:64;26538:7;26529:6;26518:9;26514:22;26482:64;:::i;:::-;26472:74;;26427:129;26595:2;26621:64;26677:7;26668:6;26657:9;26653:22;26621:64;:::i;:::-;26611:74;;26566:129;26039:663;;;;;:::o;26708:180::-;26756:77;26753:1;26746:88;26853:4;26850:1;26843:15;26877:4;26874:1;26867:15;26894:185;26934:1;26951:20;26969:1;26951:20;:::i;:::-;26946:25;;26985:20;27003:1;26985:20;:::i;:::-;26980:25;;27024:1;27014:35;;27029:18;;:::i;:::-;27014:35;27071:1;27068;27064:9;27059:14;;26894:185;;;;:::o;27085:177::-;27225:29;27221:1;27213:6;27209:14;27202:53;27085:177;:::o;27268:366::-;27410:3;27431:67;27495:2;27490:3;27431:67;:::i;:::-;27424:74;;27507:93;27596:3;27507:93;:::i;:::-;27625:2;27620:3;27616:12;27609:19;;27268:366;;;:::o;27640:419::-;27806:4;27844:2;27833:9;27829:18;27821:26;;27893:9;27887:4;27883:20;27879:1;27868:9;27864:17;27857:47;27921:131;28047:4;27921:131;:::i;:::-;27913:139;;27640:419;;;:::o;28065:410::-;28105:7;28128:20;28146:1;28128:20;:::i;:::-;28123:25;;28162:20;28180:1;28162:20;:::i;:::-;28157:25;;28217:1;28214;28210:9;28239:30;28257:11;28239:30;:::i;:::-;28228:41;;28418:1;28409:7;28405:15;28402:1;28399:22;28379:1;28372:9;28352:83;28329:139;;28448:18;;:::i;:::-;28329:139;28113:362;28065:410;;;;:::o;28481:220::-;28621:34;28617:1;28609:6;28605:14;28598:58;28690:3;28685:2;28677:6;28673:15;28666:28;28481:220;:::o;28707:366::-;28849:3;28870:67;28934:2;28929:3;28870:67;:::i;:::-;28863:74;;28946:93;29035:3;28946:93;:::i;:::-;29064:2;29059:3;29055:12;29048:19;;28707:366;;;:::o;29079:419::-;29245:4;29283:2;29272:9;29268:18;29260:26;;29332:9;29326:4;29322:20;29318:1;29307:9;29303:17;29296:47;29360:131;29486:4;29360:131;:::i;:::-;29352:139;;29079:419;;;:::o

Swarm Source

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