ETH Price: $3,606.96 (+6.09%)

Staked Cyber Turtles (sCyber)
 

Overview

TokenID

5319

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-
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:
sCyberTurtles

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

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

// Open0x Ownable (by 0xInuarashi)
abstract contract Ownable {
    address public owner;
    event OwnershipTransferred(address indexed oldOwner_, address indexed newOwner_);
    constructor() { owner = msg.sender; }
    modifier onlyOwner {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function _transferOwnership(address newOwner_) internal virtual {
        address _oldOwner = owner;
        owner = newOwner_;
        emit OwnershipTransferred(_oldOwner, newOwner_);    
    }
    function transferOwnership(address newOwner_) public virtual onlyOwner {
        require(newOwner_ != address(0x0), "Ownable: new owner is the zero address!");
        _transferOwnership(newOwner_);
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0x0));
    }
}

interface iCT {

    struct ownerAndStake {
        address owner;
        uint40 timestamp;
    }
    
    function totalSupply() external view returns (uint256);
    function _ownerOf(uint256 tokenId_) external view returns (ownerAndStake memory);
    function ownerOf(uint256 tokenId_) external view returns (address);
    function isStaked(uint256 tokenId_) external view returns (bool);
    function tokenIdStartsAt() external view returns (uint256);

    function validateOwnershipOfTokens(address owner_, uint256[] calldata tokenIds_) 
    external view returns (bool);
    function validateOwnershipOfStakedTokens(address owner_,
    uint256[] calldata tokenIds_) external view returns (bool);

    function stakeTurtles(uint256[] calldata tokenIds_) external;
    function updateTurtles(uint256[] calldata tokenIds_) external;
    function unstakeTurtles(uint256[] calldata tokenIds_) external;

    function tokenURI(uint256 tokenId_) external view returns (string memory);
}

interface iShell {
    function mint(address to_, uint256 amount_) external;
}

