ETH Price: $1,881.23 (-12.26%)
Gas: 1.09 Gwei
 

Overview

Max Total Supply

100,000,000,000,000,000 CNTM NWIF

Holders

7

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
CNTMNWIFToken

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-08-08
*/

/* 
CNTMNWIF

https://www.CNTMNWIF.io
https://x.com/CNTMNWIF
https://t.me/CNTMNWIF

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.30;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface Bep20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

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

contract OwnableBep20 is ContextBep20 {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "OwnableBep20: caller is not the owner");
        _;
    }

 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "OwnableBep20: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract CNTMNWIFToken is ContextBep20, Bep20, OwnableBep20 {
    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 _allTotalSupply = 100000000000 * 10**6 * 10**9;
    uint256 private _rTotalSupply = (MAX - (MAX % _allTotalSupply));
    uint256 private _tFeeTotal;

    string private _name = 'CNTM NWIF';
    string private _symbol = 'CNTM NWIF';
    uint8 private _decimals = 9;
       //Contract Update Information
    string public constant Contract_Version = "0.8.30";
    string public constant Contract_Dev = "Team CNTMNWIF SAFU DEV || NFA,DYOR";
    string public constant Contract_Edition = "Contract For 1M";
    string public constant CNTMNWIFTGNEWS = "https://t.me/CNTMNWIF";
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    string public constant CNTMNWIFaudited = "CNTMNWIF will be audited by: https://www.certik.com/";

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

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

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

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

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public 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() public view returns (uint256) {
        return _tFeeTotal;
    }

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotalSupply = _rTotalSupply.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _allTotalSupply, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotalSupply, "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 not 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 not 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");
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _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) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(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 _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _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) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _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 {
        _rTotalSupply = _rTotalSupply.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

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

    function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) {
        uint256 tFee = tAmount.div(100).mul(0);
        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 = _rTotalSupply;
        uint256 tSupply = _allTotalSupply;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotalSupply, _allTotalSupply);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotalSupply.div(_allTotalSupply)) return (_rTotalSupply, _allTotalSupply);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"CNTMNWIFTGNEWS","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CNTMNWIFaudited","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Contract_Dev","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Contract_Edition","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Contract_Version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"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":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405261001a6a52b7d2dcc80cd2e40000005f19610138565b610025905f19610157565b60065560408051808201909152600981526821a72a2690272ba4a360b91b60208201526008906100559082610214565b506040805180820190915260098082526821a72a2690272ba4a360b91b6020830152906100829082610214565b50600a805460ff1916600917905534801561009b575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f8181526001602090815260408083209490945592516a52b7d2dcc80cd2e40000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36102ce565b5f8261015257634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561017657634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806101a457607f821691505b6020821081036101c257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561020f57805f5260205f20601f840160051c810160208510156101ed5750805b601f840160051c820191505b8181101561020c575f81556001016101f9565b50505b505050565b81516001600160401b0381111561022d5761022d61017c565b6102418161023b8454610190565b846101c8565b6020601f821160018114610273575f831561025c5750848201515b5f19600385901b1c1916600184901b17845561020c565b5f84815260208120601f198516915b828110156102a25787850151825560209485019460019092019101610282565b50848210156102bf57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b611958806102db5f395ff3fe608060405234801561000f575f5ffd5b50600436106101a1575f3560e01c8063715018a6116100f3578063c0ab60ea11610093578063e13a97141161006e578063e13a9714146103bf578063f2cc0c18146103f3578063f2fde38b14610406578063f84354f114610419575f5ffd5b8063c0ab60ea1461032e578063cba0e9961461035c578063dd62ed3e14610387575f5ffd5b8063929e928a116100ce578063929e928a146102db57806395d89b4114610300578063a457c2d714610308578063a9059cbb1461031b575f5ffd5b8063715018a6146102a257806385141a77146102aa5780638da5cb5b146102cb575f5ffd5b80631fdafcc51161015e578063313ce56711610139578063313ce5671461025457806339509351146102695780634549b0391461027c57806370a082311461028f575f5ffd5b80631fdafcc51461022657806323b872dd1461022e5780632d83811914610241575f5ffd5b8063053ab182146101a557806306fdde03146101ba578063095ea7b3146101d85780630c23e107146101fb57806313114a9d1461020357806318160ddd14610215575b5f5ffd5b6101b86101b3366004611625565b61042c565b005b6101c2610515565b6040516101cf919061163c565b60405180910390f35b6101eb6101e636600461168c565b6105a5565b60405190151581526020016101cf565b6101c26105bb565b6007545b6040519081526020016101cf565b6a52b7d2dcc80cd2e4000000610207565b6101c26105d7565b6101eb61023c3660046116b4565b6105f3565b61020761024f366004611625565b61065a565b600a5460405160ff90911681526020016101cf565b6101eb61027736600461168c565b6106dc565b61020761028a3660046116ee565b610711565b61020761029d366004611720565b6107a2565b6101b86107fe565b6102b361dead81565b6040516001600160a01b0390911681526020016101cf565b5f546001600160a01b03166102b3565b6101c2604051806040016040528060068152602001650302e382e33360d41b81525081565b6101c261086f565b6101eb61031636600461168c565b61087e565b6101eb61032936600461168c565b6108cb565b6101c26040518060400160405280600f81526020016e436f6e747261637420466f7220314d60881b81525081565b6101eb61036a366004611720565b6001600160a01b03165f9081526004602052604090205460ff1690565b610207610395366004611739565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b6101c260405180604001604052806015815260200174343a3a38399d1797ba1736b297a1a72a26a72ba4a360591b81525081565b6101b8610401366004611720565b6108d7565b6101b8610414366004611720565b610a1e565b6101b8610427366004611720565b610b0a565b335f8181526004602052604090205460ff16156104a55760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b5f6104af83610ca8565b505050506001600160a01b0383165f908152600160205260409020549091506104d89082610ced565b6001600160a01b0383165f908152600160205260409020556006546104fd9082610ced565b60065560075461050d9084610d2e565b600755505050565b6060600880546105249061176a565b80601f01602080910402602001604051908101604052809291908181526020018280546105509061176a565b801561059b5780601f106105725761010080835404028352916020019161059b565b820191905f5260205f20905b81548152906001019060200180831161057e57829003601f168201915b5050505050905090565b5f6105b1338484610d8c565b5060015b92915050565b6040518060600160405280603481526020016118806034913981565b6040518060600160405280602281526020016118dc6022913981565b5f6105ff848484610eaf565b610650843361064b856040518060600160405280602881526020016118b4602891396001600160a01b038a165f90815260036020908152604080832033845290915290205491906110d4565b610d8c565b5060019392505050565b5f6006548211156106c05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161049c565b5f6106c961110c565b90506106d5838261112d565b9392505050565b335f8181526003602090815260408083206001600160a01b038716845290915281205490916105b191859061064b9086610d2e565b5f6a52b7d2dcc80cd2e400000083111561076d5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161049c565b8161078a575f61077c84610ca8565b509294506105b59350505050565b5f61079484610ca8565b509194506105b59350505050565b6001600160a01b0381165f9081526004602052604081205460ff16156107dd57506001600160a01b03165f9081526002602052604090205490565b6001600160a01b0382165f908152600160205260409020546105b59061065a565b5f546001600160a01b031633146108275760405162461bcd60e51b815260040161049c906117a2565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600980546105249061176a565b5f6105b1338461064b856040518060600160405280602581526020016118fe60259139335f9081526003602090815260408083206001600160a01b038d16845290915290205491906110d4565b5f6105b1338484610eaf565b5f546001600160a01b031633146109005760405162461bcd60e51b815260040161049c906117a2565b6001600160a01b0381165f9081526004602052604090205460ff16156109625760405162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b604482015260640161049c565b6001600160a01b0381165f90815260016020526040902054156109b9576001600160a01b0381165f908152600160205260409020546109a09061065a565b6001600160a01b0382165f908152600260205260409020555b6001600160a01b03165f818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b5f546001600160a01b03163314610a475760405162461bcd60e51b815260040161049c906117a2565b6001600160a01b038116610ab15760405162461bcd60e51b815260206004820152602b60248201527f4f776e61626c6542657032303a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b606482015260840161049c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610b335760405162461bcd60e51b815260040161049c906117a2565b6001600160a01b0381165f9081526004602052604090205460ff16610b945760405162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b604482015260640161049c565b5f5b600554811015610ca457816001600160a01b031660058281548110610bbd57610bbd6117e7565b5f918252602090912001546001600160a01b031603610c9c5760058054610be69060019061180f565b81548110610bf657610bf66117e7565b5f91825260209091200154600580546001600160a01b039092169183908110610c2157610c216117e7565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610c7857610c78611822565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b600101610b96565b5050565b5f5f5f5f5f5f5f610cb88861116e565b915091505f610cc561110c565b90505f5f5f610cd58c868661119e565b919e909d50909b509599509397509395505050505050565b5f6106d583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110d4565b5f80610d3a8385611836565b9050838110156106d55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161049c565b6001600160a01b038316610dee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049c565b6001600160a01b038216610e4f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049c565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049c565b6001600160a01b038216610f755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049c565b5f8111610fd65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049c565b6001600160a01b0383165f9081526004602052604090205460ff16801561101557506001600160a01b0382165f9081526004602052604090205460ff16155b1561102a576110258383836111d7565b505050565b6001600160a01b0383165f9081526004602052604090205460ff1615801561106957506001600160a01b0382165f9081526004602052604090205460ff165b15611079576110258383836112e9565b6001600160a01b0383165f9081526004602052604090205460ff161580156110b957506001600160a01b0382165f9081526004602052604090205460ff16155b156110c957611025838383611389565b611025838383611389565b5f81848411156110f75760405162461bcd60e51b815260040161049c919061163c565b505f611103848661180f565b95945050505050565b5f5f5f6111176113c6565b9092509050611126828261112d565b9250505090565b5f6106d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611557565b5f80806111868161118086606461112d565b90611583565b90505f6111938583610ced565b959194509092505050565b5f8080806111ac8786611583565b90505f6111b98787611583565b90505f6111c68383610ced565b929992985090965090945050505050565b5f5f5f5f5f6111e586610ca8565b6001600160a01b038d165f90815260026020526040902054949950929750909550935091506112149087610ced565b6001600160a01b0389165f908152600260209081526040808320939093556001905220546112429086610ced565b6001600160a01b03808a165f9081526001602052604080822093909355908916815220546112709085610d2e565b6001600160a01b0388165f908152600160205260409020556112928382611601565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d791815260200190565b60405180910390a35050505050505050565b5f5f5f5f5f6112f786610ca8565b6001600160a01b038d165f90815260016020526040902054949950929750909550935091506113269086610ced565b6001600160a01b03808a165f90815260016020908152604080832094909455918a1681526002909152205461135b9083610d2e565b6001600160a01b0388165f908152600260209081526040808320939093556001905220546112709085610d2e565b5f5f5f5f5f61139786610ca8565b6001600160a01b038d165f90815260016020526040902054949950929750909550935091506112429086610ced565b6006545f9081906a52b7d2dcc80cd2e4000000825b600554811015611516578260015f600584815481106113fc576113fc6117e7565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061146457508160025f6005848154811061143e5761143e6117e7565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b15611482575050600654936a52b7d2dcc80cd2e40000009350915050565b6114c660015f6005848154811061149b5761149b6117e7565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548490610ced565b925061150c60025f600584815481106114e1576114e16117e7565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548390610ced565b91506001016113db565b5060065461152f906a52b7d2dcc80cd2e400000061112d565b82101561154e575050600654926a52b7d2dcc80cd2e400000092509050565b90939092509050565b5f81836115775760405162461bcd60e51b815260040161049c919061163c565b505f6111038486611849565b5f825f0361159257505f6105b5565b5f61159d8385611868565b9050826115aa8583611849565b146106d55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049c565b60065461160e9083610ced565b60065560075461161e9082610d2e565b6007555050565b5f60208284031215611635575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611687575f5ffd5b919050565b5f5f6040838503121561169d575f5ffd5b6116a683611671565b946020939093013593505050565b5f5f5f606084860312156116c6575f5ffd5b6116cf84611671565b92506116dd60208501611671565b929592945050506040919091013590565b5f5f604083850312156116ff575f5ffd5b8235915060208301358015158114611715575f5ffd5b809150509250929050565b5f60208284031215611730575f5ffd5b6106d582611671565b5f5f6040838503121561174a575f5ffd5b61175383611671565b915061176160208401611671565b90509250929050565b600181811c9082168061177e57607f821691505b60208210810361179c57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526025908201527f4f776e61626c6542657032303a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156105b5576105b56117fb565b634e487b7160e01b5f52603160045260245ffd5b808201808211156105b5576105b56117fb565b5f8261186357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105b5576105b56117fb56fe434e544d4e5749462077696c6c20626520617564697465642062793a2068747470733a2f2f7777772e63657274696b2e636f6d2f45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655465616d20434e544d4e574946205341465520444556207c7c204e46412c44594f5245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c2c85f18902631325a3bf02616e241cfd0b04afabbf3b5999ed8def31b5dd99464736f6c634300081e0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106101a1575f3560e01c8063715018a6116100f3578063c0ab60ea11610093578063e13a97141161006e578063e13a9714146103bf578063f2cc0c18146103f3578063f2fde38b14610406578063f84354f114610419575f5ffd5b8063c0ab60ea1461032e578063cba0e9961461035c578063dd62ed3e14610387575f5ffd5b8063929e928a116100ce578063929e928a146102db57806395d89b4114610300578063a457c2d714610308578063a9059cbb1461031b575f5ffd5b8063715018a6146102a257806385141a77146102aa5780638da5cb5b146102cb575f5ffd5b80631fdafcc51161015e578063313ce56711610139578063313ce5671461025457806339509351146102695780634549b0391461027c57806370a082311461028f575f5ffd5b80631fdafcc51461022657806323b872dd1461022e5780632d83811914610241575f5ffd5b8063053ab182146101a557806306fdde03146101ba578063095ea7b3146101d85780630c23e107146101fb57806313114a9d1461020357806318160ddd14610215575b5f5ffd5b6101b86101b3366004611625565b61042c565b005b6101c2610515565b6040516101cf919061163c565b60405180910390f35b6101eb6101e636600461168c565b6105a5565b60405190151581526020016101cf565b6101c26105bb565b6007545b6040519081526020016101cf565b6a52b7d2dcc80cd2e4000000610207565b6101c26105d7565b6101eb61023c3660046116b4565b6105f3565b61020761024f366004611625565b61065a565b600a5460405160ff90911681526020016101cf565b6101eb61027736600461168c565b6106dc565b61020761028a3660046116ee565b610711565b61020761029d366004611720565b6107a2565b6101b86107fe565b6102b361dead81565b6040516001600160a01b0390911681526020016101cf565b5f546001600160a01b03166102b3565b6101c2604051806040016040528060068152602001650302e382e33360d41b81525081565b6101c261086f565b6101eb61031636600461168c565b61087e565b6101eb61032936600461168c565b6108cb565b6101c26040518060400160405280600f81526020016e436f6e747261637420466f7220314d60881b81525081565b6101eb61036a366004611720565b6001600160a01b03165f9081526004602052604090205460ff1690565b610207610395366004611739565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b6101c260405180604001604052806015815260200174343a3a38399d1797ba1736b297a1a72a26a72ba4a360591b81525081565b6101b8610401366004611720565b6108d7565b6101b8610414366004611720565b610a1e565b6101b8610427366004611720565b610b0a565b335f8181526004602052604090205460ff16156104a55760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b5f6104af83610ca8565b505050506001600160a01b0383165f908152600160205260409020549091506104d89082610ced565b6001600160a01b0383165f908152600160205260409020556006546104fd9082610ced565b60065560075461050d9084610d2e565b600755505050565b6060600880546105249061176a565b80601f01602080910402602001604051908101604052809291908181526020018280546105509061176a565b801561059b5780601f106105725761010080835404028352916020019161059b565b820191905f5260205f20905b81548152906001019060200180831161057e57829003601f168201915b5050505050905090565b5f6105b1338484610d8c565b5060015b92915050565b6040518060600160405280603481526020016118806034913981565b6040518060600160405280602281526020016118dc6022913981565b5f6105ff848484610eaf565b610650843361064b856040518060600160405280602881526020016118b4602891396001600160a01b038a165f90815260036020908152604080832033845290915290205491906110d4565b610d8c565b5060019392505050565b5f6006548211156106c05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161049c565b5f6106c961110c565b90506106d5838261112d565b9392505050565b335f8181526003602090815260408083206001600160a01b038716845290915281205490916105b191859061064b9086610d2e565b5f6a52b7d2dcc80cd2e400000083111561076d5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161049c565b8161078a575f61077c84610ca8565b509294506105b59350505050565b5f61079484610ca8565b509194506105b59350505050565b6001600160a01b0381165f9081526004602052604081205460ff16156107dd57506001600160a01b03165f9081526002602052604090205490565b6001600160a01b0382165f908152600160205260409020546105b59061065a565b5f546001600160a01b031633146108275760405162461bcd60e51b815260040161049c906117a2565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600980546105249061176a565b5f6105b1338461064b856040518060600160405280602581526020016118fe60259139335f9081526003602090815260408083206001600160a01b038d16845290915290205491906110d4565b5f6105b1338484610eaf565b5f546001600160a01b031633146109005760405162461bcd60e51b815260040161049c906117a2565b6001600160a01b0381165f9081526004602052604090205460ff16156109625760405162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b604482015260640161049c565b6001600160a01b0381165f90815260016020526040902054156109b9576001600160a01b0381165f908152600160205260409020546109a09061065a565b6001600160a01b0382165f908152600260205260409020555b6001600160a01b03165f818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b5f546001600160a01b03163314610a475760405162461bcd60e51b815260040161049c906117a2565b6001600160a01b038116610ab15760405162461bcd60e51b815260206004820152602b60248201527f4f776e61626c6542657032303a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b606482015260840161049c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610b335760405162461bcd60e51b815260040161049c906117a2565b6001600160a01b0381165f9081526004602052604090205460ff16610b945760405162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b604482015260640161049c565b5f5b600554811015610ca457816001600160a01b031660058281548110610bbd57610bbd6117e7565b5f918252602090912001546001600160a01b031603610c9c5760058054610be69060019061180f565b81548110610bf657610bf66117e7565b5f91825260209091200154600580546001600160a01b039092169183908110610c2157610c216117e7565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610c7857610c78611822565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b600101610b96565b5050565b5f5f5f5f5f5f5f610cb88861116e565b915091505f610cc561110c565b90505f5f5f610cd58c868661119e565b919e909d50909b509599509397509395505050505050565b5f6106d583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110d4565b5f80610d3a8385611836565b9050838110156106d55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161049c565b6001600160a01b038316610dee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049c565b6001600160a01b038216610e4f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049c565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049c565b6001600160a01b038216610f755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049c565b5f8111610fd65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049c565b6001600160a01b0383165f9081526004602052604090205460ff16801561101557506001600160a01b0382165f9081526004602052604090205460ff16155b1561102a576110258383836111d7565b505050565b6001600160a01b0383165f9081526004602052604090205460ff1615801561106957506001600160a01b0382165f9081526004602052604090205460ff165b15611079576110258383836112e9565b6001600160a01b0383165f9081526004602052604090205460ff161580156110b957506001600160a01b0382165f9081526004602052604090205460ff16155b156110c957611025838383611389565b611025838383611389565b5f81848411156110f75760405162461bcd60e51b815260040161049c919061163c565b505f611103848661180f565b95945050505050565b5f5f5f6111176113c6565b9092509050611126828261112d565b9250505090565b5f6106d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611557565b5f80806111868161118086606461112d565b90611583565b90505f6111938583610ced565b959194509092505050565b5f8080806111ac8786611583565b90505f6111b98787611583565b90505f6111c68383610ced565b929992985090965090945050505050565b5f5f5f5f5f6111e586610ca8565b6001600160a01b038d165f90815260026020526040902054949950929750909550935091506112149087610ced565b6001600160a01b0389165f908152600260209081526040808320939093556001905220546112429086610ced565b6001600160a01b03808a165f9081526001602052604080822093909355908916815220546112709085610d2e565b6001600160a01b0388165f908152600160205260409020556112928382611601565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d791815260200190565b60405180910390a35050505050505050565b5f5f5f5f5f6112f786610ca8565b6001600160a01b038d165f90815260016020526040902054949950929750909550935091506113269086610ced565b6001600160a01b03808a165f90815260016020908152604080832094909455918a1681526002909152205461135b9083610d2e565b6001600160a01b0388165f908152600260209081526040808320939093556001905220546112709085610d2e565b5f5f5f5f5f61139786610ca8565b6001600160a01b038d165f90815260016020526040902054949950929750909550935091506112429086610ced565b6006545f9081906a52b7d2dcc80cd2e4000000825b600554811015611516578260015f600584815481106113fc576113fc6117e7565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061146457508160025f6005848154811061143e5761143e6117e7565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b15611482575050600654936a52b7d2dcc80cd2e40000009350915050565b6114c660015f6005848154811061149b5761149b6117e7565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548490610ced565b925061150c60025f600584815481106114e1576114e16117e7565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548390610ced565b91506001016113db565b5060065461152f906a52b7d2dcc80cd2e400000061112d565b82101561154e575050600654926a52b7d2dcc80cd2e400000092509050565b90939092509050565b5f81836115775760405162461bcd60e51b815260040161049c919061163c565b505f6111038486611849565b5f825f0361159257505f6105b5565b5f61159d8385611868565b9050826115aa8583611849565b146106d55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049c565b60065461160e9083610ced565b60065560075461161e9082610d2e565b6007555050565b5f60208284031215611635575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611687575f5ffd5b919050565b5f5f6040838503121561169d575f5ffd5b6116a683611671565b946020939093013593505050565b5f5f5f606084860312156116c6575f5ffd5b6116cf84611671565b92506116dd60208501611671565b929592945050506040919091013590565b5f5f604083850312156116ff575f5ffd5b8235915060208301358015158114611715575f5ffd5b809150509250929050565b5f60208284031215611730575f5ffd5b6106d582611671565b5f5f6040838503121561174a575f5ffd5b61175383611671565b915061176160208401611671565b90509250929050565b600181811c9082168061177e57607f821691505b60208210810361179c57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526025908201527f4f776e61626c6542657032303a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156105b5576105b56117fb565b634e487b7160e01b5f52603160045260245ffd5b808201808211156105b5576105b56117fb565b5f8261186357634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105b5576105b56117fb56fe434e544d4e5749462077696c6c20626520617564697465642062793a2068747470733a2f2f7777772e63657274696b2e636f6d2f45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655465616d20434e544d4e574946205341465520444556207c7c204e46412c44594f5245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c2c85f18902631325a3bf02616e241cfd0b04afabbf3b5999ed8def31b5dd99464736f6c634300081e0033

Deployed Bytecode Sourcemap

8704:10676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12233:388;;;;;;:::i;:::-;;:::i;:::-;;10107:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11027:161;;;;;;:::i;:::-;;:::i;:::-;;;1316:14:1;;1309:22;1291:41;;1279:2;1264:18;11027:161:0;1151:187:1;9857:95:0;;;:::i;12138:87::-;12207:10;;12138:87;;;1489:25:1;;;1477:2;1462:18;12138:87:0;1343:177:1;10384:103:0;9201:28;10384:103;;9554:74;;;:::i;11196:313::-;;;;;;:::i;:::-;;:::i;13079:259::-;;;;;;:::i;:::-;;:::i;10293:83::-;10359:9;;10293:83;;10359:9;;;;2046:36:1;;2034:2;2019:18;10293:83:0;1904:184:1;11517:218:0;;;;;;:::i;:::-;;:::i;12629:442::-;;;;;;:::i;:::-;;:::i;10495:198::-;;;;;;:::i;:::-;;:::i;8145:148::-;;;:::i;9771:79::-;;9808:42;9771:79;;;;;-1:-1:-1;;;;;2848:32:1;;;2830:51;;2818:2;2803:18;9771:79:0;2684:203:1;7838:79:0;7876:7;7903:6;-1:-1:-1;;;;;7903:6:0;7838:79;;9497:50;;;;;;;;;;;;;;;-1:-1:-1;;;9497:50:0;;;;;10198:87;;;:::i;11743:269::-;;;;;;:::i;:::-;;:::i;10701:167::-;;;;;;:::i;:::-;;:::i;9635:59::-;;;;;;;;;;;;;;;-1:-1:-1;;;9635:59:0;;;;;12020:110;;;;;;:::i;:::-;-1:-1:-1;;;;;12102:20:0;12078:4;12102:20;;;:11;:20;;;;;;;;;12020:110;10876:143;;;;;;:::i;:::-;-1:-1:-1;;;;;10984:18:0;;;10957:7;10984:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10876:143;9701:63;;;;;;;;;;;;;;;-1:-1:-1;;;9701:63:0;;;;;13346:328;;;;;;:::i;:::-;;:::i;8448:249::-;;;;;;:::i;:::-;;:::i;13682:474::-;;;;;;:::i;:::-;;:::i;12233:388::-;284:10;12285:14;12334:19;;;:11;:19;;;;;;;;12333:20;12325:77;;;;-1:-1:-1;;;12325:77:0;;3359:2:1;12325:77:0;;;3341:21:1;3398:2;3378:18;;;3371:30;3437:34;3417:18;;;3410:62;-1:-1:-1;;;3488:18:1;;;3481:42;3540:19;;12325:77:0;;;;;;;;;12414:15;12437:19;12448:7;12437:10;:19::i;:::-;-1:-1:-1;;;;;;;;;12485:15:0;;;;;;:7;:15;;;;;;12413:43;;-1:-1:-1;12485:28:0;;12413:43;12485:19;:28::i;:::-;-1:-1:-1;;;;;12467:15:0;;;;;;:7;:15;;;;;:46;12540:13;;:26;;12558:7;12540:17;:26::i;:::-;12524:13;:42;12590:10;;:23;;12605:7;12590:14;:23::i;:::-;12577:10;:36;-1:-1:-1;;;12233:388:0:o;10107:83::-;10144:13;10177:5;10170:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10107:83;:::o;11027:161::-;11102:4;11119:39;284:10;11142:7;11151:6;11119:8;:39::i;:::-;-1:-1:-1;11176:4:0;11027:161;;;;;:::o;9857:95::-;;;;;;;;;;;;;;;;;;;:::o;9554:74::-;;;;;;;;;;;;;;;;;;;:::o;11196:313::-;11294:4;11311:36;11321:6;11329:9;11340:6;11311:9;:36::i;:::-;11358:121;11367:6;284:10;11389:89;11427:6;11389:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11389:19:0;;;;;;:11;:19;;;;;;;;284:10;11389:33;;;;;;;;;;:37;:89::i;:::-;11358:8;:121::i;:::-;-1:-1:-1;11497:4:0;11196:313;;;;;:::o;13079:259::-;13145:7;13184:13;;13173:7;:24;;13165:79;;;;-1:-1:-1;;;13165:79:0;;4157:2:1;13165:79:0;;;4139:21:1;4196:2;4176:18;;;4169:30;4235:34;4215:18;;;4208:62;-1:-1:-1;;;4286:18:1;;;4279:40;4336:19;;13165:79:0;3955:406:1;13165:79:0;13255:19;13278:10;:8;:10::i;:::-;13255:33;-1:-1:-1;13306:24:0;:7;13255:33;13306:11;:24::i;:::-;13299:31;13079:259;-1:-1:-1;;;13079:259:0:o;11517:218::-;284:10;11605:4;11654:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11654:34:0;;;;;;;;;;11605:4;;11622:83;;11645:7;;11654:50;;11693:10;11654:38;:50::i;12629:442::-;12719:7;9201:28;12747:7;:26;;12739:70;;;;-1:-1:-1;;;12739:70:0;;4568:2:1;12739:70:0;;;4550:21:1;4607:2;4587:18;;;4580:30;4646:33;4626:18;;;4619:61;4697:18;;12739:70:0;4366:355:1;12739:70:0;12825:17;12820:244;;12860:15;12883:19;12894:7;12883:10;:19::i;:::-;-1:-1:-1;12859:43:0;;-1:-1:-1;12917:14:0;;-1:-1:-1;;;;12917:14:0;12820:244;12966:23;12996:19;13007:7;12996:10;:19::i;:::-;-1:-1:-1;12964:51:0;;-1:-1:-1;13030:22:0;;-1:-1:-1;;;;13030:22:0;10495:198;-1:-1:-1;;;;;10585:20:0;;10561:7;10585:20;;;:11;:20;;;;;;;;10581:49;;;-1:-1:-1;;;;;;10614:16:0;;;;;:7;:16;;;;;;;10495:198::o;10581:49::-;-1:-1:-1;;;;;10668:16:0;;;;;;:7;:16;;;;;;10648:37;;:19;:37::i;8145:148::-;8050:6;;-1:-1:-1;;;;;8050:6:0;284:10;8050:22;8042:72;;;;-1:-1:-1;;;8042:72:0;;;;;;;:::i;:::-;8252:1:::1;8236:6:::0;;8215:40:::1;::::0;-1:-1:-1;;;;;8236:6:0;;::::1;::::0;8215:40:::1;::::0;8252:1;;8215:40:::1;8283:1;8266:19:::0;;-1:-1:-1;;;;;;8266:19:0::1;::::0;;8145:148::o;10198:87::-;10237:13;10270:7;10263:14;;;;;:::i;11743:269::-;11836:4;11853:129;284:10;11876:7;11885:96;11924:15;11885:96;;;;;;;;;;;;;;;;;284:10;11885:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11885:34:0;;;;;;;;;;;;:38;:96::i;10701:167::-;10779:4;10796:42;284:10;10820:9;10831:6;10796:9;:42::i;13346:328::-;8050:6;;-1:-1:-1;;;;;8050:6:0;284:10;8050:22;8042:72;;;;-1:-1:-1;;;8042:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13428:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;13427:21;13419:57;;;::::0;-1:-1:-1;;;13419:57:0;;5334:2:1;13419:57:0::1;::::0;::::1;5316:21:1::0;5373:2;5353:18;;;5346:30;-1:-1:-1;;;5392:18:1;;;5385:53;5455:18;;13419:57:0::1;5132:347:1::0;13419:57:0::1;-1:-1:-1::0;;;;;13490:16:0;::::1;13509:1;13490:16:::0;;;:7:::1;:16;::::0;;;;;:20;13487:108:::1;;-1:-1:-1::0;;;;;13566:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;13546:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;13527:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;13487:108:::1;-1:-1:-1::0;;;;;13605:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;13605:27:0::1;13628:4;13605:27:::0;;::::1;::::0;;;13643:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;13643:23:0::1;::::0;;::::1;::::0;;13346:328::o;8448:249::-;8050:6;;-1:-1:-1;;;;;8050:6:0;284:10;8050:22;8042:72;;;;-1:-1:-1;;;8042:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8537:22:0;::::1;8529:78;;;::::0;-1:-1:-1;;;8529:78:0;;5686:2:1;8529:78:0::1;::::0;::::1;5668:21:1::0;5725:2;5705:18;;;5698:30;5764:34;5744:18;;;5737:62;-1:-1:-1;;;5815:18:1;;;5808:41;5866:19;;8529:78:0::1;5484:407:1::0;8529:78:0::1;8644:6;::::0;;8623:38:::1;::::0;-1:-1:-1;;;;;8623:38:0;;::::1;::::0;8644:6;::::1;::::0;8623:38:::1;::::0;::::1;8672:6;:17:::0;;-1:-1:-1;;;;;;8672:17:0::1;-1:-1:-1::0;;;;;8672:17:0;;;::::1;::::0;;;::::1;::::0;;8448:249::o;13682:474::-;8050:6;;-1:-1:-1;;;;;8050:6:0;284:10;8050:22;8042:72;;;;-1:-1:-1;;;8042:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13763:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;13755:56;;;::::0;-1:-1:-1;;;13755:56:0;;5334:2:1;13755:56:0::1;::::0;::::1;5316:21:1::0;5373:2;5353:18;;;5346:30;-1:-1:-1;;;5392:18:1;;;5385:53;5455:18;;13755:56:0::1;5132:347:1::0;13755:56:0::1;13827:9;13822:327;13846:9;:16:::0;13842:20;::::1;13822:327;;;13904:7;-1:-1:-1::0;;;;;13888:23:0::1;:9;13898:1;13888:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;13888:12:0::1;:23:::0;13884:254:::1;;13947:9;13957:16:::0;;:20:::1;::::0;13976:1:::1;::::0;13957:20:::1;:::i;:::-;13947:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;13932:9:::1;:12:::0;;-1:-1:-1;;;;;13947:31:0;;::::1;::::0;13942:1;;13932:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;13932:46:0::1;-1:-1:-1::0;;;;;13932:46:0;;::::1;;::::0;;13997:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;14036:11:::1;:20:::0;;;;:28;;-1:-1:-1;;14036:28:0::1;::::0;;14083:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;14083:15:0;;;;;-1:-1:-1;;;;;;14083:15:0::1;::::0;;;;;13822:327:::1;13682:474:::0;:::o;13884:254::-:1;13864:3;;13822:327;;;;13682:474:::0;:::o;17590:411::-;17649:7;17658;17667;17676;17685;17706:23;17731:12;17747:20;17759:7;17747:11;:20::i;:::-;17705:62;;;;17778:19;17801:10;:8;:10::i;:::-;17778:33;;17823:15;17840:23;17865:12;17881:39;17893:7;17902:4;17908:11;17881;:39::i;:::-;17822:98;;;;-1:-1:-1;17822:98:0;;-1:-1:-1;17971:15:0;;-1:-1:-1;17988:4:0;;-1:-1:-1;17590:411:0;;-1:-1:-1;;;;;;17590:411:0:o;3401:136::-;3459:7;3486:43;3490:1;3493;3486:43;;;;;;;;;;;;;;;;;:3;:43::i;3212:181::-;3270:7;;3302:5;3306:1;3302;:5;:::i;:::-;3290:17;;3331:1;3326;:6;;3318:46;;;;-1:-1:-1;;;3318:46:0;;6757:2:1;3318:46:0;;;6739:21:1;6796:2;6776:18;;;6769:30;6835:29;6815:18;;;6808:57;6882:18;;3318:46:0;6555:351:1;14164:337:0;-1:-1:-1;;;;;14257:19:0;;14249:68;;;;-1:-1:-1;;;14249:68:0;;7113:2:1;14249:68:0;;;7095:21:1;7152:2;7132:18;;;7125:30;7191:34;7171:18;;;7164:62;-1:-1:-1;;;7242:18:1;;;7235:34;7286:19;;14249:68:0;6911:400:1;14249:68:0;-1:-1:-1;;;;;14336:21:0;;14328:68;;;;-1:-1:-1;;;14328:68:0;;7518:2:1;14328:68:0;;;7500:21:1;7557:2;7537:18;;;7530:30;7596:34;7576:18;;;7569:62;-1:-1:-1;;;7647:18:1;;;7640:32;7689:19;;14328:68:0;7316:398:1;14328:68:0;-1:-1:-1;;;;;14409:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14461:32;;1489:25:1;;;14461:32:0;;1462:18:1;14461:32:0;;;;;;;14164:337;;;:::o;14509:799::-;-1:-1:-1;;;;;14606:20:0;;14598:70;;;;-1:-1:-1;;;14598:70:0;;7921:2:1;14598:70:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:34;7979:18;;;7972:62;-1:-1:-1;;;8050:18:1;;;8043:35;8095:19;;14598:70:0;7719:401:1;14598:70:0;-1:-1:-1;;;;;14687:23:0;;14679:71;;;;-1:-1:-1;;;14679:71:0;;8327:2:1;14679:71:0;;;8309:21:1;8366:2;8346:18;;;8339:30;8405:34;8385:18;;;8378:62;-1:-1:-1;;;8456:18:1;;;8449:33;8499:19;;14679:71:0;8125:399:1;14679:71:0;14778:1;14769:6;:10;14761:64;;;;-1:-1:-1;;;14761:64:0;;8731:2:1;14761:64:0;;;8713:21:1;8770:2;8750:18;;;8743:30;8809:34;8789:18;;;8782:62;-1:-1:-1;;;8860:18:1;;;8853:39;8909:19;;14761:64:0;8529:405:1;14761:64:0;-1:-1:-1;;;;;14840:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;14864:22:0;;;;;;:11;:22;;;;;;;;14863:23;14840:46;14836:465;;;14903:48;14925:6;14933:9;14944:6;14903:21;:48::i;:::-;14509:799;;;:::o;14836:465::-;-1:-1:-1;;;;;14974:19:0;;;;;;:11;:19;;;;;;;;14973:20;:46;;;;-1:-1:-1;;;;;;14997:22:0;;;;;;:11;:22;;;;;;;;14973:46;14969:332;;;15036:46;15056:6;15064:9;15075:6;15036:19;:46::i;14969:332::-;-1:-1:-1;;;;;15105:19:0;;;;;;:11;:19;;;;;;;;15104:20;:47;;;;-1:-1:-1;;;;;;15129:22:0;;;;;;:11;:22;;;;;;;;15128:23;15104:47;15100:201;;;15168:44;15186:6;15194:9;15205:6;15168:17;:44::i;15100:201::-;15245:44;15263:6;15271:9;15282:6;15245:17;:44::i;3545:192::-;3631:7;3667:12;3659:6;;;;3651:29;;;;-1:-1:-1;;;3651:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3691:9:0;3703:5;3707:1;3703;:5;:::i;:::-;3691:17;3545:192;-1:-1:-1;;;;;3545:192:0:o;18589:163::-;18630:7;18651:15;18668;18687:19;:17;:19::i;:::-;18650:56;;-1:-1:-1;18650:56:0;-1:-1:-1;18724:20:0;18650:56;;18724:11;:20::i;:::-;18717:27;;;;18589:163;:::o;4003:132::-;4061:7;4088:39;4092:1;4095;4088:39;;;;;;;;;;;;;;;;;:3;:39::i;18009:230::-;18069:7;;;18113:23;18069:7;18113:16;:7;18125:3;18113:11;:16::i;:::-;:20;;:23::i;:::-;18098:38;-1:-1:-1;18147:23:0;18173:17;:7;18098:38;18173:11;:17::i;:::-;18147:43;18226:4;;-1:-1:-1;18009:230:0;;-1:-1:-1;;;18009:230:0:o;18247:334::-;18342:7;;;;18398:24;:7;18410:11;18398;:24::i;:::-;18380:42;-1:-1:-1;18433:12:0;18448:21;:4;18457:11;18448:8;:21::i;:::-;18433:36;-1:-1:-1;18480:23:0;18506:17;:7;18433:36;18506:11;:17::i;:::-;18542:7;;;;-1:-1:-1;18568:4:0;;-1:-1:-1;18247:334:0;;-1:-1:-1;;;;;18247:334:0:o;16313:509::-;16416:15;16433:23;16458:12;16472:23;16497:12;16513:19;16524:7;16513:10;:19::i;:::-;-1:-1:-1;;;;;16561:15:0;;;;;;:7;:15;;;;;;16415:117;;-1:-1:-1;16415:117:0;;-1:-1:-1;16415:117:0;;-1:-1:-1;16415:117:0;-1:-1:-1;16415:117:0;-1:-1:-1;16561:28:0;;16581:7;16561:19;:28::i;:::-;-1:-1:-1;;;;;16543:15:0;;;;;;:7;:15;;;;;;;;:46;;;;16618:7;:15;;;;:28;;16638:7;16618:19;:28::i;:::-;-1:-1:-1;;;;;16600:15:0;;;;;;;:7;:15;;;;;;:46;;;;16678:18;;;;;;;:39;;16701:15;16678:22;:39::i;:::-;-1:-1:-1;;;;;16657:18:0;;;;;;:7;:18;;;;;:60;16731:23;16743:4;16749;16731:11;:23::i;:::-;16787:9;-1:-1:-1;;;;;16770:44:0;16779:6;-1:-1:-1;;;;;16770:44:0;;16798:15;16770:44;;;;1489:25:1;;1477:2;1462:18;;1343:177;16770:44:0;;;;;;;;16404:418;;;;;16313:509;;;:::o;15776:529::-;15877:15;15894:23;15919:12;15933:23;15958:12;15974:19;15985:7;15974:10;:19::i;:::-;-1:-1:-1;;;;;16022:15:0;;;;;;:7;:15;;;;;;15876:117;;-1:-1:-1;15876:117:0;;-1:-1:-1;15876:117:0;;-1:-1:-1;15876:117:0;-1:-1:-1;15876:117:0;-1:-1:-1;16022:28:0;;15876:117;16022:19;:28::i;:::-;-1:-1:-1;;;;;16004:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;16082:18;;;;;:7;:18;;;;;:39;;16105:15;16082:22;:39::i;:::-;-1:-1:-1;;;;;16061:18:0;;;;;;:7;:18;;;;;;;;:60;;;;16153:7;:18;;;;:39;;16176:15;16153:22;:39::i;15316:452::-;15415:15;15432:23;15457:12;15471:23;15496:12;15512:19;15523:7;15512:10;:19::i;:::-;-1:-1:-1;;;;;15560:15:0;;;;;;:7;:15;;;;;;15414:117;;-1:-1:-1;15414:117:0;;-1:-1:-1;15414:117:0;;-1:-1:-1;15414:117:0;-1:-1:-1;15414:117:0;-1:-1:-1;15560:28:0;;15414:117;15560:19;:28::i;18760:617::-;18857:13;;18810:7;;;;9201:28;18810:7;18931:303;18955:9;:16;18951:20;;18931:303;;;19021:7;18997;:21;19005:9;19015:1;19005:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19005:12:0;18997:21;;;;;;;;;;;;;:31;;:66;;;19056:7;19032;:21;19040:9;19050:1;19040:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19040:12:0;19032:21;;;;;;;;;;;;;:31;18997:66;18993:111;;;-1:-1:-1;;19073:13:0;;;9201:28;;-1:-1:-1;18760:617:0;-1:-1:-1;;18760:617:0:o;18993:111::-;19129:34;19141:7;:21;19149:9;19159:1;19149:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19149:12:0;19141:21;;;;;;;;;;;;;19129:7;;:11;:34::i;:::-;19119:44;;19188:34;19200:7;:21;19208:9;19218:1;19208:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19208:12:0;19200:21;;;;;;;;;;;;;19188:7;;:11;:34::i;:::-;19178:44;-1:-1:-1;18973:3:0;;18931:303;;;-1:-1:-1;19258:13:0;;:34;;9201:28;19258:17;:34::i;:::-;19248:7;:44;19244:89;;;-1:-1:-1;;19302:13:0;;;9201:28;;-1:-1:-1;18760:617:0;-1:-1:-1;18760:617:0:o;19244:89::-;19352:7;;19361;;-1:-1:-1;18760:617:0;-1:-1:-1;18760:617:0:o;4143:278::-;4229:7;4264:12;4257:5;4249:28;;;;-1:-1:-1;;;4249:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4288:9:0;4300:5;4304:1;4300;:5;:::i;3745:250::-;3803:7;3827:1;3832;3827:6;3823:47;;-1:-1:-1;3857:1:0;3850:8;;3823:47;3882:9;3894:5;3898:1;3894;:5;:::i;:::-;3882:17;-1:-1:-1;3927:1:0;3918:5;3922:1;3882:17;3918:5;:::i;:::-;:10;3910:56;;;;-1:-1:-1;;;3910:56:0;;9536:2:1;3910:56:0;;;9518:21:1;9575:2;9555:18;;;9548:30;9614:34;9594:18;;;9587:62;-1:-1:-1;;;9665:18:1;;;9658:31;9706:19;;3910:56:0;9334:397:1;17423:159:0;17507:13;;:23;;17525:4;17507:17;:23::i;:::-;17491:13;:39;17554:10;;:20;;17569:4;17554:14;:20::i;:::-;17541:10;:33;-1:-1:-1;;17423:159:0:o;14:226:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:1;;14:226;-1:-1:-1;14:226:1:o;245:418::-;394:2;383:9;376:21;357:4;426:6;420:13;469:6;464:2;453:9;449:18;442:34;528:6;523:2;515:6;511:15;506:2;495:9;491:18;485:50;584:1;579:2;570:6;559:9;555:22;551:31;544:42;654:2;647;643:7;638:2;630:6;626:15;622:29;611:9;607:45;603:54;595:62;;;245:418;;;;:::o;668:173::-;736:20;;-1:-1:-1;;;;;785:31:1;;775:42;;765:70;;831:1;828;821:12;765:70;668:173;;;:::o;846:300::-;914:6;922;975:2;963:9;954:7;950:23;946:32;943:52;;;991:1;988;981:12;943:52;1014:29;1033:9;1014:29;:::i;:::-;1004:39;1112:2;1097:18;;;;1084:32;;-1:-1:-1;;;846:300:1:o;1525:374::-;1602:6;1610;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:52;;;1687:1;1684;1677:12;1639:52;1710:29;1729:9;1710:29;:::i;:::-;1700:39;;1758:38;1792:2;1781:9;1777:18;1758:38;:::i;:::-;1525:374;;1748:48;;-1:-1:-1;;;1865:2:1;1850:18;;;;1837:32;;1525:374::o;2093:395::-;2158:6;2166;2219:2;2207:9;2198:7;2194:23;2190:32;2187:52;;;2235:1;2232;2225:12;2187:52;2280:23;;;-1:-1:-1;2379:2:1;2364:18;;2351:32;2421:15;;2414:23;2402:36;;2392:64;;2452:1;2449;2442:12;2392:64;2475:7;2465:17;;;2093:395;;;;;:::o;2493:186::-;2552:6;2605:2;2593:9;2584:7;2580:23;2576:32;2573:52;;;2621:1;2618;2611:12;2573:52;2644:29;2663:9;2644:29;:::i;2892:260::-;2960:6;2968;3021:2;3009:9;3000:7;2996:23;2992:32;2989:52;;;3037:1;3034;3027:12;2989:52;3060:29;3079:9;3060:29;:::i;:::-;3050:39;;3108:38;3142:2;3131:9;3127:18;3108:38;:::i;:::-;3098:48;;2892:260;;;;;:::o;3570:380::-;3649:1;3645:12;;;;3692;;;3713:61;;3767:4;3759:6;3755:17;3745:27;;3713:61;3820:2;3812:6;3809:14;3789:18;3786:38;3783:161;;3866:10;3861:3;3857:20;3854:1;3847:31;3901:4;3898:1;3891:15;3929:4;3926:1;3919:15;3783:161;;3570:380;;;:::o;4726:401::-;4928:2;4910:21;;;4967:2;4947:18;;;4940:30;5006:34;5001:2;4986:18;;4979:62;-1:-1:-1;;;5072:2:1;5057:18;;5050:35;5117:3;5102:19;;4726:401::o;5896:127::-;5957:10;5952:3;5948:20;5945:1;5938:31;5988:4;5985:1;5978:15;6012:4;6009:1;6002:15;6028:127;6089:10;6084:3;6080:20;6077:1;6070:31;6120:4;6117:1;6110:15;6144:4;6141:1;6134:15;6160:128;6227:9;;;6248:11;;;6245:37;;;6262:18;;:::i;6293:127::-;6354:10;6349:3;6345:20;6342:1;6335:31;6385:4;6382:1;6375:15;6409:4;6406:1;6399:15;6425:125;6490:9;;;6511:10;;;6508:36;;;6524:18;;:::i;8939:217::-;8979:1;9005;8995:132;;9049:10;9044:3;9040:20;9037:1;9030:31;9084:4;9081:1;9074:15;9112:4;9109:1;9102:15;8995:132;-1:-1:-1;9141:9:1;;8939:217::o;9161:168::-;9234:9;;;9265;;9282:15;;;9276:22;;9262:37;9252:71;;9303:18;;:::i

Swarm Source

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