ETH Price: $2,522.31 (+0.28%)

Token

Shibull (SBULL)
 

Overview

Max Total Supply

1,000,000,000 SBULL

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
194,040.524616084 SBULL

Value
$0.00
0xe00d1feda1e43653d1312d51edbe06105e3a81c2
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:
Shibull

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-14
*/

// SPDX-License-Identifier: Unlicensed

//Website: https://shibull.finance/
//Telegram: https://t.me/shibullportal

pragma solidity ^0.8.9;

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
    );
}

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);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

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;
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract Shibull is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Shibull";
    string private constant _symbol = "SBULL";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20;
    uint256 private Guardedblocks;
    uint256 private launchedat;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    address payable private _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(msg.sender);
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    
    uint256 public _maxTxAmount = _tTotal*100/10000;
    uint256 public _maxWalletSize = _tTotal*100/10000;
    uint256 public _swapTokensAtAmount = _tTotal*1/10000;

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

    constructor(uint256 BlocksToGuard) {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_developmentAddress] = true;

        Guardedblocks = BlocksToGuard;

        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 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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }
    function Opentrading() public onlyOwner {
        tradingOpen = true;
        launchedat = block.number;

    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if(to != uniswapV2Pair && to != uniswapRouter && to != _developmentAddress && to != address(this)) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                if(to != uniswapV2Pair) {
                    require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                }
              }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount*2)
            {
                contractTokenBalance = contractTokenBalance;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                if (block.number - launchedat <= Guardedblocks ) { 
                    _redisFee = 0;
                    _taxFee = 49;
                }
                else {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;}
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (block.number - launchedat <= Guardedblocks ) { 
                    _redisFee = 0;
                    _taxFee = 49;
                }
                else {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;}
            }
            

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function excludeFromFees(address ExcludedWallet) public onlyOwner {
        _isExcludedFromFee[ExcludedWallet] = true;
    }
    

    function manualSwap(uint256 percent) external {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapamount = contractTokenBalance*percent/100;
        swapTokensForEth(swapamount);
    }

    function toggleSwap (bool _swapEnabled) external {
        swapEnabled = _swapEnabled;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        require (_redisFeeOnBuy+_redisFeeOnSell+_taxFeeOnBuy+_taxFeeOnSell <= 40);
    }

    //Set maximum transaction
    function setMaxTxnAndWalletSize(uint256 maxTxAmount, uint256 maxWalletSize) public onlyOwner {
        require (_maxTxAmount >= _tTotal/1000 && _maxWalletSize >= _tTotal/1000,"Must be more than 0.1%");
        _maxTxAmount = _tTotal*maxTxAmount/10000;
        _maxWalletSize = _tTotal*maxWalletSize/10000;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"BlocksToGuard","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Opentrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"ExcludedWallet","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxTxnAndWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c91906200080e565b6000196200002b919062000875565b600655600060085560146009556000600a556014600b55600a54600e55600b54600f55600e54601055600f5460115533601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506127106064670de0b6b3a76400006200019b9190620008b0565b620001a7919062000911565b6017556127106064670de0b6b3a7640000620001c49190620008b0565b620001d0919062000911565b6018556127106001670de0b6b3a7640000620001ed9190620008b0565b620001f9919062000911565b6019553480156200020957600080fd5b50604051620040913803806200409183398181016040528101906200022f91906200097f565b600062000241620007a460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002f6620007a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d557600080fd5b505afa158015620003ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000410919062000a16565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047357600080fd5b505afa15801562000488573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ae919062000a16565b6040518363ffffffff1660e01b8152600401620004cd92919062000a59565b602060405180830381600087803b158015620004e857600080fd5b505af1158015620004fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000523919062000a16565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000579620007ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600c819055506200072d620007a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000794919062000a97565b60405180910390a3505062000ab4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200081b82620007d5565b91506200082883620007d5565b9250826200083b576200083a620007df565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200088282620007d5565b91506200088f83620007d5565b925082821015620008a557620008a462000846565b5b828203905092915050565b6000620008bd82620007d5565b9150620008ca83620007d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000906576200090562000846565b5b828202905092915050565b60006200091e82620007d5565b91506200092b83620007d5565b9250826200093e576200093d620007df565b5b828204905092915050565b600080fd5b6200095981620007d5565b81146200096557600080fd5b50565b60008151905062000979816200094e565b92915050565b60006020828403121562000998576200099762000949565b5b6000620009a88482850162000968565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009de82620009b1565b9050919050565b620009f081620009d1565b8114620009fc57600080fd5b50565b60008151905062000a1081620009e5565b92915050565b60006020828403121562000a2f5762000a2e62000949565b5b600062000a3f84828501620009ff565b91505092915050565b62000a5381620009d1565b82525050565b600060408201905062000a70600083018562000a48565b62000a7f602083018462000a48565b9392505050565b62000a9181620007d5565b82525050565b600060208201905062000aae600083018462000a86565b92915050565b6135cd8062000ac46000396000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a2a957bb1161006f578063a2a957bb14610457578063a9059cbb14610480578063b70143c9146104bd578063dd62ed3e146104e6578063e57f14e114610523578063f2fde38b1461054c57610156565b80637d1db4a51461036b5780638da5cb5b146103965780638f9a55c0146103c157806395d89b41146103ec5780639ba93c40146104175780639cad67411461044057610156565b8063313ce56711610108578063313ce5671461028157806349bd5a5e146102ac5780636d8aa8f8146102d75780636fc3eaec1461030057806370a0823114610317578063715018a61461035457610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632fd689e31461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610575565b60405161017d9190612682565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061273d565b6105b2565b6040516101ba9190612798565b60405180910390f35b3480156101cf57600080fd5b506101d86105d0565b6040516101e59190612812565b60405180910390f35b3480156101fa57600080fd5b506102036105f6565b604051610210919061283c565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612857565b610606565b60405161024d9190612798565b60405180910390f35b34801561026257600080fd5b5061026b6106df565b604051610278919061283c565b60405180910390f35b34801561028d57600080fd5b506102966106e5565b6040516102a391906128c6565b60405180910390f35b3480156102b857600080fd5b506102c16106ee565b6040516102ce91906128f0565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f99190612937565b610714565b005b34801561030c57600080fd5b50610315610730565b005b34801561032357600080fd5b5061033e60048036038101906103399190612964565b61073b565b60405161034b919061283c565b60405180910390f35b34801561036057600080fd5b5061036961078c565b005b34801561037757600080fd5b506103806108df565b60405161038d919061283c565b60405180910390f35b3480156103a257600080fd5b506103ab6108e5565b6040516103b891906128f0565b60405180910390f35b3480156103cd57600080fd5b506103d661090e565b6040516103e3919061283c565b60405180910390f35b3480156103f857600080fd5b50610401610914565b60405161040e9190612682565b60405180910390f35b34801561042357600080fd5b5061043e60048036038101906104399190612991565b610951565b005b34801561044c57600080fd5b50610455610ab5565b005b34801561046357600080fd5b5061047e600480360381019061047991906129d1565b610b6e565b005b34801561048c57600080fd5b506104a760048036038101906104a2919061273d565b610c5c565b6040516104b49190612798565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612a38565b610c7a565b005b3480156104f257600080fd5b5061050d60048036038101906105089190612a65565b610cb1565b60405161051a919061283c565b60405180910390f35b34801561052f57600080fd5b5061054a60048036038101906105459190612964565b610d38565b005b34801561055857600080fd5b50610573600480360381019061056e9190612964565b610e28565b005b60606040518060400160405280600781526020017f53686962756c6c00000000000000000000000000000000000000000000000000815250905090565b60006105c66105bf610fea565b8484610ff2565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006106138484846111bd565b6106d48461061f610fea565b6106cf8560405180606001604052806028815260200161357060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610685610fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afc9092919063ffffffff16565b610ff2565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806016806101000a81548160ff02191690831515021790555050565b61073947611b60565b565b6000610785600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bcc565b9050919050565b610794610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081890612af1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600581526020017f5342554c4c000000000000000000000000000000000000000000000000000000815250905090565b610959610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90612af1565b60405180910390fd5b6103e8670de0b6b3a76400006109fc9190612b6f565b60175410158015610a2457506103e8670de0b6b3a7640000610a1e9190612b6f565b60185410155b610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90612bec565b60405180910390fd5b61271082670de0b6b3a7640000610a7a9190612c0c565b610a849190612b6f565b60178190555061271081670de0b6b3a7640000610aa19190612c0c565b610aab9190612b6f565b6018819055505050565b610abd610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4190612af1565b60405180910390fd5b6001601660146101000a81548160ff02191690831515021790555043600d81905550565b610b76610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa90612af1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055506028600b54600954600a54600854610c379190612c66565b610c419190612c66565b610c4b9190612c66565b1115610c5657600080fd5b50505050565b6000610c70610c69610fea565b84846111bd565b6001905092915050565b6000610c853061073b565b9050600060648383610c979190612c0c565b610ca19190612b6f565b9050610cac81611c3a565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d40610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc490612af1565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e30610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612af1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2490612d2e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990612dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c990612e52565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111b0919061283c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561122d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122490612ee4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612f76565b60405180910390fd5b600081116112e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d790613008565b60405180910390fd5b6112e86108e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561135657506113266108e5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117a357601660149054906101000a900460ff166113e5576113776108e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db9061309a565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114915750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114eb5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561152357503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561161b5760175481111561156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156490613106565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461161a57601854816115cf8461073b565b6115d99190612c66565b10611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613198565b60405180910390fd5b5b5b60006116263061073b565b90506000601954821015905060026019546116419190612c0c565b5080801561165c5750601660159054906101000a900460ff16155b80156116b65750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116cc575060168054906101000a900460ff165b80156117225750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117785750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a05761178682611c3a565b6000479050600081111561179e5761179d81611b60565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061184a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118fd5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118fc5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561190b5760009050611aea565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119b65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119fa57600c54600d54436119cc91906131b8565b116119e6576000600e819055506031600f819055506119f9565b600854600e81905550600954600f819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ae957600c54600d5443611abb91906131b8565b11611ad5576000600e819055506031600f81905550611ae8565b600854600e81905550600954600f819055505b5b5b611af684848484611ec2565b50505050565b6000838311158290611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b9190612682565b60405180910390fd5b5060008385611b5391906131b8565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bc8573d6000803e3d6000fd5b5050565b6000600654821115611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a9061325e565b60405180910390fd5b6000611c1d611eef565b9050611c328184611f1a90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c7257611c7161327e565b5b604051908082528060200260200182016040528015611ca05781602001602082028036833780820191505090505b5090503081600081518110611cb857611cb76132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5a57600080fd5b505afa158015611d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9291906132f1565b81600181518110611da657611da56132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e0d30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ff2565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e71959493929190613417565b600060405180830381600087803b158015611e8b57600080fd5b505af1158015611e9f573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80611ed057611ecf611f64565b5b611edb848484611fa7565b80611ee957611ee8612172565b5b50505050565b6000806000611efc612186565b91509150611f138183611f1a90919063ffffffff16565b9250505090565b6000611f5c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e5565b905092915050565b6000600e54148015611f7857506000600f54145b15611f8257611fa5565b600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080611fb987612248565b95509550955095509550955061201786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ac85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120f881612358565b6121028483612415565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161215f919061283c565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b600080600060065490506000670de0b6b3a764000090506121ba670de0b6b3a7640000600654611f1a90919063ffffffff16565b8210156121d857600654670de0b6b3a76400009350935050506121e1565b81819350935050505b9091565b6000808311829061222c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122239190612682565b60405180910390fd5b506000838561223b9190612b6f565b9050809150509392505050565b60008060008060008060008060006122658a600e54600f5461244f565b9250925092506000612275611eef565b905060008060006122888e8787876124e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611afc565b905092915050565b60008082846123099190612c66565b90508381101561234e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612345906134bd565b60405180910390fd5b8091505092915050565b6000612362611eef565b90506000612379828461256e90919063ffffffff16565b90506123cd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61242a826006546122b090919063ffffffff16565b600681905550612445816007546122fa90919063ffffffff16565b6007819055505050565b60008060008061247b606461246d888a61256e90919063ffffffff16565b611f1a90919063ffffffff16565b905060006124a56064612497888b61256e90919063ffffffff16565b611f1a90919063ffffffff16565b905060006124ce826124c0858c6122b090919063ffffffff16565b6122b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124fe858961256e90919063ffffffff16565b90506000612515868961256e90919063ffffffff16565b9050600061252c878961256e90919063ffffffff16565b905060006125558261254785876122b090919063ffffffff16565b6122b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561258157600090506125e3565b6000828461258f9190612c0c565b905082848261259e9190612b6f565b146125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d59061354f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612623578082015181840152602081019050612608565b83811115612632576000848401525b50505050565b6000601f19601f8301169050919050565b6000612654826125e9565b61265e81856125f4565b935061266e818560208601612605565b61267781612638565b840191505092915050565b6000602082019050818103600083015261269c8184612649565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126d4826126a9565b9050919050565b6126e4816126c9565b81146126ef57600080fd5b50565b600081359050612701816126db565b92915050565b6000819050919050565b61271a81612707565b811461272557600080fd5b50565b60008135905061273781612711565b92915050565b60008060408385031215612754576127536126a4565b5b6000612762858286016126f2565b925050602061277385828601612728565b9150509250929050565b60008115159050919050565b6127928161277d565b82525050565b60006020820190506127ad6000830184612789565b92915050565b6000819050919050565b60006127d86127d36127ce846126a9565b6127b3565b6126a9565b9050919050565b60006127ea826127bd565b9050919050565b60006127fc826127df565b9050919050565b61280c816127f1565b82525050565b60006020820190506128276000830184612803565b92915050565b61283681612707565b82525050565b6000602082019050612851600083018461282d565b92915050565b6000806000606084860312156128705761286f6126a4565b5b600061287e868287016126f2565b935050602061288f868287016126f2565b92505060406128a086828701612728565b9150509250925092565b600060ff82169050919050565b6128c0816128aa565b82525050565b60006020820190506128db60008301846128b7565b92915050565b6128ea816126c9565b82525050565b600060208201905061290560008301846128e1565b92915050565b6129148161277d565b811461291f57600080fd5b50565b6000813590506129318161290b565b92915050565b60006020828403121561294d5761294c6126a4565b5b600061295b84828501612922565b91505092915050565b60006020828403121561297a576129796126a4565b5b6000612988848285016126f2565b91505092915050565b600080604083850312156129a8576129a76126a4565b5b60006129b685828601612728565b92505060206129c785828601612728565b9150509250929050565b600080600080608085870312156129eb576129ea6126a4565b5b60006129f987828801612728565b9450506020612a0a87828801612728565b9350506040612a1b87828801612728565b9250506060612a2c87828801612728565b91505092959194509250565b600060208284031215612a4e57612a4d6126a4565b5b6000612a5c84828501612728565b91505092915050565b60008060408385031215612a7c57612a7b6126a4565b5b6000612a8a858286016126f2565b9250506020612a9b858286016126f2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612adb6020836125f4565b9150612ae682612aa5565b602082019050919050565b60006020820190508181036000830152612b0a81612ace565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b7a82612707565b9150612b8583612707565b925082612b9557612b94612b11565b5b828204905092915050565b7f4d757374206265206d6f7265207468616e20302e312500000000000000000000600082015250565b6000612bd66016836125f4565b9150612be182612ba0565b602082019050919050565b60006020820190508181036000830152612c0581612bc9565b9050919050565b6000612c1782612707565b9150612c2283612707565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c5b57612c5a612b40565b5b828202905092915050565b6000612c7182612707565b9150612c7c83612707565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cb157612cb0612b40565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d186026836125f4565b9150612d2382612cbc565b604082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612daa6024836125f4565b9150612db582612d4e565b604082019050919050565b60006020820190508181036000830152612dd981612d9d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3c6022836125f4565b9150612e4782612de0565b604082019050919050565b60006020820190508181036000830152612e6b81612e2f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ece6025836125f4565b9150612ed982612e72565b604082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f606023836125f4565b9150612f6b82612f04565b604082019050919050565b60006020820190508181036000830152612f8f81612f53565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ff26029836125f4565b9150612ffd82612f96565b604082019050919050565b6000602082019050818103600083015261302181612fe5565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613084603f836125f4565b915061308f82613028565b604082019050919050565b600060208201905081810360008301526130b381613077565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006130f0601c836125f4565b91506130fb826130ba565b602082019050919050565b6000602082019050818103600083015261311f816130e3565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006131826023836125f4565b915061318d82613126565b604082019050919050565b600060208201905081810360008301526131b181613175565b9050919050565b60006131c382612707565b91506131ce83612707565b9250828210156131e1576131e0612b40565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613248602a836125f4565b9150613253826131ec565b604082019050919050565b600060208201905081810360008301526132778161323b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506132eb816126db565b92915050565b600060208284031215613307576133066126a4565b5b6000613315848285016132dc565b91505092915050565b6000819050919050565b600061334361333e6133398461331e565b6127b3565b612707565b9050919050565b61335381613328565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61338e816126c9565b82525050565b60006133a08383613385565b60208301905092915050565b6000602082019050919050565b60006133c482613359565b6133ce8185613364565b93506133d983613375565b8060005b8381101561340a5781516133f18882613394565b97506133fc836133ac565b9250506001810190506133dd565b5085935050505092915050565b600060a08201905061342c600083018861282d565b613439602083018761334a565b818103604083015261344b81866133b9565b905061345a60608301856128e1565b613467608083018461282d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134a7601b836125f4565b91506134b282613471565b602082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135396021836125f4565b9150613544826134dd565b604082019050919050565b600060208201905081810360008301526135688161352c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e4098ddd9c909e4532dba62530469ffcea2ef486e0eb530e786948403a3be9664736f6c634300080900330000000000000000000000000000000000000000000000000000000000000004

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a2a957bb1161006f578063a2a957bb14610457578063a9059cbb14610480578063b70143c9146104bd578063dd62ed3e146104e6578063e57f14e114610523578063f2fde38b1461054c57610156565b80637d1db4a51461036b5780638da5cb5b146103965780638f9a55c0146103c157806395d89b41146103ec5780639ba93c40146104175780639cad67411461044057610156565b8063313ce56711610108578063313ce5671461028157806349bd5a5e146102ac5780636d8aa8f8146102d75780636fc3eaec1461030057806370a0823114610317578063715018a61461035457610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632fd689e31461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610575565b60405161017d9190612682565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061273d565b6105b2565b6040516101ba9190612798565b60405180910390f35b3480156101cf57600080fd5b506101d86105d0565b6040516101e59190612812565b60405180910390f35b3480156101fa57600080fd5b506102036105f6565b604051610210919061283c565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612857565b610606565b60405161024d9190612798565b60405180910390f35b34801561026257600080fd5b5061026b6106df565b604051610278919061283c565b60405180910390f35b34801561028d57600080fd5b506102966106e5565b6040516102a391906128c6565b60405180910390f35b3480156102b857600080fd5b506102c16106ee565b6040516102ce91906128f0565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f99190612937565b610714565b005b34801561030c57600080fd5b50610315610730565b005b34801561032357600080fd5b5061033e60048036038101906103399190612964565b61073b565b60405161034b919061283c565b60405180910390f35b34801561036057600080fd5b5061036961078c565b005b34801561037757600080fd5b506103806108df565b60405161038d919061283c565b60405180910390f35b3480156103a257600080fd5b506103ab6108e5565b6040516103b891906128f0565b60405180910390f35b3480156103cd57600080fd5b506103d661090e565b6040516103e3919061283c565b60405180910390f35b3480156103f857600080fd5b50610401610914565b60405161040e9190612682565b60405180910390f35b34801561042357600080fd5b5061043e60048036038101906104399190612991565b610951565b005b34801561044c57600080fd5b50610455610ab5565b005b34801561046357600080fd5b5061047e600480360381019061047991906129d1565b610b6e565b005b34801561048c57600080fd5b506104a760048036038101906104a2919061273d565b610c5c565b6040516104b49190612798565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612a38565b610c7a565b005b3480156104f257600080fd5b5061050d60048036038101906105089190612a65565b610cb1565b60405161051a919061283c565b60405180910390f35b34801561052f57600080fd5b5061054a60048036038101906105459190612964565b610d38565b005b34801561055857600080fd5b50610573600480360381019061056e9190612964565b610e28565b005b60606040518060400160405280600781526020017f53686962756c6c00000000000000000000000000000000000000000000000000815250905090565b60006105c66105bf610fea565b8484610ff2565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006106138484846111bd565b6106d48461061f610fea565b6106cf8560405180606001604052806028815260200161357060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610685610fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afc9092919063ffffffff16565b610ff2565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806016806101000a81548160ff02191690831515021790555050565b61073947611b60565b565b6000610785600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bcc565b9050919050565b610794610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081890612af1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600581526020017f5342554c4c000000000000000000000000000000000000000000000000000000815250905090565b610959610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90612af1565b60405180910390fd5b6103e8670de0b6b3a76400006109fc9190612b6f565b60175410158015610a2457506103e8670de0b6b3a7640000610a1e9190612b6f565b60185410155b610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90612bec565b60405180910390fd5b61271082670de0b6b3a7640000610a7a9190612c0c565b610a849190612b6f565b60178190555061271081670de0b6b3a7640000610aa19190612c0c565b610aab9190612b6f565b6018819055505050565b610abd610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4190612af1565b60405180910390fd5b6001601660146101000a81548160ff02191690831515021790555043600d81905550565b610b76610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa90612af1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055506028600b54600954600a54600854610c379190612c66565b610c419190612c66565b610c4b9190612c66565b1115610c5657600080fd5b50505050565b6000610c70610c69610fea565b84846111bd565b6001905092915050565b6000610c853061073b565b9050600060648383610c979190612c0c565b610ca19190612b6f565b9050610cac81611c3a565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d40610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc490612af1565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e30610fea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612af1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2490612d2e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990612dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c990612e52565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111b0919061283c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561122d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122490612ee4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612f76565b60405180910390fd5b600081116112e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d790613008565b60405180910390fd5b6112e86108e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561135657506113266108e5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117a357601660149054906101000a900460ff166113e5576113776108e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db9061309a565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114915750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114eb5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561152357503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561161b5760175481111561156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156490613106565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461161a57601854816115cf8461073b565b6115d99190612c66565b10611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613198565b60405180910390fd5b5b5b60006116263061073b565b90506000601954821015905060026019546116419190612c0c565b5080801561165c5750601660159054906101000a900460ff16155b80156116b65750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116cc575060168054906101000a900460ff165b80156117225750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117785750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a05761178682611c3a565b6000479050600081111561179e5761179d81611b60565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061184a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118fd5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118fc5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561190b5760009050611aea565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119b65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119fa57600c54600d54436119cc91906131b8565b116119e6576000600e819055506031600f819055506119f9565b600854600e81905550600954600f819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ae957600c54600d5443611abb91906131b8565b11611ad5576000600e819055506031600f81905550611ae8565b600854600e81905550600954600f819055505b5b5b611af684848484611ec2565b50505050565b6000838311158290611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b9190612682565b60405180910390fd5b5060008385611b5391906131b8565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bc8573d6000803e3d6000fd5b5050565b6000600654821115611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a9061325e565b60405180910390fd5b6000611c1d611eef565b9050611c328184611f1a90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c7257611c7161327e565b5b604051908082528060200260200182016040528015611ca05781602001602082028036833780820191505090505b5090503081600081518110611cb857611cb76132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5a57600080fd5b505afa158015611d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9291906132f1565b81600181518110611da657611da56132ad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e0d30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ff2565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e71959493929190613417565b600060405180830381600087803b158015611e8b57600080fd5b505af1158015611e9f573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80611ed057611ecf611f64565b5b611edb848484611fa7565b80611ee957611ee8612172565b5b50505050565b6000806000611efc612186565b91509150611f138183611f1a90919063ffffffff16565b9250505090565b6000611f5c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e5565b905092915050565b6000600e54148015611f7857506000600f54145b15611f8257611fa5565b600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080611fb987612248565b95509550955095509550955061201786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ac85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120f881612358565b6121028483612415565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161215f919061283c565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b600080600060065490506000670de0b6b3a764000090506121ba670de0b6b3a7640000600654611f1a90919063ffffffff16565b8210156121d857600654670de0b6b3a76400009350935050506121e1565b81819350935050505b9091565b6000808311829061222c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122239190612682565b60405180910390fd5b506000838561223b9190612b6f565b9050809150509392505050565b60008060008060008060008060006122658a600e54600f5461244f565b9250925092506000612275611eef565b905060008060006122888e8787876124e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611afc565b905092915050565b60008082846123099190612c66565b90508381101561234e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612345906134bd565b60405180910390fd5b8091505092915050565b6000612362611eef565b90506000612379828461256e90919063ffffffff16565b90506123cd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61242a826006546122b090919063ffffffff16565b600681905550612445816007546122fa90919063ffffffff16565b6007819055505050565b60008060008061247b606461246d888a61256e90919063ffffffff16565b611f1a90919063ffffffff16565b905060006124a56064612497888b61256e90919063ffffffff16565b611f1a90919063ffffffff16565b905060006124ce826124c0858c6122b090919063ffffffff16565b6122b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124fe858961256e90919063ffffffff16565b90506000612515868961256e90919063ffffffff16565b9050600061252c878961256e90919063ffffffff16565b905060006125558261254785876122b090919063ffffffff16565b6122b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561258157600090506125e3565b6000828461258f9190612c0c565b905082848261259e9190612b6f565b146125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d59061354f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612623578082015181840152602081019050612608565b83811115612632576000848401525b50505050565b6000601f19601f8301169050919050565b6000612654826125e9565b61265e81856125f4565b935061266e818560208601612605565b61267781612638565b840191505092915050565b6000602082019050818103600083015261269c8184612649565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126d4826126a9565b9050919050565b6126e4816126c9565b81146126ef57600080fd5b50565b600081359050612701816126db565b92915050565b6000819050919050565b61271a81612707565b811461272557600080fd5b50565b60008135905061273781612711565b92915050565b60008060408385031215612754576127536126a4565b5b6000612762858286016126f2565b925050602061277385828601612728565b9150509250929050565b60008115159050919050565b6127928161277d565b82525050565b60006020820190506127ad6000830184612789565b92915050565b6000819050919050565b60006127d86127d36127ce846126a9565b6127b3565b6126a9565b9050919050565b60006127ea826127bd565b9050919050565b60006127fc826127df565b9050919050565b61280c816127f1565b82525050565b60006020820190506128276000830184612803565b92915050565b61283681612707565b82525050565b6000602082019050612851600083018461282d565b92915050565b6000806000606084860312156128705761286f6126a4565b5b600061287e868287016126f2565b935050602061288f868287016126f2565b92505060406128a086828701612728565b9150509250925092565b600060ff82169050919050565b6128c0816128aa565b82525050565b60006020820190506128db60008301846128b7565b92915050565b6128ea816126c9565b82525050565b600060208201905061290560008301846128e1565b92915050565b6129148161277d565b811461291f57600080fd5b50565b6000813590506129318161290b565b92915050565b60006020828403121561294d5761294c6126a4565b5b600061295b84828501612922565b91505092915050565b60006020828403121561297a576129796126a4565b5b6000612988848285016126f2565b91505092915050565b600080604083850312156129a8576129a76126a4565b5b60006129b685828601612728565b92505060206129c785828601612728565b9150509250929050565b600080600080608085870312156129eb576129ea6126a4565b5b60006129f987828801612728565b9450506020612a0a87828801612728565b9350506040612a1b87828801612728565b9250506060612a2c87828801612728565b91505092959194509250565b600060208284031215612a4e57612a4d6126a4565b5b6000612a5c84828501612728565b91505092915050565b60008060408385031215612a7c57612a7b6126a4565b5b6000612a8a858286016126f2565b9250506020612a9b858286016126f2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612adb6020836125f4565b9150612ae682612aa5565b602082019050919050565b60006020820190508181036000830152612b0a81612ace565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b7a82612707565b9150612b8583612707565b925082612b9557612b94612b11565b5b828204905092915050565b7f4d757374206265206d6f7265207468616e20302e312500000000000000000000600082015250565b6000612bd66016836125f4565b9150612be182612ba0565b602082019050919050565b60006020820190508181036000830152612c0581612bc9565b9050919050565b6000612c1782612707565b9150612c2283612707565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c5b57612c5a612b40565b5b828202905092915050565b6000612c7182612707565b9150612c7c83612707565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cb157612cb0612b40565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d186026836125f4565b9150612d2382612cbc565b604082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612daa6024836125f4565b9150612db582612d4e565b604082019050919050565b60006020820190508181036000830152612dd981612d9d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3c6022836125f4565b9150612e4782612de0565b604082019050919050565b60006020820190508181036000830152612e6b81612e2f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ece6025836125f4565b9150612ed982612e72565b604082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f606023836125f4565b9150612f6b82612f04565b604082019050919050565b60006020820190508181036000830152612f8f81612f53565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ff26029836125f4565b9150612ffd82612f96565b604082019050919050565b6000602082019050818103600083015261302181612fe5565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613084603f836125f4565b915061308f82613028565b604082019050919050565b600060208201905081810360008301526130b381613077565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006130f0601c836125f4565b91506130fb826130ba565b602082019050919050565b6000602082019050818103600083015261311f816130e3565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006131826023836125f4565b915061318d82613126565b604082019050919050565b600060208201905081810360008301526131b181613175565b9050919050565b60006131c382612707565b91506131ce83612707565b9250828210156131e1576131e0612b40565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613248602a836125f4565b9150613253826131ec565b604082019050919050565b600060208201905081810360008301526132778161323b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506132eb816126db565b92915050565b600060208284031215613307576133066126a4565b5b6000613315848285016132dc565b91505092915050565b6000819050919050565b600061334361333e6133398461331e565b6127b3565b612707565b9050919050565b61335381613328565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61338e816126c9565b82525050565b60006133a08383613385565b60208301905092915050565b6000602082019050919050565b60006133c482613359565b6133ce8185613364565b93506133d983613375565b8060005b8381101561340a5781516133f18882613394565b97506133fc836133ac565b9250506001810190506133dd565b5085935050505092915050565b600060a08201905061342c600083018861282d565b613439602083018761334a565b818103604083015261344b81866133b9565b905061345a60608301856128e1565b613467608083018461282d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134a7601b836125f4565b91506134b282613471565b602082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135396021836125f4565b9150613544826134dd565b604082019050919050565b600060208201905081810360008301526135688161352c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e4098ddd9c909e4532dba62530469ffcea2ef486e0eb530e786948403a3be9664736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000000004

-----Decoded View---------------
Arg [0] : BlocksToGuard (uint256): 4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000004


Deployed Bytecode Sourcemap

4159:13418:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6730:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7655:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5499:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7007:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7856:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5813:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6916:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5547:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13343:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12879:85;;;;;;;;;;;;;:::i;:::-;;7110:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1646:148;;;;;;;;;;;;;:::i;:::-;;5703:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1432:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5757:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6821:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17257:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8866:115;;;;;;;;;;;;;:::i;:::-;;16843:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7256:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13112:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7463:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12972:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1802:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6730:83;6767:13;6800:5;;;;;;;;;;;;;;;;;6793:12;;6730:83;:::o;7655:193::-;7757:4;7779:39;7788:12;:10;:12::i;:::-;7802:7;7811:6;7779:8;:39::i;:::-;7836:4;7829:11;;7655:193;;;;:::o;5499:41::-;;;;;;;;;;;;;:::o;7007:95::-;7060:7;4705:18;7080:14;;7007:95;:::o;7856:446::-;7988:4;8005:36;8015:6;8023:9;8034:6;8005:9;:36::i;:::-;8052:220;8075:6;8096:12;:10;:12::i;:::-;8123:138;8179:6;8123:138;;;;;;;;;;;;;;;;;:11;:19;8135:6;8123:19;;;;;;;;;;;;;;;:33;8143:12;:10;:12::i;:::-;8123:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8052:8;:220::i;:::-;8290:4;8283:11;;7856:446;;;;;:::o;5813:52::-;;;;:::o;6916:83::-;6957:5;4379:1;6975:16;;6916:83;:::o;5547:28::-;;;;;;;;;;;;;:::o;13343:94::-;13417:12;13403:11;;:26;;;;;;;;;;;;;;;;;;13343:94;:::o;12879:85::-;12921:35;12934:21;12921:12;:35::i;:::-;12879:85::o;7110:138::-;7176:7;7203:37;7223:7;:16;7231:7;7223:16;;;;;;;;;;;;;;;;7203:19;:37::i;:::-;7196:44;;7110:138;;;:::o;1646:148::-;1569:12;:10;:12::i;:::-;1559:22;;:6;;;;;;;;;;:22;;;1551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1753:1:::1;1716:40;;1737:6;::::0;::::1;;;;;;;;1716:40;;;;;;;;;;;;1784:1;1767:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1646:148::o:0;5703:47::-;;;;:::o;1432:79::-;1470:7;1497:6;;;;;;;;;;;1490:13;;1432:79;:::o;5757:49::-;;;;:::o;6821:87::-;6860:13;6893:7;;;;;;;;;;;;;;;;;6886:14;;6821:87;:::o;17257:315::-;1569:12;:10;:12::i;:::-;1559:22;;:6;;;;;;;;;;:22;;;1551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17394:4:::1;4705:18;17386:12;;;;:::i;:::-;17370;;:28;;:62;;;;;17428:4;4705:18;17420:12;;;;:::i;:::-;17402:14;;:30;;17370:62;17361:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;17504:5;17492:11;4705:18;17484:19;;;;:::i;:::-;:25;;;;:::i;:::-;17469:12;:40;;;;17559:5;17545:13;4705:18;17537:21;;;;:::i;:::-;:27;;;;:::i;:::-;17520:14;:44;;;;17257:315:::0;;:::o;8866:115::-;1569:12;:10;:12::i;:::-;1559:22;;:6;;;;;;;;;;:22;;;1551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8931:4:::1;8917:11;;:18;;;;;;;;;;;;;;;;;;8959:12;8946:10;:25;;;;8866:115::o:0;16843:375::-;1569:12;:10;:12::i;:::-;1559:22;;:6;;;;;;;;;;:22;;;1551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16994:13:::1;16977:14;:30;;;;17036:14;17018:15;:32;;;;17076:11;17061:12;:26;;;;17114:12;17098:13;:28;;;;17207:2;17190:13;;17177:12;;17161:15;;17146:14;;:30;;;;:::i;:::-;:43;;;;:::i;:::-;:57;;;;:::i;:::-;:63;;17137:73;;;::::0;::::1;;16843:375:::0;;;;:::o;7256:199::-;7361:4;7383:42;7393:12;:10;:12::i;:::-;7407:9;7418:6;7383:9;:42::i;:::-;7443:4;7436:11;;7256:199;;;;:::o;13112:223::-;13169:28;13200:24;13218:4;13200:9;:24::i;:::-;13169:55;;13235:18;13285:3;13277:7;13256:20;:28;;;;:::i;:::-;:32;;;;:::i;:::-;13235:53;;13299:28;13316:10;13299:16;:28::i;:::-;13158:177;;13112:223;:::o;7463:184::-;7580:7;7612:11;:18;7624:5;7612:18;;;;;;;;;;;;;;;:27;7631:7;7612:27;;;;;;;;;;;;;;;;7605:34;;7463:184;;;;:::o;12972:126::-;1569:12;:10;:12::i;:::-;1559:22;;:6;;;;;;;;;;:22;;;1551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13086:4:::1;13049:18;:34;13068:14;13049:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12972:126:::0;:::o;1802:244::-;1569:12;:10;:12::i;:::-;1559:22;;:6;;;;;;;;;;:22;;;1551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1911:1:::1;1891:22;;:8;:22;;;;1883:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2001:8;1972:38;;1993:6;::::0;::::1;;;;;;;;1972:38;;;;;;;;;;;;2030:8;2021:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1802:244:::0;:::o;181:98::-;234:7;261:10;254:17;;181:98;:::o;9114:369::-;9258:1;9241:19;;:5;:19;;;;9233:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9339:1;9320:21;;:7;:21;;;;9312:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9421:6;9391:11;:18;9403:5;9391:18;;;;;;;;;;;;;;;:27;9410:7;9391:27;;;;;;;;;;;;;;;:36;;;;9459:7;9443:32;;9452:5;9443:32;;;9468:6;9443:32;;;;;;:::i;:::-;;;;;;;;9114:369;;;:::o;9491:2782::-;9629:1;9613:18;;:4;:18;;;;9605:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9706:1;9692:16;;:2;:16;;;;9684:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9776:1;9767:6;:10;9759:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9848:7;:5;:7::i;:::-;9840:15;;:4;:15;;;;:32;;;;;9865:7;:5;:7::i;:::-;9859:13;;:2;:13;;;;9840:32;9836:1331;;;9929:11;;;;;;;;;;;9924:144;;9977:7;:5;:7::i;:::-;9969:15;;:4;:15;;;9961:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9924:144;10093:13;;;;;;;;;;;10087:19;;:2;:19;;;;:42;;;;;10116:13;;;;;;;;;;;10110:19;;:2;:19;;;;10087:42;:71;;;;;10139:19;;;;;;;;;;;10133:25;;:2;:25;;;;10087:71;:94;;;;;10176:4;10162:19;;:2;:19;;;;10087:94;10084:371;;;10220:12;;10210:6;:22;;10202:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10293:13;;;;;;;;;;;10287:19;;:2;:19;;;10284:154;;10364:14;;10355:6;10339:13;10349:2;10339:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10331:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10284:154;10084:371;10471:28;10502:24;10520:4;10502:9;:24::i;:::-;10471:55;;10541:12;10580:19;;10556:20;:43;;10541:58;;10663:1;10643:19;;:21;;;;:::i;:::-;10619:45;10777:7;:18;;;;;10789:6;;;;;;;;;;;10788:7;10777:18;:43;;;;;10807:13;;;;;;;;;;;10799:21;;:4;:21;;;;10777:43;:58;;;;;10824:11;;;;;;;;;;10777:58;:87;;;;;10840:18;:24;10859:4;10840:24;;;;;;;;;;;;;;;;;;;;;;;;;10839:25;10777:87;:114;;;;;10869:18;:22;10888:2;10869:22;;;;;;;;;;;;;;;;;;;;;;;;;10868:23;10777:114;10773:383;;;10912:38;10929:20;10912:16;:38::i;:::-;10969:26;10998:21;10969:50;;11063:1;11042:18;:22;11038:103;;;11089:32;11102:18;11089:12;:32::i;:::-;11038:103;10893:263;10773:383;9874:1293;;9836:1331;11179:12;11194:4;11179:19;;11243:18;:24;11262:4;11243:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11271:18;:22;11290:2;11271:22;;;;;;;;;;;;;;;;;;;;;;;;;11243:50;11242:102;;;;11307:13;;;;;;;;;;;11299:21;;:4;:21;;;;:44;;;;;11330:13;;;;;;;;;;;11324:19;;:2;:19;;;;11299:44;11242:102;11238:974;;;11371:5;11361:15;;11238:974;;;11454:13;;;;;;;;;;;11446:21;;:4;:21;;;:55;;;;;11485:15;;;;;;;;;;;11471:30;;:2;:30;;;;11446:55;11443:346;;;11555:13;;11541:10;;11526:12;:25;;;;:::i;:::-;:42;11522:252;;11607:1;11595:9;:13;;;;11641:2;11631:7;:12;;;;11522:252;;;11717:14;;11705:9;:26;;;;11760:12;;11750:7;:22;;;;11522:252;11443:346;11848:13;;;;;;;;;;;11842:19;;:2;:19;;;:55;;;;;11881:15;;;;;;;;;;;11865:32;;:4;:32;;;;11842:55;11838:347;;;11951:13;;11937:10;;11922:12;:25;;;;:::i;:::-;:42;11918:252;;12003:1;11991:9;:13;;;;12037:2;12027:7;:12;;;;11918:252;;;12113:14;;12101:9;:26;;;;12156:12;;12146:7;:22;;;;11918:252;11838:347;11238:974;12224:41;12239:4;12245:2;12249:6;12257:7;12224:14;:41::i;:::-;9594:2679;9491:2782;;;:::o;2410:224::-;2530:7;2563:1;2558;:6;;2566:12;2550:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2590:9;2606:1;2602;:5;;;;:::i;:::-;2590:17;;2625:1;2618:8;;;2410:224;;;;;:::o;12772:99::-;12829:17;;;;;;;;;;;:26;;:34;12856:6;12829:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12772:99;:::o;8310:323::-;8405:7;8463;;8452;:18;;8430:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8551:19;8573:10;:8;:10::i;:::-;8551:32;;8601:24;8613:11;8601:7;:11;;:24;;;;:::i;:::-;8594:31;;;8310:323;;;:::o;12281:483::-;5968:4;5959:6;;:13;;;;;;;;;;;;;;;;;;12359:21:::1;12397:1;12383:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12359:40;;12428:4;12410;12415:1;12410:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12454:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12444:4;12449:1;12444:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12487:62;12504:4;12519:15;;;;;;;;;;;12537:11;12487:8;:62::i;:::-;12560:15;;;;;;;;;;;:66;;;12641:11;12667:1;12683:4;12710;12730:15;12560:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12348:416;6004:5:::0;5995:6;;:14;;;;;;;;;;;;;;;;;;12281:483;:::o;13445:282::-;13601:7;13596:28;;13610:14;:12;:14::i;:::-;13596:28;13635:44;13653:6;13661:9;13672:6;13635:17;:44::i;:::-;13695:7;13690:29;;13704:15;:13;:15::i;:::-;13690:29;13445:282;;;;:::o;16406:164::-;16448:7;16469:15;16486;16505:19;:17;:19::i;:::-;16468:56;;;;16542:20;16554:7;16542;:11;;:20;;;;:::i;:::-;16535:27;;;;16406:164;:::o;2896:132::-;2954:7;2981:39;2985:1;2988;2981:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2974:46;;2896:132;;;;:::o;8641:219::-;8701:1;8688:9;;:14;:30;;;;;8717:1;8706:7;;:12;8688:30;8684:43;;;8720:7;;8684:43;8759:9;;8739:17;:29;;;;8797:7;;8779:15;:25;;;;8829:1;8817:9;:13;;;;8851:1;8841:7;:11;;;;8641:219;:::o;13735:610::-;13882:15;13912:23;13950:12;13977:23;14015:12;14042:13;14069:19;14080:7;14069:10;:19::i;:::-;13867:221;;;;;;;;;;;;14117:28;14137:7;14117;:15;14125:6;14117:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14099:7;:15;14107:6;14099:15;;;;;;;;;;;;;;;:46;;;;14177:39;14200:15;14177:7;:18;14185:9;14177:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14156:7;:18;14164:9;14156:18;;;;;;;;;;;;;;;:60;;;;14227:16;14237:5;14227:9;:16::i;:::-;14254:23;14266:4;14272;14254:11;:23::i;:::-;14310:9;14293:44;;14302:6;14293:44;;;14321:15;14293:44;;;;;;:::i;:::-;;;;;;;;13856:489;;;;;;13735:610;;;:::o;8989:117::-;9045:17;;9033:9;:29;;;;9083:15;;9073:7;:25;;;;8989:117::o;16578:257::-;16629:7;16638;16658:15;16676:7;;16658:25;;16694:15;4705:18;16694:25;;16744:20;4705:18;16744:7;;:11;;:20;;;;:::i;:::-;16734:7;:30;16730:61;;;16774:7;;4705:18;16766:25;;;;;;;;16730:61;16810:7;16819;16802:25;;;;;;16578:257;;;:::o;3036:223::-;3156:7;3188:1;3184;:5;3191:12;3176:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3215:9;3231:1;3227;:5;;;;:::i;:::-;3215:17;;3250:1;3243:8;;;3036:223;;;;;:::o;14764:615::-;14864:7;14886;14908;14930;14952;14974;15010:23;15035:12;15049:13;15079:40;15091:7;15100:9;;15111:7;;15079:11;:40::i;:::-;15009:110;;;;;;15130:19;15152:10;:8;:10::i;:::-;15130:32;;15174:15;15191:23;15216:12;15245:46;15257:7;15266:4;15272:5;15279:11;15245;:46::i;:::-;15173:118;;;;;;15310:7;15319:15;15336:4;15342:15;15359:4;15365:5;15302:69;;;;;;;;;;;;;;;;;;;14764:615;;;;;;;:::o;2266:136::-;2324:7;2351:43;2355:1;2358;2351:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2344:50;;2266:136;;;;:::o;2079:179::-;2137:7;2157:9;2173:1;2169;:5;;;;:::i;:::-;2157:17;;2198:1;2193;:6;;2185:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2249:1;2242:8;;;2079:179;;;;:::o;14353:211::-;14406:19;14428:10;:8;:10::i;:::-;14406:32;;14449:13;14465:22;14475:11;14465:5;:9;;:22;;;;:::i;:::-;14449:38;;14523:33;14550:5;14523:7;:22;14539:4;14523:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14498:7;:22;14514:4;14498:22;;;;;;;;;;;;;;;:58;;;;14395:169;;14353:211;:::o;14572:147::-;14650:17;14662:4;14650:7;;:11;;:17;;;;:::i;:::-;14640:7;:27;;;;14691:20;14706:4;14691:10;;:14;;:20;;;;:::i;:::-;14678:10;:33;;;;14572:147;;:::o;15387:469::-;15556:7;15578;15600;15635:12;15650:30;15676:3;15650:21;15662:8;15650:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15635:45;;15691:13;15707:28;15731:3;15707:19;15719:6;15707:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15691:44;;15746:23;15772:28;15794:5;15772:17;15784:4;15772:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15746:54;;15819:15;15836:4;15842:5;15811:37;;;;;;;;;15387:469;;;;;;;:::o;15864:534::-;16058:7;16080;16102;16137:15;16155:24;16167:11;16155:7;:11;;:24;;;;:::i;:::-;16137:42;;16190:12;16205:21;16214:11;16205:4;:8;;:21;;;;:::i;:::-;16190:36;;16237:13;16253:22;16263:11;16253:5;:9;;:22;;;;:::i;:::-;16237:38;;16286:23;16312:28;16334:5;16312:17;16324:4;16312:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16286:54;;16359:7;16368:15;16385:4;16351:39;;;;;;;;;;15864:534;;;;;;;;:::o;2642:246::-;2700:7;2729:1;2724;:6;2720:47;;;2754:1;2747:8;;;;2720:47;2777:9;2793:1;2789;:5;;;;:::i;:::-;2777:17;;2822:1;2817;2813;:5;;;;:::i;:::-;:10;2805:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2879:1;2872:8;;;2642:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:116::-;6296:21;6311:5;6296:21;:::i;:::-;6289:5;6286:32;6276:60;;6332:1;6329;6322:12;6276:60;6226:116;:::o;6348:133::-;6391:5;6429:6;6416:20;6407:29;;6445:30;6469:5;6445:30;:::i;:::-;6348:133;;;;:::o;6487:323::-;6543:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:119;;;6598:79;;:::i;:::-;6560:119;6718:1;6743:50;6785:7;6776:6;6765:9;6761:22;6743:50;:::i;:::-;6733:60;;6689:114;6487:323;;;;:::o;6816:329::-;6875:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:119;;;6930:79;;:::i;:::-;6892:119;7050:1;7075:53;7120:7;7111:6;7100:9;7096:22;7075:53;:::i;:::-;7065:63;;7021:117;6816:329;;;;:::o;7151:474::-;7219:6;7227;7276:2;7264:9;7255:7;7251:23;7247:32;7244:119;;;7282:79;;:::i;:::-;7244:119;7402:1;7427:53;7472:7;7463:6;7452:9;7448:22;7427:53;:::i;:::-;7417:63;;7373:117;7529:2;7555:53;7600:7;7591:6;7580:9;7576:22;7555:53;:::i;:::-;7545:63;;7500:118;7151:474;;;;;:::o;7631:765::-;7717:6;7725;7733;7741;7790:3;7778:9;7769:7;7765:23;7761:33;7758:120;;;7797:79;;:::i;:::-;7758:120;7917:1;7942:53;7987:7;7978:6;7967:9;7963:22;7942:53;:::i;:::-;7932:63;;7888:117;8044:2;8070:53;8115:7;8106:6;8095:9;8091:22;8070:53;:::i;:::-;8060:63;;8015:118;8172:2;8198:53;8243:7;8234:6;8223:9;8219:22;8198:53;:::i;:::-;8188:63;;8143:118;8300:2;8326:53;8371:7;8362:6;8351:9;8347:22;8326:53;:::i;:::-;8316:63;;8271:118;7631:765;;;;;;;:::o;8402:329::-;8461:6;8510:2;8498:9;8489:7;8485:23;8481:32;8478:119;;;8516:79;;:::i;:::-;8478:119;8636:1;8661:53;8706:7;8697:6;8686:9;8682:22;8661:53;:::i;:::-;8651:63;;8607:117;8402:329;;;;:::o;8737:474::-;8805:6;8813;8862:2;8850:9;8841:7;8837:23;8833:32;8830:119;;;8868:79;;:::i;:::-;8830:119;8988:1;9013:53;9058:7;9049:6;9038:9;9034:22;9013:53;:::i;:::-;9003:63;;8959:117;9115:2;9141:53;9186:7;9177:6;9166:9;9162:22;9141:53;:::i;:::-;9131:63;;9086:118;8737:474;;;;;:::o;9217:182::-;9357:34;9353:1;9345:6;9341:14;9334:58;9217:182;:::o;9405:366::-;9547:3;9568:67;9632:2;9627:3;9568:67;:::i;:::-;9561:74;;9644:93;9733:3;9644:93;:::i;:::-;9762:2;9757:3;9753:12;9746:19;;9405:366;;;:::o;9777:419::-;9943:4;9981:2;9970:9;9966:18;9958:26;;10030:9;10024:4;10020:20;10016:1;10005:9;10001:17;9994:47;10058:131;10184:4;10058:131;:::i;:::-;10050:139;;9777:419;;;:::o;10202:180::-;10250:77;10247:1;10240:88;10347:4;10344:1;10337:15;10371:4;10368:1;10361:15;10388:180;10436:77;10433:1;10426:88;10533:4;10530:1;10523:15;10557:4;10554:1;10547:15;10574:185;10614:1;10631:20;10649:1;10631:20;:::i;:::-;10626:25;;10665:20;10683:1;10665:20;:::i;:::-;10660:25;;10704:1;10694:35;;10709:18;;:::i;:::-;10694:35;10751:1;10748;10744:9;10739:14;;10574:185;;;;:::o;10765:172::-;10905:24;10901:1;10893:6;10889:14;10882:48;10765:172;:::o;10943:366::-;11085:3;11106:67;11170:2;11165:3;11106:67;:::i;:::-;11099:74;;11182:93;11271:3;11182:93;:::i;:::-;11300:2;11295:3;11291:12;11284:19;;10943:366;;;:::o;11315:419::-;11481:4;11519:2;11508:9;11504:18;11496:26;;11568:9;11562:4;11558:20;11554:1;11543:9;11539:17;11532:47;11596:131;11722:4;11596:131;:::i;:::-;11588:139;;11315:419;;;:::o;11740:348::-;11780:7;11803:20;11821:1;11803:20;:::i;:::-;11798:25;;11837:20;11855:1;11837:20;:::i;:::-;11832:25;;12025:1;11957:66;11953:74;11950:1;11947:81;11942:1;11935:9;11928:17;11924:105;11921:131;;;12032:18;;:::i;:::-;11921:131;12080:1;12077;12073:9;12062:20;;11740:348;;;;:::o;12094:305::-;12134:3;12153:20;12171:1;12153:20;:::i;:::-;12148:25;;12187:20;12205:1;12187:20;:::i;:::-;12182:25;;12341:1;12273:66;12269:74;12266:1;12263:81;12260:107;;;12347:18;;:::i;:::-;12260:107;12391:1;12388;12384:9;12377:16;;12094:305;;;;:::o;12405:225::-;12545:34;12541:1;12533:6;12529:14;12522:58;12614:8;12609:2;12601:6;12597:15;12590:33;12405:225;:::o;12636:366::-;12778:3;12799:67;12863:2;12858:3;12799:67;:::i;:::-;12792:74;;12875:93;12964:3;12875:93;:::i;:::-;12993:2;12988:3;12984:12;12977:19;;12636:366;;;:::o;13008:419::-;13174:4;13212:2;13201:9;13197:18;13189:26;;13261:9;13255:4;13251:20;13247:1;13236:9;13232:17;13225:47;13289:131;13415:4;13289:131;:::i;:::-;13281:139;;13008:419;;;:::o;13433:223::-;13573:34;13569:1;13561:6;13557:14;13550:58;13642:6;13637:2;13629:6;13625:15;13618:31;13433:223;:::o;13662:366::-;13804:3;13825:67;13889:2;13884:3;13825:67;:::i;:::-;13818:74;;13901:93;13990:3;13901:93;:::i;:::-;14019:2;14014:3;14010:12;14003:19;;13662:366;;;:::o;14034:419::-;14200:4;14238:2;14227:9;14223:18;14215:26;;14287:9;14281:4;14277:20;14273:1;14262:9;14258:17;14251:47;14315:131;14441:4;14315:131;:::i;:::-;14307:139;;14034:419;;;:::o;14459:221::-;14599:34;14595:1;14587:6;14583:14;14576:58;14668:4;14663:2;14655:6;14651:15;14644:29;14459:221;:::o;14686:366::-;14828:3;14849:67;14913:2;14908:3;14849:67;:::i;:::-;14842:74;;14925:93;15014:3;14925:93;:::i;:::-;15043:2;15038:3;15034:12;15027:19;;14686:366;;;:::o;15058:419::-;15224:4;15262:2;15251:9;15247:18;15239:26;;15311:9;15305:4;15301:20;15297:1;15286:9;15282:17;15275:47;15339:131;15465:4;15339:131;:::i;:::-;15331:139;;15058:419;;;:::o;15483:224::-;15623:34;15619:1;15611:6;15607:14;15600:58;15692:7;15687:2;15679:6;15675:15;15668:32;15483:224;:::o;15713:366::-;15855:3;15876:67;15940:2;15935:3;15876:67;:::i;:::-;15869:74;;15952:93;16041:3;15952:93;:::i;:::-;16070:2;16065:3;16061:12;16054:19;;15713:366;;;:::o;16085:419::-;16251:4;16289:2;16278:9;16274:18;16266:26;;16338:9;16332:4;16328:20;16324:1;16313:9;16309:17;16302:47;16366:131;16492:4;16366:131;:::i;:::-;16358:139;;16085:419;;;:::o;16510:222::-;16650:34;16646:1;16638:6;16634:14;16627:58;16719:5;16714:2;16706:6;16702:15;16695:30;16510:222;:::o;16738:366::-;16880:3;16901:67;16965:2;16960:3;16901:67;:::i;:::-;16894:74;;16977:93;17066:3;16977:93;:::i;:::-;17095:2;17090:3;17086:12;17079:19;;16738:366;;;:::o;17110:419::-;17276:4;17314:2;17303:9;17299:18;17291:26;;17363:9;17357:4;17353:20;17349:1;17338:9;17334:17;17327:47;17391:131;17517:4;17391:131;:::i;:::-;17383:139;;17110:419;;;:::o;17535:228::-;17675:34;17671:1;17663:6;17659:14;17652:58;17744:11;17739:2;17731:6;17727:15;17720:36;17535:228;:::o;17769:366::-;17911:3;17932:67;17996:2;17991:3;17932:67;:::i;:::-;17925:74;;18008:93;18097:3;18008:93;:::i;:::-;18126:2;18121:3;18117:12;18110:19;;17769:366;;;:::o;18141:419::-;18307:4;18345:2;18334:9;18330:18;18322:26;;18394:9;18388:4;18384:20;18380:1;18369:9;18365:17;18358:47;18422:131;18548:4;18422:131;:::i;:::-;18414:139;;18141:419;;;:::o;18566:250::-;18706:34;18702:1;18694:6;18690:14;18683:58;18775:33;18770:2;18762:6;18758:15;18751:58;18566:250;:::o;18822:366::-;18964:3;18985:67;19049:2;19044:3;18985:67;:::i;:::-;18978:74;;19061:93;19150:3;19061:93;:::i;:::-;19179:2;19174:3;19170:12;19163:19;;18822:366;;;:::o;19194:419::-;19360:4;19398:2;19387:9;19383:18;19375:26;;19447:9;19441:4;19437:20;19433:1;19422:9;19418:17;19411:47;19475:131;19601:4;19475:131;:::i;:::-;19467:139;;19194:419;;;:::o;19619:178::-;19759:30;19755:1;19747:6;19743:14;19736:54;19619:178;:::o;19803:366::-;19945:3;19966:67;20030:2;20025:3;19966:67;:::i;:::-;19959:74;;20042:93;20131:3;20042:93;:::i;:::-;20160:2;20155:3;20151:12;20144:19;;19803:366;;;:::o;20175:419::-;20341:4;20379:2;20368:9;20364:18;20356:26;;20428:9;20422:4;20418:20;20414:1;20403:9;20399:17;20392:47;20456:131;20582:4;20456:131;:::i;:::-;20448:139;;20175:419;;;:::o;20600:222::-;20740:34;20736:1;20728:6;20724:14;20717:58;20809:5;20804:2;20796:6;20792:15;20785:30;20600:222;:::o;20828:366::-;20970:3;20991:67;21055:2;21050:3;20991:67;:::i;:::-;20984:74;;21067:93;21156:3;21067:93;:::i;:::-;21185:2;21180:3;21176:12;21169:19;;20828:366;;;:::o;21200:419::-;21366:4;21404:2;21393:9;21389:18;21381:26;;21453:9;21447:4;21443:20;21439:1;21428:9;21424:17;21417:47;21481:131;21607:4;21481:131;:::i;:::-;21473:139;;21200:419;;;:::o;21625:191::-;21665:4;21685:20;21703:1;21685:20;:::i;:::-;21680:25;;21719:20;21737:1;21719:20;:::i;:::-;21714:25;;21758:1;21755;21752:8;21749:34;;;21763:18;;:::i;:::-;21749:34;21808:1;21805;21801:9;21793:17;;21625:191;;;;:::o;21822:229::-;21962:34;21958:1;21950:6;21946:14;21939:58;22031:12;22026:2;22018:6;22014:15;22007:37;21822:229;:::o;22057:366::-;22199:3;22220:67;22284:2;22279:3;22220:67;:::i;:::-;22213:74;;22296:93;22385:3;22296:93;:::i;:::-;22414:2;22409:3;22405:12;22398:19;;22057:366;;;:::o;22429:419::-;22595:4;22633:2;22622:9;22618:18;22610:26;;22682:9;22676:4;22672:20;22668:1;22657:9;22653:17;22646:47;22710:131;22836:4;22710:131;:::i;:::-;22702:139;;22429:419;;;:::o;22854:180::-;22902:77;22899:1;22892:88;22999:4;22996:1;22989:15;23023:4;23020:1;23013:15;23040:180;23088:77;23085:1;23078:88;23185:4;23182:1;23175:15;23209:4;23206:1;23199:15;23226:143;23283:5;23314:6;23308:13;23299:22;;23330:33;23357:5;23330:33;:::i;:::-;23226:143;;;;:::o;23375:351::-;23445:6;23494:2;23482:9;23473:7;23469:23;23465:32;23462:119;;;23500:79;;:::i;:::-;23462:119;23620:1;23645:64;23701:7;23692:6;23681:9;23677:22;23645:64;:::i;:::-;23635:74;;23591:128;23375:351;;;;:::o;23732:85::-;23777:7;23806:5;23795:16;;23732:85;;;:::o;23823:158::-;23881:9;23914:61;23932:42;23941:32;23967:5;23941:32;:::i;:::-;23932:42;:::i;:::-;23914:61;:::i;:::-;23901:74;;23823:158;;;:::o;23987:147::-;24082:45;24121:5;24082:45;:::i;:::-;24077:3;24070:58;23987:147;;:::o;24140:114::-;24207:6;24241:5;24235:12;24225:22;;24140:114;;;:::o;24260:184::-;24359:11;24393:6;24388:3;24381:19;24433:4;24428:3;24424:14;24409:29;;24260:184;;;;:::o;24450:132::-;24517:4;24540:3;24532:11;;24570:4;24565:3;24561:14;24553:22;;24450:132;;;:::o;24588:108::-;24665:24;24683:5;24665:24;:::i;:::-;24660:3;24653:37;24588:108;;:::o;24702:179::-;24771:10;24792:46;24834:3;24826:6;24792:46;:::i;:::-;24870:4;24865:3;24861:14;24847:28;;24702:179;;;;:::o;24887:113::-;24957:4;24989;24984:3;24980:14;24972:22;;24887:113;;;:::o;25036:732::-;25155:3;25184:54;25232:5;25184:54;:::i;:::-;25254:86;25333:6;25328:3;25254:86;:::i;:::-;25247:93;;25364:56;25414:5;25364:56;:::i;:::-;25443:7;25474:1;25459:284;25484:6;25481:1;25478:13;25459:284;;;25560:6;25554:13;25587:63;25646:3;25631:13;25587:63;:::i;:::-;25580:70;;25673:60;25726:6;25673:60;:::i;:::-;25663:70;;25519:224;25506:1;25503;25499:9;25494:14;;25459:284;;;25463:14;25759:3;25752:10;;25160:608;;;25036:732;;;;:::o;25774:831::-;26037:4;26075:3;26064:9;26060:19;26052:27;;26089:71;26157:1;26146:9;26142:17;26133:6;26089:71;:::i;:::-;26170:80;26246:2;26235:9;26231:18;26222:6;26170:80;:::i;:::-;26297:9;26291:4;26287:20;26282:2;26271:9;26267:18;26260:48;26325:108;26428:4;26419:6;26325:108;:::i;:::-;26317:116;;26443:72;26511:2;26500:9;26496:18;26487:6;26443:72;:::i;:::-;26525:73;26593:3;26582:9;26578:19;26569:6;26525:73;:::i;:::-;25774:831;;;;;;;;:::o;26611:177::-;26751:29;26747:1;26739:6;26735:14;26728:53;26611:177;:::o;26794:366::-;26936:3;26957:67;27021:2;27016:3;26957:67;:::i;:::-;26950:74;;27033:93;27122:3;27033:93;:::i;:::-;27151:2;27146:3;27142:12;27135:19;;26794:366;;;:::o;27166:419::-;27332:4;27370:2;27359:9;27355:18;27347:26;;27419:9;27413:4;27409:20;27405:1;27394:9;27390:17;27383:47;27447:131;27573:4;27447:131;:::i;:::-;27439:139;;27166:419;;;:::o;27591:220::-;27731:34;27727:1;27719:6;27715:14;27708:58;27800:3;27795:2;27787:6;27783:15;27776:28;27591:220;:::o;27817:366::-;27959:3;27980:67;28044:2;28039:3;27980:67;:::i;:::-;27973:74;;28056:93;28145:3;28056:93;:::i;:::-;28174:2;28169:3;28165:12;28158:19;;27817:366;;;:::o;28189:419::-;28355:4;28393:2;28382:9;28378:18;28370:26;;28442:9;28436:4;28432:20;28428:1;28417:9;28413:17;28406:47;28470:131;28596:4;28470:131;:::i;:::-;28462:139;;28189:419;;;:::o

Swarm Source

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