ETH Price: $3,287.47 (-9.62%)

OneWorld ALIENS Club (OWAC)
 

Overview

TokenID

67

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

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// File: @openzeppelin/contracts/utils/Context.sol

pragma solidity ^0.8.0;


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

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

// File: @openzeppelin/contracts/utils/Address.sol



pragma solidity ^0.8.0;


library Address {
    
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

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

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

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

    
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

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

    
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

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

    
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol



pragma solidity ^0.8.0;


interface IERC20 {
    
    function totalSupply() external view returns (uint256);

    
    function balanceOf(address account) external view returns (uint256);

    
    function transfer(address recipient, uint256 amount) external returns (bool);

    
    function allowance(address owner, address spender) external view returns (uint256);

    
    function approve(address spender, uint256 amount) external returns (bool);

    
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    
    event Transfer(address indexed from, address indexed to, uint256 value);

    
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)

pragma solidity ^0.8.0;




library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    
    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

// File: @openzeppelin/contracts/finance/PaymentSplitter.sol


// OpenZeppelin Contracts v4.4.1 (finance/PaymentSplitter.sol)

pragma solidity ^0.8.0;





contract PaymentSplitter is Context {
    event PayeeAdded(address account, uint256 shares);
    event PaymentReleased(address to, uint256 amount);
    event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount);
    event PaymentReceived(address from, uint256 amount);

    uint256 private _totalShares;
    uint256 private _totalReleased;

    mapping(address => uint256) private _shares;
    mapping(address => uint256) private _released;
    address[] private _payees;

    mapping(IERC20 => uint256) private _erc20TotalReleased;
    mapping(IERC20 => mapping(address => uint256)) private _erc20Released;

    
    constructor(address[] memory payees, uint256[] memory shares_) payable {
        require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch");
        require(payees.length > 0, "PaymentSplitter: no payees");

        for (uint256 i = 0; i < payees.length; i++) {
            _addPayee(payees[i], shares_[i]);
        }
    }

    
    receive() external payable virtual {
        emit PaymentReceived(_msgSender(), msg.value);
    }

    
    function totalShares() public view returns (uint256) {
        return _totalShares;
    }

    
    function totalReleased() public view returns (uint256) {
        return _totalReleased;
    }

    
    function totalReleased(IERC20 token) public view returns (uint256) {
        return _erc20TotalReleased[token];
    }

    
    function shares(address account) public view returns (uint256) {
        return _shares[account];
    }

    
    function released(address account) public view returns (uint256) {
        return _released[account];
    }

    
    function released(IERC20 token, address account) public view returns (uint256) {
        return _erc20Released[token][account];
    }

    
    function payee(uint256 index) public view returns (address) {
        return _payees[index];
    }

    
    function release(address payable account) public virtual {
        require(_shares[account] > 0, "PaymentSplitter: account has no shares");

        uint256 totalReceived = address(this).balance + totalReleased();
        uint256 payment = _pendingPayment(account, totalReceived, released(account));

        require(payment != 0, "PaymentSplitter: account is not due payment");

        _released[account] += payment;
        _totalReleased += payment;

        Address.sendValue(account, payment);
        emit PaymentReleased(account, payment);
    }

    
    function release(IERC20 token, address account) public virtual {
        require(_shares[account] > 0, "PaymentSplitter: account has no shares");

        uint256 totalReceived = token.balanceOf(address(this)) + totalReleased(token);
        uint256 payment = _pendingPayment(account, totalReceived, released(token, account));

        require(payment != 0, "PaymentSplitter: account is not due payment");

        _erc20Released[token][account] += payment;
        _erc20TotalReleased[token] += payment;

        SafeERC20.safeTransfer(token, account, payment);
        emit ERC20PaymentReleased(token, account, payment);
    }

    
    function _pendingPayment(
        address account,
        uint256 totalReceived,
        uint256 alreadyReleased
    ) private view returns (uint256) {
        return (totalReceived * _shares[account]) / _totalShares - alreadyReleased;
    }

    
    function _addPayee(address account, uint256 shares_) private {
        require(account != address(0), "PaymentSplitter: account is the zero address");
        require(shares_ > 0, "PaymentSplitter: shares are 0");
        require(_shares[account] == 0, "PaymentSplitter: account already has shares");

        _payees.push(account);
        _shares[account] = shares_;
        _totalShares = _totalShares + shares_;
        emit PayeeAdded(account, shares_);
    }
}

// File: @openzeppelin/contracts/utils/cryptography/MerkleProof.sol


// OpenZeppelin Contracts v4.4.1 (utils/cryptography/MerkleProof.sol)

pragma solidity ^0.8.0;


library MerkleProof {
    
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        return processProof(proof, leaf) == root;
    }

    
    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {
        bytes32 computedHash = leaf;
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];
            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = keccak256(abi.encodePacked(computedHash, proofElement));
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = keccak256(abi.encodePacked(proofElement, computedHash));
            }
        }
        return computedHash;
    }
}

// File: @openzeppelin/contracts/utils/Strings.sol



pragma solidity ^0.8.0;


library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

// File: contracts/ERC721.sol


pragma solidity >=0.8.0;

abstract contract ERC721 {
    

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

    event Approval(address indexed owner, address indexed spender, uint256 indexed id);

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    

    string public name;

    string public symbol;

    function tokenURI(uint256 id) public view virtual returns (string memory);

    

    mapping(address => uint256) public balanceOf;

    mapping(uint256 => address) public ownerOf;

    mapping(uint256 => address) public getApproved;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    

    function approve(address spender, uint256 id) public virtual {
        address owner = ownerOf[id];

        require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        require(from == ownerOf[id], "WRONG_FROM");

        require(to != address(0), "INVALID_RECIPIENT");

        require(
            msg.sender == from || msg.sender == getApproved[id] || isApprovedForAll[from][msg.sender],
            "NOT_AUTHORIZED"
        );

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        unchecked {
            balanceOf[from]--;

            balanceOf[to]++;
        }

        ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes memory data
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    

    function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

    

    function _mint(address to, uint256 id) internal virtual {
        require(to != address(0), "INVALID_RECIPIENT");

        require(ownerOf[id] == address(0), "ALREADY_MINTED");

        // Counter overflow is incredibly unrealistic.
        unchecked {
            balanceOf[to]++;
        }

        ownerOf[id] = to;

        emit Transfer(address(0), to, id);
    }

    function _burn(uint256 id) internal virtual {
        address owner = ownerOf[id];

        require(ownerOf[id] != address(0), "NOT_MINTED");

        // Ownership check above ensures no underflow.
        unchecked {
            balanceOf[owner]--;
        }

        delete ownerOf[id];

        delete getApproved[id];

        emit Transfer(owner, address(0), id);
    }

    

    function _safeMint(address to, uint256 id) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _safeMint(
        address to,
        uint256 id,
        bytes memory data
    ) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }
}

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
	interface ERC721TokenReceiver {
		function onERC721Received(
			address operator,
			address from,
			uint256 id,
			bytes calldata data
		) external returns (bytes4);
	}
// File: contracts/dsadsaa.sol

pragma solidity >=0.8.4;





