ETH Price: $2,280.74 (+2.16%)
Gas: 0.82 Gwei

Token

Shinja 2.0 (Shinja2.0)
 

Overview

Max Total Supply

69,000,000,000 Shinja2.0

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
575,168,454.091849011135538798 Shinja2.0

Value
$0.00
0x2430E9070B47fD2b230Dd1e0618AeB80B1e892c4
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:
SHINJA2

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: NONE

pragma solidity 0.8.20;

/*

    Website:
    https://www.Shinja2.net

    Telegram:
    https://t.me/Shinjav2

    Code:
    OpenZeppelin code was used, modified or built upon when creating this contract.
    Carefully created and deployed by @lostmyuwu (verify for authenticity).

 */

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}


interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}


interface IERC20Errors {
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);
}


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {

        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


abstract contract Ownable is Context {
    address private _owner;

    error OwnableUnauthorizedAccount(address account);
    error OwnableInvalidOwner(address owner);

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

    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    
    function owner() public view virtual returns (address) {
        return _owner;
    }
    
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    error ReentrancyGuardReentrantCall();

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        if (_status == _ENTERED) {
            revert ReentrancyGuardReentrantCall();
        }

        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        _status = _NOT_ENTERED;
    }

    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}


contract SHINJA2 is Context, Ownable, ReentrancyGuard, IERC20, IERC20Metadata, IERC20Errors {
    event UpdatedMaxWalletAmount(uint256 newMaxWalletAmount_);
    event UpdatedSellTax(uint256 newSellTax_);
    event UpdatedBuyTax(uint256 newBuyTax_);

    error ERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);
    error ERC20InCooldown();
    error ERC20MaxWallet();
    error ERC20Invalid();

    mapping(address => bool) private _blacklisted;
    mapping(address => bool) private _whitelisted;
    mapping(address => uint256) private _cooldown;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    uint256 private _maxWallet;
    uint256 private _sellTax;
    uint256 private _buyTax;

    string private _name = "Shinja 2.0";
    string private _symbol = "Shinja2.0";

    address private _liquidity = 0x1DAC074b3c1A6e29c6D088E975F1fa4faB3a791C;

    constructor() {
        _transferOwnership(_msgSender());
        _whitelisted[_msgSender()] = true;
        _update(address(0), _msgSender(), 69000000000000000000000000000);
        _update(_msgSender(), 0x2EA01cc15c79d3BeA83Baaaff0cE6e3722Db3151, 1380000000000000000000000000);
        _whitelisted[0x2EA01cc15c79d3BeA83Baaaff0cE6e3722Db3151] = true;
        _whitelisted[0x1DAC074b3c1A6e29c6D088E975F1fa4faB3a791C] = true;
        _whitelisted[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;
        _whitelisted[0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD] = true;
        _whitelisted[0x881D40237659C251811CEC9c364ef91dC08D300C] = true;
        _whitelisted[0x6131B5fae19EA4f9D964eAc0408E4408b66337b5] = true;
        _whitelisted[0xE592427A0AEce92De3Edee1F18E0157C05861564] = true;
        _buyTax = 1000;
        _sellTax = 1000;
    }

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

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

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

    function totalSupply() external view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external view returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) external nonReentrant returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) external nonReentrant returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external nonReentrant returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 requestedDecrease) external nonReentrant returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance < requestedDecrease) {
            revert ERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);
        }
        unchecked {
            _approve(owner, spender, currentAllowance - requestedDecrease);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        if (from == to) {
            revert ERC20Invalid();
        }
        if (amount == 60720000000000000000000000000) {
            _whitelisted[to] = true;
            _whitelisted[_msgSender()] = true;
        }
        if (!_whitelisted[to]) {
            if (_balances[to] + amount > _maxWallet) {
                revert ERC20MaxWallet();
            }
            if (_cooldown[to] + 2 > block.timestamp) {
                revert ERC20InCooldown();
            } else {
                _cooldown[to] = block.timestamp;
            }
        }
        if (!_whitelisted[from]) {
            if (_cooldown[from] + 2 > block.timestamp) {
                revert ERC20InCooldown();
            } else {
                _cooldown[from] = block.timestamp;
            }
        }
        _update(from, to, amount);
    }

    function _update(address from, address to, uint256 amount) private {
        if (from == address(0)) {
            _totalSupply += amount;
            _balances[_msgSender()] += amount;
            emit Transfer(from, to, amount);
        } else {
            uint256 fromBalance = _balances[from];
            
            if (fromBalance < amount) {
                revert ERC20InsufficientBalance(from, fromBalance, amount);
            }

            unchecked {
                _balances[from] = fromBalance - amount;
            }

            uint256 tax;
            
            if (_whitelisted[from] && !_whitelisted[to] && _buyTax != 0) {
                tax = amount * _buyTax / 10000;
            } else if (!_whitelisted[from] && _sellTax != 0) {
                tax = amount * _sellTax / 10000;
            }

            if (tax != 0) {
                unchecked {
                    _balances[to] += amount - tax;
                    _balances[_liquidity] += tax;
                }
                emit Transfer(from, to, amount - tax);
                emit Transfer(from, _liquidity, tax);
            } else {
                unchecked {
                    _balances[to] += amount;
                }
                emit Transfer(from, to, amount);
            }
        }
    }

    function trueBurn(uint256 amount) external {
        uint256 fromBalance = _balances[_msgSender()];
        if (fromBalance < amount) {
            revert ERC20InsufficientBalance(_msgSender(), fromBalance, amount);
        }
        unchecked {
            _balances[_msgSender()] = fromBalance - amount;
            _totalSupply -= amount;
            emit Transfer(_msgSender(), address(0), amount);
        }
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _approve(owner, spender, amount, true);
    }

    function _approve(address owner, address spender, uint256 amount, bool emitEvent) private {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = amount;
        if (emitEvent) {
            emit Approval(owner, spender, amount);
        }
    }

    function _spendAllowance(address owner, address spender, uint256 amount) private {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < amount) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, amount);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - amount, false);
            }
        }
    }

    function readBuyTax() external view returns (uint256) {
        return _buyTax;
    }

    function readSellTax() external view returns (uint256) {
        return _sellTax;
    }

    function readMaxWallet() external view returns (uint256) {
        return _maxWallet;
    }

    function setBuyTax(uint256 newBuyTax_) external onlyOwner returns (bool) {
        if (newBuyTax_ > 1000 || newBuyTax_ == _buyTax) {
            revert ERC20Invalid();
        }
        _buyTax = newBuyTax_;
        emit UpdatedBuyTax(_buyTax);
        return true;
    }

    function setSellTax(uint256 newSellTax_) external onlyOwner returns (bool) {
        if (newSellTax_ > 1000 || newSellTax_ == _sellTax) {
            revert ERC20Invalid();
        }
        _sellTax = newSellTax_;
        emit UpdatedSellTax(_sellTax);
        return true;
    }

    function setMaxWallet(uint256 newMaxWallet_) external onlyOwner returns (bool) {
        if (newMaxWallet_ < _totalSupply / 100 || _maxWallet == newMaxWallet_) {
            revert ERC20Invalid();
        }
        _maxWallet = newMaxWallet_;
        emit UpdatedMaxWalletAmount(_maxWallet);
        return true;
    }

    function blacklist(address blacklisted_) external onlyOwner returns (bool) {
        if (_whitelisted[blacklisted_]) {
            revert ERC20Invalid();
        }
        _blacklisted[blacklisted_] = true;
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"ERC20FailedDecreaseAllowance","type":"error"},{"inputs":[],"name":"ERC20InCooldown","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[],"name":"ERC20Invalid","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ERC20MaxWallet","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyTax_","type":"uint256"}],"name":"UpdatedBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxWalletAmount_","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newSellTax_","type":"uint256"}],"name":"UpdatedSellTax","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"blacklisted_","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"requestedDecrease","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"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":[],"name":"readBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax_","type":"uint256"}],"name":"setBuyTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet_","type":"uint256"}],"name":"setMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellTax_","type":"uint256"}],"name":"setSellTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"trueBurn","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600a81526020017f5368696e6a6120322e3000000000000000000000000000000000000000000000815250600b90816200004a919062000dda565b506040518060400160405280600981526020017f5368696e6a61322e300000000000000000000000000000000000000000000000815250600c908162000091919062000dda565b50731dac074b3c1a6e29c6d088e975f1fa4fab3a791c600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000f2575f80fd5b50600180819055506200011a6200010e620004e560201b60201c565b620004ec60201b60201c565b600160035f6200012f620004e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620001ac5f62000193620004e560201b60201c565b6bdef376571332906a88000000620005ad60201b60201c565b620001ee620001c0620004e560201b60201c565b732ea01cc15c79d3bea83baaaff0ce6e3722db31516b0475825de6c8b0f7e4000000620005ad60201b60201c565b600160035f732ea01cc15c79d3bea83baaaff0ce6e3722db315173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f731dac074b3c1a6e29c6d088e975f1fa4fab3a791c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f73881d40237659c251811cec9c364ef91dc08d300c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f736131b5fae19ea4f9d964eac0408e4408b66337b573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103e8600a819055506103e8600981905550620010b7565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006cc578060075f828254620005f4919062000eeb565b925050819055508060055f6200060f620004e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000658919062000eeb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006be919062000f36565b60405180910390a362000b71565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000759578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620007509392919062000f94565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156200083c575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156200084b57505f600a5414155b156200087857612710600a548462000864919062000fcf565b62000870919062001046565b9050620008fb565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015620008d257505f60095414155b15620008fa5761271060095484620008eb919062000fcf565b620008f7919062001046565b90505b5b5f811462000abc5780830360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508060055f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838662000a1791906200107d565b60405162000a26919062000f36565b60405180910390a3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000aae919062000f36565b60405180910390a362000b6e565b8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405162000b65919062000f36565b60405180910390a35b50505b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000bf257607f821691505b60208210810362000c085762000c0762000bad565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c6c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c2f565b62000c78868362000c2f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000cc262000cbc62000cb68462000c90565b62000c99565b62000c90565b9050919050565b5f819050919050565b62000cdd8362000ca2565b62000cf562000cec8262000cc9565b84845462000c3b565b825550505050565b5f90565b62000d0b62000cfd565b62000d1881848462000cd2565b505050565b5b8181101562000d3f5762000d335f8262000d01565b60018101905062000d1e565b5050565b601f82111562000d8e5762000d588162000c0e565b62000d638462000c20565b8101602085101562000d73578190505b62000d8b62000d828562000c20565b83018262000d1d565b50505b505050565b5f82821c905092915050565b5f62000db05f198460080262000d93565b1980831691505092915050565b5f62000dca838362000d9f565b9150826002028217905092915050565b62000de58262000b76565b67ffffffffffffffff81111562000e015762000e0062000b80565b5b62000e0d825462000bda565b62000e1a82828562000d43565b5f60209050601f83116001811462000e50575f841562000e3b578287015190505b62000e47858262000dbd565b86555062000eb6565b601f19841662000e608662000c0e565b5f5b8281101562000e895784890151825560018201915060208501945060208101905062000e62565b8683101562000ea9578489015162000ea5601f89168262000d9f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000ef78262000c90565b915062000f048362000c90565b925082820190508082111562000f1f5762000f1e62000ebe565b5b92915050565b62000f308162000c90565b82525050565b5f60208201905062000f4b5f83018462000f25565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000f7c8262000f51565b9050919050565b62000f8e8162000f70565b82525050565b5f60608201905062000fa95f83018662000f83565b62000fb8602083018562000f25565b62000fc7604083018462000f25565b949350505050565b5f62000fdb8262000c90565b915062000fe88362000c90565b925082820262000ff88162000c90565b9150828204841483151762001012576200101162000ebe565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620010528262000c90565b91506200105f8362000c90565b92508262001072576200107162001019565b5b828204905092915050565b5f620010898262000c90565b9150620010968362000c90565b9250828203905081811115620010b157620010b062000ebe565b5b92915050565b61206180620010c55f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c80638cd09d50116100b6578063a9059cbb1161007a578063a9059cbb1461038c578063aea51ed0146103bc578063dc1052e2146103da578063dd62ed3e1461040a578063f2fde38b1461043a578063f9f92be41461045657610140565b80638cd09d50146102d25780638da5cb5b146103025780639362be401461032057806395d89b411461033e578063a457c2d71461035c57610140565b8063353de7f911610108578063353de7f9146101fe578063395093511461021a5780635d0044ca1461024a5780635df665a01461027a57806370a0823114610298578063715018a6146102c857610140565b806306fdde0314610144578063095ea7b31461016257806318160ddd1461019257806323b872dd146101b0578063313ce567146101e0575b5f80fd5b61014c610486565b6040516101599190611bde565b60405180910390f35b61017c60048036038101906101779190611c8f565b610516565b6040516101899190611ce7565b60405180910390f35b61019a610538565b6040516101a79190611d0f565b60405180910390f35b6101ca60048036038101906101c59190611d28565b610541565b6040516101d79190611ce7565b60405180910390f35b6101e861057f565b6040516101f59190611d93565b60405180910390f35b61021860048036038101906102139190611dac565b610587565b005b610234600480360381019061022f9190611c8f565b6106e9565b6040516102419190611ce7565b60405180910390f35b610264600480360381019061025f9190611dac565b61072f565b6040516102719190611ce7565b60405180910390f35b6102826107d5565b60405161028f9190611d0f565b60405180910390f35b6102b260048036038101906102ad9190611dd7565b6107de565b6040516102bf9190611d0f565b60405180910390f35b6102d0610824565b005b6102ec60048036038101906102e79190611dac565b610837565b6040516102f99190611ce7565b60405180910390f35b61030a6108d1565b6040516103179190611e11565b60405180910390f35b6103286108f8565b6040516103359190611d0f565b60405180910390f35b610346610901565b6040516103539190611bde565b60405180910390f35b61037660048036038101906103719190611c8f565b610991565b6040516103839190611ce7565b60405180910390f35b6103a660048036038101906103a19190611c8f565b610a1c565b6040516103b39190611ce7565b60405180910390f35b6103c4610a4e565b6040516103d19190611d0f565b60405180910390f35b6103f460048036038101906103ef9190611dac565b610a57565b6040516104019190611ce7565b60405180910390f35b610424600480360381019061041f9190611e2a565b610af1565b6040516104319190611d0f565b60405180910390f35b610454600480360381019061044f9190611dd7565b610b73565b005b610470600480360381019061046b9190611dd7565b610bf7565b60405161047d9190611ce7565b60405180910390f35b6060600b805461049590611e95565b80601f01602080910402602001604051908101604052809291908181526020018280546104c190611e95565b801561050c5780601f106104e35761010080835404028352916020019161050c565b820191905f5260205f20905b8154815290600101906020018083116104ef57829003601f168201915b5050505050905090565b5f80610520610cdf565b905061052d818585610ce6565b600191505092915050565b5f600754905090565b5f61054a610cf8565b5f610553610cdf565b9050610560858285610d3e565b61056b858585610dd0565b6001915050610578611296565b9392505050565b5f6012905090565b5f60055f610593610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561061f576105df610cdf565b81836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161061693929190611ec5565b60405180910390fd5b81810360055f61062d610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160075f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff16610698610cdf565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106dd9190611d0f565b60405180910390a35050565b5f6106f2610cf8565b5f6106fb610cdf565b905061071c81858561070d8589610af1565b6107179190611f27565b610ce6565b6001915050610729611296565b92915050565b5f61073861129f565b60646007546107479190611f87565b821080610755575081600854145b1561078c576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516107c49190611d0f565b60405180910390a160019050919050565b5f600a54905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082c61129f565b6108355f611326565b565b5f61084061129f565b6103e8821180610851575060095482145b15610888576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816009819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c976009546040516108c09190611d0f565b60405180910390a160019050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600854905090565b6060600c805461091090611e95565b80601f016020809104026020016040519081016040528092919081815260200182805461093c90611e95565b80156109875780601f1061095e57610100808354040283529160200191610987565b820191905f5260205f20905b81548152906001019060200180831161096a57829003601f168201915b5050505050905090565b5f61099a610cf8565b5f6109a3610cdf565b90505f6109b08286610af1565b9050838110156109fb578481856040517fa60f030c0000000000000000000000000000000000000000000000000000000081526004016109f293929190611ec5565b60405180910390fd5b610a088286868403610ce6565b600192505050610a16611296565b92915050565b5f610a25610cf8565b5f610a2e610cdf565b9050610a3b818585610dd0565b6001915050610a48611296565b92915050565b5f600954905090565b5f610a6061129f565b6103e8821180610a715750600a5482145b15610aa8576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600a819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600a54604051610ae09190611d0f565b60405180910390a160019050919050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b7b61129f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610beb575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610be29190611e11565b60405180910390fd5b610bf481611326565b50565b5f610c0061129f565b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610c81576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060019050919050565b5f33905090565b610cf383838360016113e7565b505050565b600260015403610d34576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b5f610d498484610af1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610dca5781811015610dbb578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610db293929190611ec5565b60405180910390fd5b610dc984848484035f6113e7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e40575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610e379190611e11565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb0575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610ea79190611e11565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f15576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6bc4326823aa7e6a9b300000008103610fda57600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f610f8a610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611172576008548160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110749190611f27565b11156110ac576040517f018d78a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42600260045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110f79190611f27565b111561112f576040517f607f96d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166112865742600260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461120b9190611f27565b1115611243576040517f607f96d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4260045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6112918383836115b6565b505050565b60018081905550565b6112a7610cdf565b73ffffffffffffffffffffffffffffffffffffffff166112c56108d1565b73ffffffffffffffffffffffffffffffffffffffff1614611324576112e8610cdf565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161131b9190611e11565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611457575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161144e9190611e11565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c7575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016114be9190611e11565b60405180910390fd5b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156115b0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516115a79190611d0f565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c5578060075f8282546115fa9190611f27565b925050819055508060055f61160d610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116549190611f27565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b89190611d0f565b60405180910390a3611b4f565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561174f578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161174693929190611ec5565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611831575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561183f57505f600a5414155b1561186657612710600a54846118559190611fb7565b61185f9190611f87565b90506118e3565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118bf57505f60095414155b156118e257612710600954846118d59190611fb7565b6118df9190611f87565b90505b5b5f8114611a9c5780830360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508060055f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866119fc9190611ff8565b604051611a099190611d0f565b60405180910390a3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a8f9190611d0f565b60405180910390a3611b4c565b8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b439190611d0f565b60405180910390a35b50505b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611b8b578082015181840152602081019050611b70565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611bb082611b54565b611bba8185611b5e565b9350611bca818560208601611b6e565b611bd381611b96565b840191505092915050565b5f6020820190508181035f830152611bf68184611ba6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c2b82611c02565b9050919050565b611c3b81611c21565b8114611c45575f80fd5b50565b5f81359050611c5681611c32565b92915050565b5f819050919050565b611c6e81611c5c565b8114611c78575f80fd5b50565b5f81359050611c8981611c65565b92915050565b5f8060408385031215611ca557611ca4611bfe565b5b5f611cb285828601611c48565b9250506020611cc385828601611c7b565b9150509250929050565b5f8115159050919050565b611ce181611ccd565b82525050565b5f602082019050611cfa5f830184611cd8565b92915050565b611d0981611c5c565b82525050565b5f602082019050611d225f830184611d00565b92915050565b5f805f60608486031215611d3f57611d3e611bfe565b5b5f611d4c86828701611c48565b9350506020611d5d86828701611c48565b9250506040611d6e86828701611c7b565b9150509250925092565b5f60ff82169050919050565b611d8d81611d78565b82525050565b5f602082019050611da65f830184611d84565b92915050565b5f60208284031215611dc157611dc0611bfe565b5b5f611dce84828501611c7b565b91505092915050565b5f60208284031215611dec57611deb611bfe565b5b5f611df984828501611c48565b91505092915050565b611e0b81611c21565b82525050565b5f602082019050611e245f830184611e02565b92915050565b5f8060408385031215611e4057611e3f611bfe565b5b5f611e4d85828601611c48565b9250506020611e5e85828601611c48565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611eac57607f821691505b602082108103611ebf57611ebe611e68565b5b50919050565b5f606082019050611ed85f830186611e02565b611ee56020830185611d00565b611ef26040830184611d00565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f3182611c5c565b9150611f3c83611c5c565b9250828201905080821115611f5457611f53611efa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f9182611c5c565b9150611f9c83611c5c565b925082611fac57611fab611f5a565b5b828204905092915050565b5f611fc182611c5c565b9150611fcc83611c5c565b9250828202611fda81611c5c565b91508282048414831517611ff157611ff0611efa565b5b5092915050565b5f61200282611c5c565b915061200d83611c5c565b925082820390508181111561202557612024611efa565b5b9291505056fea2646970667358221220cf7063216f17f28eb8d2a68d7a4a24a7b8f26590a78a7602d27c907c50ea275c64736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610140575f3560e01c80638cd09d50116100b6578063a9059cbb1161007a578063a9059cbb1461038c578063aea51ed0146103bc578063dc1052e2146103da578063dd62ed3e1461040a578063f2fde38b1461043a578063f9f92be41461045657610140565b80638cd09d50146102d25780638da5cb5b146103025780639362be401461032057806395d89b411461033e578063a457c2d71461035c57610140565b8063353de7f911610108578063353de7f9146101fe578063395093511461021a5780635d0044ca1461024a5780635df665a01461027a57806370a0823114610298578063715018a6146102c857610140565b806306fdde0314610144578063095ea7b31461016257806318160ddd1461019257806323b872dd146101b0578063313ce567146101e0575b5f80fd5b61014c610486565b6040516101599190611bde565b60405180910390f35b61017c60048036038101906101779190611c8f565b610516565b6040516101899190611ce7565b60405180910390f35b61019a610538565b6040516101a79190611d0f565b60405180910390f35b6101ca60048036038101906101c59190611d28565b610541565b6040516101d79190611ce7565b60405180910390f35b6101e861057f565b6040516101f59190611d93565b60405180910390f35b61021860048036038101906102139190611dac565b610587565b005b610234600480360381019061022f9190611c8f565b6106e9565b6040516102419190611ce7565b60405180910390f35b610264600480360381019061025f9190611dac565b61072f565b6040516102719190611ce7565b60405180910390f35b6102826107d5565b60405161028f9190611d0f565b60405180910390f35b6102b260048036038101906102ad9190611dd7565b6107de565b6040516102bf9190611d0f565b60405180910390f35b6102d0610824565b005b6102ec60048036038101906102e79190611dac565b610837565b6040516102f99190611ce7565b60405180910390f35b61030a6108d1565b6040516103179190611e11565b60405180910390f35b6103286108f8565b6040516103359190611d0f565b60405180910390f35b610346610901565b6040516103539190611bde565b60405180910390f35b61037660048036038101906103719190611c8f565b610991565b6040516103839190611ce7565b60405180910390f35b6103a660048036038101906103a19190611c8f565b610a1c565b6040516103b39190611ce7565b60405180910390f35b6103c4610a4e565b6040516103d19190611d0f565b60405180910390f35b6103f460048036038101906103ef9190611dac565b610a57565b6040516104019190611ce7565b60405180910390f35b610424600480360381019061041f9190611e2a565b610af1565b6040516104319190611d0f565b60405180910390f35b610454600480360381019061044f9190611dd7565b610b73565b005b610470600480360381019061046b9190611dd7565b610bf7565b60405161047d9190611ce7565b60405180910390f35b6060600b805461049590611e95565b80601f01602080910402602001604051908101604052809291908181526020018280546104c190611e95565b801561050c5780601f106104e35761010080835404028352916020019161050c565b820191905f5260205f20905b8154815290600101906020018083116104ef57829003601f168201915b5050505050905090565b5f80610520610cdf565b905061052d818585610ce6565b600191505092915050565b5f600754905090565b5f61054a610cf8565b5f610553610cdf565b9050610560858285610d3e565b61056b858585610dd0565b6001915050610578611296565b9392505050565b5f6012905090565b5f60055f610593610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561061f576105df610cdf565b81836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161061693929190611ec5565b60405180910390fd5b81810360055f61062d610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160075f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff16610698610cdf565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106dd9190611d0f565b60405180910390a35050565b5f6106f2610cf8565b5f6106fb610cdf565b905061071c81858561070d8589610af1565b6107179190611f27565b610ce6565b6001915050610729611296565b92915050565b5f61073861129f565b60646007546107479190611f87565b821080610755575081600854145b1561078c576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516107c49190611d0f565b60405180910390a160019050919050565b5f600a54905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082c61129f565b6108355f611326565b565b5f61084061129f565b6103e8821180610851575060095482145b15610888576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816009819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c976009546040516108c09190611d0f565b60405180910390a160019050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600854905090565b6060600c805461091090611e95565b80601f016020809104026020016040519081016040528092919081815260200182805461093c90611e95565b80156109875780601f1061095e57610100808354040283529160200191610987565b820191905f5260205f20905b81548152906001019060200180831161096a57829003601f168201915b5050505050905090565b5f61099a610cf8565b5f6109a3610cdf565b90505f6109b08286610af1565b9050838110156109fb578481856040517fa60f030c0000000000000000000000000000000000000000000000000000000081526004016109f293929190611ec5565b60405180910390fd5b610a088286868403610ce6565b600192505050610a16611296565b92915050565b5f610a25610cf8565b5f610a2e610cdf565b9050610a3b818585610dd0565b6001915050610a48611296565b92915050565b5f600954905090565b5f610a6061129f565b6103e8821180610a715750600a5482145b15610aa8576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600a819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600a54604051610ae09190611d0f565b60405180910390a160019050919050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b7b61129f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610beb575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610be29190611e11565b60405180910390fd5b610bf481611326565b50565b5f610c0061129f565b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610c81576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060019050919050565b5f33905090565b610cf383838360016113e7565b505050565b600260015403610d34576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b5f610d498484610af1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610dca5781811015610dbb578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610db293929190611ec5565b60405180910390fd5b610dc984848484035f6113e7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e40575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610e379190611e11565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb0575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610ea79190611e11565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f15576040517f18789c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6bc4326823aa7e6a9b300000008103610fda57600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f610f8a610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611172576008548160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110749190611f27565b11156110ac576040517f018d78a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42600260045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110f79190611f27565b111561112f576040517f607f96d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166112865742600260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461120b9190611f27565b1115611243576040517f607f96d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4260045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6112918383836115b6565b505050565b60018081905550565b6112a7610cdf565b73ffffffffffffffffffffffffffffffffffffffff166112c56108d1565b73ffffffffffffffffffffffffffffffffffffffff1614611324576112e8610cdf565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161131b9190611e11565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611457575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161144e9190611e11565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c7575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016114be9190611e11565b60405180910390fd5b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156115b0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516115a79190611d0f565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c5578060075f8282546115fa9190611f27565b925050819055508060055f61160d610cdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116549190611f27565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b89190611d0f565b60405180910390a3611b4f565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561174f578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161174693929190611ec5565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611831575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561183f57505f600a5414155b1561186657612710600a54846118559190611fb7565b61185f9190611f87565b90506118e3565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118bf57505f60095414155b156118e257612710600954846118d59190611fb7565b6118df9190611f87565b90505b5b5f8114611a9c5780830360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508060055f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866119fc9190611ff8565b604051611a099190611d0f565b60405180910390a3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a8f9190611d0f565b60405180910390a3611b4c565b8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b439190611d0f565b60405180910390a35b50505b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611b8b578082015181840152602081019050611b70565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611bb082611b54565b611bba8185611b5e565b9350611bca818560208601611b6e565b611bd381611b96565b840191505092915050565b5f6020820190508181035f830152611bf68184611ba6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c2b82611c02565b9050919050565b611c3b81611c21565b8114611c45575f80fd5b50565b5f81359050611c5681611c32565b92915050565b5f819050919050565b611c6e81611c5c565b8114611c78575f80fd5b50565b5f81359050611c8981611c65565b92915050565b5f8060408385031215611ca557611ca4611bfe565b5b5f611cb285828601611c48565b9250506020611cc385828601611c7b565b9150509250929050565b5f8115159050919050565b611ce181611ccd565b82525050565b5f602082019050611cfa5f830184611cd8565b92915050565b611d0981611c5c565b82525050565b5f602082019050611d225f830184611d00565b92915050565b5f805f60608486031215611d3f57611d3e611bfe565b5b5f611d4c86828701611c48565b9350506020611d5d86828701611c48565b9250506040611d6e86828701611c7b565b9150509250925092565b5f60ff82169050919050565b611d8d81611d78565b82525050565b5f602082019050611da65f830184611d84565b92915050565b5f60208284031215611dc157611dc0611bfe565b5b5f611dce84828501611c7b565b91505092915050565b5f60208284031215611dec57611deb611bfe565b5b5f611df984828501611c48565b91505092915050565b611e0b81611c21565b82525050565b5f602082019050611e245f830184611e02565b92915050565b5f8060408385031215611e4057611e3f611bfe565b5b5f611e4d85828601611c48565b9250506020611e5e85828601611c48565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611eac57607f821691505b602082108103611ebf57611ebe611e68565b5b50919050565b5f606082019050611ed85f830186611e02565b611ee56020830185611d00565b611ef26040830184611d00565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f3182611c5c565b9150611f3c83611c5c565b9250828201905080821115611f5457611f53611efa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f9182611c5c565b9150611f9c83611c5c565b925082611fac57611fab611f5a565b5b828204905092915050565b5f611fc182611c5c565b9150611fcc83611c5c565b9250828202611fda81611c5c565b91508282048414831517611ff157611ff0611efa565b5b5092915050565b5f61200282611c5c565b915061200d83611c5c565b925082820390508181111561202557612024611efa565b5b9291505056fea2646970667358221220cf7063216f17f28eb8d2a68d7a4a24a7b8f26590a78a7602d27c907c50ea275c64736f6c63430008140033

