ETH Price: $2,435.98 (-0.82%)
 

Overview

Max Total Supply

100,000 Bull

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000001 Bull

Value
$0.00
0x811d77b93746E93d06b774B0B1FF2De1d7b2c229
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:
Samuraiburu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-30
*/

// 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 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 Samuraiburu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) private _isBlacklisted;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_00_000 * 10**8;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Samuraiburu";
    string private constant _symbol = "Bull";
    uint8 private constant _decimals = 8;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 1_000 * 10**8;
    uint256 private _maxWalletSize = 3_000 * 10**8;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=25;
        _finalTax=6;
        _reduceTaxCountdown=800;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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 updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }

    function setAnitDumpFee(uint _init, uint _final)  external onlyOwner() {
        _initialTax=_init;
        _finalTax=_final;
    }

    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");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0 && _reduceTaxCountdown<770) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

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

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

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_init","type":"uint256"},{"internalType":"uint256","name":"_final","type":"uint256"}],"name":"setAnitDumpFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526509184e72a0006000196200001a91906200046b565b60001962000029919062000426565b6009556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff02191690831515021790555064174876e8006013556445d964b8006014553480156200009c57600080fd5b506000620000af620003c760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200015d620003c760201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460026000620001b4620003c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016006600062000208620003cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506019600d819055506006600e81905550610320600f8190555062000354620003c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6509184e72a000604051620003b9919062000409565b60405180910390a362000501565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004038162000461565b82525050565b6000602082019050620004206000830184620003f8565b92915050565b6000620004338262000461565b9150620004408362000461565b925082821015620004565762000455620004a3565b5b828203905092915050565b6000819050919050565b6000620004788262000461565b9150620004858362000461565b925082620004985762000497620004d2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61335080620005116000396000f3fe60806040526004361061010d5760003560e01c806370a082311161009557806395d89b411161006457806395d89b411461033c578063a9059cbb14610367578063c3c8cd80146103a4578063c9567bf9146103bb578063dd62ed3e146103d257610114565b806370a08231146102a6578063715018a6146102e3578063751039fc146102fa5780638da5cb5b1461031157610114565b8063313ce567116100dc578063313ce567146101e95780635806c9d1146102145780635932ead11461023d5780635b24ea5e146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b9190612a3c565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190612556565b61044c565b6040516101789190612a21565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612bfe565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce91906124c3565b610478565b6040516101e09190612a21565b60405180910390f35b3480156101f557600080fd5b506101fe610551565b60405161020b9190612c73565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906125f0565b61055a565b005b34801561024957600080fd5b50610264600480360381019061025f9190612596565b610601565b005b34801561027257600080fd5b5061028d60048036038101906102889190612516565b6106b3565b005b34801561029b57600080fd5b506102a46107a3565b005b3480156102b257600080fd5b506102cd60048036038101906102c89190612429565b610815565b6040516102da9190612bfe565b60405180910390f35b3480156102ef57600080fd5b506102f8610866565b005b34801561030657600080fd5b5061030f6109b9565b005b34801561031d57600080fd5b50610326610a6a565b6040516103339190612953565b60405180910390f35b34801561034857600080fd5b50610351610a93565b60405161035e9190612a3c565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612556565b610ad0565b60405161039b9190612a21565b60405180910390f35b3480156103b057600080fd5b506103b9610aee565b005b3480156103c757600080fd5b506103d0610b68565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612483565b6110b2565b6040516104069190612bfe565b60405180910390f35b60606040518060400160405280600b81526020017f53616d7572616962757275000000000000000000000000000000000000000000815250905090565b6000610460610459611139565b8484611141565b6001905092915050565b60006509184e72a000905090565b600061048584848461130c565b61054684610491611139565b610541856040518060600160405280602881526020016132f360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f7611139565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119389092919063ffffffff16565b611141565b600190509392505050565b60006008905090565b610562611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e690612b1e565b60405180910390fd5b81600d8190555080600e819055505050565b610609611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068d90612b1e565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b6106bb611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90612b1e565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e4611139565b73ffffffffffffffffffffffffffffffffffffffff161461080457600080fd5b60004790506108128161199c565b50565b600061085f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a08565b9050919050565b61086e611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f290612b1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c1611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590612b1e565b60405180910390fd5b6509184e72a0006013819055506509184e72a000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f42756c6c00000000000000000000000000000000000000000000000000000000815250905090565b6000610ae4610add611139565b848461130c565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f611139565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6000610b5a30610815565b9050610b6581611a76565b50565b610b70611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612b1e565b60405180910390fd5b601260149054906101000a900460ff1615610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612bbe565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cda30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166509184e72a000611141565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2057600080fd5b505afa158015610d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d589190612456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dba57600080fd5b505afa158015610dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df29190612456565b6040518363ffffffff1660e01b8152600401610e0f92919061296e565b602060405180830381600087803b158015610e2957600080fd5b505af1158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190612456565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eea30610815565b600080610ef5610a6a565b426040518863ffffffff1660e01b8152600401610f17969594939291906129c0565b6060604051808303818588803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f699190612630565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161105c929190612997565b602060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae91906125c3565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612b9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890612abe565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ff9190612bfe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390612b5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612a5e565b60405180910390fd5b6000811161142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690612b3e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114d35750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612bde565b60405180910390fd5b61151a610a6a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115885750611558610a6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561191757600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116315750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61163a57600080fd5b6000600b819055506000600f541461165457600d54611658565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117095750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561175f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117775750601260179054906101000a900460ff165b1561183e576013548111156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612a7e565b60405180910390fd5b601454816117ce84610815565b6117d89190612ce3565b1115611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090612b7e565b60405180910390fd5b6000600f54111561183d57600f600081548092919061183790612e92565b91905055505b5b600061184930610815565b9050601260159054906101000a900460ff161580156118b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118ce5750601260169054906101000a900460ff165b80156118da5750600081115b80156118e95750610302600f54105b15611911576118f781611a76565b6000479050600081111561190f5761190e4761199c565b5b505b50611928565b6000600b819055506000600c819055505b611933838383611cfe565b505050565b6000838311158290611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779190612a3c565b60405180910390fd5b506000838561198f9190612dc4565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a04573d6000803e3d6000fd5b5050565b6000600954821115611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4690612a9e565b60405180910390fd5b6000611a59611d0e565b9050611a6e8184611d3990919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aae57611aad612f49565b5b604051908082528060200260200182016040528015611adc5781602001602082028036833780820191505090505b5090503081600081518110611af457611af3612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9657600080fd5b505afa158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190612456565b81600181518110611be257611be1612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c4930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611141565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cad959493929190612c19565b600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611d09838383611d83565b505050565b6000806000611d1b611f4e565b91509150611d328183611d3990919063ffffffff16565b9250505090565b6000611d7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fa7565b905092915050565b600080600080600080611d958761200a565b955095509550955095509550611df386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e8885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ed48161211a565b611ede84836121d7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f3b9190612bfe565b60405180910390a3505050505050505050565b6000806000600954905060006509184e72a0009050611f7e6509184e72a000600954611d3990919063ffffffff16565b821015611f9a576009546509184e72a000935093505050611fa3565b81819350935050505b9091565b60008083118290611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe59190612a3c565b60405180910390fd5b5060008385611ffd9190612d39565b9050809150509392505050565b60008060008060008060008060006120278a600b54600c54612211565b9250925092506000612037611d0e565b9050600080600061204a8e8787876122a7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611938565b905092915050565b60008082846120cb9190612ce3565b905083811015612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790612ade565b60405180910390fd5b8091505092915050565b6000612124611d0e565b9050600061213b828461233090919063ffffffff16565b905061218f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6121ec8260095461207290919063ffffffff16565b60098190555061220781600a546120bc90919063ffffffff16565b600a819055505050565b60008060008061223d606461222f888a61233090919063ffffffff16565b611d3990919063ffffffff16565b905060006122676064612259888b61233090919063ffffffff16565b611d3990919063ffffffff16565b9050600061229082612282858c61207290919063ffffffff16565b61207290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122c0858961233090919063ffffffff16565b905060006122d7868961233090919063ffffffff16565b905060006122ee878961233090919063ffffffff16565b9050600061231782612309858761207290919063ffffffff16565b61207290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561234357600090506123a5565b600082846123519190612d6a565b90508284826123609190612d39565b146123a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239790612afe565b60405180910390fd5b809150505b92915050565b6000813590506123ba816132ad565b92915050565b6000815190506123cf816132ad565b92915050565b6000813590506123e4816132c4565b92915050565b6000815190506123f9816132c4565b92915050565b60008135905061240e816132db565b92915050565b600081519050612423816132db565b92915050565b60006020828403121561243f5761243e612f78565b5b600061244d848285016123ab565b91505092915050565b60006020828403121561246c5761246b612f78565b5b600061247a848285016123c0565b91505092915050565b6000806040838503121561249a57612499612f78565b5b60006124a8858286016123ab565b92505060206124b9858286016123ab565b9150509250929050565b6000806000606084860312156124dc576124db612f78565b5b60006124ea868287016123ab565b93505060206124fb868287016123ab565b925050604061250c868287016123ff565b9150509250925092565b6000806040838503121561252d5761252c612f78565b5b600061253b858286016123ab565b925050602061254c858286016123d5565b9150509250929050565b6000806040838503121561256d5761256c612f78565b5b600061257b858286016123ab565b925050602061258c858286016123ff565b9150509250929050565b6000602082840312156125ac576125ab612f78565b5b60006125ba848285016123d5565b91505092915050565b6000602082840312156125d9576125d8612f78565b5b60006125e7848285016123ea565b91505092915050565b6000806040838503121561260757612606612f78565b5b6000612615858286016123ff565b9250506020612626858286016123ff565b9150509250929050565b60008060006060848603121561264957612648612f78565b5b600061265786828701612414565b935050602061266886828701612414565b925050604061267986828701612414565b9150509250925092565b600061268f838361269b565b60208301905092915050565b6126a481612df8565b82525050565b6126b381612df8565b82525050565b60006126c482612c9e565b6126ce8185612cc1565b93506126d983612c8e565b8060005b8381101561270a5781516126f18882612683565b97506126fc83612cb4565b9250506001810190506126dd565b5085935050505092915050565b61272081612e0a565b82525050565b61272f81612e4d565b82525050565b600061274082612ca9565b61274a8185612cd2565b935061275a818560208601612e5f565b61276381612f7d565b840191505092915050565b600061277b602383612cd2565b915061278682612f8e565b604082019050919050565b600061279e601983612cd2565b91506127a982612fdd565b602082019050919050565b60006127c1602a83612cd2565b91506127cc82613006565b604082019050919050565b60006127e4602283612cd2565b91506127ef82613055565b604082019050919050565b6000612807601b83612cd2565b9150612812826130a4565b602082019050919050565b600061282a602183612cd2565b9150612835826130cd565b604082019050919050565b600061284d602083612cd2565b91506128588261311c565b602082019050919050565b6000612870602983612cd2565b915061287b82613145565b604082019050919050565b6000612893602583612cd2565b915061289e82613194565b604082019050919050565b60006128b6601a83612cd2565b91506128c1826131e3565b602082019050919050565b60006128d9602483612cd2565b91506128e48261320c565b604082019050919050565b60006128fc601783612cd2565b91506129078261325b565b602082019050919050565b600061291f600d83612cd2565b915061292a82613284565b602082019050919050565b61293e81612e36565b82525050565b61294d81612e40565b82525050565b600060208201905061296860008301846126aa565b92915050565b600060408201905061298360008301856126aa565b61299060208301846126aa565b9392505050565b60006040820190506129ac60008301856126aa565b6129b96020830184612935565b9392505050565b600060c0820190506129d560008301896126aa565b6129e26020830188612935565b6129ef6040830187612726565b6129fc6060830186612726565b612a0960808301856126aa565b612a1660a0830184612935565b979650505050505050565b6000602082019050612a366000830184612717565b92915050565b60006020820190508181036000830152612a568184612735565b905092915050565b60006020820190508181036000830152612a778161276e565b9050919050565b60006020820190508181036000830152612a9781612791565b9050919050565b60006020820190508181036000830152612ab7816127b4565b9050919050565b60006020820190508181036000830152612ad7816127d7565b9050919050565b60006020820190508181036000830152612af7816127fa565b9050919050565b60006020820190508181036000830152612b178161281d565b9050919050565b60006020820190508181036000830152612b3781612840565b9050919050565b60006020820190508181036000830152612b5781612863565b9050919050565b60006020820190508181036000830152612b7781612886565b9050919050565b60006020820190508181036000830152612b97816128a9565b9050919050565b60006020820190508181036000830152612bb7816128cc565b9050919050565b60006020820190508181036000830152612bd7816128ef565b9050919050565b60006020820190508181036000830152612bf781612912565b9050919050565b6000602082019050612c136000830184612935565b92915050565b600060a082019050612c2e6000830188612935565b612c3b6020830187612726565b8181036040830152612c4d81866126b9565b9050612c5c60608301856126aa565b612c696080830184612935565b9695505050505050565b6000602082019050612c886000830184612944565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cee82612e36565b9150612cf983612e36565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d2e57612d2d612ebc565b5b828201905092915050565b6000612d4482612e36565b9150612d4f83612e36565b925082612d5f57612d5e612eeb565b5b828204905092915050565b6000612d7582612e36565b9150612d8083612e36565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db957612db8612ebc565b5b828202905092915050565b6000612dcf82612e36565b9150612dda83612e36565b925082821015612ded57612dec612ebc565b5b828203905092915050565b6000612e0382612e16565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e5882612e36565b9050919050565b60005b83811015612e7d578082015181840152602081019050612e62565b83811115612e8c576000848401525b50505050565b6000612e9d82612e36565b91506000821415612eb157612eb0612ebc565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6132b681612df8565b81146132c157600080fd5b50565b6132cd81612e0a565b81146132d857600080fd5b50565b6132e481612e36565b81146132ef57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3c3e7e6689f347556d8d67084412dd4cac12a3e97a6c64fe119f9f9a562fbda64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806370a082311161009557806395d89b411161006457806395d89b411461033c578063a9059cbb14610367578063c3c8cd80146103a4578063c9567bf9146103bb578063dd62ed3e146103d257610114565b806370a08231146102a6578063715018a6146102e3578063751039fc146102fa5780638da5cb5b1461031157610114565b8063313ce567116100dc578063313ce567146101e95780635806c9d1146102145780635932ead11461023d5780635b24ea5e146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b9190612a3c565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190612556565b61044c565b6040516101789190612a21565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612bfe565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce91906124c3565b610478565b6040516101e09190612a21565b60405180910390f35b3480156101f557600080fd5b506101fe610551565b60405161020b9190612c73565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906125f0565b61055a565b005b34801561024957600080fd5b50610264600480360381019061025f9190612596565b610601565b005b34801561027257600080fd5b5061028d60048036038101906102889190612516565b6106b3565b005b34801561029b57600080fd5b506102a46107a3565b005b3480156102b257600080fd5b506102cd60048036038101906102c89190612429565b610815565b6040516102da9190612bfe565b60405180910390f35b3480156102ef57600080fd5b506102f8610866565b005b34801561030657600080fd5b5061030f6109b9565b005b34801561031d57600080fd5b50610326610a6a565b6040516103339190612953565b60405180910390f35b34801561034857600080fd5b50610351610a93565b60405161035e9190612a3c565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612556565b610ad0565b60405161039b9190612a21565b60405180910390f35b3480156103b057600080fd5b506103b9610aee565b005b3480156103c757600080fd5b506103d0610b68565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612483565b6110b2565b6040516104069190612bfe565b60405180910390f35b60606040518060400160405280600b81526020017f53616d7572616962757275000000000000000000000000000000000000000000815250905090565b6000610460610459611139565b8484611141565b6001905092915050565b60006509184e72a000905090565b600061048584848461130c565b61054684610491611139565b610541856040518060600160405280602881526020016132f360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f7611139565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119389092919063ffffffff16565b611141565b600190509392505050565b60006008905090565b610562611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e690612b1e565b60405180910390fd5b81600d8190555080600e819055505050565b610609611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068d90612b1e565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b6106bb611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90612b1e565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e4611139565b73ffffffffffffffffffffffffffffffffffffffff161461080457600080fd5b60004790506108128161199c565b50565b600061085f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a08565b9050919050565b61086e611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f290612b1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c1611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590612b1e565b60405180910390fd5b6509184e72a0006013819055506509184e72a000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f42756c6c00000000000000000000000000000000000000000000000000000000815250905090565b6000610ae4610add611139565b848461130c565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f611139565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6000610b5a30610815565b9050610b6581611a76565b50565b610b70611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612b1e565b60405180910390fd5b601260149054906101000a900460ff1615610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612bbe565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cda30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166509184e72a000611141565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2057600080fd5b505afa158015610d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d589190612456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dba57600080fd5b505afa158015610dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df29190612456565b6040518363ffffffff1660e01b8152600401610e0f92919061296e565b602060405180830381600087803b158015610e2957600080fd5b505af1158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190612456565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eea30610815565b600080610ef5610a6a565b426040518863ffffffff1660e01b8152600401610f17969594939291906129c0565b6060604051808303818588803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f699190612630565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161105c929190612997565b602060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae91906125c3565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612b9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890612abe565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ff9190612bfe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390612b5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612a5e565b60405180910390fd5b6000811161142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690612b3e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114d35750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612bde565b60405180910390fd5b61151a610a6a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115885750611558610a6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561191757600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116315750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61163a57600080fd5b6000600b819055506000600f541461165457600d54611658565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117095750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561175f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117775750601260179054906101000a900460ff165b1561183e576013548111156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612a7e565b60405180910390fd5b601454816117ce84610815565b6117d89190612ce3565b1115611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090612b7e565b60405180910390fd5b6000600f54111561183d57600f600081548092919061183790612e92565b91905055505b5b600061184930610815565b9050601260159054906101000a900460ff161580156118b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118ce5750601260169054906101000a900460ff165b80156118da5750600081115b80156118e95750610302600f54105b15611911576118f781611a76565b6000479050600081111561190f5761190e4761199c565b5b505b50611928565b6000600b819055506000600c819055505b611933838383611cfe565b505050565b6000838311158290611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779190612a3c565b60405180910390fd5b506000838561198f9190612dc4565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a04573d6000803e3d6000fd5b5050565b6000600954821115611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4690612a9e565b60405180910390fd5b6000611a59611d0e565b9050611a6e8184611d3990919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aae57611aad612f49565b5b604051908082528060200260200182016040528015611adc5781602001602082028036833780820191505090505b5090503081600081518110611af457611af3612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9657600080fd5b505afa158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190612456565b81600181518110611be257611be1612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c4930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611141565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cad959493929190612c19565b600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611d09838383611d83565b505050565b6000806000611d1b611f4e565b91509150611d328183611d3990919063ffffffff16565b9250505090565b6000611d7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fa7565b905092915050565b600080600080600080611d958761200a565b955095509550955095509550611df386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e8885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ed48161211a565b611ede84836121d7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f3b9190612bfe565b60405180910390a3505050505050505050565b6000806000600954905060006509184e72a0009050611f7e6509184e72a000600954611d3990919063ffffffff16565b821015611f9a576009546509184e72a000935093505050611fa3565b81819350935050505b9091565b60008083118290611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe59190612a3c565b60405180910390fd5b5060008385611ffd9190612d39565b9050809150509392505050565b60008060008060008060008060006120278a600b54600c54612211565b9250925092506000612037611d0e565b9050600080600061204a8e8787876122a7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611938565b905092915050565b60008082846120cb9190612ce3565b905083811015612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790612ade565b60405180910390fd5b8091505092915050565b6000612124611d0e565b9050600061213b828461233090919063ffffffff16565b905061218f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6121ec8260095461207290919063ffffffff16565b60098190555061220781600a546120bc90919063ffffffff16565b600a819055505050565b60008060008061223d606461222f888a61233090919063ffffffff16565b611d3990919063ffffffff16565b905060006122676064612259888b61233090919063ffffffff16565b611d3990919063ffffffff16565b9050600061229082612282858c61207290919063ffffffff16565b61207290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122c0858961233090919063ffffffff16565b905060006122d7868961233090919063ffffffff16565b905060006122ee878961233090919063ffffffff16565b9050600061231782612309858761207290919063ffffffff16565b61207290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561234357600090506123a5565b600082846123519190612d6a565b90508284826123609190612d39565b146123a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239790612afe565b60405180910390fd5b809150505b92915050565b6000813590506123ba816132ad565b92915050565b6000815190506123cf816132ad565b92915050565b6000813590506123e4816132c4565b92915050565b6000815190506123f9816132c4565b92915050565b60008135905061240e816132db565b92915050565b600081519050612423816132db565b92915050565b60006020828403121561243f5761243e612f78565b5b600061244d848285016123ab565b91505092915050565b60006020828403121561246c5761246b612f78565b5b600061247a848285016123c0565b91505092915050565b6000806040838503121561249a57612499612f78565b5b60006124a8858286016123ab565b92505060206124b9858286016123ab565b9150509250929050565b6000806000606084860312156124dc576124db612f78565b5b60006124ea868287016123ab565b93505060206124fb868287016123ab565b925050604061250c868287016123ff565b9150509250925092565b6000806040838503121561252d5761252c612f78565b5b600061253b858286016123ab565b925050602061254c858286016123d5565b9150509250929050565b6000806040838503121561256d5761256c612f78565b5b600061257b858286016123ab565b925050602061258c858286016123ff565b9150509250929050565b6000602082840312156125ac576125ab612f78565b5b60006125ba848285016123d5565b91505092915050565b6000602082840312156125d9576125d8612f78565b5b60006125e7848285016123ea565b91505092915050565b6000806040838503121561260757612606612f78565b5b6000612615858286016123ff565b9250506020612626858286016123ff565b9150509250929050565b60008060006060848603121561264957612648612f78565b5b600061265786828701612414565b935050602061266886828701612414565b925050604061267986828701612414565b9150509250925092565b600061268f838361269b565b60208301905092915050565b6126a481612df8565b82525050565b6126b381612df8565b82525050565b60006126c482612c9e565b6126ce8185612cc1565b93506126d983612c8e565b8060005b8381101561270a5781516126f18882612683565b97506126fc83612cb4565b9250506001810190506126dd565b5085935050505092915050565b61272081612e0a565b82525050565b61272f81612e4d565b82525050565b600061274082612ca9565b61274a8185612cd2565b935061275a818560208601612e5f565b61276381612f7d565b840191505092915050565b600061277b602383612cd2565b915061278682612f8e565b604082019050919050565b600061279e601983612cd2565b91506127a982612fdd565b602082019050919050565b60006127c1602a83612cd2565b91506127cc82613006565b604082019050919050565b60006127e4602283612cd2565b91506127ef82613055565b604082019050919050565b6000612807601b83612cd2565b9150612812826130a4565b602082019050919050565b600061282a602183612cd2565b9150612835826130cd565b604082019050919050565b600061284d602083612cd2565b91506128588261311c565b602082019050919050565b6000612870602983612cd2565b915061287b82613145565b604082019050919050565b6000612893602583612cd2565b915061289e82613194565b604082019050919050565b60006128b6601a83612cd2565b91506128c1826131e3565b602082019050919050565b60006128d9602483612cd2565b91506128e48261320c565b604082019050919050565b60006128fc601783612cd2565b91506129078261325b565b602082019050919050565b600061291f600d83612cd2565b915061292a82613284565b602082019050919050565b61293e81612e36565b82525050565b61294d81612e40565b82525050565b600060208201905061296860008301846126aa565b92915050565b600060408201905061298360008301856126aa565b61299060208301846126aa565b9392505050565b60006040820190506129ac60008301856126aa565b6129b96020830184612935565b9392505050565b600060c0820190506129d560008301896126aa565b6129e26020830188612935565b6129ef6040830187612726565b6129fc6060830186612726565b612a0960808301856126aa565b612a1660a0830184612935565b979650505050505050565b6000602082019050612a366000830184612717565b92915050565b60006020820190508181036000830152612a568184612735565b905092915050565b60006020820190508181036000830152612a778161276e565b9050919050565b60006020820190508181036000830152612a9781612791565b9050919050565b60006020820190508181036000830152612ab7816127b4565b9050919050565b60006020820190508181036000830152612ad7816127d7565b9050919050565b60006020820190508181036000830152612af7816127fa565b9050919050565b60006020820190508181036000830152612b178161281d565b9050919050565b60006020820190508181036000830152612b3781612840565b9050919050565b60006020820190508181036000830152612b5781612863565b9050919050565b60006020820190508181036000830152612b7781612886565b9050919050565b60006020820190508181036000830152612b97816128a9565b9050919050565b60006020820190508181036000830152612bb7816128cc565b9050919050565b60006020820190508181036000830152612bd7816128ef565b9050919050565b60006020820190508181036000830152612bf781612912565b9050919050565b6000602082019050612c136000830184612935565b92915050565b600060a082019050612c2e6000830188612935565b612c3b6020830187612726565b8181036040830152612c4d81866126b9565b9050612c5c60608301856126aa565b612c696080830184612935565b9695505050505050565b6000602082019050612c886000830184612944565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cee82612e36565b9150612cf983612e36565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d2e57612d2d612ebc565b5b828201905092915050565b6000612d4482612e36565b9150612d4f83612e36565b925082612d5f57612d5e612eeb565b5b828204905092915050565b6000612d7582612e36565b9150612d8083612e36565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db957612db8612ebc565b5b828202905092915050565b6000612dcf82612e36565b9150612dda83612e36565b925082821015612ded57612dec612ebc565b5b828203905092915050565b6000612e0382612e16565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e5882612e36565b9050919050565b60005b83811015612e7d578082015181840152602081019050612e62565b83811115612e8c576000848401525b50505050565b6000612e9d82612e36565b91506000821415612eb157612eb0612ebc565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6132b681612df8565b81146132c157600080fd5b50565b6132cd81612e0a565b81146132d857600080fd5b50565b6132e481612e36565b81146132ef57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3c3e7e6689f347556d8d67084412dd4cac12a3e97a6c64fe119f9f9a562fbda64736f6c63430008070033