// This is a proof-of-stake (token represents stake) contract
// Custom made with love by 0xInuarashi.eth
contract sCyberTurtles is Ownable {
    string public name = "Staked Cyber Turtles";
    string public symbol = "sCyber";

    // We largely interface with CyberTurtles
    iCT public CT = iCT(0x81BC389D02c3054649643E590ce57fAAAB3BF38B); // note: change
    function setCT(address address_) external onlyOwner {
        CT = iCT(address_);
    }

    iShell public SHELL = iShell(0x81BC389D02c3054649643E590ce57fAAAB3BF38B); // note: c
    function setShell(address address_) external onlyOwner {
        SHELL = iShell(address_);
    }

    // Yield Info
    uint256 public yieldStartTime = 1643670000; // 2021-01-31_18-00_EST
    uint256 public yieldEndTime = 1959202800; // 10 years
    uint256 public yieldRate = 100 ether;

    // Magic Events
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    // Magic Logic
    function totalSupply() public view returns (uint256) {
        uint256 _totalSupply;
        uint256 _startId = CT.tokenIdStartsAt();
        for (uint256 i = _startId; i <= CT.totalSupply() + _startId; i++) {
            if (CT.isStaked(i)) { _totalSupply++; }
        }
        return _totalSupply;
    }

    function ownerOf(uint256 tokenId_) public view returns (address) {
        iCT.ownerAndStake memory _ownerAndStake = CT._ownerOf(tokenId_);
        address _owner = _ownerAndStake.timestamp > 0 ?
             _ownerAndStake.owner : address(0);
        return _owner;
    }

    function balanceOf(address address_) public view returns (uint256) {
        uint256 _startId = CT.tokenIdStartsAt();
        uint256 _balance;
        for (uint256 i = _startId; i <= CT.totalSupply() + _startId; i++) {
            if (ownerOf(i) == address_) { _balance++; }
        }
        return _balance;
    }

    // Internal Claim Function
    function _getPendingTokens(uint256 tokenId_) internal view returns (uint256) {
        uint256 _timestamp = uint256(CT._ownerOf(tokenId_).timestamp);
        if (_timestamp == 0 || _timestamp > yieldEndTime) return 0;

        uint256 _timeCurrentOrEnded = yieldEndTime > block.timestamp ? 
            block.timestamp : yieldEndTime;
        uint256 _timeElapsed = _timeCurrentOrEnded - _timestamp;

        return (_timeElapsed * yieldRate) / 1 days;
    }
    function _getPendingTokensMany(uint256[] memory tokenIds_) internal view
    returns (uint256) {
        uint256 _pendingTokens;
        for (uint256 i = 0; i < tokenIds_.length; i++) {
            _pendingTokens += _getPendingTokens(tokenIds_[i]);
        }
        return _pendingTokens;
    }

    function getPendingTokens(uint256 tokenId_) public view returns (uint256) {
        return _getPendingTokens(tokenId_);
    }
    function getPendingTokensMany(uint256[] calldata tokenIds_) public view 
    returns (uint256) {
        return _getPendingTokensMany(tokenIds_);
    }
    function getPendingTokensOfAddress(address address_) public view 
    returns (uint256) {
        uint256[] memory _tokensOfAddress = walletOfOwner(address_);
        return _getPendingTokensMany(_tokensOfAddress);
    }

    function _claim(address to_, uint256[] memory tokenIds_) internal {
        uint256 _pendingTokens;
        for (uint256 i = 0; i < tokenIds_.length; i++) {
            _pendingTokens += _getPendingTokens(tokenIds_[i]);
        }
        SHELL.mint(to_, _pendingTokens);
    }

    function claim(uint256[] calldata tokenIds_) external {
        require(CT.validateOwnershipOfStakedTokens(msg.sender, tokenIds_),
            "You are not the owner or token is unstaked!");

        _claim(msg.sender, tokenIds_);
        CT.updateTurtles(tokenIds_); // This updates the timestamp
    }
    function stakeTurtles(uint256[] calldata tokenIds_) external {
        require(CT.validateOwnershipOfTokens(msg.sender, tokenIds_),
            "You are not the owner or token is already staked!");

        CT.stakeTurtles(tokenIds_); // Set timestamp to block.timestamp

        for (uint256 i = 0; i < tokenIds_.length; i++) {
            emit Transfer(address(0), msg.sender, tokenIds_[i]); // Mint sToken
        }
    }   
    function unstakeTurtles(uint256[] calldata tokenIds_) external {
        require(CT.validateOwnershipOfStakedTokens(msg.sender, tokenIds_),
            "You are not the owner or token is unstaked!");

        _claim(msg.sender, tokenIds_);
        CT.unstakeTurtles(tokenIds_); // Set timestamp to 0

        for (uint256 i = 0; i < tokenIds_.length; i++) {
            emit Transfer(msg.sender, address(0), tokenIds_[i]); // Burn sToken
        }
    }

    function mintStakedTokenAsCyberTurtles(address to_, uint256 tokenId_) external {
        require(msg.sender == address(CT), "You are not CT!");
        emit Transfer(address(0), to_, tokenId_);
    }

    function walletOfOwner(address address_) public virtual view 
    returns (uint256[] memory) {
        uint256 _balance = balanceOf(address_);
        if (_balance == 0) return new uint256[](0);

        uint256[] memory _tokens = new uint256[] (_balance);
        uint256 _index;
        uint256 _loopThrough = CT.totalSupply() + 1;
        for (uint256 i = 0; i < _loopThrough; i++) {
            if (ownerOf(i) == address(0x0) && _tokens[_balance - 1] == 0) {
                _loopThrough++; 
            }
            if (ownerOf(i) == address_) { 
                _tokens[_index] = i; _index++; 
            }
        }
        return _tokens;
    }

    // TokenURI Stuff
    string internal baseTokenURI; string internal baseTokenURI_EXT;
    function _toString(uint256 value_) internal pure returns (string memory) {
        if (value_ == 0) { return "0"; }
        uint256 _iterate = value_; uint256 _digits;
        while (_iterate != 0) { _digits++; _iterate /= 10; } // get digits in value_
        bytes memory _buffer = new bytes(_digits);
        while (value_ != 0) { _digits--; _buffer[_digits] = bytes1(uint8(
            48 + uint256(value_ % 10 ))); value_ /= 10; } // create bytes of value_
        return string(_buffer); // return string converted bytes of value_
    }
    function setBaseTokenURI(string memory uri_) external onlyOwner {
        baseTokenURI = uri_;
    }
    function setBaseTokenURI_EXT(string memory ext_) external onlyOwner {
        baseTokenURI_EXT = ext_;
    }
    function tokenURI(uint256 tokenId_) public view virtual returns (string memory) {
        require(ownerOf(tokenId_) != address(0), 
            "ERC721I: tokenURI() Token does not exist!");

        return string(abi.encodePacked(baseTokenURI, 
            _toString(tokenId_), baseTokenURI_EXT));
    }

    // OZ ERC721 Stuff
    function supportsInterface(bytes4 interfaceId_) public pure returns (bool) {
        return (interfaceId_ == 0x80ac58cd || interfaceId_ == 0x5b5e139f);
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner_","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":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CT","outputs":[{"internalType":"contract iCT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHELL","outputs":[{"internalType":"contract iShell","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"getPendingTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"getPendingTokensMany","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"getPendingTokensOfAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"mintStakedTokenAsCyberTurtles","outputs":[],"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":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri_","type":"string"}],"name":"setBaseTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"ext_","type":"string"}],"name":"setBaseTokenURI_EXT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"setCT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"setShell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"stakeTurtles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId_","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"tokenURI","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":"newOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"unstakeTurtles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"yieldEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"yieldRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"yieldStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c0604052601460808190527f5374616b656420437962657220547572746c657300000000000000000000000060a0908152620000409160019190620000ea565b506040805180820190915260068082526539a1bcb132b960d11b60209092019182526200007091600291620000ea565b50600380547381bc389d02c3054649643e590ce57faaab3bf38b6001600160a01b031991821681179092556004805490911690911790556361f869f06005556374c70ff060065568056bc75e2d63100000600755348015620000d157600080fd5b50600080546001600160a01b03191633179055620001cd565b828054620000f89062000190565b90600052602060002090601f0160209004810192826200011c576000855562000167565b82601f106200013757805160ff191683800117855562000167565b8280016001018555821562000167579182015b82811115620001675782518255916020019190600101906200014a565b506200017592915062000179565b5090565b5b808211156200017557600081556001016200017a565b600181811c90821680620001a557607f821691505b60208210811415620001c757634e487b7160e01b600052602260045260246000fd5b50919050565b611c9f80620001dd6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063c87b56dd11610097578063e0308ce811610071578063e0308ce814610370578063f0dbdee014610383578063f2fde38b14610396578063fc1d9a7f146103a957600080fd5b8063c87b56dd14610337578063cff7833d1461034a578063d9c020bf1461035d57600080fd5b80638da5cb5b116100d35780638da5cb5b146102f657806395d89b4114610309578063968e72f814610311578063bfc3d84b1461032457600080fd5b806370a08231146102d2578063715018a6146102e55780637c073ede146102ed57600080fd5b8063314ca0391161016657806358d78c8c1161014057806358d78c8c146102785780636352211e1461028b5780636999ac93146102b65780636ba4c138146102bf57600080fd5b8063314ca0391461023c578063438b6300146102455780634fcd49e81461026557600080fd5b806301ffc9a7146101ae57806302ffaed1146101d657806306fdde03146101eb57806308cf8f061461020057806318160ddd1461022157806330176e1314610229575b600080fd5b6101c16101bc366004611740565b6103bc565b60405190151581526020015b60405180910390f35b6101e96101e436600461176a565b6103f3565b005b6101f361043d565b6040516101cd9190611a36565b61021361020e366004611884565b6104cb565b6040519081526020016101cd565b6102136104d6565b6101e961023736600461176a565b61069a565b61021360065481565b610258610253366004611660565b6106d7565b6040516101cd91906119f2565b6101e96102733660046116a9565b6108af565b6102136102863660046116a9565b610a6c565b61029e610299366004611884565b610ab1565b6040516001600160a01b0390911681526020016101cd565b61021360075481565b6101e96102cd3660046116a9565b610b59565b6102136102e0366004611660565b610c9e565b6101e9610dfb565b61021360055481565b60005461029e906001600160a01b031681565b6101f3610e31565b61021361031f366004611660565b610e3e565b60035461029e906001600160a01b031681565b6101f3610345366004611884565b610e55565b6101e9610358366004611660565b610f00565b6101e961036b36600461167d565b610f4c565b6101e961037e3660046116a9565b610fd4565b6101e9610391366004611660565b611199565b6101e96103a4366004611660565b6111e5565b60045461029e906001600160a01b031681565b60006380ac58cd60e01b6001600160e01b0319831614806103ed5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000546001600160a01b031633146104265760405162461bcd60e51b815260040161041d90611ab4565b60405180910390fd5b80516104399060099060208401906115c7565b5050565b6001805461044a90611b92565b80601f016020809104026020016040519081016040528092919081815260200182805461047690611b92565b80156104c35780601f10610498576101008083540402835291602001916104c3565b820191906000526020600020905b8154815290600101906020018083116104a657829003601f168201915b505050505081565b60006103ed82611281565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b0316635b5d958b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052957600080fd5b505afa15801561053d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610561919061189d565b9050805b600354604080516318160ddd60e01b8152905184926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156105a957600080fd5b505afa1580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e1919061189d565b6105eb9190611ae9565b811161069257600354604051635d528fc360e11b8152600481018390526001600160a01b039091169063baa51f869060240160206040518083038186803b15801561063557600080fd5b505afa158015610649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066d919061171e565b15610680578261067c81611bcd565b9350505b8061068a81611bcd565b915050610565565b509092915050565b6000546001600160a01b031633146106c45760405162461bcd60e51b815260040161041d90611ab4565b80516104399060089060208401906115c7565b606060006106e483610c9e565b9050806107055760408051600080825260208201909252905b509392505050565b60008167ffffffffffffffff81111561072057610720611c3e565b604051908082528060200260200182016040528015610749578160200160208202803683370190505b509050600080600360009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d5919061189d565b6107e0906001611ae9565b905060005b818110156108a45760006107f882610ab1565b6001600160a01b0316148015610831575083610815600187611b34565b8151811061082557610825611c28565b60200260200101516000145b15610844578161084081611bcd565b9250505b866001600160a01b031661085782610ab1565b6001600160a01b03161415610892578084848151811061087957610879611c28565b60209081029190910101528261088e81611bcd565b9350505b8061089c81611bcd565b9150506107e5565b509195945050505050565b6003546040516339d0ab6760e21b81526001600160a01b039091169063e742ad9c906108e3903390869086906004016119b9565b60206040518083038186803b1580156108fb57600080fd5b505afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610933919061171e565b61094f5760405162461bcd60e51b815260040161041d90611a69565b61098c3383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061137492505050565b6003546040516309f9a93d60e31b81526001600160a01b0390911690634fcd49e8906109be90859085906004016119de565b600060405180830381600087803b1580156109d857600080fd5b505af11580156109ec573d6000803e3d6000fd5b5050505060005b81811015610a6757828282818110610a0d57610a0d611c28565b9050602002013560006001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480610a5f81611bcd565b9150506109f3565b505050565b6000610aaa83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061142f92505050565b9392505050565b600354604051633835054160e01b81526004810183905260009182916001600160a01b0390911690633835054190602401604080518083038186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b31919061181b565b9050600080826020015164ffffffffff1611610b4e576000610b51565b81515b949350505050565b6003546040516339d0ab6760e21b81526001600160a01b039091169063e742ad9c90610b8d903390869086906004016119b9565b60206040518083038186803b158015610ba557600080fd5b505afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd919061171e565b610bf95760405162461bcd60e51b815260040161041d90611a69565b610c363383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061137492505050565b6003546040516358361e3160e01b81526001600160a01b03909116906358361e3190610c6890859085906004016119de565b600060405180830381600087803b158015610c8257600080fd5b505af1158015610c96573d6000803e3d6000fd5b505050505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b0316635b5d958b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cef57600080fd5b505afa158015610d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d27919061189d565b90506000815b600354604080516318160ddd60e01b8152905185926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610d7157600080fd5b505afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da9919061189d565b610db39190611ae9565b81116106fd57846001600160a01b0316610dcc82610ab1565b6001600160a01b03161415610de95781610de581611bcd565b9250505b80610df381611bcd565b915050610d2d565b6000546001600160a01b03163314610e255760405162461bcd60e51b815260040161041d90611ab4565b610e2f6000611478565b565b6002805461044a90611b92565b600080610e4a836106d7565b9050610aaa8161142f565b60606000610e6283610ab1565b6001600160a01b03161415610ecb5760405162461bcd60e51b815260206004820152602960248201527f455243373231493a20746f6b656e555249282920546f6b656e20646f6573206e6044820152686f742065786973742160b81b606482015260840161041d565b6008610ed6836114c8565b6009604051602001610eea93929190611986565b6040516020818303038152906040529050919050565b6000546001600160a01b03163314610f2a5760405162461bcd60e51b815260040161041d90611ab4565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314610f985760405162461bcd60e51b815260206004820152600f60248201526e596f7520617265206e6f742043542160881b604482015260640161041d565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600354604051637713a0a360e11b81526001600160a01b039091169063ee27414690611008903390869086906004016119b9565b60206040518083038186803b15801561102057600080fd5b505afa158015611034573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611058919061171e565b6110be5760405162461bcd60e51b815260206004820152603160248201527f596f7520617265206e6f7420746865206f776e6572206f7220746f6b656e20696044820152707320616c7265616479207374616b65642160781b606482015260840161041d565b600354604051631c06119d60e31b81526001600160a01b039091169063e0308ce8906110f090859085906004016119de565b600060405180830381600087803b15801561110a57600080fd5b505af115801561111e573d6000803e3d6000fd5b5050505060005b81811015610a675782828281811061113f5761113f611c28565b90506020020135336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48061119181611bcd565b915050611125565b6000546001600160a01b031633146111c35760405162461bcd60e51b815260040161041d90611ab4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461120f5760405162461bcd60e51b815260040161041d90611ab4565b6001600160a01b0381166112755760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616044820152666464726573732160c81b606482015260840161041d565b61127e81611478565b50565b600354604051633835054160e01b81526004810183905260009182916001600160a01b0390911690633835054190602401604080518083038186803b1580156112c957600080fd5b505afa1580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611301919061181b565b6020015164ffffffffff16905080158061131c575060065481115b1561132a5750600092915050565b6000426006541161133d5760065461133f565b425b9050600061134d8383611b34565b905062015180600754826113619190611b15565b61136b9190611b01565b95945050505050565b6000805b82518110156113c1576113a383828151811061139657611396611c28565b6020026020010151611281565b6113ad9083611ae9565b9150806113b981611bcd565b915050611378565b50600480546040516340c10f1960e01b81526001600160a01b0386811693820193909352602481018490529116906340c10f1990604401600060405180830381600087803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b50505050505050565b60008060005b83518110156114715761145384828151811061139657611396611c28565b61145d9083611ae9565b91508061146981611bcd565b915050611435565b5092915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816114ec5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611516578061150081611bcd565b915061150f9050600a83611b01565b91506114f0565b60008167ffffffffffffffff81111561153157611531611c3e565b6040519080825280601f01601f19166020018201604052801561155b576020820181803683370190505b5090505b8415610b51578161156f81611b7b565b925061157e9050600a86611be8565b611589906030611ae9565b60f81b81838151811061159e5761159e611c28565b60200101906001600160f81b031916908160001a9053506115c0600a86611b01565b945061155f565b8280546115d390611b92565b90600052602060002090601f0160209004810192826115f5576000855561163b565b82601f1061160e57805160ff191683800117855561163b565b8280016001018555821561163b579182015b8281111561163b578251825591602001919060010190611620565b5061164792915061164b565b5090565b5b80821115611647576000815560010161164c565b60006020828403121561167257600080fd5b8135610aaa81611c54565b6000806040838503121561169057600080fd5b823561169b81611c54565b946020939093013593505050565b600080602083850312156116bc57600080fd5b823567ffffffffffffffff808211156116d457600080fd5b818501915085601f8301126116e857600080fd5b8135818111156116f757600080fd5b8660208260051b850101111561170c57600080fd5b60209290920196919550909350505050565b60006020828403121561173057600080fd5b81518015158114610aaa57600080fd5b60006020828403121561175257600080fd5b81356001600160e01b031981168114610aaa57600080fd5b60006020828403121561177c57600080fd5b813567ffffffffffffffff8082111561179457600080fd5b818401915084601f8301126117a857600080fd5b8135818111156117ba576117ba611c3e565b604051601f8201601f19908116603f011681019083821181831017156117e2576117e2611c3e565b816040528281528760208487010111156117fb57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006040828403121561182d57600080fd5b6040516040810181811067ffffffffffffffff8211171561185057611850611c3e565b604052825161185e81611c54565b8152602083015164ffffffffff8116811461187857600080fd5b60208201529392505050565b60006020828403121561189657600080fd5b5035919050565b6000602082840312156118af57600080fd5b5051919050565b81835260006001600160fb1b038311156118cf57600080fd5b8260051b8083602087013760009401602001938452509192915050565b8054600090600181811c908083168061190657607f831692505b602080841082141561192857634e487b7160e01b600052602260045260246000fd5b81801561193c576001811461194d5761197a565b60ff1986168952848901965061197a565b60008881526020902060005b868110156119725781548b820152908501908301611959565b505084890196505b50505050505092915050565b600061199282866118ec565b84516119a2818360208901611b4b565b6119ae818301866118ec565b979650505050505050565b6001600160a01b038416815260406020820181905260009061136b90830184866118b6565b602081526000610b516020830184866118b6565b6020808252825182820181905260009190848201906040850190845b81811015611a2a57835183529284019291840191600101611a0e565b50909695505050505050565b6020815260008251806020840152611a55816040850160208701611b4b565b601f01601f19169190910160400192915050565b6020808252602b908201527f596f7520617265206e6f7420746865206f776e6572206f7220746f6b656e206960408201526a7320756e7374616b65642160a81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611afc57611afc611bfc565b500190565b600082611b1057611b10611c12565b500490565b6000816000190483118215151615611b2f57611b2f611bfc565b500290565b600082821015611b4657611b46611bfc565b500390565b60005b83811015611b66578181015183820152602001611b4e565b83811115611b75576000848401525b50505050565b600081611b8a57611b8a611bfc565b506000190190565b600181811c90821680611ba657607f821691505b60208210811415611bc757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611be157611be1611bfc565b5060010190565b600082611bf757611bf7611c12565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461127e57600080fdfea26469706673582212204a7023342e0546e9fc2094e188bf3451dd14ffc6e954fdfbf752304dcda634ca64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063c87b56dd11610097578063e0308ce811610071578063e0308ce814610370578063f0dbdee014610383578063f2fde38b14610396578063fc1d9a7f146103a957600080fd5b8063c87b56dd14610337578063cff7833d1461034a578063d9c020bf1461035d57600080fd5b80638da5cb5b116100d35780638da5cb5b146102f657806395d89b4114610309578063968e72f814610311578063bfc3d84b1461032457600080fd5b806370a08231146102d2578063715018a6146102e55780637c073ede146102ed57600080fd5b8063314ca0391161016657806358d78c8c1161014057806358d78c8c146102785780636352211e1461028b5780636999ac93146102b65780636ba4c138146102bf57600080fd5b8063314ca0391461023c578063438b6300146102455780634fcd49e81461026557600080fd5b806301ffc9a7146101ae57806302ffaed1146101d657806306fdde03146101eb57806308cf8f061461020057806318160ddd1461022157806330176e1314610229575b600080fd5b6101c16101bc366004611740565b6103bc565b60405190151581526020015b60405180910390f35b6101e96101e436600461176a565b6103f3565b005b6101f361043d565b6040516101cd9190611a36565b61021361020e366004611884565b6104cb565b6040519081526020016101cd565b6102136104d6565b6101e961023736600461176a565b61069a565b61021360065481565b610258610253366004611660565b6106d7565b6040516101cd91906119f2565b6101e96102733660046116a9565b6108af565b6102136102863660046116a9565b610a6c565b61029e610299366004611884565b610ab1565b6040516001600160a01b0390911681526020016101cd565b61021360075481565b6101e96102cd3660046116a9565b610b59565b6102136102e0366004611660565b610c9e565b6101e9610dfb565b61021360055481565b60005461029e906001600160a01b031681565b6101f3610e31565b61021361031f366004611660565b610e3e565b60035461029e906001600160a01b031681565b6101f3610345366004611884565b610e55565b6101e9610358366004611660565b610f00565b6101e961036b36600461167d565b610f4c565b6101e961037e3660046116a9565b610fd4565b6101e9610391366004611660565b611199565b6101e96103a4366004611660565b6111e5565b60045461029e906001600160a01b031681565b60006380ac58cd60e01b6001600160e01b0319831614806103ed5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000546001600160a01b031633146104265760405162461bcd60e51b815260040161041d90611ab4565b60405180910390fd5b80516104399060099060208401906115c7565b5050565b6001805461044a90611b92565b80601f016020809104026020016040519081016040528092919081815260200182805461047690611b92565b80156104c35780601f10610498576101008083540402835291602001916104c3565b820191906000526020600020905b8154815290600101906020018083116104a657829003601f168201915b505050505081565b60006103ed82611281565b6000806000600360009054906101000a90046001600160a01b03166001600160a01b0316635b5d958b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052957600080fd5b505afa15801561053d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610561919061189d565b9050805b600354604080516318160ddd60e01b8152905184926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156105a957600080fd5b505afa1580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e1919061189d565b6105eb9190611ae9565b811161069257600354604051635d528fc360e11b8152600481018390526001600160a01b039091169063baa51f869060240160206040518083038186803b15801561063557600080fd5b505afa158015610649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066d919061171e565b15610680578261067c81611bcd565b9350505b8061068a81611bcd565b915050610565565b509092915050565b6000546001600160a01b031633146106c45760405162461bcd60e51b815260040161041d90611ab4565b80516104399060089060208401906115c7565b606060006106e483610c9e565b9050806107055760408051600080825260208201909252905b509392505050565b60008167ffffffffffffffff81111561072057610720611c3e565b604051908082528060200260200182016040528015610749578160200160208202803683370190505b509050600080600360009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d5919061189d565b6107e0906001611ae9565b905060005b818110156108a45760006107f882610ab1565b6001600160a01b0316148015610831575083610815600187611b34565b8151811061082557610825611c28565b60200260200101516000145b15610844578161084081611bcd565b9250505b866001600160a01b031661085782610ab1565b6001600160a01b03161415610892578084848151811061087957610879611c28565b60209081029190910101528261088e81611bcd565b9350505b8061089c81611bcd565b9150506107e5565b509195945050505050565b6003546040516339d0ab6760e21b81526001600160a01b039091169063e742ad9c906108e3903390869086906004016119b9565b60206040518083038186803b1580156108fb57600080fd5b505afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610933919061171e565b61094f5760405162461bcd60e51b815260040161041d90611a69565b61098c3383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061137492505050565b6003546040516309f9a93d60e31b81526001600160a01b0390911690634fcd49e8906109be90859085906004016119de565b600060405180830381600087803b1580156109d857600080fd5b505af11580156109ec573d6000803e3d6000fd5b5050505060005b81811015610a6757828282818110610a0d57610a0d611c28565b9050602002013560006001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480610a5f81611bcd565b9150506109f3565b505050565b6000610aaa83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061142f92505050565b9392505050565b600354604051633835054160e01b81526004810183905260009182916001600160a01b0390911690633835054190602401604080518083038186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b31919061181b565b9050600080826020015164ffffffffff1611610b4e576000610b51565b81515b949350505050565b6003546040516339d0ab6760e21b81526001600160a01b039091169063e742ad9c90610b8d903390869086906004016119b9565b60206040518083038186803b158015610ba557600080fd5b505afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd919061171e565b610bf95760405162461bcd60e51b815260040161041d90611a69565b610c363383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061137492505050565b6003546040516358361e3160e01b81526001600160a01b03909116906358361e3190610c6890859085906004016119de565b600060405180830381600087803b158015610c8257600080fd5b505af1158015610c96573d6000803e3d6000fd5b505050505050565b600080600360009054906101000a90046001600160a01b03166001600160a01b0316635b5d958b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cef57600080fd5b505afa158015610d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d27919061189d565b90506000815b600354604080516318160ddd60e01b8152905185926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610d7157600080fd5b505afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da9919061189d565b610db39190611ae9565b81116106fd57846001600160a01b0316610dcc82610ab1565b6001600160a01b03161415610de95781610de581611bcd565b9250505b80610df381611bcd565b915050610d2d565b6000546001600160a01b03163314610e255760405162461bcd60e51b815260040161041d90611ab4565b610e2f6000611478565b565b6002805461044a90611b92565b600080610e4a836106d7565b9050610aaa8161142f565b60606000610e6283610ab1565b6001600160a01b03161415610ecb5760405162461bcd60e51b815260206004820152602960248201527f455243373231493a20746f6b656e555249282920546f6b656e20646f6573206e6044820152686f742065786973742160b81b606482015260840161041d565b6008610ed6836114c8565b6009604051602001610eea93929190611986565b6040516020818303038152906040529050919050565b6000546001600160a01b03163314610f2a5760405162461bcd60e51b815260040161041d90611ab4565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314610f985760405162461bcd60e51b815260206004820152600f60248201526e596f7520617265206e6f742043542160881b604482015260640161041d565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600354604051637713a0a360e11b81526001600160a01b039091169063ee27414690611008903390869086906004016119b9565b60206040518083038186803b15801561102057600080fd5b505afa158015611034573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611058919061171e565b6110be5760405162461bcd60e51b815260206004820152603160248201527f596f7520617265206e6f7420746865206f776e6572206f7220746f6b656e20696044820152707320616c7265616479207374616b65642160781b606482015260840161041d565b600354604051631c06119d60e31b81526001600160a01b039091169063e0308ce8906110f090859085906004016119de565b600060405180830381600087803b15801561110a57600080fd5b505af115801561111e573d6000803e3d6000fd5b5050505060005b81811015610a675782828281811061113f5761113f611c28565b90506020020135336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48061119181611bcd565b915050611125565b6000546001600160a01b031633146111c35760405162461bcd60e51b815260040161041d90611ab4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461120f5760405162461bcd60e51b815260040161041d90611ab4565b6001600160a01b0381166112755760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616044820152666464726573732160c81b606482015260840161041d565b61127e81611478565b50565b600354604051633835054160e01b81526004810183905260009182916001600160a01b0390911690633835054190602401604080518083038186803b1580156112c957600080fd5b505afa1580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611301919061181b565b6020015164ffffffffff16905080158061131c575060065481115b1561132a5750600092915050565b6000426006541161133d5760065461133f565b425b9050600061134d8383611b34565b905062015180600754826113619190611b15565b61136b9190611b01565b95945050505050565b6000805b82518110156113c1576113a383828151811061139657611396611c28565b6020026020010151611281565b6113ad9083611ae9565b9150806113b981611bcd565b915050611378565b50600480546040516340c10f1960e01b81526001600160a01b0386811693820193909352602481018490529116906340c10f1990604401600060405180830381600087803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b50505050505050565b60008060005b83518110156114715761145384828151811061139657611396611c28565b61145d9083611ae9565b91508061146981611bcd565b915050611435565b5092915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816114ec5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611516578061150081611bcd565b915061150f9050600a83611b01565b91506114f0565b60008167ffffffffffffffff81111561153157611531611c3e565b6040519080825280601f01601f19166020018201604052801561155b576020820181803683370190505b5090505b8415610b51578161156f81611b7b565b925061157e9050600a86611be8565b611589906030611ae9565b60f81b81838151811061159e5761159e611c28565b60200101906001600160f81b031916908160001a9053506115c0600a86611b01565b945061155f565b8280546115d390611b92565b90600052602060002090601f0160209004810192826115f5576000855561163b565b82601f1061160e57805160ff191683800117855561163b565b8280016001018555821561163b579182015b8281111561163b578251825591602001919060010190611620565b5061164792915061164b565b5090565b5b80821115611647576000815560010161164c565b60006020828403121561167257600080fd5b8135610aaa81611c54565b6000806040838503121561169057600080fd5b823561169b81611c54565b946020939093013593505050565b600080602083850312156116bc57600080fd5b823567ffffffffffffffff808211156116d457600080fd5b818501915085601f8301126116e857600080fd5b8135818111156116f757600080fd5b8660208260051b850101111561170c57600080fd5b60209290920196919550909350505050565b60006020828403121561173057600080fd5b81518015158114610aaa57600080fd5b60006020828403121561175257600080fd5b81356001600160e01b031981168114610aaa57600080fd5b60006020828403121561177c57600080fd5b813567ffffffffffffffff8082111561179457600080fd5b818401915084601f8301126117a857600080fd5b8135818111156117ba576117ba611c3e565b604051601f8201601f19908116603f011681019083821181831017156117e2576117e2611c3e565b816040528281528760208487010111156117fb57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006040828403121561182d57600080fd5b6040516040810181811067ffffffffffffffff8211171561185057611850611c3e565b604052825161185e81611c54565b8152602083015164ffffffffff8116811461187857600080fd5b60208201529392505050565b60006020828403121561189657600080fd5b5035919050565b6000602082840312156118af57600080fd5b5051919050565b81835260006001600160fb1b038311156118cf57600080fd5b8260051b8083602087013760009401602001938452509192915050565b8054600090600181811c908083168061190657607f831692505b602080841082141561192857634e487b7160e01b600052602260045260246000fd5b81801561193c576001811461194d5761197a565b60ff1986168952848901965061197a565b60008881526020902060005b868110156119725781548b820152908501908301611959565b505084890196505b50505050505092915050565b600061199282866118ec565b84516119a2818360208901611b4b565b6119ae818301866118ec565b979650505050505050565b6001600160a01b038416815260406020820181905260009061136b90830184866118b6565b602081526000610b516020830184866118b6565b6020808252825182820181905260009190848201906040850190845b81811015611a2a57835183529284019291840191600101611a0e565b50909695505050505050565b6020815260008251806020840152611a55816040850160208701611b4b565b601f01601f19169190910160400192915050565b6020808252602b908201527f596f7520617265206e6f7420746865206f776e6572206f7220746f6b656e206960408201526a7320756e7374616b65642160a81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611afc57611afc611bfc565b500190565b600082611b1057611b10611c12565b500490565b6000816000190483118215151615611b2f57611b2f611bfc565b500290565b600082821015611b4657611b46611bfc565b500390565b60005b83811015611b66578181015183820152602001611b4e565b83811115611b75576000848401525b50505050565b600081611b8a57611b8a611bfc565b506000190190565b600181811c90821680611ba657607f821691505b60208210811415611bc757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611be157611be1611bfc565b5060010190565b600082611bf757611bf7611c12565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461127e57600080fdfea26469706673582212204a7023342e0546e9fc2094e188bf3451dd14ffc6e954fdfbf752304dcda634ca64736f6c63430008070033

Deployed Bytecode Sourcemap

2139:6943:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8920:159;;;;;;:::i;:::-;;:::i;:::-;;;7534:14:1;;7527:22;7509:41;;7497:2;7482:18;8920:159:0;;;;;;;;8463:110;;;;;;:::i;:::-;;:::i;:::-;;2180:43;;;:::i;:::-;;;;;;;:::i;4775:127::-;;;;;;:::i;:::-;;:::i;:::-;;;10889:25:1;;;10877:2;10862:18;4775:127:0;10743:177:1;3023:313:0;;;:::i;8355:102::-;;;;;;:::i;:::-;;:::i;2788:40::-;;;;;;7028:671;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6347:463::-;;;;;;:::i;:::-;;:::i;4908:154::-;;;;;;:::i;:::-;;:::i;3344:277::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5726:32:1;;;5708:51;;5696:2;5681:18;3344:277:0;5562:203:1;2847:36:0;;;;;;5590:309;;;;;;:::i;:::-;;:::i;3629:323::-;;;;;;:::i;:::-;;:::i;823:105::-;;;:::i;2715:42::-;;;;;;129:20;;;;;-1:-1:-1;;;;;129:20:0;;;2230:31;;;:::i;5068:224::-;;;;;;:::i;:::-;;:::i;2317:63::-;;;;;-1:-1:-1;;;;;2317:63:0;;;8579:309;;;;;;:::i;:::-;;:::i;2403:89::-;;;;;;:::i;:::-;;:::i;6818:202::-;;;;;;:::i;:::-;;:::i;5905:433::-;;;;;;:::i;:::-;;:::i;2590:98::-;;;;;;:::i;:::-;;:::i;610:207::-;;;;;;:::i;:::-;;:::i;2500:72::-;;;;;-1:-1:-1;;;;;2500:72:0;;;8920:159;8989:4;-1:-1:-1;;;;;;;;;9014:26:0;;;;:56;;-1:-1:-1;;;;;;;;;;9044:26:0;;;9014:56;9006:65;8920:159;-1:-1:-1;;8920:159:0:o;8463:110::-;324:5;;-1:-1:-1;;;;;324:5:0;333:10;324:19;316:64;;;;-1:-1:-1;;;316:64:0;;;;;;;:::i;:::-;;;;;;;;;8542:23;;::::1;::::0;:16:::1;::::0;:23:::1;::::0;::::1;::::0;::::1;:::i;:::-;;8463:110:::0;:::o;2180:43::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4775:127::-;4840:7;4867:27;4885:8;4867:17;:27::i;3023:313::-;3067:7;3087:20;3118:16;3137:2;;;;;;;;;-1:-1:-1;;;;;3137:2:0;-1:-1:-1;;;;;3137:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3118:39;-1:-1:-1;3118:39:0;3168:131;3200:2;;:16;;;-1:-1:-1;;;3200:16:0;;;;3219:8;;-1:-1:-1;;;;;3200:2:0;;:14;;:16;;;;;;;;;;;;;;:2;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;;;;:::i;:::-;3195:1;:32;3168:131;;3253:2;;:14;;-1:-1:-1;;;3253:14:0;;;;;10889:25:1;;;-1:-1:-1;;;;;3253:2:0;;;;:11;;10862:18:1;;3253:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3249:39;;;3271:14;;;;:::i;:::-;;;;3249:39;3229:3;;;;:::i;:::-;;;;3168:131;;;-1:-1:-1;3316:12:0;;3023:313;-1:-1:-1;;3023:313:0:o;8355:102::-;324:5;;-1:-1:-1;;;;;324:5:0;333:10;324:19;316:64;;;;-1:-1:-1;;;316:64:0;;;;;;;:::i;:::-;8430:19;;::::1;::::0;:12:::1;::::0;:19:::1;::::0;::::1;::::0;::::1;:::i;7028:671::-:0;7104:16;7133;7152:19;7162:8;7152:9;:19::i;:::-;7133:38;-1:-1:-1;7186:13:0;7182:42;;7208:16;;;7222:1;7208:16;;;;;;;;;;;-1:-1:-1;7201:23:0;7028:671;-1:-1:-1;;;7028:671:0:o;7182:42::-;7237:24;7279:8;7264:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7264:24:0;;7237:51;;7299:14;7324:20;7347:2;;;;;;;;;-1:-1:-1;;;;;7347:2:0;-1:-1:-1;;;;;7347:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:20;;7366:1;7347:20;:::i;:::-;7324:43;;7383:9;7378:289;7402:12;7398:1;:16;7378:289;;;7462:3;7440:10;7448:1;7440:7;:10::i;:::-;-1:-1:-1;;;;;7440:26:0;;:56;;;;-1:-1:-1;7470:7:0;7478:12;7489:1;7478:8;:12;:::i;:::-;7470:21;;;;;;;;:::i;:::-;;;;;;;7495:1;7470:26;7440:56;7436:112;;;7517:14;;;;:::i;:::-;;;;7436:112;7580:8;-1:-1:-1;;;;;7566:22:0;:10;7574:1;7566:7;:10::i;:::-;-1:-1:-1;;;;;7566:22:0;;7562:94;;;7628:1;7610:7;7618:6;7610:15;;;;;;;;:::i;:::-;;;;;;;;;;:19;7631:8;;;;:::i;:::-;;;;7562:94;7416:3;;;;:::i;:::-;;;;7378:289;;;-1:-1:-1;7684:7:0;;7028:671;-1:-1:-1;;;;;7028:671:0:o;6347:463::-;6429:2;;:57;;-1:-1:-1;;;6429:57:0;;-1:-1:-1;;;;;6429:2:0;;;;:34;;:57;;6464:10;;6476:9;;;;6429:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6421:126;;;;-1:-1:-1;;;6421:126:0;;;;;;;:::i;:::-;6560:29;6567:10;6579:9;;6560:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6560:6:0;;-1:-1:-1;;;6560:29:0:i;:::-;6600:2;;:28;;-1:-1:-1;;;6600:28:0;;-1:-1:-1;;;;;6600:2:0;;;;:17;;:28;;6618:9;;;;6600:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6668:9;6663:140;6683:20;;;6663:140;;;6763:9;;6773:1;6763:12;;;;;;;:::i;:::-;;;;;;;6759:1;-1:-1:-1;;;;;6730:46:0;6739:10;-1:-1:-1;;;;;6730:46:0;;;;;;;;;;;6705:3;;;;:::i;:::-;;;;6663:140;;;;6347:463;;:::o;4908:154::-;4995:7;5022:32;5044:9;;5022:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5022:21:0;;-1:-1:-1;;;5022:32:0:i;:::-;5015:39;4908:154;-1:-1:-1;;;4908:154:0:o;3344:277::-;3462:2;;:21;;-1:-1:-1;;;3462:21:0;;;;;10889:25:1;;;3400:7:0;;;;-1:-1:-1;;;;;3462:2:0;;;;:11;;10862:18:1;;3462:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3420:63;;3494:14;3538:1;3511:14;:24;;;:28;;;:78;;3587:1;3511:78;;;3556:20;;3511:78;3494:95;3344:277;-1:-1:-1;;;;3344:277:0:o;5590:309::-;5663:2;;:57;;-1:-1:-1;;;5663:57:0;;-1:-1:-1;;;;;5663:2:0;;;;:34;;:57;;5698:10;;5710:9;;;;5663:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5655:126;;;;-1:-1:-1;;;5655:126:0;;;;;;;:::i;:::-;5794:29;5801:10;5813:9;;5794:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5794:6:0;;-1:-1:-1;;;5794:29:0:i;:::-;5834:2;;:27;;-1:-1:-1;;;5834:27:0;;-1:-1:-1;;;;;5834:2:0;;;;:16;;:27;;5851:9;;;;5834:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5590:309;;:::o;3629:323::-;3687:7;3707:16;3726:2;;;;;;;;;-1:-1:-1;;;;;3726:2:0;-1:-1:-1;;;;;3726:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3707:39;-1:-1:-1;3757:16:0;3707:39;3784:135;3816:2;;:16;;;-1:-1:-1;;;3816:16:0;;;;3835:8;;-1:-1:-1;;;;;3816:2:0;;:14;;:16;;;;;;;;;;;;;;:2;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;;;;:::i;:::-;3811:1;:32;3784:135;;3883:8;-1:-1:-1;;;;;3869:22:0;:10;3877:1;3869:7;:10::i;:::-;-1:-1:-1;;;;;3869:22:0;;3865:43;;;3895:10;;;;:::i;:::-;;;;3865:43;3845:3;;;;:::i;:::-;;;;3784:135;;823:105;324:5;;-1:-1:-1;;;;;324:5:0;333:10;324:19;316:64;;;;-1:-1:-1;;;316:64:0;;;;;;;:::i;:::-;888:32:::1;915:3;888:18;:32::i;:::-;823:105::o:0;2230:31::-;;;;;;;:::i;5068:224::-;5148:7;5168:33;5204:23;5218:8;5204:13;:23::i;:::-;5168:59;;5245:39;5267:16;5245:21;:39::i;8579:309::-;8644:13;8707:1;8678:17;8686:8;8678:7;:17::i;:::-;-1:-1:-1;;;;;8678:31:0;;;8670:99;;;;-1:-1:-1;;;8670:99:0;;10535:2:1;8670:99:0;;;10517:21:1;10574:2;10554:18;;;10547:30;10613:34;10593:18;;;10586:62;-1:-1:-1;;;10664:18:1;;;10657:39;10713:19;;8670:99:0;10333:405:1;8670:99:0;8813:12;8841:19;8851:8;8841:9;:19::i;:::-;8862:16;8796:83;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8782:98;;8579:309;;;:::o;2403:89::-;324:5;;-1:-1:-1;;;;;324:5:0;333:10;324:19;316:64;;;;-1:-1:-1;;;316:64:0;;;;;;;:::i;:::-;2466:2:::1;:18:::0;;-1:-1:-1;;;;;;2466:18:0::1;-1:-1:-1::0;;;;;2466:18:0;;;::::1;::::0;;;::::1;::::0;;2403:89::o;6818:202::-;6938:2;;-1:-1:-1;;;;;6938:2:0;6916:10;:25;6908:53;;;;-1:-1:-1;;;6908:53:0;;9412:2:1;6908:53:0;;;9394:21:1;9451:2;9431:18;;;9424:30;-1:-1:-1;;;9470:18:1;;;9463:45;9525:18;;6908:53:0;9210:339:1;6908:53:0;6977:35;;7003:8;;-1:-1:-1;;;;;6977:35:0;;;6994:1;;6977:35;;6994:1;;6977:35;6818:202;;:::o;5905:433::-;5985:2;;:51;;-1:-1:-1;;;5985:51:0;;-1:-1:-1;;;;;5985:2:0;;;;:28;;:51;;6014:10;;6026:9;;;;5985:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5977:126;;;;-1:-1:-1;;;5977:126:0;;10117:2:1;5977:126:0;;;10099:21:1;10156:2;10136:18;;;10129:30;10195:34;10175:18;;;10168:62;-1:-1:-1;;;10246:18:1;;;10239:47;10303:19;;5977:126:0;9915:413:1;5977:126:0;6116:2;;:26;;-1:-1:-1;;;6116:26:0;;-1:-1:-1;;;;;6116:2:0;;;;:15;;:26;;6132:9;;;;6116:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6196:9;6191:140;6211:20;;;6191:140;;;6291:9;;6301:1;6291:12;;;;;;;:::i;:::-;;;;;;;6279:10;-1:-1:-1;;;;;6258:46:0;6275:1;-1:-1:-1;;;;;6258:46:0;;;;;;;;;;;6233:3;;;;:::i;:::-;;;;6191:140;;2590:98;324:5;;-1:-1:-1;;;;;324:5:0;333:10;324:19;316:64;;;;-1:-1:-1;;;316:64:0;;;;;;;:::i;:::-;2656:5:::1;:24:::0;;-1:-1:-1;;;;;;2656:24:0::1;-1:-1:-1::0;;;;;2656:24:0;;;::::1;::::0;;;::::1;::::0;;2590:98::o;610:207::-;324:5;;-1:-1:-1;;;;;324:5:0;333:10;324:19;316:64;;;;-1:-1:-1;;;316:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;700:25:0;::::1;692:77;;;::::0;-1:-1:-1;;;692:77:0;;8592:2:1;692:77:0::1;::::0;::::1;8574:21:1::0;8631:2;8611:18;;;8604:30;8670:34;8650:18;;;8643:62;-1:-1:-1;;;8721:18:1;;;8714:37;8768:19;;692:77:0::1;8390:403:1::0;692:77:0::1;780:29;799:9;780:18;:29::i;:::-;610:207:::0;:::o;3992:467::-;4109:2;;:21;;-1:-1:-1;;;4109:21:0;;;;;10889:25:1;;;4060:7:0;;;;-1:-1:-1;;;;;4109:2:0;;;;:11;;10862:18:1;;4109:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;4101:40;;;-1:-1:-1;4156:15:0;;;:44;;;4188:12;;4175:10;:25;4156:44;4152:58;;;-1:-1:-1;4209:1:0;;3992:467;-1:-1:-1;;3992:467:0:o;4152:58::-;4223:27;4268:15;4253:12;;:30;:77;;4318:12;;4253:77;;;4300:15;4253:77;4223:107;-1:-1:-1;4341:20:0;4364:32;4386:10;4223:107;4364:32;:::i;:::-;4341:55;;4445:6;4432:9;;4417:12;:24;;;;:::i;:::-;4416:35;;;;:::i;:::-;4409:42;3992:467;-1:-1:-1;;;;;3992:467:0:o;5300:282::-;5377:22;;5410:123;5434:9;:16;5430:1;:20;5410:123;;;5490:31;5508:9;5518:1;5508:12;;;;;;;;:::i;:::-;;;;;;;5490:17;:31::i;:::-;5472:49;;;;:::i;:::-;;-1:-1:-1;5452:3:0;;;;:::i;:::-;;;;5410:123;;;-1:-1:-1;5543:5:0;;;:31;;-1:-1:-1;;;5543:31:0;;-1:-1:-1;;;;;6352:32:1;;;5543:31:0;;;6334:51:1;;;;6401:18;;;6394:34;;;5543:5:0;;;:10;;6307:18:1;;5543:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5366:216;5300:282;;:::o;4465:302::-;4552:7;4572:22;4610:9;4605:123;4629:9;:16;4625:1;:20;4605:123;;;4685:31;4703:9;4713:1;4703:12;;;;;;;;:::i;4685:31::-;4667:49;;;;:::i;:::-;;-1:-1:-1;4647:3:0;;;;:::i;:::-;;;;4605:123;;;-1:-1:-1;4745:14:0;4465:302;-1:-1:-1;;4465:302:0:o;406:198::-;481:17;501:5;;-1:-1:-1;;;;;517:17:0;;;-1:-1:-1;;;;;;517:17:0;;;;;;550:42;;501:5;;;;;;;550:42;;481:17;550:42;470:134;406:198;:::o;7799:550::-;7857:13;7887:11;7883:32;;-1:-1:-1;;7902:10:0;;;;;;;;;;;;-1:-1:-1;;;7902:10:0;;;;;7799:550::o;7883:32::-;7944:6;7925:16;7978:52;7985:13;;7978:52;;8002:9;;;;:::i;:::-;;-1:-1:-1;8013:14:0;;-1:-1:-1;8025:2:0;8013:14;;:::i;:::-;;;7978:52;;;8064:20;8097:7;8087:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8087:18:0;;8064:41;;8116:124;8123:11;;8116:124;;8138:9;;;;:::i;:::-;;-1:-1:-1;8208:11:0;;-1:-1:-1;8217:2:0;8208:6;:11;:::i;:::-;8195:26;;:2;:26;:::i;:::-;8168:55;;8149:7;8157;8149:16;;;;;;;;:::i;:::-;;;;:74;-1:-1:-1;;;;;8149:74:0;;;;;;;;-1:-1:-1;8225:12:0;8235:2;8225:12;;:::i;:::-;;;8116:124;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:247:1;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:315::-;334:6;342;395:2;383:9;374:7;370:23;366:32;363:52;;;411:1;408;401:12;363:52;450:9;437:23;469:31;494:5;469:31;:::i;:::-;519:5;571:2;556:18;;;;543:32;;-1:-1:-1;;;266:315:1:o;586:615::-;672:6;680;733:2;721:9;712:7;708:23;704:32;701:52;;;749:1;746;739:12;701:52;789:9;776:23;818:18;859:2;851:6;848:14;845:34;;;875:1;872;865:12;845:34;913:6;902:9;898:22;888:32;;958:7;951:4;947:2;943:13;939:27;929:55;;980:1;977;970:12;929:55;1020:2;1007:16;1046:2;1038:6;1035:14;1032:34;;;1062:1;1059;1052:12;1032:34;1115:7;1110:2;1100:6;1097:1;1093:14;1089:2;1085:23;1081:32;1078:45;1075:65;;;1136:1;1133;1126:12;1075:65;1167:2;1159:11;;;;;1189:6;;-1:-1:-1;586:615:1;;-1:-1:-1;;;;586:615:1:o;1206:277::-;1273:6;1326:2;1314:9;1305:7;1301:23;1297:32;1294:52;;;1342:1;1339;1332:12;1294:52;1374:9;1368:16;1427:5;1420:13;1413:21;1406:5;1403:32;1393:60;;1449:1;1446;1439:12;1488:286;1546:6;1599:2;1587:9;1578:7;1574:23;1570:32;1567:52;;;1615:1;1612;1605:12;1567:52;1641:23;;-1:-1:-1;;;;;;1693:32:1;;1683:43;;1673:71;;1740:1;1737;1730:12;1779:922;1848:6;1901:2;1889:9;1880:7;1876:23;1872:32;1869:52;;;1917:1;1914;1907:12;1869:52;1957:9;1944:23;1986:18;2027:2;2019:6;2016:14;2013:34;;;2043:1;2040;2033:12;2013:34;2081:6;2070:9;2066:22;2056:32;;2126:7;2119:4;2115:2;2111:13;2107:27;2097:55;;2148:1;2145;2138:12;2097:55;2184:2;2171:16;2206:2;2202;2199:10;2196:36;;;2212:18;;:::i;:::-;2287:2;2281:9;2255:2;2341:13;;-1:-1:-1;;2337:22:1;;;2361:2;2333:31;2329:40;2317:53;;;2385:18;;;2405:22;;;2382:46;2379:72;;;2431:18;;:::i;:::-;2471:10;2467:2;2460:22;2506:2;2498:6;2491:18;2546:7;2541:2;2536;2532;2528:11;2524:20;2521:33;2518:53;;;2567:1;2564;2557:12;2518:53;2623:2;2618;2614;2610:11;2605:2;2597:6;2593:15;2580:46;2668:1;2646:15;;;2663:2;2642:24;2635:35;;;;-1:-1:-1;2650:6:1;1779:922;-1:-1:-1;;;;;1779:922:1:o;2706:679::-;2805:6;2858:2;2846:9;2837:7;2833:23;2829:32;2826:52;;;2874:1;2871;2864:12;2826:52;2907:2;2901:9;2949:2;2941:6;2937:15;3018:6;3006:10;3003:22;2982:18;2970:10;2967:34;2964:62;2961:88;;;3029:18;;:::i;:::-;3065:2;3058:22;3102:16;;3127:31;3102:16;3127:31;:::i;:::-;3167:21;;3233:2;3218:18;;3212:25;3281:12;3268:26;;3256:39;;3246:67;;3309:1;3306;3299:12;3246:67;3341:2;3329:15;;3322:32;3333:6;2706:679;-1:-1:-1;;;2706:679:1:o;3390:180::-;3449:6;3502:2;3490:9;3481:7;3477:23;3473:32;3470:52;;;3518:1;3515;3508:12;3470:52;-1:-1:-1;3541:23:1;;3390:180;-1:-1:-1;3390:180:1:o;3575:184::-;3645:6;3698:2;3686:9;3677:7;3673:23;3669:32;3666:52;;;3714:1;3711;3704:12;3666:52;-1:-1:-1;3737:16:1;;3575:184;-1:-1:-1;3575:184:1:o;3764:354::-;3852:19;;;3834:3;-1:-1:-1;;;;;3883:31:1;;3880:51;;;3927:1;3924;3917:12;3880:51;3963:6;3960:1;3956:14;4015:8;4008:5;4001:4;3996:3;3992:14;3979:45;4092:1;4047:18;;4067:4;4043:29;4081:13;;;-1:-1:-1;4043:29:1;;3764:354;-1:-1:-1;;3764:354:1:o;4123:973::-;4208:12;;4173:3;;4263:1;4283:18;;;;4336;;;;4363:61;;4417:4;4409:6;4405:17;4395:27;;4363:61;4443:2;4491;4483:6;4480:14;4460:18;4457:38;4454:161;;;4537:10;4532:3;4528:20;4525:1;4518:31;4572:4;4569:1;4562:15;4600:4;4597:1;4590:15;4454:161;4631:18;4658:104;;;;4776:1;4771:319;;;;4624:466;;4658:104;-1:-1:-1;;4691:24:1;;4679:37;;4736:16;;;;-1:-1:-1;4658:104:1;;4771:319;10998:1;10991:14;;;11035:4;11022:18;;4865:1;4879:165;4893:6;4890:1;4887:13;4879:165;;;4971:14;;4958:11;;;4951:35;5014:16;;;;4908:10;;4879:165;;;4883:3;;5073:6;5068:3;5064:16;5057:23;;4624:466;;;;;;;4123:973;;;;:::o;5101:456::-;5322:3;5350:38;5384:3;5376:6;5350:38;:::i;:::-;5417:6;5411:13;5433:52;5478:6;5474:2;5467:4;5459:6;5455:17;5433:52;:::i;:::-;5501:50;5543:6;5539:2;5535:15;5527:6;5501:50;:::i;:::-;5494:57;5101:456;-1:-1:-1;;;;;;;5101:456:1:o;5770:385::-;-1:-1:-1;;;;;5987:32:1;;5969:51;;6056:2;6051;6036:18;;6029:30;;;-1:-1:-1;;6076:73:1;;6130:18;;6122:6;6114;6076:73;:::i;6439:288::-;6628:2;6617:9;6610:21;6591:4;6648:73;6717:2;6706:9;6702:18;6694:6;6686;6648:73;:::i;6732:632::-;6903:2;6955:21;;;7025:13;;6928:18;;;7047:22;;;6874:4;;6903:2;7126:15;;;;7100:2;7085:18;;;6874:4;7169:169;7183:6;7180:1;7177:13;7169:169;;;7244:13;;7232:26;;7313:15;;;;7278:12;;;;7205:1;7198:9;7169:169;;;-1:-1:-1;7355:3:1;;6732:632;-1:-1:-1;;;;;;6732:632:1:o;8002:383::-;8151:2;8140:9;8133:21;8114:4;8183:6;8177:13;8226:6;8221:2;8210:9;8206:18;8199:34;8242:66;8301:6;8296:2;8285:9;8281:18;8276:2;8268:6;8264:15;8242:66;:::i;:::-;8369:2;8348:15;-1:-1:-1;;8344:29:1;8329:45;;;;8376:2;8325:54;;8002:383;-1:-1:-1;;8002:383:1:o;8798:407::-;9000:2;8982:21;;;9039:2;9019:18;;;9012:30;9078:34;9073:2;9058:18;;9051:62;-1:-1:-1;;;9144:2:1;9129:18;;9122:41;9195:3;9180:19;;8798:407::o;9554:356::-;9756:2;9738:21;;;9775:18;;;9768:30;9834:34;9829:2;9814:18;;9807:62;9901:2;9886:18;;9554:356::o;11051:128::-;11091:3;11122:1;11118:6;11115:1;11112:13;11109:39;;;11128:18;;:::i;:::-;-1:-1:-1;11164:9:1;;11051:128::o;11184:120::-;11224:1;11250;11240:35;;11255:18;;:::i;:::-;-1:-1:-1;11289:9:1;;11184:120::o;11309:168::-;11349:7;11415:1;11411;11407:6;11403:14;11400:1;11397:21;11392:1;11385:9;11378:17;11374:45;11371:71;;;11422:18;;:::i;:::-;-1:-1:-1;11462:9:1;;11309:168::o;11482:125::-;11522:4;11550:1;11547;11544:8;11541:34;;;11555:18;;:::i;:::-;-1:-1:-1;11592:9:1;;11482:125::o;11612:258::-;11684:1;11694:113;11708:6;11705:1;11702:13;11694:113;;;11784:11;;;11778:18;11765:11;;;11758:39;11730:2;11723:10;11694:113;;;11825:6;11822:1;11819:13;11816:48;;;11860:1;11851:6;11846:3;11842:16;11835:27;11816:48;;11612:258;;;:::o;11875:136::-;11914:3;11942:5;11932:39;;11951:18;;:::i;:::-;-1:-1:-1;;;11987:18:1;;11875:136::o;12016:380::-;12095:1;12091:12;;;;12138;;;12159:61;;12213:4;12205:6;12201:17;12191:27;;12159:61;12266:2;12258:6;12255:14;12235:18;12232:38;12229:161;;;12312:10;12307:3;12303:20;12300:1;12293:31;12347:4;12344:1;12337:15;12375:4;12372:1;12365:15;12229:161;;12016:380;;;:::o;12401:135::-;12440:3;-1:-1:-1;;12461:17:1;;12458:43;;;12481:18;;:::i;:::-;-1:-1:-1;12528:1:1;12517:13;;12401:135::o;12541:112::-;12573:1;12599;12589:35;;12604:18;;:::i;:::-;-1:-1:-1;12638:9:1;;12541:112::o;12658:127::-;12719:10;12714:3;12710:20;12707:1;12700:31;12750:4;12747:1;12740:15;12774:4;12771:1;12764:15;12790:127;12851:10;12846:3;12842:20;12839:1;12832:31;12882:4;12879:1;12872:15;12906:4;12903:1;12896:15;12922:127;12983:10;12978:3;12974:20;12971:1;12964:31;13014:4;13011:1;13004:15;13038:4;13035:1;13028:15;13054:127;13115:10;13110:3;13106:20;13103:1;13096:31;13146:4;13143:1;13136:15;13170:4;13167:1;13160:15;13186:131;-1:-1:-1;;;;;13261:31:1;;13251:42;;13241:70;;13307:1;13304;13297:12

Swarm Source

ipfs://4a7023342e0546e9fc2094e188bf3451dd14ffc6e954fdfbf752304dcda634ca
Loading...
Loading
Loading...
Loading
[ 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.