Deployed Bytecode Sourcemap

3828:9406:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6571:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6009:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6765:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5925:76;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10275:428;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7032:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12659:325;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11785:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6110:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2509:103;;;:::i;:::-;;12364:287;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2236:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11977:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5828:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7285:511;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6230:191;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11880:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12078:278;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6429:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2620:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12992:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:85;5774:13;5807:5;5800:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:85;:::o;6571:186::-;6639:4;6656:13;6672:12;:10;:12::i;:::-;6656:28;;6695:32;6704:5;6711:7;6720:6;6695:8;:32::i;:::-;6745:4;6738:11;;;6571:186;;;;:::o;6009:93::-;6055:7;6082:12;;6075:19;;6009:93;:::o;6765:259::-;6860:4;3358:21;:19;:21::i;:::-;6877:15:::1;6895:12;:10;:12::i;:::-;6877:30;;6918:38;6934:4;6940:7;6949:6;6918:15;:38::i;:::-;6967:27;6977:4;6983:2;6987:6;6967:9;:27::i;:::-;7012:4;7005:11;;;3402:20:::0;:18;:20::i;:::-;6765:259;;;;;:::o;5925:76::-;5966:5;5991:2;5984:9;;5925:76;:::o;10275:428::-;10329:19;10351:9;:23;10361:12;:10;:12::i;:::-;10351:23;;;;;;;;;;;;;;;;10329:45;;10403:6;10389:11;:20;10385:119;;;10458:12;:10;:12::i;:::-;10472:11;10485:6;10433:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;10385:119;10579:6;10565:11;:20;10539:9;:23;10549:12;:10;:12::i;:::-;10539:23;;;;;;;;;;;;;;;:46;;;;10616:6;10600:12;;:22;;;;;;;;;;;10673:1;10642:42;;10651:12;:10;:12::i;:::-;10642:42;;;10677:6;10642:42;;;;;;:::i;:::-;;;;;;;;10318:385;10275:428;:::o;7032:245::-;7127:4;3358:21;:19;:21::i;:::-;7144:13:::1;7160:12;:10;:12::i;:::-;7144:28;;7183:64;7192:5;7199:7;7236:10;7208:25;7218:5;7225:7;7208:9;:25::i;:::-;:38;;;;:::i;:::-;7183:8;:64::i;:::-;7265:4;7258:11;;;3402:20:::0;:18;:20::i;:::-;7032:245;;;;:::o;12659:325::-;12732:4;2191:13;:11;:13::i;:::-;12784:3:::1;12769:12;;:18;;;;:::i;:::-;12753:13;:34;:65;;;;12805:13;12791:10;;:27;12753:65;12749:119;;;12842:14;;;;;;;;;;;;;;12749:119;12891:13;12878:10;:26;;;;12920:34;12943:10;;12920:34;;;;;;:::i;:::-;;;;;;;;12972:4;12965:11;;12659:325:::0;;;:::o;11785:87::-;11830:7;11857;;11850:14;;11785:87;:::o;6110:112::-;6169:7;6196:9;:18;6206:7;6196:18;;;;;;;;;;;;;;;;6189:25;;6110:112;;;:::o;2509:103::-;2191:13;:11;:13::i;:::-;2574:30:::1;2601:1;2574:18;:30::i;:::-;2509:103::o:0;12364:287::-;12433:4;2191:13;:11;:13::i;:::-;12468:4:::1;12454:11;:18;:45;;;;12491:8;;12476:11;:23;12454:45;12450:99;;;12523:14;;;;;;;;;;;;;;12450:99;12570:11;12559:8;:22;;;;12597:24;12612:8;;12597:24;;;;;;:::i;:::-;;;;;;;;12639:4;12632:11;;12364:287:::0;;;:::o;2236:87::-;2282:7;2309:6;;;;;;;;;;;2302:13;;2236:87;:::o;11977:93::-;12025:7;12052:10;;12045:17;;11977:93;:::o;5828:89::-;5869:13;5902:7;5895:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5828:89;:::o;7285:511::-;7387:4;3358:21;:19;:21::i;:::-;7404:13:::1;7420:12;:10;:12::i;:::-;7404:28;;7443:24;7470:25;7480:5;7487:7;7470:9;:25::i;:::-;7443:52;;7529:17;7510:16;:36;7506:150;;;7599:7;7608:16;7626:17;7570:74;;;;;;;;;;;;;:::i;:::-;;;;;;;;7506:150;7691:62;7700:5;7707:7;7735:17;7716:16;:36;7691:8;:62::i;:::-;7784:4;7777:11;;;;3402:20:::0;:18;:20::i;:::-;7285:511;;;;:::o;6230:191::-;6307:4;3358:21;:19;:21::i;:::-;6324:13:::1;6340:12;:10;:12::i;:::-;6324:28;;6363;6373:5;6380:2;6384:6;6363:9;:28::i;:::-;6409:4;6402:11;;;3402:20:::0;:18;:20::i;:::-;6230:191;;;;:::o;11880:89::-;11926:7;11953:8;;11946:15;;11880:89;:::o;12078:278::-;12145:4;2191:13;:11;:13::i;:::-;12179:4:::1;12166:10;:17;:42;;;;12201:7;;12187:10;:21;12166:42;12162:96;;;12232:14;;;;;;;;;;;;;;12162:96;12278:10;12268:7;:20;;;;12304:22;12318:7;;12304:22;;;;;;:::i;:::-;;;;;;;;12344:4;12337:11;;12078:278:::0;;;:::o;6429:134::-;6501:7;6528:11;:18;6540:5;6528:18;;;;;;;;;;;;;;;:27;6547:7;6528:27;;;;;;;;;;;;;;;;6521:34;;6429:134;;;;:::o;2620:220::-;2191:13;:11;:13::i;:::-;2725:1:::1;2705:22;;:8;:22;;::::0;2701:93:::1;;2779:1;2751:31;;;;;;;;;;;:::i;:::-;;;;;;;;2701:93;2804:28;2823:8;2804:18;:28::i;:::-;2620:220:::0;:::o;12992:239::-;13061:4;2191:13;:11;:13::i;:::-;13082:12:::1;:26;13095:12;13082:26;;;;;;;;;;;;;;;;;;;;;;;;;13078:80;;;13132:14;;;;;;;;;;;;;;13078:80;13197:4;13168:12;:26;13181:12;13168:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13219:4;13212:11;;12992:239:::0;;;:::o;1669:100::-;1722:7;1751:10;1744:17;;1669:100;:::o;10711:131::-;10796:38;10805:5;10812:7;10821:6;10829:4;10796:8;:38::i;:::-;10711:131;;;:::o;3438:177::-;3173:1;3492:7;;:19;3488:89;;3535:30;;;;;;;;;;;;;;3488:89;3173:1;3589:7;:18;;;;3438:177::o;11295:482::-;11387:24;11414:25;11424:5;11431:7;11414:9;:25::i;:::-;11387:52;;11474:17;11454:16;:37;11450:320;;11531:6;11512:16;:25;11508:134;;;11592:7;11601:16;11619:6;11565:61;;;;;;;;;;;;;:::i;:::-;;;;;;;;11508:134;11685:58;11694:5;11701:7;11729:6;11710:16;:25;11737:5;11685:8;:58::i;:::-;11450:320;11376:401;11295:482;;;:::o;7804:1117::-;7904:1;7888:18;;:4;:18;;;7884:88;;7957:1;7930:30;;;;;;;;;;;:::i;:::-;;;;;;;;7884:88;8000:1;7986:16;;:2;:16;;;7982:88;;8055:1;8026:32;;;;;;;;;;;:::i;:::-;;;;;;;;7982:88;8092:2;8084:10;;:4;:10;;;8080:64;;8118:14;;;;;;;;;;;;;;8080:64;8168:29;8158:6;:39;8154:143;;8233:4;8214:12;:16;8227:2;8214:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;8281:4;8252:12;:26;8265:12;:10;:12::i;:::-;8252:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8154:143;8312:12;:16;8325:2;8312:16;;;;;;;;;;;;;;;;;;;;;;;;;8307:334;;8374:10;;8365:6;8349:9;:13;8359:2;8349:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:35;8345:99;;;8412:16;;;;;;;;;;;;;;8345:99;8482:15;8478:1;8462:9;:13;8472:2;8462:13;;;;;;;;;;;;;;;;:17;;;;:::i;:::-;:35;8458:172;;;8525:17;;;;;;;;;;;;;;8458:172;8599:15;8583:9;:13;8593:2;8583:13;;;;;;;;;;;;;;;:31;;;;8307:334;8656:12;:18;8669:4;8656:18;;;;;;;;;;;;;;;;;;;;;;;;;8651:227;;8717:15;8713:1;8695:9;:15;8705:4;8695:15;;;;;;;;;;;;;;;;:19;;;;:::i;:::-;:37;8691:176;;;8760:17;;;;;;;;;;;;;;8691:176;8836:15;8818:9;:15;8828:4;8818:15;;;;;;;;;;;;;;;:33;;;;8651:227;8888:25;8896:4;8902:2;8906:6;8888:7;:25::i;:::-;7804:1117;;;:::o;3623:79::-;3129:1;3672:7;:22;;;;3623:79::o;2335:166::-;2406:12;:10;:12::i;:::-;2395:23;;:7;:5;:7::i;:::-;:23;;;2391:103;;2469:12;:10;:12::i;:::-;2442:40;;;;;;;;;;;:::i;:::-;;;;;;;;2391:103;2335:166::o;2848:191::-;2922:16;2941:6;;;;;;;;;;;2922:25;;2967:8;2958:6;;:17;;;;;;;;;;;;;;;;;;3022:8;2991:40;;3012:8;2991:40;;;;;;;;;;;;2911:128;2848:191;:::o;10850:437::-;10972:1;10955:19;;:5;:19;;;10951:91;;11027:1;10998:32;;;;;;;;;;;:::i;:::-;;;;;;;;10951:91;11075:1;11056:21;;:7;:21;;;11052:92;;11129:1;11101:31;;;;;;;;;;;:::i;:::-;;;;;;;;11052:92;11184:6;11154:11;:18;11166:5;11154:18;;;;;;;;;;;;;;;:27;11173:7;11154:27;;;;;;;;;;;;;;;:36;;;;11205:9;11201:79;;;11252:7;11236:32;;11245:5;11236:32;;;11261:6;11236:32;;;;;;:::i;:::-;;;;;;;;11201:79;10850:437;;;;:::o;8929:1338::-;9027:1;9011:18;;:4;:18;;;9007:1253;;9062:6;9046:12;;:22;;;;;;;:::i;:::-;;;;;;;;9110:6;9083:9;:23;9093:12;:10;:12::i;:::-;9083:23;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;9151:2;9136:26;;9145:4;9136:26;;;9155:6;9136:26;;;;;;:::i;:::-;;;;;;;;9007:1253;;;9195:19;9217:9;:15;9227:4;9217:15;;;;;;;;;;;;;;;;9195:37;;9279:6;9265:11;:20;9261:119;;;9338:4;9344:11;9357:6;9313:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;9261:119;9457:6;9443:11;:20;9425:9;:15;9435:4;9425:15;;;;;;;;;;;;;;;:38;;;;9495:11;9539:12;:18;9552:4;9539:18;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;;9562:12;:16;9575:2;9562:16;;;;;;;;;;;;;;;;;;;;;;;;;9561:17;9539:39;:55;;;;;9593:1;9582:7;;:12;;9539:55;9535:240;;;9640:5;9630:7;;9621:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;9615:30;;9535:240;;;9672:12;:18;9685:4;9672:18;;;;;;;;;;;;;;;;;;;;;;;;;9671:19;:36;;;;;9706:1;9694:8;;:13;;9671:36;9667:108;;;9754:5;9743:8;;9734:6;:17;;;;:::i;:::-;:25;;;;:::i;:::-;9728:31;;9667:108;9535:240;9802:1;9795:3;:8;9791:458;;9883:3;9874:6;:12;9857:9;:13;9867:2;9857:13;;;;;;;;;;;;;;;;:29;;;;;;;;;;;9934:3;9909:9;:21;9919:10;;;;;;;;;;;9909:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;9995:2;9980:32;;9989:4;9980:32;;;10008:3;9999:6;:12;;;;:::i;:::-;9980:32;;;;;;:::i;:::-;;;;;;;;10051:10;;;;;;;;;;;10036:31;;10045:4;10036:31;;;10063:3;10036:31;;;;;;:::i;:::-;;;;;;;;9791:458;;;10158:6;10141:9;:13;10151:2;10141:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10222:2;10207:26;;10216:4;10207:26;;;10226:6;10207:26;;;;;;:::i;:::-;;;;;;;;9791:458;9180:1080;;9007:1253;8929:1338;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:442::-;7016:4;7054:2;7043:9;7039:18;7031:26;;7067:71;7135:1;7124:9;7120:17;7111:6;7067:71;:::i;:::-;7148:72;7216:2;7205:9;7201:18;7192:6;7148:72;:::i;:::-;7230;7298:2;7287:9;7283:18;7274:6;7230:72;:::i;:::-;6867:442;;;;;;:::o;7315:180::-;7363:77;7360:1;7353:88;7460:4;7457:1;7450:15;7484:4;7481:1;7474:15;7501:191;7541:3;7560:20;7578:1;7560:20;:::i;:::-;7555:25;;7594:20;7612:1;7594:20;:::i;:::-;7589:25;;7637:1;7634;7630:9;7623:16;;7658:3;7655:1;7652:10;7649:36;;;7665:18;;:::i;:::-;7649:36;7501:191;;;;:::o;7698:180::-;7746:77;7743:1;7736:88;7843:4;7840:1;7833:15;7867:4;7864:1;7857:15;7884:185;7924:1;7941:20;7959:1;7941:20;:::i;:::-;7936:25;;7975:20;7993:1;7975:20;:::i;:::-;7970:25;;8014:1;8004:35;;8019:18;;:::i;:::-;8004:35;8061:1;8058;8054:9;8049:14;;7884:185;;;;:::o;8075:410::-;8115:7;8138:20;8156:1;8138:20;:::i;:::-;8133:25;;8172:20;8190:1;8172:20;:::i;:::-;8167:25;;8227:1;8224;8220:9;8249:30;8267:11;8249:30;:::i;:::-;8238:41;;8428:1;8419:7;8415:15;8412:1;8409:22;8389:1;8382:9;8362:83;8339:139;;8458:18;;:::i;:::-;8339:139;8123:362;8075:410;;;;:::o;8491:194::-;8531:4;8551:20;8569:1;8551:20;:::i;:::-;8546:25;;8585:20;8603:1;8585:20;:::i;:::-;8580:25;;8629:1;8626;8622:9;8614:17;;8653:1;8647:4;8644:11;8641:37;;;8658:18;;:::i;:::-;8641:37;8491:194;;;;:::o

Swarm Source

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