contract OWAC is ERC721, PaymentSplitter {
    uint256 public totalSupply;
    uint256 private cost = 0.01 ether;
    uint256 private whitelistCost = 0.005 ether;
    address private _owner = msg.sender;
    bytes32 private merkleRoot;
    bool public whitelistActive = true;
    string baseURI;

    mapping(address => bool) internal whitelistClaimed;

    error WhitelistActive();
    error SoldOut();
    error InsufficientFunds();
    error AlreadyClaimed();
    error InvalidProof();
    error NotOwner();
    error MintNotEnabled();
    error URIAlreadySet();
    error WhitelistDisabled();

    event Minted(
        address indexed owner,
        string tokenURI,
        uint256 indexed mintTime
    );

    constructor(address[] memory _payees, uint256[] memory _shares)
        ERC721("OneWorld ALIENS Club", "OWAC")
        PaymentSplitter(_payees, _shares)
    {}

    function setWhitelist(bytes32 _merkleRoot) external {
		if (msg.sender != _owner) revert NotOwner();
        merkleRoot = _merkleRoot;
    }

    function removeWhitelist() external {
        if (msg.sender != _owner) revert NotOwner();
        if (!whitelistActive) revert WhitelistDisabled();
        whitelistActive = false;
    }

    function mint() external payable {
        if (bytes(baseURI).length == 0) revert MintNotEnabled();
        if (whitelistActive) revert WhitelistActive();
        if (totalSupply + 1 > 10000) revert SoldOut();
        if (msg.value < cost) revert InsufficientFunds();
        totalSupply++;
        _safeMint(msg.sender, totalSupply);
        emit Minted(msg.sender, tokenURI(totalSupply), block.timestamp);
    }

    function whitelistedMint(bytes32[] calldata _merkleProof) external payable {
        if (bytes(baseURI).length == 0) revert MintNotEnabled();
        if (whitelistClaimed[msg.sender]) revert AlreadyClaimed();
        if (totalSupply + 1 > 10000) revert SoldOut();
        if (msg.value < whitelistCost) revert InsufficientFunds();

        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));

        if (!MerkleProof.verify(_merkleProof, merkleRoot, leaf))
            revert InvalidProof();

        whitelistClaimed[msg.sender] = true;
        totalSupply++;
        _safeMint(msg.sender, totalSupply);
        emit Minted(msg.sender, tokenURI(totalSupply), block.timestamp);
    }

    function setBaseURI(string memory _uri) external {
        if (bytes(baseURI).length > 0) revert URIAlreadySet();
        if (msg.sender != _owner) revert NotOwner();
        baseURI = _uri;
    }

    function tokenURI(uint256 tokenId)
        public
        view
        override(ERC721)
        returns (string memory)
    {
        return
            string(
                abi.encodePacked(baseURI, Strings.toString(tokenId), ".json")
            );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_payees","type":"address[]"},{"internalType":"uint256[]","name":"_shares","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyClaimed","type":"error"},{"inputs":[],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[],"name":"MintNotEnabled","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SoldOut","type":"error"},{"inputs":[],"name":"URIAlreadySet","type":"error"},{"inputs":[],"name":"WhitelistActive","type":"error"},{"inputs":[],"name":"WhitelistDisabled","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20PaymentReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"string","name":"tokenURI","type":"string"},{"indexed":true,"internalType":"uint256","name":"mintTime","type":"uint256"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"PayeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","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":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"payee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"whitelistedMint","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052662386f26fc10000600e556611c37937e08000600f55601080546001600160a01b031916331790556012805460ff191660011790553480156200004657600080fd5b506040516200287538038062002875833981016040819052620000699162000599565b604080518082018252601481527f4f6e65576f726c6420414c49454e5320436c75620000000000000000000000006020808301918252835180850190945260048452634f57414360e01b90840152815185938593929091620000ce9160009162000411565b508051620000e490600190602084019062000411565b5050508051825114620001595760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620001ac5760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f20706179656573000000000000604482015260640162000150565b60005b8251811015620002185762000203838281518110620001d257620001d262000677565b6020026020010151838381518110620001ef57620001ef62000677565b60200260200101516200022360201b60201c565b806200020f81620006a3565b915050620001af565b505050505062000719565b6001600160a01b038216620002905760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b606482015260840162000150565b60008111620002e25760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a20736861726573206172652030000000604482015260640162000150565b6001600160a01b038216600090815260086020526040902054156200035e5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b606482015260840162000150565b600a8054600181019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020819055600654620003c8908290620006c1565b600655604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b8280546200041f90620006dc565b90600052602060002090601f0160209004810192826200044357600085556200048e565b82601f106200045e57805160ff19168380011785556200048e565b828001600101855582156200048e579182015b828111156200048e57825182559160200191906001019062000471565b506200049c929150620004a0565b5090565b5b808211156200049c5760008155600101620004a1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620004f857620004f8620004b7565b604052919050565b60006001600160401b038211156200051c576200051c620004b7565b5060051b60200190565b600082601f8301126200053857600080fd5b81516020620005516200054b8362000500565b620004cd565b82815260059290921b840181019181810190868411156200057157600080fd5b8286015b848110156200058e578051835291830191830162000575565b509695505050505050565b60008060408385031215620005ad57600080fd5b82516001600160401b0380821115620005c557600080fd5b818501915085601f830112620005da57600080fd5b81516020620005ed6200054b8362000500565b82815260059290921b840181019181810190898411156200060d57600080fd5b948201945b83861015620006445785516001600160a01b0381168114620006345760008081fd5b8252948201949082019062000612565b918801519196509093505050808211156200065e57600080fd5b506200066d8582860162000526565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415620006ba57620006ba6200068d565b5060010190565b60008219821115620006d757620006d76200068d565b500190565b600181811c90821680620006f157607f821691505b602082108114156200071357634e487b7160e01b600052602260045260246000fd5b50919050565b61214c80620007296000396000f3fe6080604052600436106101565760003560e01c806301ffc9a71461019b57806302ce5813146101d057806306fdde03146101ea578063081812fc1461020c578063095ea7b31461024f5780631249c58b1461027157806317f708fb1461027957806318160ddd1461028e57806319165587146102b257806323b872dd146102d25780633a98ef39146102f2578063406072a91461030757806342842e0e14610327578063440bc7f31461034757806348b750441461036757806355f804b3146103875780636352211e146103a757806370a08231146103dd57806375a6f85a1461040a5780638b83209b1461041d57806395d89b411461043d5780639852595c14610452578063a22cb46514610472578063b88d4fde14610492578063c87b56dd146104b2578063ce7c2ac2146104d2578063d79779b214610508578063e33b7de314610528578063e985e9c51461053d57600080fd5b36610196577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770333460405161018c929190611943565b60405180910390a1005b600080fd5b3480156101a757600080fd5b506101bb6101b6366004611975565b610578565b60405190151581526020015b60405180910390f35b3480156101dc57600080fd5b506012546101bb9060ff1681565b3480156101f657600080fd5b506101ff6105ca565b6040516101c791906119ea565b34801561021857600080fd5b506102426102273660046119fd565b6004602052600090815260409020546001600160a01b031681565b6040516101c79190611a16565b34801561025b57600080fd5b5061026f61026a366004611a3f565b610658565b005b61026f610722565b34801561028557600080fd5b5061026f610825565b34801561029a57600080fd5b506102a4600d5481565b6040519081526020016101c7565b3480156102be57600080fd5b5061026f6102cd366004611a6b565b61087f565b3480156102de57600080fd5b5061026f6102ed366004611a88565b61098e565b3480156102fe57600080fd5b506006546102a4565b34801561031357600080fd5b506102a4610322366004611ac9565b610afe565b34801561033357600080fd5b5061026f610342366004611a88565b610b29565b34801561035357600080fd5b5061026f6103623660046119fd565b610be8565b34801561037357600080fd5b5061026f610382366004611ac9565b610c18565b34801561039357600080fd5b5061026f6103a2366004611b8d565b610dbf565b3480156103b357600080fd5b506102426103c23660046119fd565b6003602052600090815260409020546001600160a01b031681565b3480156103e957600080fd5b506102a46103f8366004611a6b565b60026020526000908152604090205481565b61026f610418366004611bd5565b610e31565b34801561042957600080fd5b506102426104383660046119fd565b610fee565b34801561044957600080fd5b506101ff61101e565b34801561045e57600080fd5b506102a461046d366004611a6b565b61102b565b34801561047e57600080fd5b5061026f61048d366004611c57565b611046565b34801561049e57600080fd5b5061026f6104ad366004611c85565b6110b2565b3480156104be57600080fd5b506101ff6104cd3660046119fd565b611174565b3480156104de57600080fd5b506102a46104ed366004611a6b565b6001600160a01b031660009081526008602052604090205490565b34801561051457600080fd5b506102a4610523366004611a6b565b6111a8565b34801561053457600080fd5b506007546102a4565b34801561054957600080fd5b506101bb610558366004611ac9565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806105a957506380ac58cd60e01b6001600160e01b03198316145b806105c45750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546105d790611d04565b80601f016020809104026020016040519081016040528092919081815260200182805461060390611d04565b80156106505780601f1061062557610100808354040283529160200191610650565b820191906000526020600020905b81548152906001019060200180831161063357829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b0316338114806106a157506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6106c65760405162461bcd60e51b81526004016106bd90611d3f565b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6013805461072f90611d04565b151590506107505760405163447691f760e01b815260040160405180910390fd5b60125460ff1615610774576040516316e5d37d60e11b815260040160405180910390fd5b612710600d5460016107869190611d7d565b11156107a5576040516352df9fe560e01b815260040160405180910390fd5b600e543410156107c85760405163356680b760e01b815260040160405180910390fd5b600d80549060006107d883611d95565b91905055506107e933600d546111c3565b42336001600160a01b03166000805160206120f783398151915261080e600d54611174565b60405161081b91906119ea565b60405180910390a3565b6010546001600160a01b03163314610850576040516330cd747160e01b815260040160405180910390fd5b60125460ff166108735760405163212c6e1d60e01b815260040160405180910390fd5b6012805460ff19169055565b6001600160a01b0381166000908152600860205260409020546108b45760405162461bcd60e51b81526004016106bd90611db0565b60006108bf60075490565b6108c99047611d7d565b905060006108e083836108db8661102b565b61127d565b9050806108ff5760405162461bcd60e51b81526004016106bd90611df6565b6001600160a01b03831660009081526009602052604081208054839290610927908490611d7d565b9250508190555080600760008282546109409190611d7d565b90915550610950905083826112c5565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568382604051610981929190611943565b60405180910390a1505050565b6000818152600360205260409020546001600160a01b038481169116146109e45760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016106bd565b6001600160a01b038216610a0a5760405162461bcd60e51b81526004016106bd90611e41565b336001600160a01b0384161480610a3757506000818152600460205260409020546001600160a01b031633145b80610a6557506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b610a815760405162461bcd60e51b81526004016106bd90611d3f565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392916000805160206120d783398151915291a4505050565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b610b3483838361098e565b6001600160a01b0382163b1580610bc75750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a0290610b7890339088908790600401611e6c565b6020604051808303816000875af1158015610b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbb9190611e9f565b6001600160e01b031916145b610be35760405162461bcd60e51b81526004016106bd90611ebc565b505050565b6010546001600160a01b03163314610c13576040516330cd747160e01b815260040160405180910390fd5b601155565b6001600160a01b038116600090815260086020526040902054610c4d5760405162461bcd60e51b81526004016106bd90611db0565b6000610c58836111a8565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610c84903090600401611a16565b602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190611ee6565b610ccf9190611d7d565b90506000610ce283836108db8787610afe565b905080610d015760405162461bcd60e51b81526004016106bd90611df6565b6001600160a01b038085166000908152600c6020908152604080832093871683529290529081208054839290610d38908490611d7d565b90915550506001600160a01b0384166000908152600b602052604081208054839290610d65908490611d7d565b90915550610d7690508484836113db565b836001600160a01b03167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a8483604051610db1929190611943565b60405180910390a250505050565b600060138054610dce90611d04565b90501115610def576040516341666d6560e11b815260040160405180910390fd5b6010546001600160a01b03163314610e1a576040516330cd747160e01b815260040160405180910390fd5b8051610e2d9060139060208401906118aa565b5050565b60138054610e3e90611d04565b15159050610e5f5760405163447691f760e01b815260040160405180910390fd5b3360009081526014602052604090205460ff1615610e9057604051630c8d9eab60e31b815260040160405180910390fd5b612710600d546001610ea29190611d7d565b1115610ec1576040516352df9fe560e01b815260040160405180910390fd5b600f54341015610ee45760405163356680b760e01b815260040160405180910390fd5b6040516001600160601b03193360601b166020820152600090603401604051602081830303815290604052805190602001209050610f59838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506011549150849050611431565b610f76576040516309bde33960e01b815260040160405180910390fd5b336000908152601460205260408120805460ff19166001179055600d805491610f9e83611d95565b9190505550610faf33600d546111c3565b42336001600160a01b03166000805160206120f7833981519152610fd4600d54611174565b604051610fe191906119ea565b60405180910390a3505050565b6000600a828154811061100357611003611eff565b6000918252602090912001546001600160a01b031692915050565b600180546105d790611d04565b6001600160a01b031660009081526009602052604090205490565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6110bd84848461098e565b6001600160a01b0383163b15806111525750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290611103903390899088908890600401611f15565b6020604051808303816000875af1158015611122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111469190611e9f565b6001600160e01b031916145b61116e5760405162461bcd60e51b81526004016106bd90611ebc565b50505050565b6060601361118183611447565b604051602001611192929190611f6e565b6040516020818303038152906040529050919050565b6001600160a01b03166000908152600b602052604090205490565b6111cd828261154c565b6001600160a01b0382163b15806112615750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a02906112129033906000908790600401611e6c565b6020604051808303816000875af1158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611e9f565b6001600160e01b031916145b610e2d5760405162461bcd60e51b81526004016106bd90611ebc565b6006546001600160a01b038416600090815260086020526040812054909183916112a79086612029565b6112b1919061205e565b6112bb9190612072565b90505b9392505050565b804710156113155760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106bd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611362576040519150601f19603f3d011682016040523d82523d6000602084013e611367565b606091505b5050905080610be35760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016106bd565b610be38363a9059cbb60e01b84846040516024016113fa929190611943565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611621565b60008261143e85846116f3565b14949350505050565b60608161146b5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611495578061147f81611d95565b915061148e9050600a8361205e565b915061146f565b6000816001600160401b038111156114af576114af611b02565b6040519080825280601f01601f1916602001820160405280156114d9576020820181803683370190505b5090505b8415611544576114ee600183612072565b91506114fb600a86612089565b611506906030611d7d565b60f81b81838151811061151b5761151b611eff565b60200101906001600160f81b031916908160001a90535061153d600a8661205e565b94506114dd565b949350505050565b6001600160a01b0382166115725760405162461bcd60e51b81526004016106bd90611e41565b6000818152600360205260409020546001600160a01b0316156115c85760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016106bd565b6001600160a01b038216600081815260026020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291906000805160206120d7833981519152908290a45050565b6000611676826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661179f9092919063ffffffff16565b805190915015610be35780806020019051810190611694919061209d565b610be35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106bd565b600081815b845181101561179757600085828151811061171557611715611eff565b60200260200101519050808311611757576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250611784565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061178f81611d95565b9150506116f8565b509392505050565b60606112bb848460008585843b6117f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106bd565b600080866001600160a01b0316858760405161181491906120ba565b60006040518083038185875af1925050503d8060008114611851576040519150601f19603f3d011682016040523d82523d6000602084013e611856565b606091505b5091509150611866828286611871565b979650505050505050565b606083156118805750816112be565b8251156118905782518084602001fd5b8160405162461bcd60e51b81526004016106bd91906119ea565b8280546118b690611d04565b90600052602060002090601f0160209004810192826118d8576000855561191e565b82601f106118f157805160ff191683800117855561191e565b8280016001018555821561191e579182015b8281111561191e578251825591602001919060010190611903565b5061192a92915061192e565b5090565b5b8082111561192a576000815560010161192f565b6001600160a01b03929092168252602082015260400190565b6001600160e01b03198116811461197257600080fd5b50565b60006020828403121561198757600080fd5b81356112be8161195c565b60005b838110156119ad578181015183820152602001611995565b8381111561116e5750506000910152565b600081518084526119d6816020860160208601611992565b601f01601f19169290920160200192915050565b6020815260006112be60208301846119be565b600060208284031215611a0f57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461197257600080fd5b60008060408385031215611a5257600080fd5b8235611a5d81611a2a565b946020939093013593505050565b600060208284031215611a7d57600080fd5b81356112be81611a2a565b600080600060608486031215611a9d57600080fd5b8335611aa881611a2a565b92506020840135611ab881611a2a565b929592945050506040919091013590565b60008060408385031215611adc57600080fd5b8235611ae781611a2a565b91506020830135611af781611a2a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611b3257611b32611b02565b604051601f8501601f19908116603f01168101908282118183101715611b5a57611b5a611b02565b81604052809350858152868686011115611b7357600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611b9f57600080fd5b81356001600160401b03811115611bb557600080fd5b8201601f81018413611bc657600080fd5b61154484823560208401611b18565b60008060208385031215611be857600080fd5b82356001600160401b0380821115611bff57600080fd5b818501915085601f830112611c1357600080fd5b813581811115611c2257600080fd5b8660208260051b8501011115611c3757600080fd5b60209290920196919550909350505050565b801515811461197257600080fd5b60008060408385031215611c6a57600080fd5b8235611c7581611a2a565b91506020830135611af781611c49565b60008060008060808587031215611c9b57600080fd5b8435611ca681611a2a565b93506020850135611cb681611a2a565b92506040850135915060608501356001600160401b03811115611cd857600080fd5b8501601f81018713611ce957600080fd5b611cf887823560208401611b18565b91505092959194509250565b600181811c90821680611d1857607f821691505b60208210811415611d3957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611d9057611d90611d67565b500190565b6000600019821415611da957611da9611d67565b5060010190565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b6020808252601190820152701253959053125117d49150d25412515395607a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260806060820181905260009082015260a00190565b600060208284031215611eb157600080fd5b81516112be8161195c565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b600060208284031215611ef857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611f48908301846119be565b9695505050505050565b60008151611f64818560208601611992565b9290920192915050565b600080845481600182811c915080831680611f8a57607f831692505b6020808410821415611faa57634e487b7160e01b86526022600452602486fd5b818015611fbe5760018114611fcf57611ffc565b60ff19861689528489019650611ffc565b60008b81526020902060005b86811015611ff45781548b820152908501908301611fdb565b505084890196505b50505050505061202061200f8286611f52565b64173539b7b760d91b815260050190565b95945050505050565b600081600019048311821515161561204357612043611d67565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261206d5761206d612048565b500490565b60008282101561208457612084611d67565b500390565b60008261209857612098612048565b500690565b6000602082840312156120af57600080fd5b81516112be81611c49565b600082516120cc818460208701611992565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efe678c8da3d2d6082f140bbbaa1ee822f0c7072ab604536db4a3e0315f8a92776a264697066735822122079eeb30161655ccc65abc8c06c0ebcfb0f4c6b1918e7b8b71b0f71c60261a4ad64736f6c634300080b0033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000040000000000000000000000008ee4ab63b765eaddc834ac634e509222fac785bd00000000000000000000000059750ac0631f63bfdce0f0867618e468e11ee347000000000000000000000000ccc834bc6af12e4aab50a198e83a7a80253e017100000000000000000000000005ac30fec4c73697f90416dcd972734f326e1a9900000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000002616000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000530000000000000000000000000000000000000000000000000000000000000053

Deployed Bytecode

0x6080604052600436106101565760003560e01c806301ffc9a71461019b57806302ce5813146101d057806306fdde03146101ea578063081812fc1461020c578063095ea7b31461024f5780631249c58b1461027157806317f708fb1461027957806318160ddd1461028e57806319165587146102b257806323b872dd146102d25780633a98ef39146102f2578063406072a91461030757806342842e0e14610327578063440bc7f31461034757806348b750441461036757806355f804b3146103875780636352211e146103a757806370a08231146103dd57806375a6f85a1461040a5780638b83209b1461041d57806395d89b411461043d5780639852595c14610452578063a22cb46514610472578063b88d4fde14610492578063c87b56dd146104b2578063ce7c2ac2146104d2578063d79779b214610508578063e33b7de314610528578063e985e9c51461053d57600080fd5b36610196577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770333460405161018c929190611943565b60405180910390a1005b600080fd5b3480156101a757600080fd5b506101bb6101b6366004611975565b610578565b60405190151581526020015b60405180910390f35b3480156101dc57600080fd5b506012546101bb9060ff1681565b3480156101f657600080fd5b506101ff6105ca565b6040516101c791906119ea565b34801561021857600080fd5b506102426102273660046119fd565b6004602052600090815260409020546001600160a01b031681565b6040516101c79190611a16565b34801561025b57600080fd5b5061026f61026a366004611a3f565b610658565b005b61026f610722565b34801561028557600080fd5b5061026f610825565b34801561029a57600080fd5b506102a4600d5481565b6040519081526020016101c7565b3480156102be57600080fd5b5061026f6102cd366004611a6b565b61087f565b3480156102de57600080fd5b5061026f6102ed366004611a88565b61098e565b3480156102fe57600080fd5b506006546102a4565b34801561031357600080fd5b506102a4610322366004611ac9565b610afe565b34801561033357600080fd5b5061026f610342366004611a88565b610b29565b34801561035357600080fd5b5061026f6103623660046119fd565b610be8565b34801561037357600080fd5b5061026f610382366004611ac9565b610c18565b34801561039357600080fd5b5061026f6103a2366004611b8d565b610dbf565b3480156103b357600080fd5b506102426103c23660046119fd565b6003602052600090815260409020546001600160a01b031681565b3480156103e957600080fd5b506102a46103f8366004611a6b565b60026020526000908152604090205481565b61026f610418366004611bd5565b610e31565b34801561042957600080fd5b506102426104383660046119fd565b610fee565b34801561044957600080fd5b506101ff61101e565b34801561045e57600080fd5b506102a461046d366004611a6b565b61102b565b34801561047e57600080fd5b5061026f61048d366004611c57565b611046565b34801561049e57600080fd5b5061026f6104ad366004611c85565b6110b2565b3480156104be57600080fd5b506101ff6104cd3660046119fd565b611174565b3480156104de57600080fd5b506102a46104ed366004611a6b565b6001600160a01b031660009081526008602052604090205490565b34801561051457600080fd5b506102a4610523366004611a6b565b6111a8565b34801561053457600080fd5b506007546102a4565b34801561054957600080fd5b506101bb610558366004611ac9565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806105a957506380ac58cd60e01b6001600160e01b03198316145b806105c45750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546105d790611d04565b80601f016020809104026020016040519081016040528092919081815260200182805461060390611d04565b80156106505780601f1061062557610100808354040283529160200191610650565b820191906000526020600020905b81548152906001019060200180831161063357829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b0316338114806106a157506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6106c65760405162461bcd60e51b81526004016106bd90611d3f565b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6013805461072f90611d04565b151590506107505760405163447691f760e01b815260040160405180910390fd5b60125460ff1615610774576040516316e5d37d60e11b815260040160405180910390fd5b612710600d5460016107869190611d7d565b11156107a5576040516352df9fe560e01b815260040160405180910390fd5b600e543410156107c85760405163356680b760e01b815260040160405180910390fd5b600d80549060006107d883611d95565b91905055506107e933600d546111c3565b42336001600160a01b03166000805160206120f783398151915261080e600d54611174565b60405161081b91906119ea565b60405180910390a3565b6010546001600160a01b03163314610850576040516330cd747160e01b815260040160405180910390fd5b60125460ff166108735760405163212c6e1d60e01b815260040160405180910390fd5b6012805460ff19169055565b6001600160a01b0381166000908152600860205260409020546108b45760405162461bcd60e51b81526004016106bd90611db0565b60006108bf60075490565b6108c99047611d7d565b905060006108e083836108db8661102b565b61127d565b9050806108ff5760405162461bcd60e51b81526004016106bd90611df6565b6001600160a01b03831660009081526009602052604081208054839290610927908490611d7d565b9250508190555080600760008282546109409190611d7d565b90915550610950905083826112c5565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568382604051610981929190611943565b60405180910390a1505050565b6000818152600360205260409020546001600160a01b038481169116146109e45760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016106bd565b6001600160a01b038216610a0a5760405162461bcd60e51b81526004016106bd90611e41565b336001600160a01b0384161480610a3757506000818152600460205260409020546001600160a01b031633145b80610a6557506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b610a815760405162461bcd60e51b81526004016106bd90611d3f565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392916000805160206120d783398151915291a4505050565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b610b3483838361098e565b6001600160a01b0382163b1580610bc75750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a0290610b7890339088908790600401611e6c565b6020604051808303816000875af1158015610b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbb9190611e9f565b6001600160e01b031916145b610be35760405162461bcd60e51b81526004016106bd90611ebc565b505050565b6010546001600160a01b03163314610c13576040516330cd747160e01b815260040160405180910390fd5b601155565b6001600160a01b038116600090815260086020526040902054610c4d5760405162461bcd60e51b81526004016106bd90611db0565b6000610c58836111a8565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610c84903090600401611a16565b602060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc59190611ee6565b610ccf9190611d7d565b90506000610ce283836108db8787610afe565b905080610d015760405162461bcd60e51b81526004016106bd90611df6565b6001600160a01b038085166000908152600c6020908152604080832093871683529290529081208054839290610d38908490611d7d565b90915550506001600160a01b0384166000908152600b602052604081208054839290610d65908490611d7d565b90915550610d7690508484836113db565b836001600160a01b03167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a8483604051610db1929190611943565b60405180910390a250505050565b600060138054610dce90611d04565b90501115610def576040516341666d6560e11b815260040160405180910390fd5b6010546001600160a01b03163314610e1a576040516330cd747160e01b815260040160405180910390fd5b8051610e2d9060139060208401906118aa565b5050565b60138054610e3e90611d04565b15159050610e5f5760405163447691f760e01b815260040160405180910390fd5b3360009081526014602052604090205460ff1615610e9057604051630c8d9eab60e31b815260040160405180910390fd5b612710600d546001610ea29190611d7d565b1115610ec1576040516352df9fe560e01b815260040160405180910390fd5b600f54341015610ee45760405163356680b760e01b815260040160405180910390fd5b6040516001600160601b03193360601b166020820152600090603401604051602081830303815290604052805190602001209050610f59838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506011549150849050611431565b610f76576040516309bde33960e01b815260040160405180910390fd5b336000908152601460205260408120805460ff19166001179055600d805491610f9e83611d95565b9190505550610faf33600d546111c3565b42336001600160a01b03166000805160206120f7833981519152610fd4600d54611174565b604051610fe191906119ea565b60405180910390a3505050565b6000600a828154811061100357611003611eff565b6000918252602090912001546001600160a01b031692915050565b600180546105d790611d04565b6001600160a01b031660009081526009602052604090205490565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6110bd84848461098e565b6001600160a01b0383163b15806111525750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290611103903390899088908890600401611f15565b6020604051808303816000875af1158015611122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111469190611e9f565b6001600160e01b031916145b61116e5760405162461bcd60e51b81526004016106bd90611ebc565b50505050565b6060601361118183611447565b604051602001611192929190611f6e565b6040516020818303038152906040529050919050565b6001600160a01b03166000908152600b602052604090205490565b6111cd828261154c565b6001600160a01b0382163b15806112615750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a02906112129033906000908790600401611e6c565b6020604051808303816000875af1158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611e9f565b6001600160e01b031916145b610e2d5760405162461bcd60e51b81526004016106bd90611ebc565b6006546001600160a01b038416600090815260086020526040812054909183916112a79086612029565b6112b1919061205e565b6112bb9190612072565b90505b9392505050565b804710156113155760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106bd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611362576040519150601f19603f3d011682016040523d82523d6000602084013e611367565b606091505b5050905080610be35760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016106bd565b610be38363a9059cbb60e01b84846040516024016113fa929190611943565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611621565b60008261143e85846116f3565b14949350505050565b60608161146b5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611495578061147f81611d95565b915061148e9050600a8361205e565b915061146f565b6000816001600160401b038111156114af576114af611b02565b6040519080825280601f01601f1916602001820160405280156114d9576020820181803683370190505b5090505b8415611544576114ee600183612072565b91506114fb600a86612089565b611506906030611d7d565b60f81b81838151811061151b5761151b611eff565b60200101906001600160f81b031916908160001a90535061153d600a8661205e565b94506114dd565b949350505050565b6001600160a01b0382166115725760405162461bcd60e51b81526004016106bd90611e41565b6000818152600360205260409020546001600160a01b0316156115c85760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016106bd565b6001600160a01b038216600081815260026020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291906000805160206120d7833981519152908290a45050565b6000611676826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661179f9092919063ffffffff16565b805190915015610be35780806020019051810190611694919061209d565b610be35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106bd565b600081815b845181101561179757600085828151811061171557611715611eff565b60200260200101519050808311611757576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250611784565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061178f81611d95565b9150506116f8565b509392505050565b60606112bb848460008585843b6117f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106bd565b600080866001600160a01b0316858760405161181491906120ba565b60006040518083038185875af1925050503d8060008114611851576040519150601f19603f3d011682016040523d82523d6000602084013e611856565b606091505b5091509150611866828286611871565b979650505050505050565b606083156118805750816112be565b8251156118905782518084602001fd5b8160405162461bcd60e51b81526004016106bd91906119ea565b8280546118b690611d04565b90600052602060002090601f0160209004810192826118d8576000855561191e565b82601f106118f157805160ff191683800117855561191e565b8280016001018555821561191e579182015b8281111561191e578251825591602001919060010190611903565b5061192a92915061192e565b5090565b5b8082111561192a576000815560010161192f565b6001600160a01b03929092168252602082015260400190565b6001600160e01b03198116811461197257600080fd5b50565b60006020828403121561198757600080fd5b81356112be8161195c565b60005b838110156119ad578181015183820152602001611995565b8381111561116e5750506000910152565b600081518084526119d6816020860160208601611992565b601f01601f19169290920160200192915050565b6020815260006112be60208301846119be565b600060208284031215611a0f57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461197257600080fd5b60008060408385031215611a5257600080fd5b8235611a5d81611a2a565b946020939093013593505050565b600060208284031215611a7d57600080fd5b81356112be81611a2a565b600080600060608486031215611a9d57600080fd5b8335611aa881611a2a565b92506020840135611ab881611a2a565b929592945050506040919091013590565b60008060408385031215611adc57600080fd5b8235611ae781611a2a565b91506020830135611af781611a2a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611b3257611b32611b02565b604051601f8501601f19908116603f01168101908282118183101715611b5a57611b5a611b02565b81604052809350858152868686011115611b7357600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611b9f57600080fd5b81356001600160401b03811115611bb557600080fd5b8201601f81018413611bc657600080fd5b61154484823560208401611b18565b60008060208385031215611be857600080fd5b82356001600160401b0380821115611bff57600080fd5b818501915085601f830112611c1357600080fd5b813581811115611c2257600080fd5b8660208260051b8501011115611c3757600080fd5b60209290920196919550909350505050565b801515811461197257600080fd5b60008060408385031215611c6a57600080fd5b8235611c7581611a2a565b91506020830135611af781611c49565b60008060008060808587031215611c9b57600080fd5b8435611ca681611a2a565b93506020850135611cb681611a2a565b92506040850135915060608501356001600160401b03811115611cd857600080fd5b8501601f81018713611ce957600080fd5b611cf887823560208401611b18565b91505092959194509250565b600181811c90821680611d1857607f821691505b60208210811415611d3957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611d9057611d90611d67565b500190565b6000600019821415611da957611da9611d67565b5060010190565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b6020808252601190820152701253959053125117d49150d25412515395607a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260806060820181905260009082015260a00190565b600060208284031215611eb157600080fd5b81516112be8161195c565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b600060208284031215611ef857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611f48908301846119be565b9695505050505050565b60008151611f64818560208601611992565b9290920192915050565b600080845481600182811c915080831680611f8a57607f831692505b6020808410821415611faa57634e487b7160e01b86526022600452602486fd5b818015611fbe5760018114611fcf57611ffc565b60ff19861689528489019650611ffc565b60008b81526020902060005b86811015611ff45781548b820152908501908301611fdb565b505084890196505b50505050505061202061200f8286611f52565b64173539b7b760d91b815260050190565b95945050505050565b600081600019048311821515161561204357612043611d67565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261206d5761206d612048565b500490565b60008282101561208457612084611d67565b500390565b60008261209857612098612048565b500690565b6000602082840312156120af57600080fd5b81516112be81611c49565b600082516120cc818460208701611992565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efe678c8da3d2d6082f140bbbaa1ee822f0c7072ab604536db4a3e0315f8a92776a264697066735822122079eeb30161655ccc65abc8c06c0ebcfb0f4c6b1918e7b8b71b0f71c60261a4ad64736f6c634300080b0033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000040000000000000000000000008ee4ab63b765eaddc834ac634e509222fac785bd00000000000000000000000059750ac0631f63bfdce0f0867618e468e11ee347000000000000000000000000ccc834bc6af12e4aab50a198e83a7a80253e017100000000000000000000000005ac30fec4c73697f90416dcd972734f326e1a9900000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000002616000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000530000000000000000000000000000000000000000000000000000000000000053

-----Decoded View---------------
Arg [0] : _payees (address[]): 0x8Ee4aB63b765eADDC834Ac634e509222FAC785bD,0x59750Ac0631f63BFDCe0f0867618e468E11EE347,0xCCC834BC6aF12e4aaB50a198e83a7a80253E0171,0x05ac30feC4C73697f90416Dcd972734F326E1a99
Arg [1] : _shares (uint256[]): 9750,84,83,83

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 0000000000000000000000008ee4ab63b765eaddc834ac634e509222fac785bd
Arg [4] : 00000000000000000000000059750ac0631f63bfdce0f0867618e468e11ee347
Arg [5] : 000000000000000000000000ccc834bc6af12e4aab50a198e83a7a80253e0171
Arg [6] : 00000000000000000000000005ac30fec4c73697f90416dcd972734f326e1a99
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 0000000000000000000000000000000000000000000000000000000000002616
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000054
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000053
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000053


Deployed Bytecode Sourcemap

20533:2884:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9385:40;196:10;9415:9;9385:40;;;;;;;:::i;:::-;;;;;;;;20533:2884;;;;;18184:340;;;;;;;;;;-1:-1:-1;18184:340:0;;;;;:::i;:::-;;:::i;:::-;;;844:14:1;;837:22;819:41;;807:2;792:18;18184:340:0;;;;;;;;20779:34;;;;;;;;;;-1:-1:-1;20779:34:0;;;;;;;;15508:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;15758:46::-;;;;;;;;;;-1:-1:-1;15758:46:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15758:46:0;;;;;;;;;;:::i;16028:289::-;;;;;;;;;;-1:-1:-1;16028:289:0;;;;;:::i;:::-;;:::i;:::-;;21797:421;;;:::i;21598:191::-;;;;;;;;;;;;;:::i;20581:26::-;;;;;;;;;;;;;;;;;;;2639:25:1;;;2627:2;2612:18;20581:26:0;2493:177:1;10299:566:0;;;;;;;;;;-1:-1:-1;10299:566:0;;;;;:::i;:::-;;:::i;16540:764::-;;;;;;;;;;-1:-1:-1;16540:764:0;;;;;:::i;:::-;;:::i;9447:91::-;;;;;;;;;;-1:-1:-1;9518:12:0;;9447:91;;10036:135;;;;;;;;;;-1:-1:-1;10036:135:0;;;;;:::i;:::-;;:::i;17312:409::-;;;;;;;;;;-1:-1:-1;17312:409:0;;;;;:::i;:::-;;:::i;21447:143::-;;;;;;;;;;-1:-1:-1;21447:143:0;;;;;:::i;:::-;;:::i;10879:641::-;;;;;;;;;;-1:-1:-1;10879:641:0;;;;;:::i;:::-;;:::i;22937:200::-;;;;;;;;;;-1:-1:-1;22937:200:0;;;;;:::i;:::-;;:::i;15707:42::-;;;;;;;;;;-1:-1:-1;15707:42:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15707:42:0;;;15654:44;;;;;;;;;;-1:-1:-1;15654:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;22226:703;;;;;;:::i;:::-;;:::i;10185:100::-;;;;;;;;;;-1:-1:-1;10185:100:0;;;;;:::i;:::-;;:::i;15535:20::-;;;;;;;;;;;;;:::i;9913:109::-;;;;;;;;;;-1:-1:-1;9913:109:0;;;;;:::i;:::-;;:::i;16325:207::-;;;;;;;;;;-1:-1:-1;16325:207:0;;;;;:::i;:::-;;:::i;17729:439::-;;;;;;;;;;-1:-1:-1;17729:439:0;;;;;:::i;:::-;;:::i;23145:269::-;;;;;;;;;;-1:-1:-1;23145:269:0;;;;;:::i;:::-;;:::i;9794:105::-;;;;;;;;;;-1:-1:-1;9794:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9875:16:0;9848:7;9875:16;;;:7;:16;;;;;;;9794:105;9661:119;;;;;;;;;;-1:-1:-1;9661:119:0;;;;;:::i;:::-;;:::i;9552:95::-;;;;;;;;;;-1:-1:-1;9625:14:0;;9552:95;;15813:68;;;;;;;;;;-1:-1:-1;15813:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;18184:340;18260:4;-1:-1:-1;;;;;;;;;18297:25:0;;;;:101;;-1:-1:-1;;;;;;;;;;18373:25:0;;;18297:101;:177;;;-1:-1:-1;;;;;;;;;;18449:25:0;;;18297:177;18277:197;18184:340;-1:-1:-1;;18184:340:0:o;15508:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16028:289::-;16100:13;16116:11;;;:7;:11;;;;;;-1:-1:-1;;;;;16116:11:0;16148:10;:19;;;:58;;-1:-1:-1;;;;;;16171:23:0;;;;;;:16;:23;;;;;;;;16195:10;16171:35;;;;;;;;;;16148:58;16140:85;;;;-1:-1:-1;;;16140:85:0;;;;;;;:::i;:::-;;;;;;;;;16238:15;;;;:11;:15;;;;;;:25;;-1:-1:-1;;;;;;16238:25:0;-1:-1:-1;;;;;16238:25:0;;;;;;;;;16281:28;;16238:15;;16281:28;;;;;;;16089:228;16028:289;;:::o;21797:421::-;21851:7;21845:21;;;;;:::i;:::-;:26;21841:55;;-1:-1:-1;21841:55:0;;21880:16;;-1:-1:-1;;;21880:16:0;;;;;;;;;;;21841:55;21911:15;;;;21907:45;;;21935:17;;-1:-1:-1;;;21935:17:0;;;;;;;;;;;21907:45;21985:5;21967:11;;21981:1;21967:15;;;;:::i;:::-;:23;21963:45;;;21999:9;;-1:-1:-1;;;21999:9:0;;;;;;;;;;;21963:45;22035:4;;22023:9;:16;22019:48;;;22048:19;;-1:-1:-1;;;22048:19:0;;;;;;;;;;;22019:48;22078:11;:13;;;:11;:13;;;:::i;:::-;;;;;;22102:34;22112:10;22124:11;;22102:9;:34::i;:::-;22194:15;22159:10;-1:-1:-1;;;;;22152:58:0;-1:-1:-1;;;;;;;;;;;22171:21:0;22180:11;;22171:8;:21::i;:::-;22152:58;;;;;;:::i;:::-;;;;;;;;21797:421::o;21598:191::-;21663:6;;-1:-1:-1;;;;;21663:6:0;21649:10;:20;21645:43;;21678:10;;-1:-1:-1;;;21678:10:0;;;;;;;;;;;21645:43;21704:15;;;;21699:48;;21728:19;;-1:-1:-1;;;21728:19:0;;;;;;;;;;;21699:48;21758:15;:23;;-1:-1:-1;;21758:23:0;;;21598:191::o;10299:566::-;-1:-1:-1;;;;;10375:16:0;;10394:1;10375:16;;;:7;:16;;;;;;10367:71;;;;-1:-1:-1;;;10367:71:0;;;;;;;:::i;:::-;10451:21;10499:15;9625:14;;;9552:95;10499:15;10475:39;;:21;:39;:::i;:::-;10451:63;;10525:15;10543:58;10559:7;10568:13;10583:17;10592:7;10583:8;:17::i;:::-;10543:15;:58::i;:::-;10525:76;-1:-1:-1;10622:12:0;10614:68;;;;-1:-1:-1;;;10614:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10695:18:0;;;;;;:9;:18;;;;;:29;;10717:7;;10695:18;:29;;10717:7;;10695:29;:::i;:::-;;;;;;;;10753:7;10735:14;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;10773:35:0;;-1:-1:-1;10791:7:0;10800;10773:17;:35::i;:::-;10824:33;10840:7;10849;10824:33;;;;;;;:::i;:::-;;;;;;;;10356:509;;10299:566;:::o;16540:764::-;16676:11;;;;:7;:11;;;;;;-1:-1:-1;;;;;16668:19:0;;;16676:11;;16668:19;16660:42;;;;-1:-1:-1;;;16660:42:0;;10495:2:1;16660:42:0;;;10477:21:1;10534:2;10514:18;;;10507:30;-1:-1:-1;;;10553:18:1;;;10546:40;10603:18;;16660:42:0;10293:334:1;16660:42:0;-1:-1:-1;;;;;16723:16:0;;16715:46;;;;-1:-1:-1;;;16715:46:0;;;;;;;:::i;:::-;16796:10;-1:-1:-1;;;;;16796:18:0;;;;:51;;-1:-1:-1;16832:15:0;;;;:11;:15;;;;;;-1:-1:-1;;;;;16832:15:0;16818:10;:29;16796:51;:89;;;-1:-1:-1;;;;;;16851:22:0;;;;;;:16;:22;;;;;;;;16874:10;16851:34;;;;;;;;;;16796:89;16774:153;;;;-1:-1:-1;;;16774:153:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17132:15:0;;;;;;;:9;:15;;;;;;;;:17;;-1:-1:-1;;17132:17:0;;;17166:13;;;;;;;;;:15;;17132:17;17166:15;;;17205:11;;;:7;:11;;;;;:16;;-1:-1:-1;;;;;;17205:16:0;;;;;;;;17241:11;:15;;;;;;17234:22;;;;;;;;17274;;17213:2;;17166:13;17132:15;-1:-1:-1;;;;;;;;;;;17274:22:0;;16540:764;;;:::o;10036:135::-;-1:-1:-1;;;;;10133:21:0;;;10106:7;10133:21;;;:14;:21;;;;;;;;:30;;;;;;;;;;;;;10036:135::o;17312:409::-;17436:26;17449:4;17455:2;17459;17436:12;:26::i;:::-;-1:-1:-1;;;;;17497:14:0;;;:19;;:172;;-1:-1:-1;17537:66:0;;-1:-1:-1;;;17537:66:0;;;17624:45;-1:-1:-1;;;;;17537:40:0;;;17624:45;;17537:66;;17578:10;;17590:4;;17596:2;;17537:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17537:132:0;;17497:172;17475:238;;;;-1:-1:-1;;;17475:238:0;;;;;;;:::i;:::-;17312:409;;;:::o;21447:143::-;21522:6;;-1:-1:-1;;;;;21522:6:0;21508:10;:20;21504:43;;21537:10;;-1:-1:-1;;;21537:10:0;;;;;;;;;;;21504:43;21558:10;:24;21447:143::o;10879:641::-;-1:-1:-1;;;;;10961:16:0;;10980:1;10961:16;;;:7;:16;;;;;;10953:71;;;;-1:-1:-1;;;10953:71:0;;;;;;;:::i;:::-;11037:21;11094:20;11108:5;11094:13;:20::i;:::-;11061:30;;-1:-1:-1;;;11061:30:0;;-1:-1:-1;;;;;11061:15:0;;;;;:30;;11085:4;;11061:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;:::i;:::-;11037:77;;11125:15;11143:65;11159:7;11168:13;11183:24;11192:5;11199:7;11183:8;:24::i;11143:65::-;11125:83;-1:-1:-1;11229:12:0;11221:68;;;;-1:-1:-1;;;11221:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11302:21:0;;;;;;;:14;:21;;;;;;;;:30;;;;;;;;;;;:41;;11336:7;;11302:21;:41;;11336:7;;11302:41;:::i;:::-;;;;-1:-1:-1;;;;;;;11354:26:0;;;;;;:19;:26;;;;;:37;;11384:7;;11354:26;:37;;11384:7;;11354:37;:::i;:::-;;;;-1:-1:-1;11404:47:0;;-1:-1:-1;11427:5:0;11434:7;11443;11404:22;:47::i;:::-;11488:5;-1:-1:-1;;;;;11467:45:0;;11495:7;11504;11467:45;;;;;;;:::i;:::-;;;;;;;;10942:578;;10879:641;;:::o;22937:200::-;23025:1;23007:7;23001:21;;;;;:::i;:::-;;;:25;22997:53;;;23035:15;;-1:-1:-1;;;23035:15:0;;;;;;;;;;;22997:53;23079:6;;-1:-1:-1;;;;;23079:6:0;23065:10;:20;23061:43;;23094:10;;-1:-1:-1;;;23094:10:0;;;;;;;;;;;23061:43;23115:14;;;;:7;;:14;;;;;:::i;:::-;;22937:200;:::o;22226:703::-;22322:7;22316:21;;;;;:::i;:::-;:26;22312:55;;-1:-1:-1;22312:55:0;;22351:16;;-1:-1:-1;;;22351:16:0;;;;;;;;;;;22312:55;22399:10;22382:28;;;;:16;:28;;;;;;;;22378:57;;;22419:16;;-1:-1:-1;;;22419:16:0;;;;;;;;;;;22378:57;22468:5;22450:11;;22464:1;22450:15;;;;:::i;:::-;:23;22446:45;;;22482:9;;-1:-1:-1;;;22482:9:0;;;;;;;;;;;22446:45;22518:13;;22506:9;:25;22502:57;;;22540:19;;-1:-1:-1;;;22540:19:0;;;;;;;;;;;22502:57;22597:28;;-1:-1:-1;;;;;;22614:10:0;12500:2:1;12471:15;12467:45;22597:28:0;;;12455:58:1;22572:12:0;;12529::1;;22597:28:0;;;;;;;;;;;;22587:39;;;;;;22572:54;;22644:50;22663:12;;22644:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22677:10:0;;;-1:-1:-1;22689:4:0;;-1:-1:-1;22644:18:0;:50::i;:::-;22639:91;;22716:14;;-1:-1:-1;;;22716:14:0;;;;;;;;;;;22639:91;22760:10;22743:28;;;;:16;:28;;;;;:35;;-1:-1:-1;;22743:35:0;22774:4;22743:35;;;22789:11;:13;;;;;;:::i;:::-;;;;;;22813:34;22823:10;22835:11;;22813:9;:34::i;:::-;22905:15;22870:10;-1:-1:-1;;;;;22863:58:0;-1:-1:-1;;;;;;;;;;;22882:21:0;22891:11;;22882:8;:21::i;:::-;22863:58;;;;;;:::i;:::-;;;;;;;;22301:628;22226:703;;:::o;10185:100::-;10236:7;10263;10271:5;10263:14;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;10263:14:0;;10185:100;-1:-1:-1;;10185:100:0:o;15535:20::-;;;;;;;:::i;9913:109::-;-1:-1:-1;;;;;9996:18:0;9969:7;9996:18;;;:9;:18;;;;;;;9913:109::o;16325:207::-;16428:10;16411:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;16411:38:0;;;;;;;;;;;;:49;;-1:-1:-1;;16411:49:0;;;;;;;;;;16478:46;;819:41:1;;;16411:38:0;;16428:10;16478:46;;792:18:1;16478:46:0;;;;;;;16325:207;;:::o;17729:439::-;17881:26;17894:4;17900:2;17904;17881:12;:26::i;:::-;-1:-1:-1;;;;;17942:14:0;;;:19;;:174;;-1:-1:-1;17982:68:0;;-1:-1:-1;;;17982:68:0;;;18071:45;-1:-1:-1;;;;;17982:40:0;;;18071:45;;17982:68;;18023:10;;18035:4;;18041:2;;18045:4;;17982:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17982:134:0;;17942:174;17920:240;;;;-1:-1:-1;;;17920:240:0;;;;;;;:::i;:::-;17729:439;;;;:::o;23145:269::-;23254:13;23347:7;23356:25;23373:7;23356:16;:25::i;:::-;23330:61;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23285:121;;23145:269;;;:::o;9661:119::-;-1:-1:-1;;;;;9746:26:0;9719:7;9746:26;;;:19;:26;;;;;;;9661:119::o;19334:349::-;19405:13;19411:2;19415;19405:5;:13::i;:::-;-1:-1:-1;;;;;19453:14:0;;;:19;;:178;;-1:-1:-1;19493:72:0;;-1:-1:-1;;;19493:72:0;;;19586:45;-1:-1:-1;;;;;19493:40:0;;;19586:45;;19493:72;;19534:10;;19554:1;;19558:2;;19493:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;19493:138:0;;19453:178;19431:244;;;;-1:-1:-1;;;19431:244:0;;;;;;;:::i;11534:248::-;11744:12;;-1:-1:-1;;;;;11724:16:0;;11680:7;11724:16;;;:7;:16;;;;;;11680:7;;11759:15;;11708:32;;:13;:32;:::i;:::-;11707:49;;;;:::i;:::-;:67;;;;:::i;:::-;11700:74;;11534:248;;;;;;:::o;847:317::-;962:6;937:21;:31;;929:73;;;;-1:-1:-1;;;929:73:0;;15691:2:1;929:73:0;;;15673:21:1;15730:2;15710:18;;;15703:30;15769:31;15749:18;;;15742:59;15818:18;;929:73:0;15489:353:1;929:73:0;1016:12;1034:9;-1:-1:-1;;;;;1034:14:0;1056:6;1034:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1015:52;;;1086:7;1078:78;;;;-1:-1:-1;;;1078:78:0;;16259:2:1;1078:78:0;;;16241:21:1;16298:2;16278:18;;;16271:30;16337:34;16317:18;;;16310:62;-1:-1:-1;;;16388:18:1;;;16381:56;16454:19;;1078:78:0;16057:422:1;5470:211:0;5587:86;5607:5;5637:23;;;5662:2;5666:5;5614:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5614:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;5614:58:0;-1:-1:-1;;;;;;5614:58:0;;;;;;;;;;5587:19;:86::i;12484:190::-;12609:4;12662;12633:25;12646:5;12653:4;12633:12;:25::i;:::-;:33;;12484:190;-1:-1:-1;;;;12484:190:0:o;13579:723::-;13635:13;13856:10;13852:53;;-1:-1:-1;;13883:10:0;;;;;;;;;;;;-1:-1:-1;;;13883:10:0;;;;;13579:723::o;13852:53::-;13930:5;13915:12;13971:78;13978:9;;13971:78;;14004:8;;;;:::i;:::-;;-1:-1:-1;14027:10:0;;-1:-1:-1;14035:2:0;14027:10;;:::i;:::-;;;13971:78;;;14059:19;14091:6;-1:-1:-1;;;;;14081:17:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14081:17:0;;14059:39;;14109:154;14116:10;;14109:154;;14143:11;14153:1;14143:11;;:::i;:::-;;-1:-1:-1;14212:10:0;14220:2;14212:5;:10;:::i;:::-;14199:24;;:2;:24;:::i;:::-;14186:39;;14169:6;14176;14169:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;14169:56:0;;;;;;;;-1:-1:-1;14240:11:0;14249:2;14240:11;;:::i;:::-;;;14109:154;;;14287:6;13579:723;-1:-1:-1;;;;13579:723:0:o;18540:381::-;-1:-1:-1;;;;;18615:16:0;;18607:46;;;;-1:-1:-1;;;18607:46:0;;;;;;;:::i;:::-;18697:1;18674:11;;;:7;:11;;;;;;-1:-1:-1;;;;;18674:11:0;:25;18666:52;;;;-1:-1:-1;;;18666:52:0;;16803:2:1;18666:52:0;;;16785:21:1;16842:2;16822:18;;;16815:30;-1:-1:-1;;;16861:18:1;;;16854:44;16915:18;;18666:52:0;16601:338:1;18666:52:0;-1:-1:-1;;;;;18812:13:0;;;;;;:9;:13;;;;;;;;:15;;;;;;18851:11;;;:7;:11;;;;;;:16;;-1:-1:-1;;;;;;18851:16:0;;;;;18885:28;18859:2;;18812:13;;-1:-1:-1;;;;;;;;;;;18885:28:0;18812:13;;18885:28;18540:381;;:::o;7411:716::-;7835:23;7861:69;7889:4;7861:69;;;;;;;;;;;;;;;;;7869:5;-1:-1:-1;;;;;7861:27:0;;;:69;;;;;:::i;:::-;7945:17;;7835:95;;-1:-1:-1;7945:21:0;7941:179;;8042:10;8031:30;;;;;;;;;;;;:::i;:::-;8023:85;;;;-1:-1:-1;;;8023:85:0;;17396:2:1;8023:85:0;;;17378:21:1;17435:2;17415:18;;;17408:30;17474:34;17454:18;;;17447:62;-1:-1:-1;;;17525:18:1;;;17518:40;17575:19;;8023:85:0;17194:406:1;12688:701:0;12771:7;12814:4;12771:7;12829:523;12853:5;:12;12849:1;:16;12829:523;;;12887:20;12910:5;12916:1;12910:8;;;;;;;;:::i;:::-;;;;;;;12887:31;;12953:12;12937;:28;12933:408;;13090:44;;;;;;17762:19:1;;;17797:12;;;17790:28;;;17834:12;;13090:44:0;;;;;;;;;;;;13080:55;;;;;;13065:70;;12933:408;;;13280:44;;;;;;17762:19:1;;;17797:12;;;17790:28;;;17834:12;;13280:44:0;;;;;;;;;;;;13270:55;;;;;;13255:70;;12933:408;-1:-1:-1;12867:3:0;;;;:::i;:::-;;;;12829:523;;;-1:-1:-1;13369:12:0;12688:701;-1:-1:-1;;;12688:701:0:o;1367:229::-;1504:12;1536:52;1558:6;1566:4;1572:1;1575:12;1504;769:20;;2171:60;;;;-1:-1:-1;;;2171:60:0;;18466:2:1;2171:60:0;;;18448:21:1;18505:2;18485:18;;;18478:30;18544:31;18524:18;;;18517:59;18593:18;;2171:60:0;18264:353:1;2171:60:0;2245:12;2259:23;2286:6;-1:-1:-1;;;;;2286:11:0;2305:5;2312:4;2286:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2244:73;;;;2335:51;2352:7;2361:10;2373:12;2335:16;:51::i;:::-;2328:58;1884:510;-1:-1:-1;;;;;;;1884:510:0:o;3654:712::-;3804:12;3833:7;3829:530;;;-1:-1:-1;3864:10:0;3857:17;;3829:530;3978:17;;:21;3974:374;;4176:10;4170:17;4237:15;4224:10;4220:2;4216:19;4209:44;3974:374;4319:12;4312:20;;-1:-1:-1;;;4312:20:0;;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:274:1;-1:-1:-1;;;;;206:32:1;;;;188:51;;270:2;255:18;;248:34;176:2;161:18;;14:274::o;293:131::-;-1:-1:-1;;;;;;367:32:1;;357:43;;347:71;;414:1;411;404:12;347:71;293:131;:::o;429:245::-;487:6;540:2;528:9;519:7;515:23;511:32;508:52;;;556:1;553;546:12;508:52;595:9;582:23;614:30;638:5;614:30;:::i;871:258::-;943:1;953:113;967:6;964:1;961:13;953:113;;;1043:11;;;1037:18;1024:11;;;1017:39;989:2;982:10;953:113;;;1084:6;1081:1;1078:13;1075:48;;;-1:-1:-1;;1119:1:1;1101:16;;1094:27;871:258::o;1134:269::-;1187:3;1225:5;1219:12;1252:6;1247:3;1240:19;1268:63;1324:6;1317:4;1312:3;1308:14;1301:4;1294:5;1290:16;1268:63;:::i;:::-;1385:2;1364:15;-1:-1:-1;;1360:29:1;1351:39;;;;1392:4;1347:50;;1134:269;-1:-1:-1;;1134:269:1:o;1408:231::-;1557:2;1546:9;1539:21;1520:4;1577:56;1629:2;1618:9;1614:18;1606:6;1577:56;:::i;1644:180::-;1703:6;1756:2;1744:9;1735:7;1731:23;1727:32;1724:52;;;1772:1;1769;1762:12;1724:52;-1:-1:-1;1795:23:1;;1644:180;-1:-1:-1;1644:180:1:o;1829:203::-;-1:-1:-1;;;;;1993:32:1;;;;1975:51;;1963:2;1948:18;;1829:203::o;2037:131::-;-1:-1:-1;;;;;2112:31:1;;2102:42;;2092:70;;2158:1;2155;2148:12;2173:315;2241:6;2249;2302:2;2290:9;2281:7;2277:23;2273:32;2270:52;;;2318:1;2315;2308:12;2270:52;2357:9;2344:23;2376:31;2401:5;2376:31;:::i;:::-;2426:5;2478:2;2463:18;;;;2450:32;;-1:-1:-1;;;2173:315:1:o;2675:255::-;2742:6;2795:2;2783:9;2774:7;2770:23;2766:32;2763:52;;;2811:1;2808;2801:12;2763:52;2850:9;2837:23;2869:31;2894:5;2869:31;:::i;2935:456::-;3012:6;3020;3028;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:31;3180:5;3155:31;:::i;:::-;3205:5;-1:-1:-1;3262:2:1;3247:18;;3234:32;3275:33;3234:32;3275:33;:::i;:::-;2935:456;;3327:7;;-1:-1:-1;;;3381:2:1;3366:18;;;;3353:32;;2935:456::o;3396:402::-;3478:6;3486;3539:2;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;3594:9;3581:23;3613:31;3638:5;3613:31;:::i;:::-;3663:5;-1:-1:-1;3720:2:1;3705:18;;3692:32;3733:33;3692:32;3733:33;:::i;:::-;3785:7;3775:17;;;3396:402;;;;;:::o;3988:127::-;4049:10;4044:3;4040:20;4037:1;4030:31;4080:4;4077:1;4070:15;4104:4;4101:1;4094:15;4120:632;4185:5;-1:-1:-1;;;;;4245:14:1;;;4242:40;;;4262:18;;:::i;:::-;4337:2;4331:9;4305:2;4391:15;;-1:-1:-1;;4387:24:1;;;4413:2;4383:33;4379:42;4367:55;;;4437:18;;;4457:22;;;4434:46;4431:72;;;4483:18;;:::i;:::-;4523:10;4519:2;4512:22;4552:6;4543:15;;4582:6;4574;4567:22;4622:3;4613:6;4608:3;4604:16;4601:25;4598:45;;;4639:1;4636;4629:12;4598:45;4689:6;4684:3;4677:4;4669:6;4665:17;4652:44;4744:1;4737:4;4728:6;4720;4716:19;4712:30;4705:41;;;;4120:632;;;;;:::o;4757:451::-;4826:6;4879:2;4867:9;4858:7;4854:23;4850:32;4847:52;;;4895:1;4892;4885:12;4847:52;4922:23;;-1:-1:-1;;;;;4957:30:1;;4954:50;;;5000:1;4997;4990:12;4954:50;5023:22;;5076:4;5068:13;;5064:27;-1:-1:-1;5054:55:1;;5105:1;5102;5095:12;5054:55;5128:74;5194:7;5189:2;5176:16;5171:2;5167;5163:11;5128:74;:::i;5465:615::-;5551:6;5559;5612:2;5600:9;5591:7;5587:23;5583:32;5580:52;;;5628:1;5625;5618:12;5580:52;5655:23;;-1:-1:-1;;;;;5727:14:1;;;5724:34;;;5754:1;5751;5744:12;5724:34;5792:6;5781:9;5777:22;5767:32;;5837:7;5830:4;5826:2;5822:13;5818:27;5808:55;;5859:1;5856;5849:12;5808:55;5899:2;5886:16;5925:2;5917:6;5914:14;5911:34;;;5941:1;5938;5931:12;5911:34;5994:7;5989:2;5979:6;5976:1;5972:14;5968:2;5964:23;5960:32;5957:45;5954:65;;;6015:1;6012;6005:12;5954:65;6046:2;6038:11;;;;;6068:6;;-1:-1:-1;5465:615:1;;-1:-1:-1;;;;5465:615:1:o;6085:118::-;6171:5;6164:13;6157:21;6150:5;6147:32;6137:60;;6193:1;6190;6183:12;6208:382;6273:6;6281;6334:2;6322:9;6313:7;6309:23;6305:32;6302:52;;;6350:1;6347;6340:12;6302:52;6389:9;6376:23;6408:31;6433:5;6408:31;:::i;:::-;6458:5;-1:-1:-1;6515:2:1;6500:18;;6487:32;6528:30;6487:32;6528:30;:::i;6595:795::-;6690:6;6698;6706;6714;6767:3;6755:9;6746:7;6742:23;6738:33;6735:53;;;6784:1;6781;6774:12;6735:53;6823:9;6810:23;6842:31;6867:5;6842:31;:::i;:::-;6892:5;-1:-1:-1;6949:2:1;6934:18;;6921:32;6962:33;6921:32;6962:33;:::i;:::-;7014:7;-1:-1:-1;7068:2:1;7053:18;;7040:32;;-1:-1:-1;7123:2:1;7108:18;;7095:32;-1:-1:-1;;;;;7139:30:1;;7136:50;;;7182:1;7179;7172:12;7136:50;7205:22;;7258:4;7250:13;;7246:27;-1:-1:-1;7236:55:1;;7287:1;7284;7277:12;7236:55;7310:74;7376:7;7371:2;7358:16;7353:2;7349;7345:11;7310:74;:::i;:::-;7300:84;;;6595:795;;;;;;;:::o;8054:380::-;8133:1;8129:12;;;;8176;;;8197:61;;8251:4;8243:6;8239:17;8229:27;;8197:61;8304:2;8296:6;8293:14;8273:18;8270:38;8267:161;;;8350:10;8345:3;8341:20;8338:1;8331:31;8385:4;8382:1;8375:15;8413:4;8410:1;8403:15;8267:161;;8054:380;;;:::o;8439:338::-;8641:2;8623:21;;;8680:2;8660:18;;;8653:30;-1:-1:-1;;;8714:2:1;8699:18;;8692:44;8768:2;8753:18;;8439:338::o;8782:127::-;8843:10;8838:3;8834:20;8831:1;8824:31;8874:4;8871:1;8864:15;8898:4;8895:1;8888:15;8914:128;8954:3;8985:1;8981:6;8978:1;8975:13;8972:39;;;8991:18;;:::i;:::-;-1:-1:-1;9027:9:1;;8914:128::o;9047:135::-;9086:3;-1:-1:-1;;9107:17:1;;9104:43;;;9127:18;;:::i;:::-;-1:-1:-1;9174:1:1;9163:13;;9047:135::o;9187:402::-;9389:2;9371:21;;;9428:2;9408:18;;;9401:30;9467:34;9462:2;9447:18;;9440:62;-1:-1:-1;;;9533:2:1;9518:18;;9511:36;9579:3;9564:19;;9187:402::o;9594:407::-;9796:2;9778:21;;;9835:2;9815:18;;;9808:30;9874:34;9869:2;9854:18;;9847:62;-1:-1:-1;;;9940:2:1;9925:18;;9918:41;9991:3;9976:19;;9594:407::o;10632:341::-;10834:2;10816:21;;;10873:2;10853:18;;;10846:30;-1:-1:-1;;;10907:2:1;10892:18;;10885:47;10964:2;10949:18;;10632:341::o;10978:555::-;-1:-1:-1;;;;;11301:15:1;;;11283:34;;11353:15;;;;11348:2;11333:18;;11326:43;11400:2;11385:18;;11378:34;;;;11448:3;11443:2;11428:18;;11421:31;;;11226:4;11468:19;;;11461:30;11263:3;11508:19;;10978:555::o;11538:249::-;11607:6;11660:2;11648:9;11639:7;11635:23;11631:32;11628:52;;;11676:1;11673;11666:12;11628:52;11708:9;11702:16;11727:30;11751:5;11727:30;:::i;11792:340::-;11994:2;11976:21;;;12033:2;12013:18;;;12006:30;-1:-1:-1;;;12067:2:1;12052:18;;12045:46;12123:2;12108:18;;11792:340::o;12137:184::-;12207:6;12260:2;12248:9;12239:7;12235:23;12231:32;12228:52;;;12276:1;12273;12266:12;12228:52;-1:-1:-1;12299:16:1;;12137:184;-1:-1:-1;12137:184:1:o;12552:127::-;12613:10;12608:3;12604:20;12601:1;12594:31;12644:4;12641:1;12634:15;12668:4;12665:1;12658:15;12684:500;-1:-1:-1;;;;;12953:15:1;;;12935:34;;13005:15;;13000:2;12985:18;;12978:43;13052:2;13037:18;;13030:34;;;13100:3;13095:2;13080:18;;13073:31;;;12878:4;;13121:57;;13158:19;;13150:6;13121:57;:::i;:::-;13113:65;12684:500;-1:-1:-1;;;;;;12684:500:1:o;13315:185::-;13357:3;13395:5;13389:12;13410:52;13455:6;13450:3;13443:4;13436:5;13432:16;13410:52;:::i;:::-;13478:16;;;;;13315:185;-1:-1:-1;;13315:185:1:o;13623:1301::-;13900:3;13929:1;13962:6;13956:13;13992:3;14014:1;14042:9;14038:2;14034:18;14024:28;;14102:2;14091:9;14087:18;14124;14114:61;;14168:4;14160:6;14156:17;14146:27;;14114:61;14194:2;14242;14234:6;14231:14;14211:18;14208:38;14205:165;;;-1:-1:-1;;;14269:33:1;;14325:4;14322:1;14315:15;14355:4;14276:3;14343:17;14205:165;14386:18;14413:104;;;;14531:1;14526:320;;;;14379:467;;14413:104;-1:-1:-1;;14446:24:1;;14434:37;;14491:16;;;;-1:-1:-1;14413:104:1;;14526:320;13262:1;13255:14;;;13299:4;13286:18;;14621:1;14635:165;14649:6;14646:1;14643:13;14635:165;;;14727:14;;14714:11;;;14707:35;14770:16;;;;14664:10;;14635:165;;;14639:3;;14829:6;14824:3;14820:16;14813:23;;14379:467;;;;;;;14862:56;14887:30;14913:3;14905:6;14887:30;:::i;:::-;-1:-1:-1;;;13565:20:1;;13610:1;13601:11;;13505:113;14862:56;14855:63;13623:1301;-1:-1:-1;;;;;13623:1301:1:o;14929:168::-;14969:7;15035:1;15031;15027:6;15023:14;15020:1;15017:21;15012:1;15005:9;14998:17;14994:45;14991:71;;;15042:18;;:::i;:::-;-1:-1:-1;15082:9:1;;14929:168::o;15102:127::-;15163:10;15158:3;15154:20;15151:1;15144:31;15194:4;15191:1;15184:15;15218:4;15215:1;15208:15;15234:120;15274:1;15300;15290:35;;15305:18;;:::i;:::-;-1:-1:-1;15339:9:1;;15234:120::o;15359:125::-;15399:4;15427:1;15424;15421:8;15418:34;;;15432:18;;:::i;:::-;-1:-1:-1;15469:9:1;;15359:125::o;16484:112::-;16516:1;16542;16532:35;;16547:18;;:::i;:::-;-1:-1:-1;16581:9:1;;16484:112::o;16944:245::-;17011:6;17064:2;17052:9;17043:7;17039:23;17035:32;17032:52;;;17080:1;17077;17070:12;17032:52;17112:9;17106:16;17131:28;17153:5;17131:28;:::i;18622:274::-;18751:3;18789:6;18783:13;18805:53;18851:6;18846:3;18839:4;18831:6;18827:17;18805:53;:::i;:::-;18874:16;;;;;18622:274;-1:-1:-1;;18622:274:1:o

Swarm Source

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