ETH Price: $2,542.20 (+3.17%)

Token

ROTTSCHILD.com (ROTTS)
 

Overview

Max Total Supply

1,000,000,000,000 ROTTS

Holders

477 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
402,736,871.602568191 ROTTS

Value
$0.00
0x3635ed4b0c19de482b558c68e581369d540d22f5
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Developing tools and services to protect investors, especially beginners, while becoming richer than the richest family of modern times: this is the goal of the Rottschild family.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ROTTSCHILD

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-18
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable is Context {
    address private m_Owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        m_Owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return m_Owner;
    }
    function transferOwnership(address _address) public virtual onlyOwner {
        emit OwnershipTransferred(m_Owner, _address);
        m_Owner = _address;
    }
    modifier onlyOwner() {
        require(_msgSender() == m_Owner, "Ownable: caller is not the owner");
        _;
    }                                                                                           
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}



contract ROTTSCHILD is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private constant _name = 'ROTTSCHILD.com';
    string private constant _symbol = 'ROTTS';
    uint8 private constant _decimals = 9;

    uint256 private constant _taxFee = 2;
    mapping (address => bool) private dexPairs;

    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) external view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() external view returns (uint256) {
        return _tFeeTotal;
    }


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

    function excludeAccount(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
    
    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 sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        bool transferTx = false;
        if (!dexPairs[sender] && !dexPairs[recipient]) {
            transferTx = true;
        }
        

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount, transferTx);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount, transferTx);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount, transferTx);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount, transferTx);
        } else {
            _transferStandard(sender, recipient, amount, transferTx);
        }
    }

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

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

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

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

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

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


    function _getTValues(uint256 tAmount, bool transferTx) private pure returns (uint256, uint256) {
        uint256 tFee = 0;
        if (!transferTx){
            tFee = tAmount.mul(_taxFee).div(10**2);
        }
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        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;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }


    function isDexPair(address _pair) public view returns (bool) {
        return dexPairs[_pair];
    }

    function addDexPair(address _pair) external onlyOwner {
        require(!isDexPair(_pair), "Address is already on the dex list.");
        dexPairs[_pair] = true;
    }

    function removeDexPair(address _pair) external onlyOwner {
        require(isDexPair(_pair), "Address is not a member of dex list.");
        delete dexPairs[_pair];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addDexPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"isDexPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"_pair","type":"address"}],"name":"removeDexPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052683635c9adc5dea000006000196200001d919062000243565b6000196200002c9190620001fe565b6006553480156200003c57600080fd5b5060006200004f620001c860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546001600062000104620001c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000152620001c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001ba9190620001e1565b60405180910390a3620002d9565b600033905090565b620001db8162000239565b82525050565b6000602082019050620001f86000830184620001d0565b92915050565b60006200020b8262000239565b9150620002188362000239565b9250828210156200022e576200022d6200027b565b5b828203905092915050565b6000819050919050565b6000620002508262000239565b91506200025d8362000239565b92508262000270576200026f620002aa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61342f80620002e96000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063cba0e9961161007c578063cba0e9961461038c578063dd62ed3e146103bc578063e6ddf403146103ec578063f2cc0c1814610408578063f2fde38b14610424578063f84354f11461044057610137565b806370a08231146102c05780638da5cb5b146102f057806395d89b411461030e578063a457c2d71461032c578063a9059cbb1461035c57610137565b806323b872dd116100ff57806323b872dd146101e25780632d83811914610212578063313ce567146102425780633950935114610260578063400099271461029057610137565b8063029eae0e1461013c57806306fdde0314610158578063095ea7b31461017657806313114a9d146101a657806318160ddd146101c4575b600080fd5b61015660048036038101906101519190612912565b61045c565b005b61016061058b565b60405161016d9190612c48565b60405180910390f35b610190600480360381019061018b91906129d2565b6105c8565b60405161019d9190612c2d565b60405180910390f35b6101ae6105e6565b6040516101bb9190612daa565b60405180910390f35b6101cc6105f0565b6040516101d99190612daa565b60405180910390f35b6101fc60048036038101906101f7919061297f565b610601565b6040516102099190612c2d565b60405180910390f35b61022c60048036038101906102279190612a12565b6106da565b6040516102399190612daa565b60405180910390f35b61024a610748565b6040516102579190612dc5565b60405180910390f35b61027a600480360381019061027591906129d2565b610751565b6040516102879190612c2d565b60405180910390f35b6102aa60048036038101906102a59190612912565b610804565b6040516102b79190612c2d565b60405180910390f35b6102da60048036038101906102d59190612912565b61085a565b6040516102e79190612daa565b60405180910390f35b6102f8610945565b6040516103059190612c12565b60405180910390f35b61031661096e565b6040516103239190612c48565b60405180910390f35b610346600480360381019061034191906129d2565b6109ab565b6040516103539190612c2d565b60405180910390f35b610376600480360381019061037191906129d2565b610a78565b6040516103839190612c2d565b60405180910390f35b6103a660048036038101906103a19190612912565b610a96565b6040516103b39190612c2d565b60405180910390f35b6103d660048036038101906103d1919061293f565b610aec565b6040516103e39190612daa565b60405180910390f35b61040660048036038101906104019190612912565b610b73565b005b610422600480360381019061041d9190612912565b610cac565b005b61043e60048036038101906104399190612912565b610f60565b005b61045a60048036038101906104559190612912565b6110b2565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661049b611401565b73ffffffffffffffffffffffffffffffffffffffff16146104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890612d2a565b60405180910390fd5b6104fa81610804565b610539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053090612cca565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b60606040518060400160405280600e81526020017f524f5454534348494c442e636f6d000000000000000000000000000000000000815250905090565b60006105dc6105d5611401565b8484611409565b6001905092915050565b6000600754905090565b6000683635c9adc5dea00000905090565b600061060e8484846115d4565b6106cf8461061a611401565b6106ca856040518060600160405280602881526020016133ad60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610680611401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa19092919063ffffffff16565b611409565b600190509392505050565b6000600654821115610721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071890612c8a565b60405180910390fd5b600061072b611af6565b90506107408184611b2190919063ffffffff16565b915050919050565b60006009905090565b60006107fa61075e611401565b846107f5856003600061076f611401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b611409565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108f557600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610940565b61093d600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106da565b90505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f524f545453000000000000000000000000000000000000000000000000000000815250905090565b6000610a6e6109b8611401565b84610a69856040518060600160405280602581526020016133d560259139600360006109e2611401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa19092919063ffffffff16565b611409565b6001905092915050565b6000610a8c610a85611401565b84846115d4565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb2611401565b73ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bff90612d2a565b60405180910390fd5b610c1181610804565b15610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890612cea565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ceb611401565b73ffffffffffffffffffffffffffffffffffffffff1614610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3890612d2a565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc590612d0a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610ea257610e5e600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106da565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f9f611401565b73ffffffffffffffffffffffffffffffffffffffff1614610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec90612d2a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f1611401565b73ffffffffffffffffffffffffffffffffffffffff1614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612d2a565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca90612d0a565b60405180910390fd5b60005b6005805490508110156113fd578173ffffffffffffffffffffffffffffffffffffffff166005828154811061120e5761120d61306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113ea57600560016005805490506112699190612edd565b8154811061127a5761127961306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106112b9576112b861306f565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806113b0576113af613040565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556113fd565b80806113f590612f99565b9150506111d6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090612caa565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c79190612daa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90612d6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90612c6a565b60405180910390fd5b600081116116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612d4a565b60405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561179d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a757600190505b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561184a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118605761185b84848484611b4d565b611a9b565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119035750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119195761191484848484611da2565b611a9a565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119bd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d3576119ce84848484611ff7565b611a99565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a755750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a8b57611a86848484846121b7565b611a98565b611a9784848484611ff7565b5b5b5b5b50505050565b6000838311158290611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae09190612c48565b60405180910390fd5b5082840390509392505050565b6000806000611b036124a1565b91509150611b1a8183611b2190919063ffffffff16565b9250505090565b60008183611b2f9190612e52565b905092915050565b60008183611b459190612dfc565b905092915050565b6000806000806000611b5f8787612770565b94509450945094509450611bbb87600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5085600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ce584600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3283826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d8f9190612daa565b60405180910390a3505050505050505050565b6000806000806000611db48787612770565b94509450945094509450611e1085600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea582600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3a84600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8783826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fe49190612daa565b60405180910390a3505050505050505050565b60008060008060006120098787612770565b9450945094509450945061206585600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fa84600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061214783826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a49190612daa565b60405180910390a3505050505050505050565b60008060008060006121c98787612770565b9450945094509450945061222587600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122ba85600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061234f82600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123e484600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243183826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161248e9190612daa565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea00000905060005b600580549050811015612725578260016000600584815481106124e2576124e161306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806125d057508160026000600584815481106125685761256761306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156125ee57600654683635c9adc5dea000009450945050505061276c565b61267e60016000600584815481106126095761260861306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846127ca90919063ffffffff16565b9250612710600260006005848154811061269b5761269a61306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836127ca90919063ffffffff16565b9150808061271d90612f99565b9150506124bc565b50612744683635c9adc5dea00000600654611b2190919063ffffffff16565b82101561276357600654683635c9adc5dea0000093509350505061276c565b81819350935050505b9091565b6000806000806000806000612785898961281a565b915091506000612793611af6565b905060008060006127a58d8686612874565b92509250925082828288889a509a509a509a509a505050505050509295509295909350565b600081836127d89190612edd565b905092915050565b6127f5826006546127ca90919063ffffffff16565b60068190555061281081600754611b3790919063ffffffff16565b6007819055505050565b60008060008361284e5761284b606461283d6002886128d290919063ffffffff16565b611b2190919063ffffffff16565b90505b600061286382876127ca90919063ffffffff16565b905080829350935050509250929050565b60008060008061288d85886128d290919063ffffffff16565b905060006128a486886128d290919063ffffffff16565b905060006128bb82846127ca90919063ffffffff16565b905082818395509550955050505093509350939050565b600081836128e09190612e83565b905092915050565b6000813590506128f78161337e565b92915050565b60008135905061290c81613395565b92915050565b6000602082840312156129285761292761309e565b5b6000612936848285016128e8565b91505092915050565b600080604083850312156129565761295561309e565b5b6000612964858286016128e8565b9250506020612975858286016128e8565b9150509250929050565b6000806000606084860312156129985761299761309e565b5b60006129a6868287016128e8565b93505060206129b7868287016128e8565b92505060406129c8868287016128fd565b9150509250925092565b600080604083850312156129e9576129e861309e565b5b60006129f7858286016128e8565b9250506020612a08858286016128fd565b9150509250929050565b600060208284031215612a2857612a2761309e565b5b6000612a36848285016128fd565b91505092915050565b612a4881612f11565b82525050565b612a5781612f23565b82525050565b6000612a6882612de0565b612a728185612deb565b9350612a82818560208601612f66565b612a8b816130a3565b840191505092915050565b6000612aa3602383612deb565b9150612aae826130b4565b604082019050919050565b6000612ac6602a83612deb565b9150612ad182613103565b604082019050919050565b6000612ae9602283612deb565b9150612af482613152565b604082019050919050565b6000612b0c602483612deb565b9150612b17826131a1565b604082019050919050565b6000612b2f602383612deb565b9150612b3a826131f0565b604082019050919050565b6000612b52601b83612deb565b9150612b5d8261323f565b602082019050919050565b6000612b75602083612deb565b9150612b8082613268565b602082019050919050565b6000612b98602983612deb565b9150612ba382613291565b604082019050919050565b6000612bbb602583612deb565b9150612bc6826132e0565b604082019050919050565b6000612bde602483612deb565b9150612be98261332f565b604082019050919050565b612bfd81612f4f565b82525050565b612c0c81612f59565b82525050565b6000602082019050612c276000830184612a3f565b92915050565b6000602082019050612c426000830184612a4e565b92915050565b60006020820190508181036000830152612c628184612a5d565b905092915050565b60006020820190508181036000830152612c8381612a96565b9050919050565b60006020820190508181036000830152612ca381612ab9565b9050919050565b60006020820190508181036000830152612cc381612adc565b9050919050565b60006020820190508181036000830152612ce381612aff565b9050919050565b60006020820190508181036000830152612d0381612b22565b9050919050565b60006020820190508181036000830152612d2381612b45565b9050919050565b60006020820190508181036000830152612d4381612b68565b9050919050565b60006020820190508181036000830152612d6381612b8b565b9050919050565b60006020820190508181036000830152612d8381612bae565b9050919050565b60006020820190508181036000830152612da381612bd1565b9050919050565b6000602082019050612dbf6000830184612bf4565b92915050565b6000602082019050612dda6000830184612c03565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612e0782612f4f565b9150612e1283612f4f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e4757612e46612fe2565b5b828201905092915050565b6000612e5d82612f4f565b9150612e6883612f4f565b925082612e7857612e77613011565b5b828204905092915050565b6000612e8e82612f4f565b9150612e9983612f4f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ed257612ed1612fe2565b5b828202905092915050565b6000612ee882612f4f565b9150612ef383612f4f565b925082821015612f0657612f05612fe2565b5b828203905092915050565b6000612f1c82612f2f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612f84578082015181840152602081019050612f69565b83811115612f93576000848401525b50505050565b6000612fa482612f4f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fd757612fd6612fe2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206973206e6f742061206d656d626572206f6620646578206c60008201527f6973742e00000000000000000000000000000000000000000000000000000000602082015250565b7f4164647265737320697320616c7265616479206f6e2074686520646578206c6960008201527f73742e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61338781612f11565b811461339257600080fd5b50565b61339e81612f4f565b81146133a957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122091ae5fab266e90d47be62ef1052be28c8a0b833de6490aed182252bff265f26064736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063cba0e9961161007c578063cba0e9961461038c578063dd62ed3e146103bc578063e6ddf403146103ec578063f2cc0c1814610408578063f2fde38b14610424578063f84354f11461044057610137565b806370a08231146102c05780638da5cb5b146102f057806395d89b411461030e578063a457c2d71461032c578063a9059cbb1461035c57610137565b806323b872dd116100ff57806323b872dd146101e25780632d83811914610212578063313ce567146102425780633950935114610260578063400099271461029057610137565b8063029eae0e1461013c57806306fdde0314610158578063095ea7b31461017657806313114a9d146101a657806318160ddd146101c4575b600080fd5b61015660048036038101906101519190612912565b61045c565b005b61016061058b565b60405161016d9190612c48565b60405180910390f35b610190600480360381019061018b91906129d2565b6105c8565b60405161019d9190612c2d565b60405180910390f35b6101ae6105e6565b6040516101bb9190612daa565b60405180910390f35b6101cc6105f0565b6040516101d99190612daa565b60405180910390f35b6101fc60048036038101906101f7919061297f565b610601565b6040516102099190612c2d565b60405180910390f35b61022c60048036038101906102279190612a12565b6106da565b6040516102399190612daa565b60405180910390f35b61024a610748565b6040516102579190612dc5565b60405180910390f35b61027a600480360381019061027591906129d2565b610751565b6040516102879190612c2d565b60405180910390f35b6102aa60048036038101906102a59190612912565b610804565b6040516102b79190612c2d565b60405180910390f35b6102da60048036038101906102d59190612912565b61085a565b6040516102e79190612daa565b60405180910390f35b6102f8610945565b6040516103059190612c12565b60405180910390f35b61031661096e565b6040516103239190612c48565b60405180910390f35b610346600480360381019061034191906129d2565b6109ab565b6040516103539190612c2d565b60405180910390f35b610376600480360381019061037191906129d2565b610a78565b6040516103839190612c2d565b60405180910390f35b6103a660048036038101906103a19190612912565b610a96565b6040516103b39190612c2d565b60405180910390f35b6103d660048036038101906103d1919061293f565b610aec565b6040516103e39190612daa565b60405180910390f35b61040660048036038101906104019190612912565b610b73565b005b610422600480360381019061041d9190612912565b610cac565b005b61043e60048036038101906104399190612912565b610f60565b005b61045a60048036038101906104559190612912565b6110b2565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661049b611401565b73ffffffffffffffffffffffffffffffffffffffff16146104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890612d2a565b60405180910390fd5b6104fa81610804565b610539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053090612cca565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b60606040518060400160405280600e81526020017f524f5454534348494c442e636f6d000000000000000000000000000000000000815250905090565b60006105dc6105d5611401565b8484611409565b6001905092915050565b6000600754905090565b6000683635c9adc5dea00000905090565b600061060e8484846115d4565b6106cf8461061a611401565b6106ca856040518060600160405280602881526020016133ad60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610680611401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa19092919063ffffffff16565b611409565b600190509392505050565b6000600654821115610721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071890612c8a565b60405180910390fd5b600061072b611af6565b90506107408184611b2190919063ffffffff16565b915050919050565b60006009905090565b60006107fa61075e611401565b846107f5856003600061076f611401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b611409565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108f557600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610940565b61093d600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106da565b90505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f524f545453000000000000000000000000000000000000000000000000000000815250905090565b6000610a6e6109b8611401565b84610a69856040518060600160405280602581526020016133d560259139600360006109e2611401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa19092919063ffffffff16565b611409565b6001905092915050565b6000610a8c610a85611401565b84846115d4565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb2611401565b73ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bff90612d2a565b60405180910390fd5b610c1181610804565b15610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890612cea565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ceb611401565b73ffffffffffffffffffffffffffffffffffffffff1614610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3890612d2a565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc590612d0a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610ea257610e5e600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106da565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f9f611401565b73ffffffffffffffffffffffffffffffffffffffff1614610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec90612d2a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f1611401565b73ffffffffffffffffffffffffffffffffffffffff1614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612d2a565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca90612d0a565b60405180910390fd5b60005b6005805490508110156113fd578173ffffffffffffffffffffffffffffffffffffffff166005828154811061120e5761120d61306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113ea57600560016005805490506112699190612edd565b8154811061127a5761127961306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106112b9576112b861306f565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806113b0576113af613040565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556113fd565b80806113f590612f99565b9150506111d6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612d8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090612caa565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c79190612daa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90612d6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90612c6a565b60405180910390fd5b600081116116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612d4a565b60405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561179d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a757600190505b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561184a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118605761185b84848484611b4d565b611a9b565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119035750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119195761191484848484611da2565b611a9a565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119bd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d3576119ce84848484611ff7565b611a99565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a755750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a8b57611a86848484846121b7565b611a98565b611a9784848484611ff7565b5b5b5b5b50505050565b6000838311158290611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae09190612c48565b60405180910390fd5b5082840390509392505050565b6000806000611b036124a1565b91509150611b1a8183611b2190919063ffffffff16565b9250505090565b60008183611b2f9190612e52565b905092915050565b60008183611b459190612dfc565b905092915050565b6000806000806000611b5f8787612770565b94509450945094509450611bbb87600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5085600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ce584600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3283826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d8f9190612daa565b60405180910390a3505050505050505050565b6000806000806000611db48787612770565b94509450945094509450611e1085600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea582600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3a84600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8783826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fe49190612daa565b60405180910390a3505050505050505050565b60008060008060006120098787612770565b9450945094509450945061206585600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fa84600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061214783826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a49190612daa565b60405180910390a3505050505050505050565b60008060008060006121c98787612770565b9450945094509450945061222587600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122ba85600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ca90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061234f82600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123e484600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243183826127e0565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161248e9190612daa565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea00000905060005b600580549050811015612725578260016000600584815481106124e2576124e161306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806125d057508160026000600584815481106125685761256761306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156125ee57600654683635c9adc5dea000009450945050505061276c565b61267e60016000600584815481106126095761260861306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846127ca90919063ffffffff16565b9250612710600260006005848154811061269b5761269a61306f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836127ca90919063ffffffff16565b9150808061271d90612f99565b9150506124bc565b50612744683635c9adc5dea00000600654611b2190919063ffffffff16565b82101561276357600654683635c9adc5dea0000093509350505061276c565b81819350935050505b9091565b6000806000806000806000612785898961281a565b915091506000612793611af6565b905060008060006127a58d8686612874565b92509250925082828288889a509a509a509a509a505050505050509295509295909350565b600081836127d89190612edd565b905092915050565b6127f5826006546127ca90919063ffffffff16565b60068190555061281081600754611b3790919063ffffffff16565b6007819055505050565b60008060008361284e5761284b606461283d6002886128d290919063ffffffff16565b611b2190919063ffffffff16565b90505b600061286382876127ca90919063ffffffff16565b905080829350935050509250929050565b60008060008061288d85886128d290919063ffffffff16565b905060006128a486886128d290919063ffffffff16565b905060006128bb82846127ca90919063ffffffff16565b905082818395509550955050505093509350939050565b600081836128e09190612e83565b905092915050565b6000813590506128f78161337e565b92915050565b60008135905061290c81613395565b92915050565b6000602082840312156129285761292761309e565b5b6000612936848285016128e8565b91505092915050565b600080604083850312156129565761295561309e565b5b6000612964858286016128e8565b9250506020612975858286016128e8565b9150509250929050565b6000806000606084860312156129985761299761309e565b5b60006129a6868287016128e8565b93505060206129b7868287016128e8565b92505060406129c8868287016128fd565b9150509250925092565b600080604083850312156129e9576129e861309e565b5b60006129f7858286016128e8565b9250506020612a08858286016128fd565b9150509250929050565b600060208284031215612a2857612a2761309e565b5b6000612a36848285016128fd565b91505092915050565b612a4881612f11565b82525050565b612a5781612f23565b82525050565b6000612a6882612de0565b612a728185612deb565b9350612a82818560208601612f66565b612a8b816130a3565b840191505092915050565b6000612aa3602383612deb565b9150612aae826130b4565b604082019050919050565b6000612ac6602a83612deb565b9150612ad182613103565b604082019050919050565b6000612ae9602283612deb565b9150612af482613152565b604082019050919050565b6000612b0c602483612deb565b9150612b17826131a1565b604082019050919050565b6000612b2f602383612deb565b9150612b3a826131f0565b604082019050919050565b6000612b52601b83612deb565b9150612b5d8261323f565b602082019050919050565b6000612b75602083612deb565b9150612b8082613268565b602082019050919050565b6000612b98602983612deb565b9150612ba382613291565b604082019050919050565b6000612bbb602583612deb565b9150612bc6826132e0565b604082019050919050565b6000612bde602483612deb565b9150612be98261332f565b604082019050919050565b612bfd81612f4f565b82525050565b612c0c81612f59565b82525050565b6000602082019050612c276000830184612a3f565b92915050565b6000602082019050612c426000830184612a4e565b92915050565b60006020820190508181036000830152612c628184612a5d565b905092915050565b60006020820190508181036000830152612c8381612a96565b9050919050565b60006020820190508181036000830152612ca381612ab9565b9050919050565b60006020820190508181036000830152612cc381612adc565b9050919050565b60006020820190508181036000830152612ce381612aff565b9050919050565b60006020820190508181036000830152612d0381612b22565b9050919050565b60006020820190508181036000830152612d2381612b45565b9050919050565b60006020820190508181036000830152612d4381612b68565b9050919050565b60006020820190508181036000830152612d6381612b8b565b9050919050565b60006020820190508181036000830152612d8381612bae565b9050919050565b60006020820190508181036000830152612da381612bd1565b9050919050565b6000602082019050612dbf6000830184612bf4565b92915050565b6000602082019050612dda6000830184612c03565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612e0782612f4f565b9150612e1283612f4f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e4757612e46612fe2565b5b828201905092915050565b6000612e5d82612f4f565b9150612e6883612f4f565b925082612e7857612e77613011565b5b828204905092915050565b6000612e8e82612f4f565b9150612e9983612f4f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ed257612ed1612fe2565b5b828202905092915050565b6000612ee882612f4f565b9150612ef383612f4f565b925082821015612f0657612f05612fe2565b5b828203905092915050565b6000612f1c82612f2f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612f84578082015181840152602081019050612f69565b83811115612f93576000848401525b50505050565b6000612fa482612f4f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fd757612fd6612fe2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206973206e6f742061206d656d626572206f6620646578206c60008201527f6973742e00000000000000000000000000000000000000000000000000000000602082015250565b7f4164647265737320697320616c7265616479206f6e2074686520646578206c6960008201527f73742e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61338781612f11565b811461339257600080fd5b50565b61339e81612f4f565b81146133a957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122091ae5fab266e90d47be62ef1052be28c8a0b833de6490aed182252bff265f26064736f6c63430008070033

Deployed Bytecode Sourcemap

6817:10358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16998:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7784:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8710:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9829:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8067:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8881:315;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9928:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7974:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9204:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16709:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8172:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1191:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7877:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9432:271;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8380:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9711:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8557:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16819:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10189:332;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1277:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10529:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16998:174;1501:7;;;;;;;;;;1485:23;;:12;:10;:12::i;:::-;:23;;;1477:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17074:16:::1;17084:5;17074:9;:16::i;:::-;17066:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17149:8;:15;17158:5;17149:15;;;;;;;;;;;;;;;;17142:22;;;;;;;;;;;16998:174:::0;:::o;7784:85::-;7823:13;7856:5;;;;;;;;;;;;;;;;;7849:12;;7784:85;:::o;8710:163::-;8787:4;8804:39;8813:12;:10;:12::i;:::-;8827:7;8836:6;8804:8;:39::i;:::-;8861:4;8854:11;;8710:163;;;;:::o;9829:89::-;9873:7;9900:10;;9893:17;;9829:89;:::o;8067:97::-;8122:7;7291:21;8142:14;;8067:97;:::o;8881:315::-;8981:4;8998:36;9008:6;9016:9;9027:6;8998:9;:36::i;:::-;9045:121;9054:6;9062:12;:10;:12::i;:::-;9076:89;9114:6;9076:89;;;;;;;;;;;;;;;;;:11;:19;9088:6;9076:19;;;;;;;;;;;;;;;:33;9096:12;:10;:12::i;:::-;9076:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9045:8;:121::i;:::-;9184:4;9177:11;;8881:315;;;;;:::o;9928:253::-;9994:7;10033;;10022;:18;;10014:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10098:19;10121:10;:8;:10::i;:::-;10098:33;;10149:24;10161:11;10149:7;:11;;:24;;;;:::i;:::-;10142:31;;;9928:253;;;:::o;7974:85::-;8017:5;7548:1;8035:16;;7974:85;:::o;9204:220::-;9294:4;9311:83;9320:12;:10;:12::i;:::-;9334:7;9343:50;9382:10;9343:11;:25;9355:12;:10;:12::i;:::-;9343:25;;;;;;;;;;;;;;;:34;9369:7;9343:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9311:8;:83::i;:::-;9412:4;9405:11;;9204:220;;;;:::o;16709:102::-;16764:4;16788:8;:15;16797:5;16788:15;;;;;;;;;;;;;;;;;;;;;;;;;16781:22;;16709:102;;;:::o;8172:200::-;8240:7;8264:11;:20;8276:7;8264:20;;;;;;;;;;;;;;;;;;;;;;;;;8260:49;;;8293:7;:16;8301:7;8293:16;;;;;;;;;;;;;;;;8286:23;;;;8260:49;8327:37;8347:7;:16;8355:7;8347:16;;;;;;;;;;;;;;;;8327:19;:37::i;:::-;8320:44;;8172:200;;;;:::o;1191:80::-;1229:7;1256;;;;;;;;;;;1249:14;;1191:80;:::o;7877:89::-;7918:13;7951:7;;;;;;;;;;;;;;;;;7944:14;;7877:89;:::o;9432:271::-;9527:4;9544:129;9553:12;:10;:12::i;:::-;9567:7;9576:96;9615:15;9576:96;;;;;;;;;;;;;;;;;:11;:25;9588:12;:10;:12::i;:::-;9576:25;;;;;;;;;;;;;;;:34;9602:7;9576:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9544:8;:129::i;:::-;9691:4;9684:11;;9432:271;;;;:::o;8380:169::-;8460:4;8477:42;8487:12;:10;:12::i;:::-;8501:9;8512:6;8477:9;:42::i;:::-;8537:4;8530:11;;8380:169;;;;:::o;9711:110::-;9769:4;9793:11;:20;9805:7;9793:20;;;;;;;;;;;;;;;;;;;;;;;;;9786:27;;9711:110;;;:::o;8557:145::-;8640:7;8667:11;:18;8679:5;8667:18;;;;;;;;;;;;;;;:27;8686:7;8667:27;;;;;;;;;;;;;;;;8660:34;;8557:145;;;;:::o;16819:171::-;1501:7;;;;;;;;;;1485:23;;:12;:10;:12::i;:::-;:23;;;1477:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16893:16:::1;16903:5;16893:9;:16::i;:::-;16892:17;16884:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16978:4;16960:8;:15;16969:5;16960:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;16819:171:::0;:::o;10189:332::-;1501:7;;;;;;;;;;1485:23;;:12;:10;:12::i;:::-;:23;;;1477:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10271:11:::1;:20;10283:7;10271:20;;;;;;;;;;;;;;;;;;;;;;;;;10270:21;10262:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10356:1;10337:7;:16;10345:7;10337:16;;;;;;;;;;;;;;;;:20;10334:108;;;10393:37;10413:7;:16;10421:7;10413:16;;;;;;;;;;;;;;;;10393:19;:37::i;:::-;10374:7;:16;10382:7;10374:16;;;;;;;;;;;;;;;:56;;;;10334:108;10475:4;10452:11;:20;10464:7;10452:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10490:9;10505:7;10490:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10189:332:::0;:::o;1277:162::-;1501:7;;;;;;;;;;1485:23;;:12;:10;:12::i;:::-;:23;;;1477:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1393:8:::1;1363:39;;1384:7;::::0;::::1;;;;;;;;1363:39;;;;;;;;;;;;1423:8;1413:7;::::0;:18:::1;;;;;;;;;;;;;;;;;;1277:162:::0;:::o;10529:478::-;1501:7;;;;;;;;;;1485:23;;:12;:10;:12::i;:::-;:23;;;1477:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10610:11:::1;:20;10622:7;10610:20;;;;;;;;;;;;;;;;;;;;;;;;;10602:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10678:9;10673:327;10697:9;:16;;;;10693:1;:20;10673:327;;;10755:7;10739:23;;:9;10749:1;10739:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;10735:254;;;10798:9;10827:1;10808:9;:16;;;;:20;;;;:::i;:::-;10798:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10783:9;10793:1;10783:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;10867:1;10848:7;:16;10856:7;10848:16;;;;;;;;;;;;;;;:20;;;;10910:5;10887:11;:20;10899:7;10887:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10934:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;10968:5;;10735:254;10715:3;;;;;:::i;:::-;;;;10673:327;;;;10529:478:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;11019:337::-;11129:1;11112:19;;:5;:19;;;;11104:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11210:1;11191:21;;:7;:21;;;;11183:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11294:6;11264:11;:18;11276:5;11264:18;;;;;;;;;;;;;;;:27;11283:7;11264:27;;;;;;;;;;;;;;;:36;;;;11332:7;11316:32;;11325:5;11316:32;;;11341:6;11316:32;;;;;;:::i;:::-;;;;;;;;11019:337;;;:::o;11364:1140::-;11479:1;11461:20;;:6;:20;;;;11453:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11563:1;11542:23;;:9;:23;;;;11534:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11633:1;11624:6;:10;11616:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11693:15;11732:8;:16;11741:6;11732:16;;;;;;;;;;;;;;;;;;;;;;;;;11731:17;:41;;;;;11753:8;:19;11762:9;11753:19;;;;;;;;;;;;;;;;;;;;;;;;;11752:20;11731:41;11727:91;;;11802:4;11789:17;;11727:91;11844:11;:19;11856:6;11844:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;11868:11;:22;11880:9;11868:22;;;;;;;;;;;;;;;;;;;;;;;;;11867:23;11844:46;11840:657;;;11907:60;11929:6;11937:9;11948:6;11956:10;11907:21;:60::i;:::-;11840:657;;;11990:11;:19;12002:6;11990:19;;;;;;;;;;;;;;;;;;;;;;;;;11989:20;:46;;;;;12013:11;:22;12025:9;12013:22;;;;;;;;;;;;;;;;;;;;;;;;;11989:46;11985:512;;;12052:58;12072:6;12080:9;12091:6;12099:10;12052:19;:58::i;:::-;11985:512;;;12133:11;:19;12145:6;12133:19;;;;;;;;;;;;;;;;;;;;;;;;;12132:20;:47;;;;;12157:11;:22;12169:9;12157:22;;;;;;;;;;;;;;;;;;;;;;;;;12156:23;12132:47;12128:369;;;12196:56;12214:6;12222:9;12233:6;12241:10;12196:17;:56::i;:::-;12128:369;;;12274:11;:19;12286:6;12274:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;12297:11;:22;12309:9;12297:22;;;;;;;;;;;;;;;;;;;;;;;;;12274:45;12270:227;;;12336:60;12358:6;12366:9;12377:6;12385:10;12336:21;:60::i;:::-;12270:227;;;12429:56;12447:6;12455:9;12466:6;12474:10;12429:17;:56::i;:::-;12270:227;12128:369;11985:512;11840:657;11442:1062;11364:1140;;;:::o;6072:240::-;6192:7;6250:1;6245;:6;;6253:12;6237:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6292:1;6288;:5;6281:12;;6072:240;;;;;:::o;15973:163::-;16014:7;16035:15;16052;16071:19;:17;:19::i;:::-;16034:56;;;;16108:20;16120:7;16108;:11;;:20;;;;:::i;:::-;16101:27;;;;15973:163;:::o;5860:98::-;5918:7;5949:1;5945;:5;;;;:::i;:::-;5938:12;;5860:98;;;;:::o;5542:::-;5600:7;5631:1;5627;:5;;;;:::i;:::-;5620:12;;5542:98;;;;:::o;13547:534::-;13667:15;13684:23;13709:12;13723:23;13748:12;13764:30;13775:7;13783:10;13764;:30::i;:::-;13666:128;;;;;;;;;;13823:28;13843:7;13823;:15;13831:6;13823:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13805:7;:15;13813:6;13805:15;;;;;;;;;;;;;;;:46;;;;13880:28;13900:7;13880;:15;13888:6;13880:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13862:7;:15;13870:6;13862:15;;;;;;;;;;;;;;;:46;;;;13940:39;13963:15;13940:7;:18;13948:9;13940:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13919:7;:18;13927:9;13919:18;;;;;;;;;;;;;;;:60;;;;13990:23;14002:4;14008;13990:11;:23::i;:::-;14046:9;14029:44;;14038:6;14029:44;;;14057:15;14029:44;;;;;;:::i;:::-;;;;;;;;13655:426;;;;;13547:534;;;;:::o;12993:546::-;13111:15;13128:23;13153:12;13167:23;13192:12;13208:30;13219:7;13227:10;13208;:30::i;:::-;13110:128;;;;;;;;;;13267:28;13287:7;13267;:15;13275:6;13267:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13249:7;:15;13257:6;13249:15;;;;;;;;;;;;;;;:46;;;;13327:39;13350:15;13327:7;:18;13335:9;13327:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13306:7;:18;13314:9;13306:18;;;;;;;;;;;;;;;:60;;;;13398:39;13421:15;13398:7;:18;13406:9;13398:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13377:7;:18;13385:9;13377:18;;;;;;;;;;;;;;;:60;;;;13448:23;13460:4;13466;13448:11;:23::i;:::-;13504:9;13487:44;;13496:6;13487:44;;;13515:15;13487:44;;;;;;:::i;:::-;;;;;;;;13099:440;;;;;12993:546;;;;:::o;12512:473::-;12628:15;12645:23;12670:12;12684:23;12709:12;12725:30;12736:7;12744:10;12725;:30::i;:::-;12627:128;;;;;;;;;;12784:28;12804:7;12784;:15;12792:6;12784:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12766:7;:15;12774:6;12766:15;;;;;;;;;;;;;;;:46;;;;12844:39;12867:15;12844:7;:18;12852:9;12844:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12823:7;:18;12831:9;12823:18;;;;;;;;;;;;;;;:60;;;;12894:23;12906:4;12912;12894:11;:23::i;:::-;12950:9;12933:44;;12942:6;12933:44;;;12961:15;12933:44;;;;;;:::i;:::-;;;;;;;;12616:369;;;;;12512:473;;;;:::o;14089:605::-;14209:15;14226:23;14251:12;14265:23;14290:12;14306:30;14317:7;14325:10;14306;:30::i;:::-;14208:128;;;;;;;;;;14365:28;14385:7;14365;:15;14373:6;14365:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14347:7;:15;14355:6;14347:15;;;;;;;;;;;;;;;:46;;;;14422:28;14442:7;14422;:15;14430:6;14422:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14404:7;:15;14412:6;14404:15;;;;;;;;;;;;;;;:46;;;;14482:39;14505:15;14482:7;:18;14490:9;14482:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14461:7;:18;14469:9;14461:18;;;;;;;;;;;;;;;:60;;;;14553:39;14576:15;14553:7;:18;14561:9;14553:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14532:7;:18;14540:9;14532:18;;;;;;;;;;;;;;;:60;;;;14603:23;14615:4;14621;14603:11;:23::i;:::-;14659:9;14642:44;;14651:6;14642:44;;;14670:15;14642:44;;;;;;:::i;:::-;;;;;;;;14197:497;;;;;14089:605;;;;:::o;16144:555::-;16194:7;16203;16223:15;16241:7;;16223:25;;16259:15;7291:21;16259:25;;16300:9;16295:289;16319:9;:16;;;;16315:1;:20;16295:289;;;16385:7;16361;:21;16369:9;16379:1;16369:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16361:21;;;;;;;;;;;;;;;;:31;:66;;;;16420:7;16396;:21;16404:9;16414:1;16404:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16396:21;;;;;;;;;;;;;;;;:31;16361:66;16357:97;;;16437:7;;7291:21;16429:25;;;;;;;;;16357:97;16479:34;16491:7;:21;16499:9;16509:1;16499:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16491:21;;;;;;;;;;;;;;;;16479:7;:11;;:34;;;;:::i;:::-;16469:44;;16538:34;16550:7;:21;16558:9;16568:1;16558:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16550:21;;;;;;;;;;;;;;;;16538:7;:11;;:34;;;;:::i;:::-;16528:44;;16337:3;;;;;:::i;:::-;;;;16295:289;;;;16608:20;7291:21;16608:7;;:11;;:20;;;;:::i;:::-;16598:7;:30;16594:61;;;16638:7;;7291:21;16630:25;;;;;;;;16594:61;16674:7;16683;16666:25;;;;;;16144:555;;;:::o;14857:440::-;14933:7;14942;14951;14960;14969;14990:23;15015:12;15031:32;15043:7;15052:10;15031:11;:32::i;:::-;14989:74;;;;15074:19;15097:10;:8;:10::i;:::-;15074:33;;15119:15;15136:23;15161:12;15177:39;15189:7;15198:4;15204:11;15177;:39::i;:::-;15118:98;;;;;;15235:7;15244:15;15261:4;15267:15;15284:4;15227:62;;;;;;;;;;;;;;;;14857:440;;;;;;;;:::o;5648:98::-;5706:7;5737:1;5733;:5;;;;:::i;:::-;5726:12;;5648:98;;;;:::o;14702:147::-;14780:17;14792:4;14780:7;;:11;;:17;;;;:::i;:::-;14770:7;:27;;;;14821:20;14836:4;14821:10;;:14;;:20;;;;:::i;:::-;14808:10;:33;;;;14702:147;;:::o;15307:316::-;15384:7;15393;15413:12;15445:10;15440:81;;15478:31;15503:5;15478:20;7593:1;15478:7;:11;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;15471:38;;15440:81;15531:23;15557:17;15569:4;15557:7;:11;;:17;;;;:::i;:::-;15531:43;;15593:15;15610:4;15585:30;;;;;;15307:316;;;;;:::o;15631:334::-;15726:7;15735;15744;15764:15;15782:24;15794:11;15782:7;:11;;:24;;;;:::i;:::-;15764:42;;15817:12;15832:21;15841:11;15832:4;:8;;:21;;;;:::i;:::-;15817:36;;15864:23;15890:17;15902:4;15890:7;:11;;:17;;;;:::i;:::-;15864:43;;15926:7;15935:15;15952:4;15918:39;;;;;;;;;15631:334;;;;;;;:::o;5754:98::-;5812:7;5843:1;5839;:5;;;;:::i;:::-;5832:12;;5754:98;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:329::-;2276:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:119;;;2331:79;;:::i;:::-;2293:119;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2217:329;;;;:::o;2552:118::-;2639:24;2657:5;2639:24;:::i;:::-;2634:3;2627:37;2552:118;;:::o;2676:109::-;2757:21;2772:5;2757:21;:::i;:::-;2752:3;2745:34;2676:109;;:::o;2791:364::-;2879:3;2907:39;2940:5;2907:39;:::i;:::-;2962:71;3026:6;3021:3;2962:71;:::i;:::-;2955:78;;3042:52;3087:6;3082:3;3075:4;3068:5;3064:16;3042:52;:::i;:::-;3119:29;3141:6;3119:29;:::i;:::-;3114:3;3110:39;3103:46;;2883:272;2791:364;;;;:::o;3161:366::-;3303:3;3324:67;3388:2;3383:3;3324:67;:::i;:::-;3317:74;;3400:93;3489:3;3400:93;:::i;:::-;3518:2;3513:3;3509:12;3502:19;;3161:366;;;:::o;3533:::-;3675:3;3696:67;3760:2;3755:3;3696:67;:::i;:::-;3689:74;;3772:93;3861:3;3772:93;:::i;:::-;3890:2;3885:3;3881:12;3874:19;;3533:366;;;:::o;3905:::-;4047:3;4068:67;4132:2;4127:3;4068:67;:::i;:::-;4061:74;;4144:93;4233:3;4144:93;:::i;:::-;4262:2;4257:3;4253:12;4246:19;;3905:366;;;:::o;4277:::-;4419:3;4440:67;4504:2;4499:3;4440:67;:::i;:::-;4433:74;;4516:93;4605:3;4516:93;:::i;:::-;4634:2;4629:3;4625:12;4618:19;;4277:366;;;:::o;4649:::-;4791:3;4812:67;4876:2;4871:3;4812:67;:::i;:::-;4805:74;;4888:93;4977:3;4888:93;:::i;:::-;5006:2;5001:3;4997:12;4990:19;;4649:366;;;:::o;5021:::-;5163:3;5184:67;5248:2;5243:3;5184:67;:::i;:::-;5177:74;;5260:93;5349:3;5260:93;:::i;:::-;5378:2;5373:3;5369:12;5362:19;;5021:366;;;:::o;5393:::-;5535:3;5556:67;5620:2;5615:3;5556:67;:::i;:::-;5549:74;;5632:93;5721:3;5632:93;:::i;:::-;5750:2;5745:3;5741:12;5734:19;;5393:366;;;:::o;5765:::-;5907:3;5928:67;5992:2;5987:3;5928:67;:::i;:::-;5921:74;;6004:93;6093:3;6004:93;:::i;:::-;6122:2;6117:3;6113:12;6106:19;;5765:366;;;:::o;6137:::-;6279:3;6300:67;6364:2;6359:3;6300:67;:::i;:::-;6293:74;;6376:93;6465:3;6376:93;:::i;:::-;6494:2;6489:3;6485:12;6478:19;;6137:366;;;:::o;6509:::-;6651:3;6672:67;6736:2;6731:3;6672:67;:::i;:::-;6665:74;;6748:93;6837:3;6748:93;:::i;:::-;6866:2;6861:3;6857:12;6850:19;;6509:366;;;:::o;6881:118::-;6968:24;6986:5;6968:24;:::i;:::-;6963:3;6956:37;6881:118;;:::o;7005:112::-;7088:22;7104:5;7088:22;:::i;:::-;7083:3;7076:35;7005:112;;:::o;7123:222::-;7216:4;7254:2;7243:9;7239:18;7231:26;;7267:71;7335:1;7324:9;7320:17;7311:6;7267:71;:::i;:::-;7123:222;;;;:::o;7351:210::-;7438:4;7476:2;7465:9;7461:18;7453:26;;7489:65;7551:1;7540:9;7536:17;7527:6;7489:65;:::i;:::-;7351:210;;;;:::o;7567:313::-;7680:4;7718:2;7707:9;7703:18;7695:26;;7767:9;7761:4;7757:20;7753:1;7742:9;7738:17;7731:47;7795:78;7868:4;7859:6;7795:78;:::i;:::-;7787:86;;7567:313;;;;:::o;7886:419::-;8052:4;8090:2;8079:9;8075:18;8067:26;;8139:9;8133:4;8129:20;8125:1;8114:9;8110:17;8103:47;8167:131;8293:4;8167:131;:::i;:::-;8159:139;;7886:419;;;:::o;8311:::-;8477:4;8515:2;8504:9;8500:18;8492:26;;8564:9;8558:4;8554:20;8550:1;8539:9;8535:17;8528:47;8592:131;8718:4;8592:131;:::i;:::-;8584:139;;8311:419;;;:::o;8736:::-;8902:4;8940:2;8929:9;8925:18;8917:26;;8989:9;8983:4;8979:20;8975:1;8964:9;8960:17;8953:47;9017:131;9143:4;9017:131;:::i;:::-;9009:139;;8736:419;;;:::o;9161:::-;9327:4;9365:2;9354:9;9350:18;9342:26;;9414:9;9408:4;9404:20;9400:1;9389:9;9385:17;9378:47;9442:131;9568:4;9442:131;:::i;:::-;9434:139;;9161:419;;;:::o;9586:::-;9752:4;9790:2;9779:9;9775:18;9767:26;;9839:9;9833:4;9829:20;9825:1;9814:9;9810:17;9803:47;9867:131;9993:4;9867:131;:::i;:::-;9859:139;;9586:419;;;:::o;10011:::-;10177:4;10215:2;10204:9;10200:18;10192:26;;10264:9;10258:4;10254:20;10250:1;10239:9;10235:17;10228:47;10292:131;10418:4;10292:131;:::i;:::-;10284:139;;10011:419;;;:::o;10436:::-;10602:4;10640:2;10629:9;10625:18;10617:26;;10689:9;10683:4;10679:20;10675:1;10664:9;10660:17;10653:47;10717:131;10843:4;10717:131;:::i;:::-;10709:139;;10436:419;;;:::o;10861:::-;11027:4;11065:2;11054:9;11050:18;11042:26;;11114:9;11108:4;11104:20;11100:1;11089:9;11085:17;11078:47;11142:131;11268:4;11142:131;:::i;:::-;11134:139;;10861:419;;;:::o;11286:::-;11452:4;11490:2;11479:9;11475:18;11467:26;;11539:9;11533:4;11529:20;11525:1;11514:9;11510:17;11503:47;11567:131;11693:4;11567:131;:::i;:::-;11559:139;;11286:419;;;:::o;11711:::-;11877:4;11915:2;11904:9;11900:18;11892:26;;11964:9;11958:4;11954:20;11950:1;11939:9;11935:17;11928:47;11992:131;12118:4;11992:131;:::i;:::-;11984:139;;11711:419;;;:::o;12136:222::-;12229:4;12267:2;12256:9;12252:18;12244:26;;12280:71;12348:1;12337:9;12333:17;12324:6;12280:71;:::i;:::-;12136:222;;;;:::o;12364:214::-;12453:4;12491:2;12480:9;12476:18;12468:26;;12504:67;12568:1;12557:9;12553:17;12544:6;12504:67;:::i;:::-;12364:214;;;;:::o;12665:99::-;12717:6;12751:5;12745:12;12735:22;;12665:99;;;:::o;12770:169::-;12854:11;12888:6;12883:3;12876:19;12928:4;12923:3;12919:14;12904:29;;12770:169;;;;:::o;12945:305::-;12985:3;13004:20;13022:1;13004:20;:::i;:::-;12999:25;;13038:20;13056:1;13038:20;:::i;:::-;13033:25;;13192:1;13124:66;13120:74;13117:1;13114:81;13111:107;;;13198:18;;:::i;:::-;13111:107;13242:1;13239;13235:9;13228:16;;12945:305;;;;:::o;13256:185::-;13296:1;13313:20;13331:1;13313:20;:::i;:::-;13308:25;;13347:20;13365:1;13347:20;:::i;:::-;13342:25;;13386:1;13376:35;;13391:18;;:::i;:::-;13376:35;13433:1;13430;13426:9;13421:14;;13256:185;;;;:::o;13447:348::-;13487:7;13510:20;13528:1;13510:20;:::i;:::-;13505:25;;13544:20;13562:1;13544:20;:::i;:::-;13539:25;;13732:1;13664:66;13660:74;13657:1;13654:81;13649:1;13642:9;13635:17;13631:105;13628:131;;;13739:18;;:::i;:::-;13628:131;13787:1;13784;13780:9;13769:20;;13447:348;;;;:::o;13801:191::-;13841:4;13861:20;13879:1;13861:20;:::i;:::-;13856:25;;13895:20;13913:1;13895:20;:::i;:::-;13890:25;;13934:1;13931;13928:8;13925:34;;;13939:18;;:::i;:::-;13925:34;13984:1;13981;13977:9;13969:17;;13801:191;;;;:::o;13998:96::-;14035:7;14064:24;14082:5;14064:24;:::i;:::-;14053:35;;13998:96;;;:::o;14100:90::-;14134:7;14177:5;14170:13;14163:21;14152:32;;14100:90;;;:::o;14196:126::-;14233:7;14273:42;14266:5;14262:54;14251:65;;14196:126;;;:::o;14328:77::-;14365:7;14394:5;14383:16;;14328:77;;;:::o;14411:86::-;14446:7;14486:4;14479:5;14475:16;14464:27;;14411:86;;;:::o;14503:307::-;14571:1;14581:113;14595:6;14592:1;14589:13;14581:113;;;14680:1;14675:3;14671:11;14665:18;14661:1;14656:3;14652:11;14645:39;14617:2;14614:1;14610:10;14605:15;;14581:113;;;14712:6;14709:1;14706:13;14703:101;;;14792:1;14783:6;14778:3;14774:16;14767:27;14703:101;14552:258;14503:307;;;:::o;14816:233::-;14855:3;14878:24;14896:5;14878:24;:::i;:::-;14869:33;;14924:66;14917:5;14914:77;14911:103;;;14994:18;;:::i;:::-;14911:103;15041:1;15034:5;15030:13;15023:20;;14816:233;;;:::o;15055:180::-;15103:77;15100:1;15093:88;15200:4;15197:1;15190:15;15224:4;15221:1;15214:15;15241:180;15289:77;15286:1;15279:88;15386:4;15383:1;15376:15;15410:4;15407:1;15400:15;15427:180;15475:77;15472:1;15465:88;15572:4;15569:1;15562:15;15596:4;15593:1;15586:15;15613:180;15661:77;15658:1;15651:88;15758:4;15755:1;15748:15;15782:4;15779:1;15772:15;15922:117;16031:1;16028;16021:12;16045:102;16086:6;16137:2;16133:7;16128:2;16121:5;16117:14;16113:28;16103:38;;16045:102;;;:::o;16153:222::-;16293:34;16289:1;16281:6;16277:14;16270:58;16362:5;16357:2;16349:6;16345:15;16338:30;16153:222;:::o;16381:229::-;16521:34;16517:1;16509:6;16505:14;16498:58;16590:12;16585:2;16577:6;16573:15;16566:37;16381:229;:::o;16616:221::-;16756:34;16752:1;16744:6;16740:14;16733:58;16825:4;16820:2;16812:6;16808:15;16801:29;16616:221;:::o;16843:223::-;16983:34;16979:1;16971:6;16967:14;16960:58;17052:6;17047:2;17039:6;17035:15;17028:31;16843:223;:::o;17072:222::-;17212:34;17208:1;17200:6;17196:14;17189:58;17281:5;17276:2;17268:6;17264:15;17257:30;17072:222;:::o;17300:177::-;17440:29;17436:1;17428:6;17424:14;17417:53;17300:177;:::o;17483:182::-;17623:34;17619:1;17611:6;17607:14;17600:58;17483:182;:::o;17671:228::-;17811:34;17807:1;17799:6;17795:14;17788:58;17880:11;17875:2;17867:6;17863:15;17856:36;17671:228;:::o;17905:224::-;18045:34;18041:1;18033:6;18029:14;18022:58;18114:7;18109:2;18101:6;18097:15;18090:32;17905:224;:::o;18135:223::-;18275:34;18271:1;18263:6;18259:14;18252:58;18344:6;18339:2;18331:6;18327:15;18320:31;18135:223;:::o;18364:122::-;18437:24;18455:5;18437:24;:::i;:::-;18430:5;18427:35;18417:63;;18476:1;18473;18466:12;18417:63;18364:122;:::o;18492:::-;18565:24;18583:5;18565:24;:::i;:::-;18558:5;18555:35;18545:63;;18604:1;18601;18594:12;18545:63;18492:122;:::o

Swarm Source

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