Deployed Bytecode Sourcemap

3516:10507:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5448:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5725:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6469:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5634:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7640:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6790:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7506:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12138:193;;;;;;;;;;;;;:::i;:::-;;5828:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2597:148;;;;;;;;;;;;;:::i;:::-;;9864:118;;;;;;;;;;;;;:::i;:::-;;2383:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5539:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5974:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11936:194;;;;;;;;;;;;;:::i;:::-;;10094:773;;;;;;;;;;;;;:::i;:::-;;6149:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5448:83;5485:13;5518:5;;;;;;;;;;;;;;;;;5511:12;;5448:83;:::o;6300:161::-;6375:4;6392:39;6401:12;:10;:12::i;:::-;6415:7;6424:6;6392:8;:39::i;:::-;6449:4;6442:11;;6300:161;;;;:::o;5725:95::-;5778:7;4075:16;5798:14;;5725:95;:::o;6469:313::-;6567:4;6584:36;6594:6;6602:9;6613:6;6584:9;:36::i;:::-;6631:121;6640:6;6648:12;:10;:12::i;:::-;6662:89;6700:6;6662:89;;;;;;;;;;;;;;;;;:11;:19;6674:6;6662:19;;;;;;;;;;;;;;;:33;6682:12;:10;:12::i;:::-;6662:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6631:8;:121::i;:::-;6770:4;6763:11;;6469:313;;;;;:::o;5634:83::-;5675:5;4542:1;5693:16;;5634:83;:::o;7640:134::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7734:5:::1;7722:11;:17;;;;7760:6;7750:9;:16;;;;7640:134:::0;;:::o;6790:103::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6880:5:::1;6862:15;;:23;;;;;;;;;;;;;;;;;;6790:103:::0;:::o;7506:126::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7619:5:::1;7593:14;:23;7608:7;7593:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;7506:126:::0;;:::o;12138:193::-;12204:14;;;;;;;;;;;12188:30;;:12;:10;:12::i;:::-;:30;;;12180:39;;;;;;12230:26;12259:21;12230:50;;12291:32;12304:18;12291:12;:32::i;:::-;12169:162;12138:193::o;5828:138::-;5894:7;5921:37;5941:7;:16;5949:7;5941:16;;;;;;;;;;;;;;;;5921:19;:37::i;:::-;5914:44;;5828:138;;;:::o;2597:148::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2704:1:::1;2667:40;;2688:6;::::0;::::1;;;;;;;;2667:40;;;;;;;;;;;;2735:1;2718:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2597:148::o:0;9864:118::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4075:16:::1;9917:12;:22;;;;4075:16;9950:14;:24;;;;9864:118::o:0;2383:79::-;2421:7;2448:6;;;;;;;;;;;2441:13;;2383:79;:::o;5539:87::-;5578:13;5611:7;;;;;;;;;;;;;;;;;5604:14;;5539:87;:::o;5974:167::-;6052:4;6069:42;6079:12;:10;:12::i;:::-;6093:9;6104:6;6069:9;:42::i;:::-;6129:4;6122:11;;5974:167;;;;:::o;11936:194::-;12002:14;;;;;;;;;;;11986:30;;:12;:10;:12::i;:::-;:30;;;11978:39;;;;;;12028:23;12054:24;12072:4;12054:9;:24::i;:::-;12028:50;;12089:33;12106:15;12089:16;:33::i;:::-;11967:163;11936:194::o;10094:773::-;2520:12;:10;:12::i;:::-;2510:22;;:6;;;;;;;;;;:22;;;2502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10158:11:::1;;;;;;;;;;;10157:12;10149:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10207:35;10264:42;10207:100;;10336:16;10318:15;;:34;;;;;;;;;;;;;;;;;;10363:58;10380:4;10395:15;;;;;;;;;;;4075:16;10363:8;:58::i;:::-;10466:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10448:56;;;10513:4;10520:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10448:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10432:13;;:112;;;;;;;;;;;;;;;;;;10555:15;;;;;;;;;;;:31;;;10594:21;10625:4;10631:24;10649:4;10631:9;:24::i;:::-;10656:1;10658::::0;10660:7:::1;:5;:7::i;:::-;10668:15;10555:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10709:4;10695:11;;:18;;;;;;;;;;;;;;;;;;10742:4;10724:15;;:22;;;;;;;;;;;;;;;;;;10773:4;10759:11;;:18;;;;;;;;;;;;;;;;;;10795:13;;;;;;;;;;;10788:29;;;10826:15;;;;;;;;;;;10844:14;10788:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10138:729;10094:773::o:0;6149:143::-;6230:7;6257:11;:18;6269:5;6257:18;;;;;;;;;;;;;;;:27;6276:7;6257:27;;;;;;;;;;;;;;;;6250:34;;6149:143;;;;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;7163:335::-;7273:1;7256:19;;:5;:19;;;;7248:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7354:1;7335:21;;:7;:21;;;;7327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:6;7406:11;:18;7418:5;7406:18;;;;;;;;;;;;;;;:27;7425:7;7406:27;;;;;;;;;;;;;;;:36;;;;7474:7;7458:32;;7467:5;7458:32;;;7483:6;7458:32;;;;;;:::i;:::-;;;;;;;;7163:335;;;:::o;7782:1581::-;7886:1;7870:18;;:4;:18;;;;7862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7963:1;7949:16;;:2;:16;;;;7941:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8033:1;8024:6;:10;8016:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8100:14;:20;8115:4;8100:20;;;;;;;;;;;;;;;;;;;;;;;;;8099:21;:44;;;;;8125:14;:18;8140:2;8125:18;;;;;;;;;;;;;;;;;;;;;;;;;8124:19;8099:44;8091:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8188:7;:5;:7::i;:::-;8180:15;;:4;:15;;;;:32;;;;;8205:7;:5;:7::i;:::-;8199:13;;:2;:13;;;;8180:32;8176:1137;;;8238:4;:10;8243:4;8238:10;;;;;;;;;;;;;;;;;;;;;;;;;8237:11;:24;;;;;8253:4;:8;8258:2;8253:8;;;;;;;;;;;;;;;;;;;;;;;;;8252:9;8237:24;8229:33;;;;;;8289:1;8277:9;:13;;;;8339:1;8318:19;;:22;8317:46;;8352:11;;8317:46;;;8342:9;;8317:46;8305:9;:58;;;;8390:13;;;;;;;;;;;8382:21;;:4;:21;;;:55;;;;;8421:15;;;;;;;;;;;8407:30;;:2;:30;;;;8382:55;:83;;;;;8443:18;:22;8462:2;8443:22;;;;;;;;;;;;;;;;;;;;;;;;;8441:24;8382:83;:102;;;;;8469:15;;;;;;;;;;;8382:102;8378:397;;;8552:12;;8542:6;:22;;8534:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8647:14;;8637:6;8621:13;8631:2;8621:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8613:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8734:1;8714:19;;:21;8711:49;;;8737:19;;:21;;;;;;;;;:::i;:::-;;;;;;8711:49;8378:397;8793:28;8824:24;8842:4;8824:9;:24::i;:::-;8793:55;;8868:6;;;;;;;;;;;8867:7;:32;;;;;8886:13;;;;;;;;;;;8878:21;;:4;:21;;;;8867:32;:47;;;;;8903:11;;;;;;;;;;;8867:47;:73;;;;;8939:1;8918:20;:22;8867:73;:100;;;;;8964:3;8944:19;;:23;8867:100;8863:371;;;8988:38;9005:20;8988:16;:38::i;:::-;9045:26;9074:21;9045:50;;9138:1;9117:18;:22;9114:105;;;9164:35;9177:21;9164:12;:35::i;:::-;9114:105;8969:265;8863:371;8214:1031;8176:1137;;;9274:1;9262:9;:13;;;;9300:1;9288:9;:13;;;;8176:1137;9325:30;9340:4;9345:2;9348:6;9325:14;:30::i;:::-;7782:1581;;;:::o;1238:190::-;1324:7;1357:1;1352;:6;;1360:12;1344:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1384:9;1400:1;1396;:5;;;;:::i;:::-;1384:17;;1419:1;1412:8;;;1238:190;;;;;:::o;9990:96::-;10047:14;;;;;;;;;;;:23;;:31;10071:6;10047:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9990:96;:::o;6901:254::-;6968:7;7007;;6996;:18;;6988:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7072:19;7095:10;:8;:10::i;:::-;7072:33;;7123:24;7135:11;7123:7;:11;;:24;;;;:::i;:::-;7116:31;;;6901:254;;;:::o;9371:483::-;4979:4;4970:6;;:13;;;;;;;;;;;;;;;;;;9449:21:::1;9487:1;9473:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9449:40;;9518:4;9500;9505:1;9500:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9544:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9534:4;9539:1;9534:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9577:62;9594:4;9609:15;;;;;;;;;;;9627:11;9577:8;:62::i;:::-;9650:15;;;;;;;;;;;:66;;;9731:11;9757:1;9773:4;9800;9820:15;9650:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9438:416;5015:5:::0;5006:6;;:14;;;;;;;;;;;;;;;;;;9371:483;:::o;10875:146::-;10969:44;10987:6;10995:9;11006:6;10969:17;:44::i;:::-;10875:146;;;:::o;13593:163::-;13634:7;13655:15;13672;13691:19;:17;:19::i;:::-;13654:56;;;;13728:20;13740:7;13728;:11;;:20;;;;:::i;:::-;13721:27;;;;13593:163;:::o;1690:132::-;1748:7;1775:39;1779:1;1782;1775:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1768:46;;1690:132;;;;:::o;11029:487::-;11128:15;11145:23;11170:12;11184:23;11209:12;11223:13;11240:19;11251:7;11240:10;:19::i;:::-;11127:132;;;;;;;;;;;;11288:28;11308:7;11288;:15;11296:6;11288:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11270:7;:15;11278:6;11270:15;;;;;;;;;;;;;;;:46;;;;11348:39;11371:15;11348:7;:18;11356:9;11348:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11327:7;:18;11335:9;11327:18;;;;;;;;;;;;;;;:60;;;;11398:16;11408:5;11398:9;:16::i;:::-;11425:23;11437:4;11443;11425:11;:23::i;:::-;11481:9;11464:44;;11473:6;11464:44;;;11492:15;11464:44;;;;;;:::i;:::-;;;;;;;;11116:400;;;;;;11029:487;;;:::o;13764:256::-;13814:7;13823;13843:15;13861:7;;13843:25;;13879:15;4075:16;13879:25;;13929:20;4075:16;13929:7;;:11;;:20;;;;:::i;:::-;13919:7;:30;13915:61;;;13959:7;;4075:16;13951:25;;;;;;;;13915:61;13995:7;14004;13987:25;;;;;;13764:256;;;:::o;1830:189::-;1916:7;1948:1;1944;:5;1951:12;1936:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1975:9;1991:1;1987;:5;;;;:::i;:::-;1975:17;;2010:1;2003:8;;;1830:189;;;;;:::o;12341:471::-;12400:7;12409;12418;12427;12436;12445;12466:23;12491:12;12505:13;12522:42;12534:7;12543:9;;12554;;12522:11;:42::i;:::-;12465:99;;;;;;12575:19;12598:10;:8;:10::i;:::-;12575:33;;12620:15;12637:23;12662:12;12678:46;12690:7;12699:4;12705:5;12712:11;12678;:46::i;:::-;12619:105;;;;;;12743:7;12752:15;12769:4;12775:15;12792:4;12798:5;12735:69;;;;;;;;;;;;;;;;;;;12341:471;;;;;;;:::o;1094:136::-;1152:7;1179:43;1183:1;1186;1179:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1172:50;;1094:136;;;;:::o;907:179::-;965:7;985:9;1001:1;997;:5;;;;:::i;:::-;985:17;;1026:1;1021;:6;;1013:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1077:1;1070:8;;;907:179;;;;:::o;11524:212::-;11577:19;11600:10;:8;:10::i;:::-;11577:33;;11621:13;11637:22;11647:11;11637:5;:9;;:22;;;;:::i;:::-;11621:38;;11695:33;11722:5;11695:7;:22;11711:4;11695:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11670:7;:22;11686:4;11670:22;;;;;;;;;;;;;;;:58;;;;11566:170;;11524:212;:::o;11744:147::-;11822:17;11834:4;11822:7;;:11;;:17;;;;:::i;:::-;11812:7;:27;;;;11863:20;11878:4;11863:10;;:14;;:20;;;;:::i;:::-;11850:10;:33;;;;11744:147;;:::o;12820:351::-;12913:7;12922;12931;12951:12;12966:28;12990:3;12966:19;12978:6;12966:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12951:43;;13005:13;13021:29;13046:3;13021:20;13033:7;13021;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13005:45;;13061:23;13087:28;13109:5;13087:17;13099:4;13087:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13061:54;;13134:15;13151:4;13157:5;13126:37;;;;;;;;;12820:351;;;;;;;:::o;13179:409::-;13289:7;13298;13307;13327:15;13345:24;13357:11;13345:7;:11;;:24;;;;:::i;:::-;13327:42;;13380:12;13395:21;13404:11;13395:4;:8;;:21;;;;:::i;:::-;13380:36;;13427:13;13443:22;13453:11;13443:5;:9;;:22;;;;:::i;:::-;13427:38;;13476:23;13502:28;13524:5;13502:17;13514:4;13502:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13476:54;;13549:7;13558:15;13575:4;13541:39;;;;;;;;;;13179:409;;;;;;;;:::o;1436:246::-;1494:7;1523:1;1518;:6;1514:47;;;1548:1;1541:8;;;;1514:47;1571:9;1587:1;1583;:5;;;;:::i;:::-;1571:17;;1616:1;1611;1607;:5;;;;:::i;:::-;:10;1599:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1673:1;1666:8;;;1436:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:468::-;2739:6;2747;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2893:117;3049:2;3075:50;3117:7;3108:6;3097:9;3093:22;3075:50;:::i;:::-;3065:60;;3020:115;2674:468;;;;;:::o;3148:474::-;3216:6;3224;3273:2;3261:9;3252:7;3248:23;3244:32;3241:119;;;3279:79;;:::i;:::-;3241:119;3399:1;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3370:117;3526:2;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3497:118;3148:474;;;;;:::o;3628:323::-;3684:6;3733:2;3721:9;3712:7;3708:23;3704:32;3701:119;;;3739:79;;:::i;:::-;3701:119;3859:1;3884:50;3926:7;3917:6;3906:9;3902:22;3884:50;:::i;:::-;3874:60;;3830:114;3628:323;;;;:::o;3957:345::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:61;4277:7;4268:6;4257:9;4253:22;4224:61;:::i;:::-;4214:71;;4170:125;3957:345;;;;:::o;4308:474::-;4376:6;4384;4433:2;4421:9;4412:7;4408:23;4404:32;4401:119;;;4439:79;;:::i;:::-;4401:119;4559:1;4584:53;4629:7;4620:6;4609:9;4605:22;4584:53;:::i;:::-;4574:63;;4530:117;4686:2;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4657:118;4308:474;;;;;:::o;4788:663::-;4876:6;4884;4892;4941:2;4929:9;4920:7;4916:23;4912:32;4909:119;;;4947:79;;:::i;:::-;4909:119;5067:1;5092:64;5148:7;5139:6;5128:9;5124:22;5092:64;:::i;:::-;5082:74;;5038:128;5205:2;5231:64;5287:7;5278:6;5267:9;5263:22;5231:64;:::i;:::-;5221:74;;5176:129;5344:2;5370:64;5426:7;5417:6;5406:9;5402:22;5370:64;:::i;:::-;5360:74;;5315:129;4788:663;;;;;:::o;5457:179::-;5526:10;5547:46;5589:3;5581:6;5547:46;:::i;:::-;5625:4;5620:3;5616:14;5602:28;;5457:179;;;;:::o;5642:108::-;5719:24;5737:5;5719:24;:::i;:::-;5714:3;5707:37;5642:108;;:::o;5756:118::-;5843:24;5861:5;5843:24;:::i;:::-;5838:3;5831:37;5756:118;;:::o;5910:732::-;6029:3;6058:54;6106:5;6058:54;:::i;:::-;6128:86;6207:6;6202:3;6128:86;:::i;:::-;6121:93;;6238:56;6288:5;6238:56;:::i;:::-;6317:7;6348:1;6333:284;6358:6;6355:1;6352:13;6333:284;;;6434:6;6428:13;6461:63;6520:3;6505:13;6461:63;:::i;:::-;6454:70;;6547:60;6600:6;6547:60;:::i;:::-;6537:70;;6393:224;6380:1;6377;6373:9;6368:14;;6333:284;;;6337:14;6633:3;6626:10;;6034:608;;;5910:732;;;;:::o;6648:109::-;6729:21;6744:5;6729:21;:::i;:::-;6724:3;6717:34;6648:109;;:::o;6763:147::-;6858:45;6897:5;6858:45;:::i;:::-;6853:3;6846:58;6763:147;;:::o;6916:364::-;7004:3;7032:39;7065:5;7032:39;:::i;:::-;7087:71;7151:6;7146:3;7087:71;:::i;:::-;7080:78;;7167:52;7212:6;7207:3;7200:4;7193:5;7189:16;7167:52;:::i;:::-;7244:29;7266:6;7244:29;:::i;:::-;7239:3;7235:39;7228:46;;7008:272;6916:364;;;;:::o;7286:366::-;7428:3;7449:67;7513:2;7508:3;7449:67;:::i;:::-;7442:74;;7525:93;7614:3;7525:93;:::i;:::-;7643:2;7638:3;7634:12;7627:19;;7286:366;;;:::o;7658:::-;7800:3;7821:67;7885:2;7880:3;7821:67;:::i;:::-;7814:74;;7897:93;7986:3;7897:93;:::i;:::-;8015:2;8010:3;8006:12;7999:19;;7658:366;;;:::o;8030:::-;8172:3;8193:67;8257:2;8252:3;8193:67;:::i;:::-;8186:74;;8269:93;8358:3;8269:93;:::i;:::-;8387:2;8382:3;8378:12;8371:19;;8030:366;;;:::o;8402:::-;8544:3;8565:67;8629:2;8624:3;8565:67;:::i;:::-;8558:74;;8641:93;8730:3;8641:93;:::i;:::-;8759:2;8754:3;8750:12;8743:19;;8402:366;;;:::o;8774:::-;8916:3;8937:67;9001:2;8996:3;8937:67;:::i;:::-;8930:74;;9013:93;9102:3;9013:93;:::i;:::-;9131:2;9126:3;9122:12;9115:19;;8774:366;;;:::o;9146:::-;9288:3;9309:67;9373:2;9368:3;9309:67;:::i;:::-;9302:74;;9385:93;9474:3;9385:93;:::i;:::-;9503:2;9498:3;9494:12;9487:19;;9146:366;;;:::o;9518:::-;9660:3;9681:67;9745:2;9740:3;9681:67;:::i;:::-;9674:74;;9757:93;9846:3;9757:93;:::i;:::-;9875:2;9870:3;9866:12;9859:19;;9518:366;;;:::o;9890:::-;10032:3;10053:67;10117:2;10112:3;10053:67;:::i;:::-;10046:74;;10129:93;10218:3;10129:93;:::i;:::-;10247:2;10242:3;10238:12;10231:19;;9890:366;;;:::o;10262:::-;10404:3;10425:67;10489:2;10484:3;10425:67;:::i;:::-;10418:74;;10501:93;10590:3;10501:93;:::i;:::-;10619:2;10614:3;10610:12;10603:19;;10262:366;;;:::o;10634:::-;10776:3;10797:67;10861:2;10856:3;10797:67;:::i;:::-;10790:74;;10873:93;10962:3;10873:93;:::i;:::-;10991:2;10986:3;10982:12;10975:19;;10634:366;;;:::o;11006:::-;11148:3;11169:67;11233:2;11228:3;11169:67;:::i;:::-;11162:74;;11245:93;11334:3;11245:93;:::i;:::-;11363:2;11358:3;11354:12;11347:19;;11006:366;;;:::o;11378:::-;11520:3;11541:67;11605:2;11600:3;11541:67;:::i;:::-;11534:74;;11617:93;11706:3;11617:93;:::i;:::-;11735:2;11730:3;11726:12;11719:19;;11378:366;;;:::o;11750:::-;11892:3;11913:67;11977:2;11972:3;11913:67;:::i;:::-;11906:74;;11989:93;12078:3;11989:93;:::i;:::-;12107:2;12102:3;12098:12;12091:19;;11750:366;;;:::o;12122:118::-;12209:24;12227:5;12209:24;:::i;:::-;12204:3;12197:37;12122:118;;:::o;12246:112::-;12329:22;12345:5;12329:22;:::i;:::-;12324:3;12317:35;12246:112;;:::o;12364:222::-;12457:4;12495:2;12484:9;12480:18;12472:26;;12508:71;12576:1;12565:9;12561:17;12552:6;12508:71;:::i;:::-;12364:222;;;;:::o;12592:332::-;12713:4;12751:2;12740:9;12736:18;12728:26;;12764:71;12832:1;12821:9;12817:17;12808:6;12764:71;:::i;:::-;12845:72;12913:2;12902:9;12898:18;12889:6;12845:72;:::i;:::-;12592:332;;;;;:::o;12930:::-;13051:4;13089:2;13078:9;13074:18;13066:26;;13102:71;13170:1;13159:9;13155:17;13146:6;13102:71;:::i;:::-;13183:72;13251:2;13240:9;13236:18;13227:6;13183:72;:::i;:::-;12930:332;;;;;:::o;13268:807::-;13517:4;13555:3;13544:9;13540:19;13532:27;;13569:71;13637:1;13626:9;13622:17;13613:6;13569:71;:::i;:::-;13650:72;13718:2;13707:9;13703:18;13694:6;13650:72;:::i;:::-;13732:80;13808:2;13797:9;13793:18;13784:6;13732:80;:::i;:::-;13822;13898:2;13887:9;13883:18;13874:6;13822:80;:::i;:::-;13912:73;13980:3;13969:9;13965:19;13956:6;13912:73;:::i;:::-;13995;14063:3;14052:9;14048:19;14039:6;13995:73;:::i;:::-;13268:807;;;;;;;;;:::o;14081:210::-;14168:4;14206:2;14195:9;14191:18;14183:26;;14219:65;14281:1;14270:9;14266:17;14257:6;14219:65;:::i;:::-;14081:210;;;;:::o;14297:313::-;14410:4;14448:2;14437:9;14433:18;14425:26;;14497:9;14491:4;14487:20;14483:1;14472:9;14468:17;14461:47;14525:78;14598:4;14589:6;14525:78;:::i;:::-;14517:86;;14297:313;;;;:::o;14616:419::-;14782:4;14820:2;14809:9;14805:18;14797:26;;14869:9;14863:4;14859:20;14855:1;14844:9;14840:17;14833:47;14897:131;15023:4;14897:131;:::i;:::-;14889:139;;14616:419;;;:::o;15041:::-;15207:4;15245:2;15234:9;15230:18;15222:26;;15294:9;15288:4;15284:20;15280:1;15269:9;15265:17;15258:47;15322:131;15448:4;15322:131;:::i;:::-;15314:139;;15041:419;;;:::o;15466:::-;15632:4;15670:2;15659:9;15655:18;15647:26;;15719:9;15713:4;15709:20;15705:1;15694:9;15690:17;15683:47;15747:131;15873:4;15747:131;:::i;:::-;15739:139;;15466:419;;;:::o;15891:::-;16057:4;16095:2;16084:9;16080:18;16072:26;;16144:9;16138:4;16134:20;16130:1;16119:9;16115:17;16108:47;16172:131;16298:4;16172:131;:::i;:::-;16164:139;;15891:419;;;:::o;16316:::-;16482:4;16520:2;16509:9;16505:18;16497:26;;16569:9;16563:4;16559:20;16555:1;16544:9;16540:17;16533:47;16597:131;16723:4;16597:131;:::i;:::-;16589:139;;16316:419;;;:::o;16741:::-;16907:4;16945:2;16934:9;16930:18;16922:26;;16994:9;16988:4;16984:20;16980:1;16969:9;16965:17;16958:47;17022:131;17148:4;17022:131;:::i;:::-;17014:139;;16741:419;;;:::o;17166:::-;17332:4;17370:2;17359:9;17355:18;17347:26;;17419:9;17413:4;17409:20;17405:1;17394:9;17390:17;17383:47;17447:131;17573:4;17447:131;:::i;:::-;17439:139;;17166:419;;;:::o;17591:::-;17757:4;17795:2;17784:9;17780:18;17772:26;;17844:9;17838:4;17834:20;17830:1;17819:9;17815:17;17808:47;17872:131;17998:4;17872:131;:::i;:::-;17864:139;;17591:419;;;:::o;18016:::-;18182:4;18220:2;18209:9;18205:18;18197:26;;18269:9;18263:4;18259:20;18255:1;18244:9;18240:17;18233:47;18297:131;18423:4;18297:131;:::i;:::-;18289:139;;18016:419;;;:::o;18441:::-;18607:4;18645:2;18634:9;18630:18;18622:26;;18694:9;18688:4;18684:20;18680:1;18669:9;18665:17;18658:47;18722:131;18848:4;18722:131;:::i;:::-;18714:139;;18441:419;;;:::o;18866:::-;19032:4;19070:2;19059:9;19055:18;19047:26;;19119:9;19113:4;19109:20;19105:1;19094:9;19090:17;19083:47;19147:131;19273:4;19147:131;:::i;:::-;19139:139;;18866:419;;;:::o;19291:::-;19457:4;19495:2;19484:9;19480:18;19472:26;;19544:9;19538:4;19534:20;19530:1;19519:9;19515:17;19508:47;19572:131;19698:4;19572:131;:::i;:::-;19564:139;;19291:419;;;:::o;19716:::-;19882:4;19920:2;19909:9;19905:18;19897:26;;19969:9;19963:4;19959:20;19955:1;19944:9;19940:17;19933:47;19997:131;20123:4;19997:131;:::i;:::-;19989:139;;19716:419;;;:::o;20141:222::-;20234:4;20272:2;20261:9;20257:18;20249:26;;20285:71;20353:1;20342:9;20338:17;20329:6;20285:71;:::i;:::-;20141:222;;;;:::o;20369:831::-;20632:4;20670:3;20659:9;20655:19;20647:27;;20684:71;20752:1;20741:9;20737:17;20728:6;20684:71;:::i;:::-;20765:80;20841:2;20830:9;20826:18;20817:6;20765:80;:::i;:::-;20892:9;20886:4;20882:20;20877:2;20866:9;20862:18;20855:48;20920:108;21023:4;21014:6;20920:108;:::i;:::-;20912:116;;21038:72;21106:2;21095:9;21091:18;21082:6;21038:72;:::i;:::-;21120:73;21188:3;21177:9;21173:19;21164:6;21120:73;:::i;:::-;20369:831;;;;;;;;:::o;21206:214::-;21295:4;21333:2;21322:9;21318:18;21310:26;;21346:67;21410:1;21399:9;21395:17;21386:6;21346:67;:::i;:::-;21206:214;;;;:::o;21507:132::-;21574:4;21597:3;21589:11;;21627:4;21622:3;21618:14;21610:22;;21507:132;;;:::o;21645:114::-;21712:6;21746:5;21740:12;21730:22;;21645:114;;;:::o;21765:99::-;21817:6;21851:5;21845:12;21835:22;;21765:99;;;:::o;21870:113::-;21940:4;21972;21967:3;21963:14;21955:22;;21870:113;;;:::o;21989:184::-;22088:11;22122:6;22117:3;22110:19;22162:4;22157:3;22153:14;22138:29;;21989:184;;;;:::o;22179:169::-;22263:11;22297:6;22292:3;22285:19;22337:4;22332:3;22328:14;22313:29;;22179:169;;;;:::o;22354:305::-;22394:3;22413:20;22431:1;22413:20;:::i;:::-;22408:25;;22447:20;22465:1;22447:20;:::i;:::-;22442:25;;22601:1;22533:66;22529:74;22526:1;22523:81;22520:107;;;22607:18;;:::i;:::-;22520:107;22651:1;22648;22644:9;22637:16;;22354:305;;;;:::o;22665:185::-;22705:1;22722:20;22740:1;22722:20;:::i;:::-;22717:25;;22756:20;22774:1;22756:20;:::i;:::-;22751:25;;22795:1;22785:35;;22800:18;;:::i;:::-;22785:35;22842:1;22839;22835:9;22830:14;;22665:185;;;;:::o;22856:348::-;22896:7;22919:20;22937:1;22919:20;:::i;:::-;22914:25;;22953:20;22971:1;22953:20;:::i;:::-;22948:25;;23141:1;23073:66;23069:74;23066:1;23063:81;23058:1;23051:9;23044:17;23040:105;23037:131;;;23148:18;;:::i;:::-;23037:131;23196:1;23193;23189:9;23178:20;;22856:348;;;;:::o;23210:191::-;23250:4;23270:20;23288:1;23270:20;:::i;:::-;23265:25;;23304:20;23322:1;23304:20;:::i;:::-;23299:25;;23343:1;23340;23337:8;23334:34;;;23348:18;;:::i;:::-;23334:34;23393:1;23390;23386:9;23378:17;;23210:191;;;;:::o;23407:96::-;23444:7;23473:24;23491:5;23473:24;:::i;:::-;23462:35;;23407:96;;;:::o;23509:90::-;23543:7;23586:5;23579:13;23572:21;23561:32;;23509:90;;;:::o;23605:126::-;23642:7;23682:42;23675:5;23671:54;23660:65;;23605:126;;;:::o;23737:77::-;23774:7;23803:5;23792:16;;23737:77;;;:::o;23820:86::-;23855:7;23895:4;23888:5;23884:16;23873:27;;23820:86;;;:::o;23912:121::-;23970:9;24003:24;24021:5;24003:24;:::i;:::-;23990:37;;23912:121;;;:::o;24039:307::-;24107:1;24117:113;24131:6;24128:1;24125:13;24117:113;;;24216:1;24211:3;24207:11;24201:18;24197:1;24192:3;24188:11;24181:39;24153:2;24150:1;24146:10;24141:15;;24117:113;;;24248:6;24245:1;24242:13;24239:101;;;24328:1;24319:6;24314:3;24310:16;24303:27;24239:101;24088:258;24039:307;;;:::o;24352:171::-;24391:3;24414:24;24432:5;24414:24;:::i;:::-;24405:33;;24460:4;24453:5;24450:15;24447:41;;;24468:18;;:::i;:::-;24447:41;24515:1;24508:5;24504:13;24497:20;;24352:171;;;:::o;24529:180::-;24577:77;24574:1;24567:88;24674:4;24671:1;24664:15;24698:4;24695:1;24688:15;24715:180;24763:77;24760:1;24753:88;24860:4;24857:1;24850:15;24884:4;24881:1;24874:15;24901:180;24949:77;24946:1;24939:88;25046:4;25043:1;25036:15;25070:4;25067:1;25060:15;25087:180;25135:77;25132:1;25125:88;25232:4;25229:1;25222:15;25256:4;25253:1;25246:15;25396:117;25505:1;25502;25495:12;25519:102;25560:6;25611:2;25607:7;25602:2;25595:5;25591:14;25587:28;25577:38;;25519:102;;;:::o;25627:222::-;25767:34;25763:1;25755:6;25751:14;25744:58;25836:5;25831:2;25823:6;25819:15;25812:30;25627:222;:::o;25855:175::-;25995:27;25991:1;25983:6;25979:14;25972:51;25855:175;:::o;26036:229::-;26176:34;26172:1;26164:6;26160:14;26153:58;26245:12;26240:2;26232:6;26228:15;26221:37;26036:229;:::o;26271:221::-;26411:34;26407:1;26399:6;26395:14;26388:58;26480:4;26475:2;26467:6;26463:15;26456:29;26271:221;:::o;26498:177::-;26638:29;26634:1;26626:6;26622:14;26615:53;26498:177;:::o;26681:220::-;26821:34;26817:1;26809:6;26805:14;26798:58;26890:3;26885:2;26877:6;26873:15;26866:28;26681:220;:::o;26907:182::-;27047:34;27043:1;27035:6;27031:14;27024:58;26907:182;:::o;27095:228::-;27235:34;27231:1;27223:6;27219:14;27212:58;27304:11;27299:2;27291:6;27287:15;27280:36;27095:228;:::o;27329:224::-;27469:34;27465:1;27457:6;27453:14;27446:58;27538:7;27533:2;27525:6;27521:15;27514:32;27329:224;:::o;27559:176::-;27699:28;27695:1;27687:6;27683:14;27676:52;27559:176;:::o;27741:223::-;27881:34;27877:1;27869:6;27865:14;27858:58;27950:6;27945:2;27937:6;27933:15;27926:31;27741:223;:::o;27970:173::-;28110:25;28106:1;28098:6;28094:14;28087:49;27970:173;:::o;28149:163::-;28289:15;28285:1;28277:6;28273:14;28266:39;28149:163;:::o;28318:122::-;28391:24;28409:5;28391:24;:::i;:::-;28384:5;28381:35;28371:63;;28430:1;28427;28420:12;28371:63;28318:122;:::o;28446:116::-;28516:21;28531:5;28516:21;:::i;:::-;28509:5;28506:32;28496:60;;28552:1;28549;28542:12;28496:60;28446:116;:::o;28568:122::-;28641:24;28659:5;28641:24;:::i;:::-;28634:5;28631:35;28621:63;;28680:1;28677;28670:12;28621:63;28568:122;:::o

Swarm Source

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