ETH Price: $3,165.11 (+1.56%)
Gas: 1 Gwei

Token

Deep Blu Founders Pass (DB)
 

Overview

Max Total Supply

302 DB

Holders

181

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 DB
0xe1faa519ff29cc57f2ba36145d968fcf5ae09378
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:
deepblu

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-02
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;
interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
pragma solidity ^0.8.0;
interface IERC721Receiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}
pragma solidity ^0.8.0;
interface IERC721 is IERC165 {
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 indexed tokenId
    );
    event Approval(
        address indexed owner,
        address indexed approved,
        uint256 indexed tokenId
    );
    event ApprovalForAll(
        address indexed owner,
        address indexed operator,
        bool approved
    );
    function balanceOf(address owner) external view returns (uint256 balance);
    function ownerOf(uint256 tokenId) external view returns (address owner);
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;
    function approve(address to, uint256 tokenId) external;
    function getApproved(uint256 tokenId)
        external
        view
        returns (address operator);
    function setApprovalForAll(address operator, bool _approved) external;
    function isApprovedForAll(address owner, address operator)
        external
        view
        returns (bool);
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}
pragma solidity ^0.8.0;
interface IERC721Metadata is IERC721 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function tokenURI(uint256 tokenId) external view returns (string memory);
}
pragma solidity ^0.8.0;
interface IERC721Enumerable is IERC721 {
    function totalSupply() external view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index)
        external
        view
        returns (uint256);
    function tokenByIndex(uint256 index) external view returns (uint256);
}
pragma solidity ^0.8.1;
library Address {
    function isContract(address account) internal view returns (bool) {

        return account.code.length > 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 {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
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;
    }
}
pragma solidity ^0.8.0;
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        _setOwner(_msgSender());
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
pragma solidity ^0.8.0;
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    function toString(uint256 value) internal pure returns (string memory) {
        // 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);
    }
}
pragma solidity ^0.8.0;
abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override
        returns (bool)
    {
        return interfaceId == type(IERC165).interfaceId;
    }
}
pragma solidity ^0.8.0;
abstract contract ReentrancyGuard {
    // word because each write operation emits an extra SLOAD to first read the
    // back. This is the compiler's defense against contract upgrades and

    // but in exchange the refund on every call to nonReentrant will be lower in
    // transaction's gas, it is best to keep them low in cases like this one, to
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }
    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;

        _;
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}
pragma solidity ^0.8.0;
contract ERC721A is
    Context,
    ERC165,
    IERC721,
    IERC721Metadata,
    IERC721Enumerable
{
    using Address for address;
    using Strings for uint256;

    struct TokenOwnership {
        address addr;
        uint64 startTimestamp;
    }

    struct AddressData {
        uint128 balance;
        uint128 numberMinted;
    }

    uint256 private currentIndex = 0;

    uint256 internal immutable collectionSize;
    uint256 internal immutable maxBatchSize;
    string private _name;
    string private _symbol;
    // An empty struct value does not necessarily mean the token is unowned. See ownershipOf implementation for details.
    mapping(uint256 => TokenOwnership) private _ownerships;
    mapping(address => AddressData) private _addressData;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;
    constructor(
        string memory name_,
        string memory symbol_,
        uint256 maxBatchSize_,
        uint256 collectionSize_
    ) {
        require(
            collectionSize_ > 0,
            "ERC721A: collection must have a nonzero supply"
        );
        require(maxBatchSize_ > 0, "ERC721A: max batch size must be nonzero");
        _name = name_;
        _symbol = symbol_;
        maxBatchSize = maxBatchSize_;
        collectionSize = collectionSize_;
    }
    function totalSupply() public view override returns (uint256) {
        return currentIndex;
    }
    function tokenByIndex(uint256 index)
        public
        view
        override
        returns (uint256)
    {
        require(index < totalSupply(), "ERC721A: global index out of bounds");
        return index;
    }
    function tokenOfOwnerByIndex(address owner, uint256 index)
        public
        view
        override
        returns (uint256)
    {
        require(index < balanceOf(owner), "ERC721A: owner index out of bounds");
        uint256 numMintedSoFar = totalSupply();
        uint256 tokenIdsIdx = 0;
        address currOwnershipAddr = address(0);
        for (uint256 i = 0; i < numMintedSoFar; i++) {
            TokenOwnership memory ownership = _ownerships[i];
            if (ownership.addr != address(0)) {
                currOwnershipAddr = ownership.addr;
            }
            if (currOwnershipAddr == owner) {
                if (tokenIdsIdx == index) {
                    return i;
                }
                tokenIdsIdx++;
            }
        }
        revert("ERC721A: unable to get token of owner by index");
    }
    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override(ERC165, IERC165)
        returns (bool)
    {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            interfaceId == type(IERC721Enumerable).interfaceId ||
            super.supportsInterface(interfaceId);
    }
    function balanceOf(address owner) public view override returns (uint256) {
        require(
            owner != address(0),
            "ERC721A: balance query for the zero address"
        );
        return uint256(_addressData[owner].balance);
    }

    function _numberMinted(address owner) internal view returns (uint256) {
        require(
            owner != address(0),
            "ERC721A: number minted query for the zero address"
        );
        return uint256(_addressData[owner].numberMinted);
    }

    function ownershipOf(uint256 tokenId)
        internal
        view
        returns (TokenOwnership memory)
    {
        require(_exists(tokenId), "ERC721A: owner query for nonexistent token");

        uint256 lowestTokenToCheck;
        if (tokenId >= maxBatchSize) {
            lowestTokenToCheck = tokenId - maxBatchSize + 1;
        }

        for (uint256 curr = tokenId; curr >= lowestTokenToCheck; curr--) {
            TokenOwnership memory ownership = _ownerships[curr];
            if (ownership.addr != address(0)) {
                return ownership;
            }
        }

        revert("ERC721A: unable to determine the owner of token");
    }
    function ownerOf(uint256 tokenId) public view override returns (address) {
        return ownershipOf(tokenId).addr;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function tokenURI(uint256 tokenId)
        public
        view
        virtual
        override
        returns (string memory)
    {
        require(
            _exists(tokenId),
            "ERC721Metadata: URI query for nonexistent token"
        );

        string memory baseURI = _baseURI();
        return
            bytes(baseURI).length > 0
                ? string(abi.encodePacked(baseURI, tokenId.toString()))
                : "";
    }
    function _baseURI() internal view virtual returns (string memory) {
        return "";
    }
    function approve(address to, uint256 tokenId) public override {
        address owner = ERC721A.ownerOf(tokenId);
        require(to != owner, "ERC721A: approval to current owner");

        require(
            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
            "ERC721A: approve caller is not owner nor approved for all"
        );

        _approve(to, tokenId, owner);
    }
    function getApproved(uint256 tokenId)
        public
        view
        override
        returns (address)
    {
        require(
            _exists(tokenId),
            "ERC721A: approved query for nonexistent token"
        );

        return _tokenApprovals[tokenId];
    }
    function setApprovalForAll(address operator, bool approved)
        public
        override
    {
        require(operator != _msgSender(), "ERC721A: approve to caller");

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }
    function isApprovedForAll(address owner, address operator)
        public
        view
        virtual
        override
        returns (bool)
    {
        return _operatorApprovals[owner][operator];
    }
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public override {
        _transfer(from, to, tokenId);
    }
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public override {
        safeTransferFrom(from, to, tokenId, "");
    }
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public override {
        _transfer(from, to, tokenId);
        require(
            _checkOnERC721Received(from, to, tokenId, _data),
            "ERC721A: transfer to non ERC721Receiver implementer"
        );
    }
    function _exists(uint256 tokenId) internal view returns (bool) {
        return tokenId < currentIndex;
    }

    function _safeMint(address to, uint256 quantity) internal {
        _safeMint(to, quantity, "");
    }
    function _safeMint(
        address to,
        uint256 quantity,
        bytes memory _data
    ) internal {
        uint256 startTokenId = currentIndex;
        require(to != address(0), "ERC721A: mint to the zero address");
        require(!_exists(startTokenId), "ERC721A: token already minted");
        require(quantity <= maxBatchSize, "ERC721A: quantity to mint too high");

        _beforeTokenTransfers(address(0), to, startTokenId, quantity);

        AddressData memory addressData = _addressData[to];
        _addressData[to] = AddressData(
            addressData.balance + uint128(quantity),
            addressData.numberMinted + uint128(quantity)
        );
        _ownerships[startTokenId] = TokenOwnership(to, uint64(block.timestamp));

        uint256 updatedIndex = startTokenId;

        for (uint256 i = 0; i < quantity; i++) {
            emit Transfer(address(0), to, updatedIndex);
            require(
                _checkOnERC721Received(address(0), to, updatedIndex, _data),
                "ERC721A: transfer to non ERC721Receiver implementer"
            );
            updatedIndex++;
        }

        currentIndex = updatedIndex;
        _afterTokenTransfers(address(0), to, startTokenId, quantity);
    }
    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) private {
        TokenOwnership memory prevOwnership = ownershipOf(tokenId);

        bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr ||
            getApproved(tokenId) == _msgSender() ||
            isApprovedForAll(prevOwnership.addr, _msgSender()));

        require(
            isApprovedOrOwner,
            "ERC721A: transfer caller is not owner nor approved"
        );

        require(
            prevOwnership.addr == from,
            "ERC721A: transfer from incorrect owner"
        );
        require(to != address(0), "ERC721A: transfer to the zero address");

        _beforeTokenTransfers(from, to, tokenId, 1);
        _approve(address(0), tokenId, prevOwnership.addr);

        _addressData[from].balance -= 1;
        _addressData[to].balance += 1;
        _ownerships[tokenId] = TokenOwnership(to, uint64(block.timestamp));
        // Set the slot of tokenId+1 explicitly in storage to maintain correctness for ownerOf(tokenId+1) calls.
        uint256 nextTokenId = tokenId + 1;
        if (_ownerships[nextTokenId].addr == address(0)) {
            if (_exists(nextTokenId)) {
                _ownerships[nextTokenId] = TokenOwnership(
                    prevOwnership.addr,
                    prevOwnership.startTimestamp
                );
            }
        }

        emit Transfer(from, to, tokenId);
        _afterTokenTransfers(from, to, tokenId, 1);
    }
    function _approve(
        address to,
        uint256 tokenId,
        address owner
    ) private {
        _tokenApprovals[tokenId] = to;
        emit Approval(owner, to, tokenId);
    }

    uint256 public nextOwnerToExplicitlySet = 0;
    function _setOwnersExplicit(uint256 quantity) internal {
        uint256 oldNextOwnerToSet = nextOwnerToExplicitlySet;
        require(quantity > 0, "quantity must be nonzero");
        uint256 endIndex = oldNextOwnerToSet + quantity - 1;
        if (endIndex > collectionSize - 1) {
            endIndex = collectionSize - 1;
        }
        require(_exists(endIndex), "not enough minted yet for this cleanup");
        for (uint256 i = oldNextOwnerToSet; i <= endIndex; i++) {
            if (_ownerships[i].addr == address(0)) {
                TokenOwnership memory ownership = ownershipOf(i);
                _ownerships[i] = TokenOwnership(
                    ownership.addr,
                    ownership.startTimestamp
                );
            }
        }
        nextOwnerToExplicitlySet = endIndex + 1;
    }
    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.isContract()) {
            try
                IERC721Receiver(to).onERC721Received(
                    _msgSender(),
                    from,
                    tokenId,
                    _data
                )
            returns (bytes4 retval) {
                return retval == IERC721Receiver(to).onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert(
                        "ERC721A: transfer to non ERC721Receiver implementer"
                    );
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }
    function _beforeTokenTransfers(
        address from,
        address to,
        uint256 startTokenId,
        uint256 quantity
    ) internal virtual {}
    function _afterTokenTransfers(
        address from,
        address to,
        uint256 startTokenId,
        uint256 quantity
    ) internal virtual {}
}
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) {
                computedHash = _efficientHash(computedHash, proofElement);
            } else {
                computedHash = _efficientHash(proofElement, computedHash);
            }
        }
        return computedHash;
    }

    function _efficientHash(bytes32 a, bytes32 b)
        private
        pure
        returns (bytes32 value)
    {
        assembly {
            mstore(0x00, a)
            mstore(0x20, b)
            value := keccak256(0x00, 0x40)
        }
    }
}

contract deepblu is Ownable, ERC721A, ReentrancyGuard {

    bool public publicSale = false;
    bool public whitelistSale = false;
    bool public revealed = false;

    uint256 public maxPerAddress = 3;
    uint256 public maxToken = 1997;
    uint256 public price = 0.15 ether;

    string private _baseTokenURI;
    string public notRevealedUri = "ipfs://QmXDngARjZYQAVQ5Q8PgRheNrwn7ReSwvERBHWfrbMGpqg/";

    bytes32 root;

    constructor(string memory _NAME, string memory _SYMBOL) ERC721A(_NAME, _SYMBOL, 250, maxToken){
    }

    modifier callerIsUser() {
        require(tx.origin == msg.sender, "The caller is another contract");
        _;
    }

    function numberMinted(address owner) public view returns (uint256) {
        return _numberMinted(owner);
    }

    function getOwnershipData(uint256 tokenId) external view returns (TokenOwnership memory) {
        return ownershipOf(tokenId);
    }

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        if (revealed == false) {
            return notRevealedUri;
        }

        string memory _tokenURI = super.tokenURI(tokenId);
        return bytes(_tokenURI).length > 0 ? string(abi.encodePacked(_tokenURI, ".json")) : "";
    }

    function verify(bytes32[] memory proof) internal view returns (bool) {
        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));
        return MerkleProof.verify(proof, root, leaf);
    }

    function mint(uint256 quantity, bytes32[] memory proof) external payable callerIsUser {
        require(whitelistSale || publicSale, "SALE_HAS_NOT_STARTED_YET");
        require(quantity > 0, "INVALID_QUANTITY");
        require(numberMinted(msg.sender) + quantity <= maxPerAddress, "PER_WALLET_LIMIT_REACHED");
        require(totalSupply() + quantity < maxToken, "NOT_ENOUGH_SUPPLY_TO_MINT_DESIRED_AMOUNT");
        if(whitelistSale){
            require(verify(proof), "ADDRESS_NOT_WHITELISTED");
        }
        require(msg.value >= price * quantity, "INVALID_ETH");
        _safeMint(msg.sender, quantity);
    }

    function airdrop(address _address, uint256 quantity) external onlyOwner {
        require(totalSupply() + quantity <= maxToken, "NOT_ENOUGH_SUPPLY_TO_GIVEAWAY_DESIRED_AMOUNT");
        _safeMint(_address, quantity);
    }

    function _baseURI() internal view virtual override returns (string memory) {
        return _baseTokenURI;
    }

    function setPrice(uint256 _PriceInWEI) external onlyOwner {
        price = _PriceInWEI;
    }

    function setWalletLimit(uint256 _maxPerAddress) external onlyOwner {
        maxPerAddress = _maxPerAddress;
    }

    function setRoot(bytes32 _root) external onlyOwner {
        root = _root;
    }

    function flipPublicSale() external onlyOwner {
        publicSale = !publicSale;
    }

    function flipWhitelistSale() external onlyOwner {
        whitelistSale = !whitelistSale;
    }

    function setBaseURI(string calldata baseURI) external onlyOwner {
        _baseTokenURI = baseURI;
    }

    function setNotRevealedURI(string memory _notRevealedURI) external onlyOwner {
        notRevealedUri = _notRevealedURI;
    }

    function reveal() external onlyOwner {
        revealed = !revealed;
    }

    function withdraw() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_NAME","type":"string"},{"internalType":"string","name":"_SYMBOL","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","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":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipPublicSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipWhitelistSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getOwnershipData","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"}],"internalType":"struct ERC721A.TokenOwnership","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextOwnerToExplicitlySet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicSale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","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":"tokenId","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":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_PriceInWEI","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_root","type":"bytes32"}],"name":"setRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxPerAddress","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistSale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c0604052600060015560006008556000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055506003600b556107cd600c55670214e8348c4f0000600d5560405180606001604052806036815260200162005b3e60369139600f9080519060200190620000a7929190620002b0565b50348015620000b557600080fd5b5060405162005b7438038062005b748339818101604052810190620000db9190620003d2565b818160fa600c5462000102620000f6620001e460201b60201c565b620001ec60201b60201c565b6000811162000148576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013f90620004b5565b60405180910390fd5b600082116200018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001859062000493565b60405180910390fd5b8360029080519060200190620001a6929190620002b0565b508260039080519060200190620001bf929190620002b0565b508160a0818152505080608081815250505050505060016009819055505050620006f6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002be906200057d565b90600052602060002090601f016020900481019282620002e257600085556200032e565b82601f10620002fd57805160ff19168380011785556200032e565b828001600101855582156200032e579182015b828111156200032d57825182559160200191906001019062000310565b5b5090506200033d919062000341565b5090565b5b808211156200035c57600081600090555060010162000342565b5090565b600062000377620003718462000500565b620004d7565b9050828152602081018484840111156200039057600080fd5b6200039d84828562000547565b509392505050565b600082601f830112620003b757600080fd5b8151620003c984826020860162000360565b91505092915050565b60008060408385031215620003e657600080fd5b600083015167ffffffffffffffff8111156200040157600080fd5b6200040f85828601620003a5565b925050602083015167ffffffffffffffff8111156200042d57600080fd5b6200043b85828601620003a5565b9150509250929050565b60006200045460278362000536565b9150620004618262000658565b604082019050919050565b60006200047b602e8362000536565b91506200048882620006a7565b604082019050919050565b60006020820190508181036000830152620004ae8162000445565b9050919050565b60006020820190508181036000830152620004d0816200046c565b9050919050565b6000620004e3620004f6565b9050620004f18282620005b3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200051e576200051d62000618565b5b620005298262000647565b9050602081019050919050565b600082825260208201905092915050565b60005b83811015620005675780820151818401526020810190506200054a565b8381111562000577576000848401525b50505050565b600060028204905060018216806200059657607f821691505b60208210811415620005ad57620005ac620005e9565b5b50919050565b620005be8262000647565b810181811067ffffffffffffffff82111715620005e057620005df62000618565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f455243373231413a206d61782062617463682073697a65206d7573742062652060008201527f6e6f6e7a65726f00000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20636f6c6c656374696f6e206d757374206861766520612060008201527f6e6f6e7a65726f20737570706c79000000000000000000000000000000000000602082015250565b60805160a051615417620007276000396000818161273f015281816127680152612e060152600050506154176000f3fe60806040526004361061023b5760003560e01c8063880846051161012e578063ba41b0c6116100ab578063dc33e6811161006f578063dc33e6811461082c578063e985e9c514610869578063f1d5f517146108a6578063f2c4ce1e146108cf578063f2fde38b146108f85761023b565b8063ba41b0c614610754578063c87b56dd14610770578063ca69e323146107ad578063d7224ba0146107d8578063dab5f340146108035761023b565b806395d89b41116100f257806395d89b4114610695578063a035b1fe146106c0578063a22cb465146106eb578063a475b5dd14610714578063b88d4fde1461072b5761023b565b806388084605146105c45780638ba4cc3c146105db5780638da5cb5b1461060457806391b7f5ed1461062f5780639231ab2a146106585761023b565b806333bc1c5c116101bc57806355f804b31161018057806355f804b3146104df5780636352211e14610508578063639814e01461054557806370a0823114610570578063715018a6146105ad5761023b565b806333bc1c5c1461040c5780633ccfd60b1461043757806342842e0e1461044e5780634f6ccce71461047757806351830227146104b45761023b565b80630f5d66ad116102035780630f5d66ad1461033957806318160ddd1461035057806323b872dd1461037b5780632f745c59146103a457806331ffd6f1146103e15761023b565b806301ffc9a71461024057806306fdde031461027d578063081812fc146102a8578063081c8c44146102e5578063095ea7b314610310575b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613ab0565b610921565b604051610274919061421b565b60405180910390f35b34801561028957600080fd5b50610292610a6b565b60405161029f9190614236565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190613b88565b610afd565b6040516102dc91906141b4565b60405180910390f35b3480156102f157600080fd5b506102fa610b82565b6040516103079190614236565b60405180910390f35b34801561031c57600080fd5b5061033760048036038101906103329190613a4b565b610c10565b005b34801561034557600080fd5b5061034e610d29565b005b34801561035c57600080fd5b50610365610dd1565b6040516103729190614613565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190613945565b610ddb565b005b3480156103b057600080fd5b506103cb60048036038101906103c69190613a4b565b610deb565b6040516103d89190614613565b60405180910390f35b3480156103ed57600080fd5b506103f6610fe9565b604051610403919061421b565b60405180910390f35b34801561041857600080fd5b50610421610ffc565b60405161042e919061421b565b60405180910390f35b34801561044357600080fd5b5061044c61100f565b005b34801561045a57600080fd5b5061047560048036038101906104709190613945565b6110d4565b005b34801561048357600080fd5b5061049e60048036038101906104999190613b88565b6110f4565b6040516104ab9190614613565b60405180910390f35b3480156104c057600080fd5b506104c9611147565b6040516104d6919061421b565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613b02565b61115a565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613b88565b6111ec565b60405161053c91906141b4565b60405180910390f35b34801561055157600080fd5b5061055a611202565b6040516105679190614613565b60405180910390f35b34801561057c57600080fd5b50610597600480360381019061059291906138e0565b611208565b6040516105a49190614613565b60405180910390f35b3480156105b957600080fd5b506105c26112f1565b005b3480156105d057600080fd5b506105d9611379565b005b3480156105e757600080fd5b5061060260048036038101906105fd9190613a4b565b611421565b005b34801561061057600080fd5b50610619611502565b60405161062691906141b4565b60405180910390f35b34801561063b57600080fd5b5061065660048036038101906106519190613b88565b61152b565b005b34801561066457600080fd5b5061067f600480360381019061067a9190613b88565b6115b1565b60405161068c91906145f8565b60405180910390f35b3480156106a157600080fd5b506106aa6115c9565b6040516106b79190614236565b60405180910390f35b3480156106cc57600080fd5b506106d561165b565b6040516106e29190614613565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d9190613a0f565b611661565b005b34801561072057600080fd5b506107296117e2565b005b34801561073757600080fd5b50610752600480360381019061074d9190613994565b61188a565b005b61076e60048036038101906107699190613bb1565b6118e6565b005b34801561077c57600080fd5b5061079760048036038101906107929190613b88565b611b67565b6040516107a49190614236565b60405180910390f35b3480156107b957600080fd5b506107c2611cb4565b6040516107cf9190614613565b60405180910390f35b3480156107e457600080fd5b506107ed611cba565b6040516107fa9190614613565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190613a87565b611cc0565b005b34801561083857600080fd5b50610853600480360381019061084e91906138e0565b611d46565b6040516108609190614613565b60405180910390f35b34801561087557600080fd5b50610890600480360381019061088b9190613909565b611d58565b60405161089d919061421b565b60405180910390f35b3480156108b257600080fd5b506108cd60048036038101906108c89190613b88565b611dec565b005b3480156108db57600080fd5b506108f660048036038101906108f19190613b47565b611e72565b005b34801561090457600080fd5b5061091f600480360381019061091a91906138e0565b611f08565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ec57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a5457507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a645750610a6382612000565b5b9050919050565b606060028054610a7a906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa6906149cd565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b5050505050905090565b6000610b088261206a565b610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e906145b8565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600f8054610b8f906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbb906149cd565b8015610c085780601f10610bdd57610100808354040283529160200191610c08565b820191906000526020600020905b815481529060010190602001808311610beb57829003601f168201915b505050505081565b6000610c1b826111ec565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390614498565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610cab612078565b73ffffffffffffffffffffffffffffffffffffffff161480610cda5750610cd981610cd4612078565b611d58565b5b610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090614398565b60405180910390fd5b610d24838383612080565b505050565b610d31612078565b73ffffffffffffffffffffffffffffffffffffffff16610d4f611502565b73ffffffffffffffffffffffffffffffffffffffff1614610da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9c906143f8565b60405180910390fd5b600a60019054906101000a900460ff1615600a60016101000a81548160ff021916908315150217905550565b6000600154905090565b610de6838383612132565b505050565b6000610df683611208565b8210610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90614258565b60405180910390fd5b6000610e41610dd1565b905060008060005b83811015610fa7576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610f3b57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f935786841415610f84578195505050505050610fe3565b8380610f8f90614a30565b9450505b508080610f9f90614a30565b915050610e49565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda90614578565b60405180910390fd5b92915050565b600a60019054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b611017612078565b73ffffffffffffffffffffffffffffffffffffffff16611035611502565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906143f8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156110d1573d6000803e3d6000fd5b50565b6110ef8383836040518060200160405280600081525061188a565b505050565b60006110fe610dd1565b821061113f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611136906142f8565b60405180910390fd5b819050919050565b600a60029054906101000a900460ff1681565b611162612078565b73ffffffffffffffffffffffffffffffffffffffff16611180611502565b73ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd906143f8565b60405180910390fd5b8181600e91906111e792919061354f565b505050565b60006111f7826126eb565b600001519050919050565b600b5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611279576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611270906143b8565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b6112f9612078565b73ffffffffffffffffffffffffffffffffffffffff16611317611502565b73ffffffffffffffffffffffffffffffffffffffff161461136d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611364906143f8565b60405180910390fd5b61137760006128ee565b565b611381612078565b73ffffffffffffffffffffffffffffffffffffffff1661139f611502565b73ffffffffffffffffffffffffffffffffffffffff16146113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906143f8565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b611429612078565b73ffffffffffffffffffffffffffffffffffffffff16611447611502565b73ffffffffffffffffffffffffffffffffffffffff161461149d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611494906143f8565b60405180910390fd5b600c54816114a9610dd1565b6114b3919061476a565b11156114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114eb90614538565b60405180910390fd5b6114fe82826129b2565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611533612078565b73ffffffffffffffffffffffffffffffffffffffff16611551611502565b73ffffffffffffffffffffffffffffffffffffffff16146115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906143f8565b60405180910390fd5b80600d8190555050565b6115b96135d5565b6115c2826126eb565b9050919050565b6060600380546115d8906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054611604906149cd565b80156116515780601f1061162657610100808354040283529160200191611651565b820191906000526020600020905b81548152906001019060200180831161163457829003601f168201915b5050505050905090565b600d5481565b611669612078565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90614438565b60405180910390fd5b80600760006116e4612078565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611791612078565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117d6919061421b565b60405180910390a35050565b6117ea612078565b73ffffffffffffffffffffffffffffffffffffffff16611808611502565b73ffffffffffffffffffffffffffffffffffffffff161461185e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611855906143f8565b60405180910390fd5b600a60029054906101000a900460ff1615600a60026101000a81548160ff021916908315150217905550565b611895848484612132565b6118a1848484846129d0565b6118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906144d8565b60405180910390fd5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194b90614358565b60405180910390fd5b600a60019054906101000a900460ff168061197b5750600a60009054906101000a900460ff165b6119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b1906144b8565b60405180910390fd5b600082116119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490614558565b60405180910390fd5b600b5482611a0a33611d46565b611a14919061476a565b1115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90614378565b60405180910390fd5b600c5482611a61610dd1565b611a6b919061476a565b10611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa290614478565b60405180910390fd5b600a60019054906101000a900460ff1615611b0957611ac981612b67565b611b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aff906142d8565b60405180910390fd5b5b81600d54611b1791906147f1565b341015611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090614298565b60405180910390fd5b611b6333836129b2565b5050565b6060611b728261206a565b611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba890614418565b60405180910390fd5b60001515600a60029054906101000a900460ff1615151415611c5f57600f8054611bda906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054611c06906149cd565b8015611c535780601f10611c2857610100808354040283529160200191611c53565b820191906000526020600020905b815481529060010190602001808311611c3657829003601f168201915b50505050509050611caf565b6000611c6a83612ba8565b90506000815111611c8a5760405180602001604052806000815250611cab565b80604051602001611c9b9190614192565b6040516020818303038152906040525b9150505b919050565b600c5481565b60085481565b611cc8612078565b73ffffffffffffffffffffffffffffffffffffffff16611ce6611502565b73ffffffffffffffffffffffffffffffffffffffff1614611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d33906143f8565b60405180910390fd5b8060108190555050565b6000611d5182612c4f565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611df4612078565b73ffffffffffffffffffffffffffffffffffffffff16611e12611502565b73ffffffffffffffffffffffffffffffffffffffff1614611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f906143f8565b60405180910390fd5b80600b8190555050565b611e7a612078565b73ffffffffffffffffffffffffffffffffffffffff16611e98611502565b73ffffffffffffffffffffffffffffffffffffffff1614611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee5906143f8565b60405180910390fd5b80600f9080519060200190611f0492919061360f565b5050565b611f10612078565b73ffffffffffffffffffffffffffffffffffffffff16611f2e611502565b73ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906143f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb90614278565b60405180910390fd5b611ffd816128ee565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600060015482109050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061213d826126eb565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16612164612078565b73ffffffffffffffffffffffffffffffffffffffff1614806121c05750612189612078565b73ffffffffffffffffffffffffffffffffffffffff166121a884610afd565b73ffffffffffffffffffffffffffffffffffffffff16145b806121dc57506121db82600001516121d6612078565b611d58565b5b90508061221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590614458565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614612290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612287906143d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f790614318565b60405180910390fd5b61230d8585856001612d38565b61231d6000848460000151612080565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661238b919061484b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661242f9190614724565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050506000600184612535919061476a565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561267b576125ab8161206a565b1561267a576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126e38686866001612d3e565b505050505050565b6126f36135d5565b6126fc8261206a565b61273b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612732906142b8565b60405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000831061279f5760017f000000000000000000000000000000000000000000000000000000000000000084612792919061487f565b61279c919061476a565b90505b60008390505b8181106128ad576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614612899578093505050506128e9565b5080806128a5906149a3565b9150506127a5565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e090614598565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6129cc828260405180602001604052806000815250612d44565b5050565b60006129f18473ffffffffffffffffffffffffffffffffffffffff16613224565b15612b5a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612a1a612078565b8786866040518563ffffffff1660e01b8152600401612a3c94939291906141cf565b602060405180830381600087803b158015612a5657600080fd5b505af1925050508015612a8757506040513d601f19601f82011682018060405250810190612a849190613ad9565b60015b612b0a573d8060008114612ab7576040519150601f19603f3d011682016040523d82523d6000602084013e612abc565b606091505b50600081511415612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af9906144d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612b5f565b600190505b949350505050565b60008033604051602001612b7b9190614153565b604051602081830303815290604052805190602001209050612ba08360105483613247565b915050919050565b6060612bb38261206a565b612bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be990614418565b60405180910390fd5b6000612bfc61325e565b90506000815111612c1c5760405180602001604052806000815250612c47565b80612c26846132f0565b604051602001612c3792919061416e565b6040516020818303038152906040525b915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb790614338565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b50505050565b50505050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db290614518565b60405180910390fd5b612dc48161206a565b15612e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfb906144f8565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000831115612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e906145d8565b60405180910390fd5b612e746000858386612d38565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506040518060400160405280858360000151612f719190614724565b6fffffffffffffffffffffffffffffffff168152602001858360200151612f989190614724565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b8581101561320757818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46131a760008884886129d0565b6131e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131dd906144d8565b60405180910390fd5b81806131f190614a30565b92505080806131ff90614a30565b915050613136565b508060018190555061321c6000878588612d3e565b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082613254858461349d565b1490509392505050565b6060600e805461326d906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054613299906149cd565b80156132e65780601f106132bb576101008083540402835291602001916132e6565b820191906000526020600020905b8154815290600101906020018083116132c957829003601f168201915b5050505050905090565b60606000821415613338576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613498565b600082905060005b6000821461336a57808061335390614a30565b915050600a8261336391906147c0565b9150613340565b60008167ffffffffffffffff8111156133ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156133de5781602001600182028036833780820191505090505b5090505b60008514613491576001826133f7919061487f565b9150600a856134069190614a9d565b6030613412919061476a565b60f81b81838151811061344e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561348a91906147c0565b94506133e2565b8093505050505b919050565b60008082905060005b845181101561352d5760008582815181106134ea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905080831161350c576135058382613538565b9250613519565b6135168184613538565b92505b50808061352590614a30565b9150506134a6565b508091505092915050565b600082600052816020526040600020905092915050565b82805461355b906149cd565b90600052602060002090601f01602090048101928261357d57600085556135c4565b82601f1061359657803560ff19168380011785556135c4565b828001600101855582156135c4579182015b828111156135c35782358255916020019190600101906135a8565b5b5090506135d19190613695565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b82805461361b906149cd565b90600052602060002090601f01602090048101928261363d5760008555613684565b82601f1061365657805160ff1916838001178555613684565b82800160010185558215613684579182015b82811115613683578251825591602001919060010190613668565b5b5090506136919190613695565b5090565b5b808211156136ae576000816000905550600101613696565b5090565b60006136c56136c084614653565b61462e565b905080838252602082019050828560208602820111156136e457600080fd5b60005b8581101561371457816136fa88826137ee565b8452602084019350602083019250506001810190506136e7565b5050509392505050565b600061373161372c8461467f565b61462e565b90508281526020810184848401111561374957600080fd5b613754848285614961565b509392505050565b600061376f61376a846146b0565b61462e565b90508281526020810184848401111561378757600080fd5b613792848285614961565b509392505050565b6000813590506137a98161536e565b92915050565b600082601f8301126137c057600080fd5b81356137d08482602086016136b2565b91505092915050565b6000813590506137e881615385565b92915050565b6000813590506137fd8161539c565b92915050565b600081359050613812816153b3565b92915050565b600081519050613827816153b3565b92915050565b600082601f83011261383e57600080fd5b813561384e84826020860161371e565b91505092915050565b60008083601f84011261386957600080fd5b8235905067ffffffffffffffff81111561388257600080fd5b60208301915083600182028301111561389a57600080fd5b9250929050565b600082601f8301126138b257600080fd5b81356138c284826020860161375c565b91505092915050565b6000813590506138da816153ca565b92915050565b6000602082840312156138f257600080fd5b60006139008482850161379a565b91505092915050565b6000806040838503121561391c57600080fd5b600061392a8582860161379a565b925050602061393b8582860161379a565b9150509250929050565b60008060006060848603121561395a57600080fd5b60006139688682870161379a565b93505060206139798682870161379a565b925050604061398a868287016138cb565b9150509250925092565b600080600080608085870312156139aa57600080fd5b60006139b88782880161379a565b94505060206139c98782880161379a565b93505060406139da878288016138cb565b925050606085013567ffffffffffffffff8111156139f757600080fd5b613a038782880161382d565b91505092959194509250565b60008060408385031215613a2257600080fd5b6000613a308582860161379a565b9250506020613a41858286016137d9565b9150509250929050565b60008060408385031215613a5e57600080fd5b6000613a6c8582860161379a565b9250506020613a7d858286016138cb565b9150509250929050565b600060208284031215613a9957600080fd5b6000613aa7848285016137ee565b91505092915050565b600060208284031215613ac257600080fd5b6000613ad084828501613803565b91505092915050565b600060208284031215613aeb57600080fd5b6000613af984828501613818565b91505092915050565b60008060208385031215613b1557600080fd5b600083013567ffffffffffffffff811115613b2f57600080fd5b613b3b85828601613857565b92509250509250929050565b600060208284031215613b5957600080fd5b600082013567ffffffffffffffff811115613b7357600080fd5b613b7f848285016138a1565b91505092915050565b600060208284031215613b9a57600080fd5b6000613ba8848285016138cb565b91505092915050565b60008060408385031215613bc457600080fd5b6000613bd2858286016138cb565b925050602083013567ffffffffffffffff811115613bef57600080fd5b613bfb858286016137af565b9150509250929050565b613c0e816148b3565b82525050565b613c1d816148b3565b82525050565b613c34613c2f826148b3565b614a79565b82525050565b613c43816148c5565b82525050565b6000613c54826146e1565b613c5e81856146f7565b9350613c6e818560208601614970565b613c7781614b8a565b840191505092915050565b6000613c8d826146ec565b613c978185614708565b9350613ca7818560208601614970565b613cb081614b8a565b840191505092915050565b6000613cc6826146ec565b613cd08185614719565b9350613ce0818560208601614970565b80840191505092915050565b6000613cf9602283614708565b9150613d0482614ba8565b604082019050919050565b6000613d1c602683614708565b9150613d2782614bf7565b604082019050919050565b6000613d3f600b83614708565b9150613d4a82614c46565b602082019050919050565b6000613d62602a83614708565b9150613d6d82614c6f565b604082019050919050565b6000613d85601783614708565b9150613d9082614cbe565b602082019050919050565b6000613da8602383614708565b9150613db382614ce7565b604082019050919050565b6000613dcb602583614708565b9150613dd682614d36565b604082019050919050565b6000613dee603183614708565b9150613df982614d85565b604082019050919050565b6000613e11601e83614708565b9150613e1c82614dd4565b602082019050919050565b6000613e34601883614708565b9150613e3f82614dfd565b602082019050919050565b6000613e57603983614708565b9150613e6282614e26565b604082019050919050565b6000613e7a602b83614708565b9150613e8582614e75565b604082019050919050565b6000613e9d602683614708565b9150613ea882614ec4565b604082019050919050565b6000613ec0600583614719565b9150613ecb82614f13565b600582019050919050565b6000613ee3602083614708565b9150613eee82614f3c565b602082019050919050565b6000613f06602f83614708565b9150613f1182614f65565b604082019050919050565b6000613f29601a83614708565b9150613f3482614fb4565b602082019050919050565b6000613f4c603283614708565b9150613f5782614fdd565b604082019050919050565b6000613f6f602883614708565b9150613f7a8261502c565b604082019050919050565b6000613f92602283614708565b9150613f9d8261507b565b604082019050919050565b6000613fb5601883614708565b9150613fc0826150ca565b602082019050919050565b6000613fd8603383614708565b9150613fe3826150f3565b604082019050919050565b6000613ffb601d83614708565b915061400682615142565b602082019050919050565b600061401e602183614708565b91506140298261516b565b604082019050919050565b6000614041602c83614708565b915061404c826151ba565b604082019050919050565b6000614064601083614708565b915061406f82615209565b602082019050919050565b6000614087602e83614708565b915061409282615232565b604082019050919050565b60006140aa602f83614708565b91506140b582615281565b604082019050919050565b60006140cd602d83614708565b91506140d8826152d0565b604082019050919050565b60006140f0602283614708565b91506140fb8261531f565b604082019050919050565b60408201600082015161411c6000850182613c05565b50602082015161412f6020850182614144565b50505050565b61413e81614943565b82525050565b61414d8161494d565b82525050565b600061415f8284613c23565b60148201915081905092915050565b600061417a8285613cbb565b91506141868284613cbb565b91508190509392505050565b600061419e8284613cbb565b91506141a982613eb3565b915081905092915050565b60006020820190506141c96000830184613c14565b92915050565b60006080820190506141e46000830187613c14565b6141f16020830186613c14565b6141fe6040830185614135565b81810360608301526142108184613c49565b905095945050505050565b60006020820190506142306000830184613c3a565b92915050565b600060208201905081810360008301526142508184613c82565b905092915050565b6000602082019050818103600083015261427181613cec565b9050919050565b6000602082019050818103600083015261429181613d0f565b9050919050565b600060208201905081810360008301526142b181613d32565b9050919050565b600060208201905081810360008301526142d181613d55565b9050919050565b600060208201905081810360008301526142f181613d78565b9050919050565b6000602082019050818103600083015261431181613d9b565b9050919050565b6000602082019050818103600083015261433181613dbe565b9050919050565b6000602082019050818103600083015261435181613de1565b9050919050565b6000602082019050818103600083015261437181613e04565b9050919050565b6000602082019050818103600083015261439181613e27565b9050919050565b600060208201905081810360008301526143b181613e4a565b9050919050565b600060208201905081810360008301526143d181613e6d565b9050919050565b600060208201905081810360008301526143f181613e90565b9050919050565b6000602082019050818103600083015261441181613ed6565b9050919050565b6000602082019050818103600083015261443181613ef9565b9050919050565b6000602082019050818103600083015261445181613f1c565b9050919050565b6000602082019050818103600083015261447181613f3f565b9050919050565b6000602082019050818103600083015261449181613f62565b9050919050565b600060208201905081810360008301526144b181613f85565b9050919050565b600060208201905081810360008301526144d181613fa8565b9050919050565b600060208201905081810360008301526144f181613fcb565b9050919050565b6000602082019050818103600083015261451181613fee565b9050919050565b6000602082019050818103600083015261453181614011565b9050919050565b6000602082019050818103600083015261455181614034565b9050919050565b6000602082019050818103600083015261457181614057565b9050919050565b600060208201905081810360008301526145918161407a565b9050919050565b600060208201905081810360008301526145b18161409d565b9050919050565b600060208201905081810360008301526145d1816140c0565b9050919050565b600060208201905081810360008301526145f1816140e3565b9050919050565b600060408201905061460d6000830184614106565b92915050565b60006020820190506146286000830184614135565b92915050565b6000614638614649565b905061464482826149ff565b919050565b6000604051905090565b600067ffffffffffffffff82111561466e5761466d614b5b565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561469a57614699614b5b565b5b6146a382614b8a565b9050602081019050919050565b600067ffffffffffffffff8211156146cb576146ca614b5b565b5b6146d482614b8a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061472f82614907565b915061473a83614907565b9250826fffffffffffffffffffffffffffffffff0382111561475f5761475e614ace565b5b828201905092915050565b600061477582614943565b915061478083614943565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156147b5576147b4614ace565b5b828201905092915050565b60006147cb82614943565b91506147d683614943565b9250826147e6576147e5614afd565b5b828204905092915050565b60006147fc82614943565b915061480783614943565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148405761483f614ace565b5b828202905092915050565b600061485682614907565b915061486183614907565b92508282101561487457614873614ace565b5b828203905092915050565b600061488a82614943565b915061489583614943565b9250828210156148a8576148a7614ace565b5b828203905092915050565b60006148be82614923565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561498e578082015181840152602081019050614973565b8381111561499d576000848401525b50505050565b60006149ae82614943565b915060008214156149c2576149c1614ace565b5b600182039050919050565b600060028204905060018216806149e557607f821691505b602082108114156149f9576149f8614b2c565b5b50919050565b614a0882614b8a565b810181811067ffffffffffffffff82111715614a2757614a26614b5b565b5b80604052505050565b6000614a3b82614943565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614a6e57614a6d614ace565b5b600182019050919050565b6000614a8482614a8b565b9050919050565b6000614a9682614b9b565b9050919050565b6000614aa882614943565b9150614ab383614943565b925082614ac357614ac2614afd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f494e56414c49445f455448000000000000000000000000000000000000000000600082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f414444524553535f4e4f545f57484954454c4953544544000000000000000000600082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f5045525f57414c4c45545f4c494d49545f524541434845440000000000000000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f4d494e545f44455349524560008201527f445f414d4f554e54000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f53414c455f4841535f4e4f545f535441525445445f5945540000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f47495645415741595f444560008201527f53495245445f414d4f554e540000000000000000000000000000000000000000602082015250565b7f494e56414c49445f5155414e5449545900000000000000000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b615377816148b3565b811461538257600080fd5b50565b61538e816148c5565b811461539957600080fd5b50565b6153a5816148d1565b81146153b057600080fd5b50565b6153bc816148db565b81146153c757600080fd5b50565b6153d381614943565b81146153de57600080fd5b5056fea264697066735822122091e48946d4ce9b9cd6491225725f4485bd6e256e4942e44ce9f5b0d36559c1e764736f6c63430008040033697066733a2f2f516d58446e6741526a5a595141565135513850675268654e72776e37526553777645524248576672624d477071672f0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000164465657020426c7520466f756e6465727320506173730000000000000000000000000000000000000000000000000000000000000000000000000000000000024442000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061023b5760003560e01c8063880846051161012e578063ba41b0c6116100ab578063dc33e6811161006f578063dc33e6811461082c578063e985e9c514610869578063f1d5f517146108a6578063f2c4ce1e146108cf578063f2fde38b146108f85761023b565b8063ba41b0c614610754578063c87b56dd14610770578063ca69e323146107ad578063d7224ba0146107d8578063dab5f340146108035761023b565b806395d89b41116100f257806395d89b4114610695578063a035b1fe146106c0578063a22cb465146106eb578063a475b5dd14610714578063b88d4fde1461072b5761023b565b806388084605146105c45780638ba4cc3c146105db5780638da5cb5b1461060457806391b7f5ed1461062f5780639231ab2a146106585761023b565b806333bc1c5c116101bc57806355f804b31161018057806355f804b3146104df5780636352211e14610508578063639814e01461054557806370a0823114610570578063715018a6146105ad5761023b565b806333bc1c5c1461040c5780633ccfd60b1461043757806342842e0e1461044e5780634f6ccce71461047757806351830227146104b45761023b565b80630f5d66ad116102035780630f5d66ad1461033957806318160ddd1461035057806323b872dd1461037b5780632f745c59146103a457806331ffd6f1146103e15761023b565b806301ffc9a71461024057806306fdde031461027d578063081812fc146102a8578063081c8c44146102e5578063095ea7b314610310575b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613ab0565b610921565b604051610274919061421b565b60405180910390f35b34801561028957600080fd5b50610292610a6b565b60405161029f9190614236565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190613b88565b610afd565b6040516102dc91906141b4565b60405180910390f35b3480156102f157600080fd5b506102fa610b82565b6040516103079190614236565b60405180910390f35b34801561031c57600080fd5b5061033760048036038101906103329190613a4b565b610c10565b005b34801561034557600080fd5b5061034e610d29565b005b34801561035c57600080fd5b50610365610dd1565b6040516103729190614613565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190613945565b610ddb565b005b3480156103b057600080fd5b506103cb60048036038101906103c69190613a4b565b610deb565b6040516103d89190614613565b60405180910390f35b3480156103ed57600080fd5b506103f6610fe9565b604051610403919061421b565b60405180910390f35b34801561041857600080fd5b50610421610ffc565b60405161042e919061421b565b60405180910390f35b34801561044357600080fd5b5061044c61100f565b005b34801561045a57600080fd5b5061047560048036038101906104709190613945565b6110d4565b005b34801561048357600080fd5b5061049e60048036038101906104999190613b88565b6110f4565b6040516104ab9190614613565b60405180910390f35b3480156104c057600080fd5b506104c9611147565b6040516104d6919061421b565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613b02565b61115a565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613b88565b6111ec565b60405161053c91906141b4565b60405180910390f35b34801561055157600080fd5b5061055a611202565b6040516105679190614613565b60405180910390f35b34801561057c57600080fd5b50610597600480360381019061059291906138e0565b611208565b6040516105a49190614613565b60405180910390f35b3480156105b957600080fd5b506105c26112f1565b005b3480156105d057600080fd5b506105d9611379565b005b3480156105e757600080fd5b5061060260048036038101906105fd9190613a4b565b611421565b005b34801561061057600080fd5b50610619611502565b60405161062691906141b4565b60405180910390f35b34801561063b57600080fd5b5061065660048036038101906106519190613b88565b61152b565b005b34801561066457600080fd5b5061067f600480360381019061067a9190613b88565b6115b1565b60405161068c91906145f8565b60405180910390f35b3480156106a157600080fd5b506106aa6115c9565b6040516106b79190614236565b60405180910390f35b3480156106cc57600080fd5b506106d561165b565b6040516106e29190614613565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d9190613a0f565b611661565b005b34801561072057600080fd5b506107296117e2565b005b34801561073757600080fd5b50610752600480360381019061074d9190613994565b61188a565b005b61076e60048036038101906107699190613bb1565b6118e6565b005b34801561077c57600080fd5b5061079760048036038101906107929190613b88565b611b67565b6040516107a49190614236565b60405180910390f35b3480156107b957600080fd5b506107c2611cb4565b6040516107cf9190614613565b60405180910390f35b3480156107e457600080fd5b506107ed611cba565b6040516107fa9190614613565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190613a87565b611cc0565b005b34801561083857600080fd5b50610853600480360381019061084e91906138e0565b611d46565b6040516108609190614613565b60405180910390f35b34801561087557600080fd5b50610890600480360381019061088b9190613909565b611d58565b60405161089d919061421b565b60405180910390f35b3480156108b257600080fd5b506108cd60048036038101906108c89190613b88565b611dec565b005b3480156108db57600080fd5b506108f660048036038101906108f19190613b47565b611e72565b005b34801561090457600080fd5b5061091f600480360381019061091a91906138e0565b611f08565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ec57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a5457507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a645750610a6382612000565b5b9050919050565b606060028054610a7a906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa6906149cd565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b5050505050905090565b6000610b088261206a565b610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e906145b8565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600f8054610b8f906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbb906149cd565b8015610c085780601f10610bdd57610100808354040283529160200191610c08565b820191906000526020600020905b815481529060010190602001808311610beb57829003601f168201915b505050505081565b6000610c1b826111ec565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390614498565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610cab612078565b73ffffffffffffffffffffffffffffffffffffffff161480610cda5750610cd981610cd4612078565b611d58565b5b610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090614398565b60405180910390fd5b610d24838383612080565b505050565b610d31612078565b73ffffffffffffffffffffffffffffffffffffffff16610d4f611502565b73ffffffffffffffffffffffffffffffffffffffff1614610da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9c906143f8565b60405180910390fd5b600a60019054906101000a900460ff1615600a60016101000a81548160ff021916908315150217905550565b6000600154905090565b610de6838383612132565b505050565b6000610df683611208565b8210610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90614258565b60405180910390fd5b6000610e41610dd1565b905060008060005b83811015610fa7576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610f3b57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f935786841415610f84578195505050505050610fe3565b8380610f8f90614a30565b9450505b508080610f9f90614a30565b915050610e49565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda90614578565b60405180910390fd5b92915050565b600a60019054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b611017612078565b73ffffffffffffffffffffffffffffffffffffffff16611035611502565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906143f8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156110d1573d6000803e3d6000fd5b50565b6110ef8383836040518060200160405280600081525061188a565b505050565b60006110fe610dd1565b821061113f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611136906142f8565b60405180910390fd5b819050919050565b600a60029054906101000a900460ff1681565b611162612078565b73ffffffffffffffffffffffffffffffffffffffff16611180611502565b73ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd906143f8565b60405180910390fd5b8181600e91906111e792919061354f565b505050565b60006111f7826126eb565b600001519050919050565b600b5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611279576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611270906143b8565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b6112f9612078565b73ffffffffffffffffffffffffffffffffffffffff16611317611502565b73ffffffffffffffffffffffffffffffffffffffff161461136d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611364906143f8565b60405180910390fd5b61137760006128ee565b565b611381612078565b73ffffffffffffffffffffffffffffffffffffffff1661139f611502565b73ffffffffffffffffffffffffffffffffffffffff16146113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906143f8565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b611429612078565b73ffffffffffffffffffffffffffffffffffffffff16611447611502565b73ffffffffffffffffffffffffffffffffffffffff161461149d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611494906143f8565b60405180910390fd5b600c54816114a9610dd1565b6114b3919061476a565b11156114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114eb90614538565b60405180910390fd5b6114fe82826129b2565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611533612078565b73ffffffffffffffffffffffffffffffffffffffff16611551611502565b73ffffffffffffffffffffffffffffffffffffffff16146115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e906143f8565b60405180910390fd5b80600d8190555050565b6115b96135d5565b6115c2826126eb565b9050919050565b6060600380546115d8906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054611604906149cd565b80156116515780601f1061162657610100808354040283529160200191611651565b820191906000526020600020905b81548152906001019060200180831161163457829003601f168201915b5050505050905090565b600d5481565b611669612078565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90614438565b60405180910390fd5b80600760006116e4612078565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611791612078565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117d6919061421b565b60405180910390a35050565b6117ea612078565b73ffffffffffffffffffffffffffffffffffffffff16611808611502565b73ffffffffffffffffffffffffffffffffffffffff161461185e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611855906143f8565b60405180910390fd5b600a60029054906101000a900460ff1615600a60026101000a81548160ff021916908315150217905550565b611895848484612132565b6118a1848484846129d0565b6118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906144d8565b60405180910390fd5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194b90614358565b60405180910390fd5b600a60019054906101000a900460ff168061197b5750600a60009054906101000a900460ff165b6119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b1906144b8565b60405180910390fd5b600082116119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490614558565b60405180910390fd5b600b5482611a0a33611d46565b611a14919061476a565b1115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90614378565b60405180910390fd5b600c5482611a61610dd1565b611a6b919061476a565b10611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa290614478565b60405180910390fd5b600a60019054906101000a900460ff1615611b0957611ac981612b67565b611b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aff906142d8565b60405180910390fd5b5b81600d54611b1791906147f1565b341015611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090614298565b60405180910390fd5b611b6333836129b2565b5050565b6060611b728261206a565b611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba890614418565b60405180910390fd5b60001515600a60029054906101000a900460ff1615151415611c5f57600f8054611bda906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054611c06906149cd565b8015611c535780601f10611c2857610100808354040283529160200191611c53565b820191906000526020600020905b815481529060010190602001808311611c3657829003601f168201915b50505050509050611caf565b6000611c6a83612ba8565b90506000815111611c8a5760405180602001604052806000815250611cab565b80604051602001611c9b9190614192565b6040516020818303038152906040525b9150505b919050565b600c5481565b60085481565b611cc8612078565b73ffffffffffffffffffffffffffffffffffffffff16611ce6611502565b73ffffffffffffffffffffffffffffffffffffffff1614611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d33906143f8565b60405180910390fd5b8060108190555050565b6000611d5182612c4f565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611df4612078565b73ffffffffffffffffffffffffffffffffffffffff16611e12611502565b73ffffffffffffffffffffffffffffffffffffffff1614611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f906143f8565b60405180910390fd5b80600b8190555050565b611e7a612078565b73ffffffffffffffffffffffffffffffffffffffff16611e98611502565b73ffffffffffffffffffffffffffffffffffffffff1614611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee5906143f8565b60405180910390fd5b80600f9080519060200190611f0492919061360f565b5050565b611f10612078565b73ffffffffffffffffffffffffffffffffffffffff16611f2e611502565b73ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906143f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb90614278565b60405180910390fd5b611ffd816128ee565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600060015482109050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061213d826126eb565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16612164612078565b73ffffffffffffffffffffffffffffffffffffffff1614806121c05750612189612078565b73ffffffffffffffffffffffffffffffffffffffff166121a884610afd565b73ffffffffffffffffffffffffffffffffffffffff16145b806121dc57506121db82600001516121d6612078565b611d58565b5b90508061221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590614458565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614612290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612287906143d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f790614318565b60405180910390fd5b61230d8585856001612d38565b61231d6000848460000151612080565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661238b919061484b565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661242f9190614724565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050506000600184612535919061476a565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561267b576125ab8161206a565b1561267a576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126e38686866001612d3e565b505050505050565b6126f36135d5565b6126fc8261206a565b61273b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612732906142b8565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000fa831061279f5760017f00000000000000000000000000000000000000000000000000000000000000fa84612792919061487f565b61279c919061476a565b90505b60008390505b8181106128ad576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614612899578093505050506128e9565b5080806128a5906149a3565b9150506127a5565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e090614598565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6129cc828260405180602001604052806000815250612d44565b5050565b60006129f18473ffffffffffffffffffffffffffffffffffffffff16613224565b15612b5a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612a1a612078565b8786866040518563ffffffff1660e01b8152600401612a3c94939291906141cf565b602060405180830381600087803b158015612a5657600080fd5b505af1925050508015612a8757506040513d601f19601f82011682018060405250810190612a849190613ad9565b60015b612b0a573d8060008114612ab7576040519150601f19603f3d011682016040523d82523d6000602084013e612abc565b606091505b50600081511415612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af9906144d8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612b5f565b600190505b949350505050565b60008033604051602001612b7b9190614153565b604051602081830303815290604052805190602001209050612ba08360105483613247565b915050919050565b6060612bb38261206a565b612bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be990614418565b60405180910390fd5b6000612bfc61325e565b90506000815111612c1c5760405180602001604052806000815250612c47565b80612c26846132f0565b604051602001612c3792919061416e565b6040516020818303038152906040525b915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb790614338565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b50505050565b50505050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db290614518565b60405180910390fd5b612dc48161206a565b15612e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfb906144f8565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000fa831115612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e906145d8565b60405180910390fd5b612e746000858386612d38565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506040518060400160405280858360000151612f719190614724565b6fffffffffffffffffffffffffffffffff168152602001858360200151612f989190614724565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b8581101561320757818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46131a760008884886129d0565b6131e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131dd906144d8565b60405180910390fd5b81806131f190614a30565b92505080806131ff90614a30565b915050613136565b508060018190555061321c6000878588612d3e565b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082613254858461349d565b1490509392505050565b6060600e805461326d906149cd565b80601f0160208091040260200160405190810160405280929190818152602001828054613299906149cd565b80156132e65780601f106132bb576101008083540402835291602001916132e6565b820191906000526020600020905b8154815290600101906020018083116132c957829003601f168201915b5050505050905090565b60606000821415613338576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613498565b600082905060005b6000821461336a57808061335390614a30565b915050600a8261336391906147c0565b9150613340565b60008167ffffffffffffffff8111156133ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156133de5781602001600182028036833780820191505090505b5090505b60008514613491576001826133f7919061487f565b9150600a856134069190614a9d565b6030613412919061476a565b60f81b81838151811061344e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561348a91906147c0565b94506133e2565b8093505050505b919050565b60008082905060005b845181101561352d5760008582815181106134ea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905080831161350c576135058382613538565b9250613519565b6135168184613538565b92505b50808061352590614a30565b9150506134a6565b508091505092915050565b600082600052816020526040600020905092915050565b82805461355b906149cd565b90600052602060002090601f01602090048101928261357d57600085556135c4565b82601f1061359657803560ff19168380011785556135c4565b828001600101855582156135c4579182015b828111156135c35782358255916020019190600101906135a8565b5b5090506135d19190613695565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b82805461361b906149cd565b90600052602060002090601f01602090048101928261363d5760008555613684565b82601f1061365657805160ff1916838001178555613684565b82800160010185558215613684579182015b82811115613683578251825591602001919060010190613668565b5b5090506136919190613695565b5090565b5b808211156136ae576000816000905550600101613696565b5090565b60006136c56136c084614653565b61462e565b905080838252602082019050828560208602820111156136e457600080fd5b60005b8581101561371457816136fa88826137ee565b8452602084019350602083019250506001810190506136e7565b5050509392505050565b600061373161372c8461467f565b61462e565b90508281526020810184848401111561374957600080fd5b613754848285614961565b509392505050565b600061376f61376a846146b0565b61462e565b90508281526020810184848401111561378757600080fd5b613792848285614961565b509392505050565b6000813590506137a98161536e565b92915050565b600082601f8301126137c057600080fd5b81356137d08482602086016136b2565b91505092915050565b6000813590506137e881615385565b92915050565b6000813590506137fd8161539c565b92915050565b600081359050613812816153b3565b92915050565b600081519050613827816153b3565b92915050565b600082601f83011261383e57600080fd5b813561384e84826020860161371e565b91505092915050565b60008083601f84011261386957600080fd5b8235905067ffffffffffffffff81111561388257600080fd5b60208301915083600182028301111561389a57600080fd5b9250929050565b600082601f8301126138b257600080fd5b81356138c284826020860161375c565b91505092915050565b6000813590506138da816153ca565b92915050565b6000602082840312156138f257600080fd5b60006139008482850161379a565b91505092915050565b6000806040838503121561391c57600080fd5b600061392a8582860161379a565b925050602061393b8582860161379a565b9150509250929050565b60008060006060848603121561395a57600080fd5b60006139688682870161379a565b93505060206139798682870161379a565b925050604061398a868287016138cb565b9150509250925092565b600080600080608085870312156139aa57600080fd5b60006139b88782880161379a565b94505060206139c98782880161379a565b93505060406139da878288016138cb565b925050606085013567ffffffffffffffff8111156139f757600080fd5b613a038782880161382d565b91505092959194509250565b60008060408385031215613a2257600080fd5b6000613a308582860161379a565b9250506020613a41858286016137d9565b9150509250929050565b60008060408385031215613a5e57600080fd5b6000613a6c8582860161379a565b9250506020613a7d858286016138cb565b9150509250929050565b600060208284031215613a9957600080fd5b6000613aa7848285016137ee565b91505092915050565b600060208284031215613ac257600080fd5b6000613ad084828501613803565b91505092915050565b600060208284031215613aeb57600080fd5b6000613af984828501613818565b91505092915050565b60008060208385031215613b1557600080fd5b600083013567ffffffffffffffff811115613b2f57600080fd5b613b3b85828601613857565b92509250509250929050565b600060208284031215613b5957600080fd5b600082013567ffffffffffffffff811115613b7357600080fd5b613b7f848285016138a1565b91505092915050565b600060208284031215613b9a57600080fd5b6000613ba8848285016138cb565b91505092915050565b60008060408385031215613bc457600080fd5b6000613bd2858286016138cb565b925050602083013567ffffffffffffffff811115613bef57600080fd5b613bfb858286016137af565b9150509250929050565b613c0e816148b3565b82525050565b613c1d816148b3565b82525050565b613c34613c2f826148b3565b614a79565b82525050565b613c43816148c5565b82525050565b6000613c54826146e1565b613c5e81856146f7565b9350613c6e818560208601614970565b613c7781614b8a565b840191505092915050565b6000613c8d826146ec565b613c978185614708565b9350613ca7818560208601614970565b613cb081614b8a565b840191505092915050565b6000613cc6826146ec565b613cd08185614719565b9350613ce0818560208601614970565b80840191505092915050565b6000613cf9602283614708565b9150613d0482614ba8565b604082019050919050565b6000613d1c602683614708565b9150613d2782614bf7565b604082019050919050565b6000613d3f600b83614708565b9150613d4a82614c46565b602082019050919050565b6000613d62602a83614708565b9150613d6d82614c6f565b604082019050919050565b6000613d85601783614708565b9150613d9082614cbe565b602082019050919050565b6000613da8602383614708565b9150613db382614ce7565b604082019050919050565b6000613dcb602583614708565b9150613dd682614d36565b604082019050919050565b6000613dee603183614708565b9150613df982614d85565b604082019050919050565b6000613e11601e83614708565b9150613e1c82614dd4565b602082019050919050565b6000613e34601883614708565b9150613e3f82614dfd565b602082019050919050565b6000613e57603983614708565b9150613e6282614e26565b604082019050919050565b6000613e7a602b83614708565b9150613e8582614e75565b604082019050919050565b6000613e9d602683614708565b9150613ea882614ec4565b604082019050919050565b6000613ec0600583614719565b9150613ecb82614f13565b600582019050919050565b6000613ee3602083614708565b9150613eee82614f3c565b602082019050919050565b6000613f06602f83614708565b9150613f1182614f65565b604082019050919050565b6000613f29601a83614708565b9150613f3482614fb4565b602082019050919050565b6000613f4c603283614708565b9150613f5782614fdd565b604082019050919050565b6000613f6f602883614708565b9150613f7a8261502c565b604082019050919050565b6000613f92602283614708565b9150613f9d8261507b565b604082019050919050565b6000613fb5601883614708565b9150613fc0826150ca565b602082019050919050565b6000613fd8603383614708565b9150613fe3826150f3565b604082019050919050565b6000613ffb601d83614708565b915061400682615142565b602082019050919050565b600061401e602183614708565b91506140298261516b565b604082019050919050565b6000614041602c83614708565b915061404c826151ba565b604082019050919050565b6000614064601083614708565b915061406f82615209565b602082019050919050565b6000614087602e83614708565b915061409282615232565b604082019050919050565b60006140aa602f83614708565b91506140b582615281565b604082019050919050565b60006140cd602d83614708565b91506140d8826152d0565b604082019050919050565b60006140f0602283614708565b91506140fb8261531f565b604082019050919050565b60408201600082015161411c6000850182613c05565b50602082015161412f6020850182614144565b50505050565b61413e81614943565b82525050565b61414d8161494d565b82525050565b600061415f8284613c23565b60148201915081905092915050565b600061417a8285613cbb565b91506141868284613cbb565b91508190509392505050565b600061419e8284613cbb565b91506141a982613eb3565b915081905092915050565b60006020820190506141c96000830184613c14565b92915050565b60006080820190506141e46000830187613c14565b6141f16020830186613c14565b6141fe6040830185614135565b81810360608301526142108184613c49565b905095945050505050565b60006020820190506142306000830184613c3a565b92915050565b600060208201905081810360008301526142508184613c82565b905092915050565b6000602082019050818103600083015261427181613cec565b9050919050565b6000602082019050818103600083015261429181613d0f565b9050919050565b600060208201905081810360008301526142b181613d32565b9050919050565b600060208201905081810360008301526142d181613d55565b9050919050565b600060208201905081810360008301526142f181613d78565b9050919050565b6000602082019050818103600083015261431181613d9b565b9050919050565b6000602082019050818103600083015261433181613dbe565b9050919050565b6000602082019050818103600083015261435181613de1565b9050919050565b6000602082019050818103600083015261437181613e04565b9050919050565b6000602082019050818103600083015261439181613e27565b9050919050565b600060208201905081810360008301526143b181613e4a565b9050919050565b600060208201905081810360008301526143d181613e6d565b9050919050565b600060208201905081810360008301526143f181613e90565b9050919050565b6000602082019050818103600083015261441181613ed6565b9050919050565b6000602082019050818103600083015261443181613ef9565b9050919050565b6000602082019050818103600083015261445181613f1c565b9050919050565b6000602082019050818103600083015261447181613f3f565b9050919050565b6000602082019050818103600083015261449181613f62565b9050919050565b600060208201905081810360008301526144b181613f85565b9050919050565b600060208201905081810360008301526144d181613fa8565b9050919050565b600060208201905081810360008301526144f181613fcb565b9050919050565b6000602082019050818103600083015261451181613fee565b9050919050565b6000602082019050818103600083015261453181614011565b9050919050565b6000602082019050818103600083015261455181614034565b9050919050565b6000602082019050818103600083015261457181614057565b9050919050565b600060208201905081810360008301526145918161407a565b9050919050565b600060208201905081810360008301526145b18161409d565b9050919050565b600060208201905081810360008301526145d1816140c0565b9050919050565b600060208201905081810360008301526145f1816140e3565b9050919050565b600060408201905061460d6000830184614106565b92915050565b60006020820190506146286000830184614135565b92915050565b6000614638614649565b905061464482826149ff565b919050565b6000604051905090565b600067ffffffffffffffff82111561466e5761466d614b5b565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561469a57614699614b5b565b5b6146a382614b8a565b9050602081019050919050565b600067ffffffffffffffff8211156146cb576146ca614b5b565b5b6146d482614b8a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061472f82614907565b915061473a83614907565b9250826fffffffffffffffffffffffffffffffff0382111561475f5761475e614ace565b5b828201905092915050565b600061477582614943565b915061478083614943565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156147b5576147b4614ace565b5b828201905092915050565b60006147cb82614943565b91506147d683614943565b9250826147e6576147e5614afd565b5b828204905092915050565b60006147fc82614943565b915061480783614943565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148405761483f614ace565b5b828202905092915050565b600061485682614907565b915061486183614907565b92508282101561487457614873614ace565b5b828203905092915050565b600061488a82614943565b915061489583614943565b9250828210156148a8576148a7614ace565b5b828203905092915050565b60006148be82614923565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561498e578082015181840152602081019050614973565b8381111561499d576000848401525b50505050565b60006149ae82614943565b915060008214156149c2576149c1614ace565b5b600182039050919050565b600060028204905060018216806149e557607f821691505b602082108114156149f9576149f8614b2c565b5b50919050565b614a0882614b8a565b810181811067ffffffffffffffff82111715614a2757614a26614b5b565b5b80604052505050565b6000614a3b82614943565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614a6e57614a6d614ace565b5b600182019050919050565b6000614a8482614a8b565b9050919050565b6000614a9682614b9b565b9050919050565b6000614aa882614943565b9150614ab383614943565b925082614ac357614ac2614afd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f494e56414c49445f455448000000000000000000000000000000000000000000600082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f414444524553535f4e4f545f57484954454c4953544544000000000000000000600082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f5045525f57414c4c45545f4c494d49545f524541434845440000000000000000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f4d494e545f44455349524560008201527f445f414d4f554e54000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f53414c455f4841535f4e4f545f535441525445445f5945540000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e4f545f454e4f5547485f535550504c595f544f5f47495645415741595f444560008201527f53495245445f414d4f554e540000000000000000000000000000000000000000602082015250565b7f494e56414c49445f5155414e5449545900000000000000000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b615377816148b3565b811461538257600080fd5b50565b61538e816148c5565b811461539957600080fd5b50565b6153a5816148d1565b81146153b057600080fd5b50565b6153bc816148db565b81146153c757600080fd5b50565b6153d381614943565b81146153de57600080fd5b5056fea264697066735822122091e48946d4ce9b9cd6491225725f4485bd6e256e4942e44ce9f5b0d36559c1e764736f6c63430008040033

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

0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000164465657020426c7520466f756e6465727320506173730000000000000000000000000000000000000000000000000000000000000000000000000000000000024442000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _NAME (string): Deep Blu Founders Pass
Arg [1] : _SYMBOL (string): DB

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000016
Arg [3] : 4465657020426c7520466f756e64657273205061737300000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 4442000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

24012:3544:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12922:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14708:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15917:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24342:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15498:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27005:97;;;;;;;;;;;;;:::i;:::-;;11712:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16752:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12052:864;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24112:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24075:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27444:109;;;;;;;;;;;;;:::i;:::-;;16920:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11818:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24152:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27110:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14578:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24189:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13350:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7033:94;;;;;;;;;;;;;:::i;:::-;;26909:88;;;;;;;;;;;;;:::i;:::-;;26237:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6814:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26591:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24819:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14814:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24265:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16215:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27360:76;;;;;;;;;;;;;:::i;:::-;;17103:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25600:629;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24962:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24228:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20724:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26819:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24698:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16532:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26695:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27224:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7133:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12922:422;13069:4;13126:25;13111:40;;;:11;:40;;;;:105;;;;13183:33;13168:48;;;:11;:48;;;;13111:105;:172;;;;13248:35;13233:50;;;:11;:50;;;;13111:172;:225;;;;13300:36;13324:11;13300:23;:36::i;:::-;13111:225;13091:245;;12922:422;;;:::o;14708:100::-;14762:13;14795:5;14788:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14708:100;:::o;15917:292::-;16021:7;16068:16;16076:7;16068;:16::i;:::-;16046:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;16177:15;:24;16193:7;16177:24;;;;;;;;;;;;;;;;;;;;;16170:31;;15917:292;;;:::o;24342:87::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15498:413::-;15571:13;15587:24;15603:7;15587:15;:24::i;:::-;15571:40;;15636:5;15630:11;;:2;:11;;;;15622:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15731:5;15715:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;15740:37;15757:5;15764:12;:10;:12::i;:::-;15740:16;:37::i;:::-;15715:62;15693:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;15875:28;15884:2;15888:7;15897:5;15875:8;:28::i;:::-;15498:413;;;:::o;27005:97::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27081:13:::1;;;;;;;;;;;27080:14;27064:13;;:30;;;;;;;;;;;;;;;;;;27005:97::o:0;11712:100::-;11765:7;11792:12;;11785:19;;11712:100;:::o;16752:162::-;16878:28;16888:4;16894:2;16898:7;16878:9;:28::i;:::-;16752:162;;;:::o;12052:864::-;12177:7;12218:16;12228:5;12218:9;:16::i;:::-;12210:5;:24;12202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12284:22;12309:13;:11;:13::i;:::-;12284:38;;12333:19;12367:25;12421:9;12416:426;12440:14;12436:1;:18;12416:426;;;12476:31;12510:11;:14;12522:1;12510:14;;;;;;;;;;;12476:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12569:1;12543:28;;:9;:14;;;:28;;;12539:103;;12612:9;:14;;;12592:34;;12539:103;12681:5;12660:26;;:17;:26;;;12656:175;;;12726:5;12711:11;:20;12707:77;;;12763:1;12756:8;;;;;;;;;12707:77;12802:13;;;;;:::i;:::-;;;;12656:175;12416:426;12456:3;;;;;:::i;:::-;;;;12416:426;;;;12852:56;;;;;;;;;;:::i;:::-;;;;;;;;12052:864;;;;;:::o;24112:33::-;;;;;;;;;;;;;:::o;24075:30::-;;;;;;;;;;;;;:::o;27444:109::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27502:10:::1;27494:28;;:51;27523:21;27494:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;27444:109::o:0;16920:177::-;17050:39;17067:4;17073:2;17077:7;17050:39;;;;;;;;;;;;:16;:39::i;:::-;16920:177;;;:::o;11818:228::-;11921:7;11962:13;:11;:13::i;:::-;11954:5;:21;11946:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12033:5;12026:12;;11818:228;;;:::o;24152:28::-;;;;;;;;;;;;;:::o;27110:106::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27201:7:::1;;27185:13;:23;;;;;;;:::i;:::-;;27110:106:::0;;:::o;14578:124::-;14642:7;14669:20;14681:7;14669:11;:20::i;:::-;:25;;;14662:32;;14578:124;;;:::o;24189:32::-;;;;:::o;13350:258::-;13414:7;13473:1;13456:19;;:5;:19;;;;13434:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;13572:12;:19;13585:5;13572:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;13564:36;;13557:43;;13350:258;;;:::o;7033:94::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7098:21:::1;7116:1;7098:9;:21::i;:::-;7033:94::o:0;26909:88::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26979:10:::1;;;;;;;;;;;26978:11;26965:10;;:24;;;;;;;;;;;;;;;;;;26909:88::o:0;26237:224::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26356:8:::1;;26344;26328:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:36;;26320:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;26424:29;26434:8;26444;26424:9;:29::i;:::-;26237:224:::0;;:::o;6814:87::-;6860:7;6887:6;;;;;;;;;;;6880:13;;6814:87;:::o;26591:96::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26668:11:::1;26660:5;:19;;;;26591:96:::0;:::o;24819:135::-;24885:21;;:::i;:::-;24926:20;24938:7;24926:11;:20::i;:::-;24919:27;;24819:135;;;:::o;14814:104::-;14870:13;14903:7;14896:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14814:104;:::o;24265:33::-;;;;:::o;16215:311::-;16345:12;:10;:12::i;:::-;16333:24;;:8;:24;;;;16325:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16446:8;16401:18;:32;16420:12;:10;:12::i;:::-;16401:32;;;;;;;;;;;;;;;:42;16434:8;16401:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;16499:8;16470:48;;16485:12;:10;:12::i;:::-;16470:48;;;16509:8;16470:48;;;;;;:::i;:::-;;;;;;;;16215:311;;:::o;27360:76::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27420:8:::1;;;;;;;;;;;27419:9;27408:8;;:20;;;;;;;;;;;;;;;;;;27360:76::o:0;17103:355::-;17262:28;17272:4;17278:2;17282:7;17262:9;:28::i;:::-;17323:48;17346:4;17352:2;17356:7;17365:5;17323:22;:48::i;:::-;17301:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;17103:355;;;;:::o;25600:629::-;24625:10;24612:23;;:9;:23;;;24604:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;25705:13:::1;;;;;;;;;;;:27;;;;25722:10;;;;;;;;;;;25705:27;25697:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;25791:1;25780:8;:12;25772:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;25871:13;;25859:8;25832:24;25845:10;25832:12;:24::i;:::-;:35;;;;:::i;:::-;:52;;25824:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;25959:8;;25948;25932:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:35;25924:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;26026:13;;;;;;;;;;;26023:93;;;26063:13;26070:5;26063:6;:13::i;:::-;26055:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;26023:93;26155:8;26147:5;;:16;;;;:::i;:::-;26134:9;:29;;26126:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;26190:31;26200:10;26212:8;26190:9;:31::i;:::-;25600:629:::0;;:::o;24962:425::-;25035:13;25069:16;25077:7;25069;:16::i;:::-;25061:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;25166:5;25154:17;;:8;;;;;;;;;;;:17;;;25150:71;;;25195:14;25188:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25150:71;25233:23;25259;25274:7;25259:14;:23::i;:::-;25233:49;;25326:1;25306:9;25300:23;:27;:79;;;;;;;;;;;;;;;;;25354:9;25337:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;25300:79;25293:86;;;24962:425;;;;:::o;24228:30::-;;;;:::o;20724:43::-;;;;:::o;26819:82::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26888:5:::1;26881:4;:12;;;;26819:82:::0;:::o;24698:113::-;24756:7;24783:20;24797:5;24783:13;:20::i;:::-;24776:27;;24698:113;;;:::o;16532:214::-;16674:4;16703:18;:25;16722:5;16703:25;;;;;;;;;;;;;;;:35;16729:8;16703:35;;;;;;;;;;;;;;;;;;;;;;;;;16696:42;;16532:214;;;;:::o;26695:116::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26789:14:::1;26773:13;:30;;;;26695:116:::0;:::o;27224:128::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27329:15:::1;27312:14;:32;;;;;;;;;;;;:::i;:::-;;27224:128:::0;:::o;7133:229::-;6958:12;:10;:12::i;:::-;6947:23;;:7;:5;:7::i;:::-;:23;;;6939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7256:1:::1;7236:22;;:8;:22;;;;7214:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7335:19;7345:8;7335:9;:19::i;:::-;7133:229:::0;:::o;9225:207::-;9355:4;9399:25;9384:40;;;:11;:40;;;;9377:47;;9225:207;;;:::o;17464:111::-;17521:4;17555:12;;17545:7;:22;17538:29;;17464:111;;;:::o;6325:98::-;6378:7;6405:10;6398:17;;6325:98;:::o;20520:196::-;20662:2;20635:15;:24;20651:7;20635:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20700:7;20696:2;20680:28;;20689:5;20680:28;;;;;;;;;;;;20520:196;;;:::o;18974:1540::-;19089:35;19127:20;19139:7;19127:11;:20::i;:::-;19089:58;;19160:22;19202:13;:18;;;19186:34;;:12;:10;:12::i;:::-;:34;;;:87;;;;19261:12;:10;:12::i;:::-;19237:36;;:20;19249:7;19237:11;:20::i;:::-;:36;;;19186:87;:154;;;;19290:50;19307:13;:18;;;19327:12;:10;:12::i;:::-;19290:16;:50::i;:::-;19186:154;19160:181;;19376:17;19354:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;19528:4;19506:26;;:13;:18;;;:26;;;19484:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;19631:1;19617:16;;:2;:16;;;;19609:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19688:43;19710:4;19716:2;19720:7;19729:1;19688:21;:43::i;:::-;19742:49;19759:1;19763:7;19772:13;:18;;;19742:8;:49::i;:::-;19834:1;19804:12;:18;19817:4;19804:18;;;;;;;;;;;;;;;:26;;;:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19874:1;19846:12;:16;19859:2;19846:16;;;;;;;;;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19909:43;;;;;;;;19924:2;19909:43;;;;;;19935:15;19909:43;;;;;19886:11;:20;19898:7;19886:20;;;;;;;;;;;:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20077:19;20109:1;20099:7;:11;;;;:::i;:::-;20077:33;;20166:1;20125:43;;:11;:24;20137:11;20125:24;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;20121:288;;;20189:20;20197:11;20189:7;:20::i;:::-;20185:213;;;20257:125;;;;;;;;20294:13;:18;;;20257:125;;;;;;20335:13;:28;;;20257:125;;;;;20230:11;:24;20242:11;20230:24;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20185:213;20121:288;20445:7;20441:2;20426:27;;20435:4;20426:27;;;;;;;;;;;;20464:42;20485:4;20491:2;20495:7;20504:1;20464:20;:42::i;:::-;18974:1540;;;;;;:::o;13890:682::-;13978:21;;:::i;:::-;14025:16;14033:7;14025;:16::i;:::-;14017:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14101:26;14153:12;14142:7;:23;14138:103;;14228:1;14213:12;14203:7;:22;;;;:::i;:::-;:26;;;;:::i;:::-;14182:47;;14138:103;14258:12;14273:7;14258:22;;14253:242;14290:18;14282:4;:26;14253:242;;14333:31;14367:11;:17;14379:4;14367:17;;;;;;;;;;;14333:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14429:1;14403:28;;:9;:14;;;:28;;;14399:85;;14459:9;14452:16;;;;;;;14399:85;14253:242;14310:6;;;;;:::i;:::-;;;;14253:242;;;;14507:57;;;;;;;;;;:::i;:::-;;;;;;;;13890:682;;;;:::o;7370:173::-;7426:16;7445:6;;;;;;;;;;;7426:25;;7471:8;7462:6;;:17;;;;;;;;;;;;;;;;;;7526:8;7495:40;;7516:8;7495:40;;;;;;;;;;;;7370:173;;:::o;17583:104::-;17652:27;17662:2;17666:8;17652:27;;;;;;;;;;;;:9;:27::i;:::-;17583:104;;:::o;21625:985::-;21780:4;21801:15;:2;:13;;;:15::i;:::-;21797:806;;;21870:2;21854:36;;;21913:12;:10;:12::i;:::-;21948:4;21975:7;22005:5;21854:175;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;21833:715;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22233:1;22216:6;:13;:18;22212:321;;;22259:109;;;;;;;;;;:::i;:::-;;;;;;;;22212:321;22483:6;22477:13;22468:6;22464:2;22460:15;22453:38;21833:715;22103:45;;;22093:55;;;:6;:55;;;;22086:62;;;;;21797:806;22587:4;22580:11;;21625:985;;;;;;;:::o;25395:197::-;25458:4;25475:12;25517:10;25500:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;25490:39;;;;;;25475:54;;25547:37;25566:5;25573:4;;25579;25547:18;:37::i;:::-;25540:44;;;25395:197;;;:::o;14924:468::-;15042:13;15095:16;15103:7;15095;:16::i;:::-;15073:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;15199:21;15223:10;:8;:10::i;:::-;15199:34;;15288:1;15270:7;15264:21;:25;:120;;;;;;;;;;;;;;;;;15333:7;15342:18;:7;:16;:18::i;:::-;15316:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15264:120;15244:140;;;14924:468;;;:::o;13616:266::-;13677:7;13736:1;13719:19;;:5;:19;;;;13697:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;13841:12;:19;13854:5;13841:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;13833:41;;13826:48;;13616:266;;;:::o;22616:159::-;;;;;:::o;22781:158::-;;;;;:::o;17693:1275::-;17816:20;17839:12;;17816:35;;17884:1;17870:16;;:2;:16;;;;17862:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17944:21;17952:12;17944:7;:21::i;:::-;17943:22;17935:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18030:12;18018:8;:24;;18010:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18094:61;18124:1;18128:2;18132:12;18146:8;18094:21;:61::i;:::-;18168:30;18201:12;:16;18214:2;18201:16;;;;;;;;;;;;;;;18168:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18247:135;;;;;;;;18303:8;18273:11;:19;;;:39;;;;:::i;:::-;18247:135;;;;;;18362:8;18327:11;:24;;;:44;;;;:::i;:::-;18247:135;;;;;18228:12;:16;18241:2;18228:16;;;;;;;;;;;;;;;:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18421:43;;;;;;;;18436:2;18421:43;;;;;;18447:15;18421:43;;;;;18393:11;:25;18405:12;18393:25;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18477:20;18500:12;18477:35;;18530:9;18525:325;18549:8;18545:1;:12;18525:325;;;18609:12;18605:2;18584:38;;18601:1;18584:38;;;;;;;;;;;;18663:59;18694:1;18698:2;18702:12;18716:5;18663:22;:59::i;:::-;18637:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;18824:14;;;;;:::i;:::-;;;;18559:3;;;;;:::i;:::-;;;;18525:325;;;;18877:12;18862;:27;;;;18900:60;18929:1;18933:2;18937:12;18951:8;18900:20;:60::i;:::-;17693:1275;;;;;;:::o;2385:117::-;2445:4;2493:1;2471:7;:19;;;:23;2464:30;;2385:117;;;:::o;22996:190::-;23121:4;23174;23145:25;23158:5;23165:4;23145:12;:25::i;:::-;:33;23138:40;;22996:190;;;;;:::o;26469:114::-;26529:13;26562;26555:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26469:114;:::o;7661:656::-;7717:13;7880:1;7871:5;:10;7867:53;;;7898:10;;;;;;;;;;;;;;;;;;;;;7867:53;7930:12;7945:5;7930:20;;7961:14;7986:78;8001:1;7993:4;:9;7986:78;;8019:8;;;;;:::i;:::-;;;;8050:2;8042:10;;;;;:::i;:::-;;;7986:78;;;8074:19;8106:6;8096:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8074:39;;8124:154;8140:1;8131:5;:10;8124:154;;8168:1;8158:11;;;;;:::i;:::-;;;8235:2;8227:5;:10;;;;:::i;:::-;8214:2;:24;;;;:::i;:::-;8201:39;;8184:6;8191;8184:14;;;;;;;;;;;;;;;;;;;:56;;;;;;;;;;;8264:2;8255:11;;;;;:::i;:::-;;;8124:154;;;8302:6;8288:21;;;;;7661:656;;;;:::o;23192:549::-;23302:7;23327:20;23350:4;23327:27;;23370:9;23365:339;23389:5;:12;23385:1;:16;23365:339;;;23423:20;23446:5;23452:1;23446:8;;;;;;;;;;;;;;;;;;;;;;23423:31;;23489:12;23473;:28;23469:224;;23537:42;23552:12;23566;23537:14;:42::i;:::-;23522:57;;23469:224;;;23635:42;23650:12;23664;23635:14;:42::i;:::-;23620:57;;23469:224;23365:339;23403:3;;;;;:::i;:::-;;;;23365:339;;;;23721:12;23714:19;;;23192:549;;;;:::o;23749:256::-;23844:13;23912:1;23906:4;23899:15;23941:1;23935:4;23928:15;23982:4;23976;23966:21;23957:30;;23884:114;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:343::-;762:5;787:65;803:48;844:6;803:48;:::i;:::-;787:65;:::i;:::-;778:74;;875:6;868:5;861:21;913:4;906:5;902:16;951:3;942:6;937:3;933:16;930:25;927:2;;;968:1;965;958:12;927:2;981:41;1015:6;1010:3;1005;981:41;:::i;:::-;768:260;;;;;;:::o;1034:345::-;1112:5;1137:66;1153:49;1195:6;1153:49;:::i;:::-;1137:66;:::i;:::-;1128:75;;1226:6;1219:5;1212:21;1264:4;1257:5;1253:16;1302:3;1293:6;1288:3;1284:16;1281:25;1278:2;;;1319:1;1316;1309:12;1278:2;1332:41;1366:6;1361:3;1356;1332:41;:::i;:::-;1118:261;;;;;;:::o;1385:139::-;1431:5;1469:6;1456:20;1447:29;;1485:33;1512:5;1485:33;:::i;:::-;1437:87;;;;:::o;1547:303::-;1618:5;1667:3;1660:4;1652:6;1648:17;1644:27;1634:2;;1685:1;1682;1675:12;1634:2;1725:6;1712:20;1750:94;1840:3;1832:6;1825:4;1817:6;1813:17;1750:94;:::i;:::-;1741:103;;1624:226;;;;;:::o;1856:133::-;1899:5;1937:6;1924:20;1915:29;;1953:30;1977:5;1953:30;:::i;:::-;1905:84;;;;:::o;1995:139::-;2041:5;2079:6;2066:20;2057:29;;2095:33;2122:5;2095:33;:::i;:::-;2047:87;;;;:::o;2140:137::-;2185:5;2223:6;2210:20;2201:29;;2239:32;2265:5;2239:32;:::i;:::-;2191:86;;;;:::o;2283:141::-;2339:5;2370:6;2364:13;2355:22;;2386:32;2412:5;2386:32;:::i;:::-;2345:79;;;;:::o;2443:271::-;2498:5;2547:3;2540:4;2532:6;2528:17;2524:27;2514:2;;2565:1;2562;2555:12;2514:2;2605:6;2592:20;2630:78;2704:3;2696:6;2689:4;2681:6;2677:17;2630:78;:::i;:::-;2621:87;;2504:210;;;;;:::o;2734:352::-;2792:8;2802:6;2852:3;2845:4;2837:6;2833:17;2829:27;2819:2;;2870:1;2867;2860:12;2819:2;2906:6;2893:20;2883:30;;2936:18;2928:6;2925:30;2922:2;;;2968:1;2965;2958:12;2922:2;3005:4;2997:6;2993:17;2981:29;;3059:3;3051:4;3043:6;3039:17;3029:8;3025:32;3022:41;3019:2;;;3076:1;3073;3066:12;3019:2;2809:277;;;;;:::o;3106:273::-;3162:5;3211:3;3204:4;3196:6;3192:17;3188:27;3178:2;;3229:1;3226;3219:12;3178:2;3269:6;3256:20;3294:79;3369:3;3361:6;3354:4;3346:6;3342:17;3294:79;:::i;:::-;3285:88;;3168:211;;;;;:::o;3385:139::-;3431:5;3469:6;3456:20;3447:29;;3485:33;3512:5;3485:33;:::i;:::-;3437:87;;;;:::o;3530:262::-;3589:6;3638:2;3626:9;3617:7;3613:23;3609:32;3606:2;;;3654:1;3651;3644:12;3606:2;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3596:196;;;;:::o;3798:407::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:2;;;3939:1;3936;3929:12;3891:2;3982:1;4007:53;4052:7;4043:6;4032:9;4028:22;4007:53;:::i;:::-;3997:63;;3953:117;4109:2;4135:53;4180:7;4171:6;4160:9;4156:22;4135:53;:::i;:::-;4125:63;;4080:118;3881:324;;;;;:::o;4211:552::-;4288:6;4296;4304;4353:2;4341:9;4332:7;4328:23;4324:32;4321:2;;;4369:1;4366;4359:12;4321:2;4412:1;4437:53;4482:7;4473:6;4462:9;4458:22;4437:53;:::i;:::-;4427:63;;4383:117;4539:2;4565:53;4610:7;4601:6;4590:9;4586:22;4565:53;:::i;:::-;4555:63;;4510:118;4667:2;4693:53;4738:7;4729:6;4718:9;4714:22;4693:53;:::i;:::-;4683:63;;4638:118;4311:452;;;;;:::o;4769:809::-;4864:6;4872;4880;4888;4937:3;4925:9;4916:7;4912:23;4908:33;4905:2;;;4954:1;4951;4944:12;4905:2;4997:1;5022:53;5067:7;5058:6;5047:9;5043:22;5022:53;:::i;:::-;5012:63;;4968:117;5124:2;5150:53;5195:7;5186:6;5175:9;5171:22;5150:53;:::i;:::-;5140:63;;5095:118;5252:2;5278:53;5323:7;5314:6;5303:9;5299:22;5278:53;:::i;:::-;5268:63;;5223:118;5408:2;5397:9;5393:18;5380:32;5439:18;5431:6;5428:30;5425:2;;;5471:1;5468;5461:12;5425:2;5499:62;5553:7;5544:6;5533:9;5529:22;5499:62;:::i;:::-;5489:72;;5351:220;4895:683;;;;;;;:::o;5584:401::-;5649:6;5657;5706:2;5694:9;5685:7;5681:23;5677:32;5674:2;;;5722:1;5719;5712:12;5674:2;5765:1;5790:53;5835:7;5826:6;5815:9;5811:22;5790:53;:::i;:::-;5780:63;;5736:117;5892:2;5918:50;5960:7;5951:6;5940:9;5936:22;5918:50;:::i;:::-;5908:60;;5863:115;5664:321;;;;;:::o;5991:407::-;6059:6;6067;6116:2;6104:9;6095:7;6091:23;6087:32;6084:2;;;6132:1;6129;6122:12;6084:2;6175:1;6200:53;6245:7;6236:6;6225:9;6221:22;6200:53;:::i;:::-;6190:63;;6146:117;6302:2;6328:53;6373:7;6364:6;6353:9;6349:22;6328:53;:::i;:::-;6318:63;;6273:118;6074:324;;;;;:::o;6404:262::-;6463:6;6512:2;6500:9;6491:7;6487:23;6483:32;6480:2;;;6528:1;6525;6518:12;6480:2;6571:1;6596:53;6641:7;6632:6;6621:9;6617:22;6596:53;:::i;:::-;6586:63;;6542:117;6470:196;;;;:::o;6672:260::-;6730:6;6779:2;6767:9;6758:7;6754:23;6750:32;6747:2;;;6795:1;6792;6785:12;6747:2;6838:1;6863:52;6907:7;6898:6;6887:9;6883:22;6863:52;:::i;:::-;6853:62;;6809:116;6737:195;;;;:::o;6938:282::-;7007:6;7056:2;7044:9;7035:7;7031:23;7027:32;7024:2;;;7072:1;7069;7062:12;7024:2;7115:1;7140:63;7195:7;7186:6;7175:9;7171:22;7140:63;:::i;:::-;7130:73;;7086:127;7014:206;;;;:::o;7226:395::-;7297:6;7305;7354:2;7342:9;7333:7;7329:23;7325:32;7322:2;;;7370:1;7367;7360:12;7322:2;7441:1;7430:9;7426:17;7413:31;7471:18;7463:6;7460:30;7457:2;;;7503:1;7500;7493:12;7457:2;7539:65;7596:7;7587:6;7576:9;7572:22;7539:65;:::i;:::-;7521:83;;;;7384:230;7312:309;;;;;:::o;7627:375::-;7696:6;7745:2;7733:9;7724:7;7720:23;7716:32;7713:2;;;7761:1;7758;7751:12;7713:2;7832:1;7821:9;7817:17;7804:31;7862:18;7854:6;7851:30;7848:2;;;7894:1;7891;7884:12;7848:2;7922:63;7977:7;7968:6;7957:9;7953:22;7922:63;:::i;:::-;7912:73;;7775:220;7703:299;;;;:::o;8008:262::-;8067:6;8116:2;8104:9;8095:7;8091:23;8087:32;8084:2;;;8132:1;8129;8122:12;8084:2;8175:1;8200:53;8245:7;8236:6;8225:9;8221:22;8200:53;:::i;:::-;8190:63;;8146:117;8074:196;;;;:::o;8276:550::-;8369:6;8377;8426:2;8414:9;8405:7;8401:23;8397:32;8394:2;;;8442:1;8439;8432:12;8394:2;8485:1;8510:53;8555:7;8546:6;8535:9;8531:22;8510:53;:::i;:::-;8500:63;;8456:117;8640:2;8629:9;8625:18;8612:32;8671:18;8663:6;8660:30;8657:2;;;8703:1;8700;8693:12;8657:2;8731:78;8801:7;8792:6;8781:9;8777:22;8731:78;:::i;:::-;8721:88;;8583:236;8384:442;;;;;:::o;8832:108::-;8909:24;8927:5;8909:24;:::i;:::-;8904:3;8897:37;8887:53;;:::o;8946:118::-;9033:24;9051:5;9033:24;:::i;:::-;9028:3;9021:37;9011:53;;:::o;9070:157::-;9175:45;9195:24;9213:5;9195:24;:::i;:::-;9175:45;:::i;:::-;9170:3;9163:58;9153:74;;:::o;9233:109::-;9314:21;9329:5;9314:21;:::i;:::-;9309:3;9302:34;9292:50;;:::o;9348:360::-;9434:3;9462:38;9494:5;9462:38;:::i;:::-;9516:70;9579:6;9574:3;9516:70;:::i;:::-;9509:77;;9595:52;9640:6;9635:3;9628:4;9621:5;9617:16;9595:52;:::i;:::-;9672:29;9694:6;9672:29;:::i;:::-;9667:3;9663:39;9656:46;;9438:270;;;;;:::o;9714:364::-;9802:3;9830:39;9863:5;9830:39;:::i;:::-;9885:71;9949:6;9944:3;9885:71;:::i;:::-;9878:78;;9965:52;10010:6;10005:3;9998:4;9991:5;9987:16;9965:52;:::i;:::-;10042:29;10064:6;10042:29;:::i;:::-;10037:3;10033:39;10026:46;;9806:272;;;;;:::o;10084:377::-;10190:3;10218:39;10251:5;10218:39;:::i;:::-;10273:89;10355:6;10350:3;10273:89;:::i;:::-;10266:96;;10371:52;10416:6;10411:3;10404:4;10397:5;10393:16;10371:52;:::i;:::-;10448:6;10443:3;10439:16;10432:23;;10194:267;;;;;:::o;10467:366::-;10609:3;10630:67;10694:2;10689:3;10630:67;:::i;:::-;10623:74;;10706:93;10795:3;10706:93;:::i;:::-;10824:2;10819:3;10815:12;10808:19;;10613:220;;;:::o;10839:366::-;10981:3;11002:67;11066:2;11061:3;11002:67;:::i;:::-;10995:74;;11078:93;11167:3;11078:93;:::i;:::-;11196:2;11191:3;11187:12;11180:19;;10985:220;;;:::o;11211:366::-;11353:3;11374:67;11438:2;11433:3;11374:67;:::i;:::-;11367:74;;11450:93;11539:3;11450:93;:::i;:::-;11568:2;11563:3;11559:12;11552:19;;11357:220;;;:::o;11583:366::-;11725:3;11746:67;11810:2;11805:3;11746:67;:::i;:::-;11739:74;;11822:93;11911:3;11822:93;:::i;:::-;11940:2;11935:3;11931:12;11924:19;;11729:220;;;:::o;11955:366::-;12097:3;12118:67;12182:2;12177:3;12118:67;:::i;:::-;12111:74;;12194:93;12283:3;12194:93;:::i;:::-;12312:2;12307:3;12303:12;12296:19;;12101:220;;;:::o;12327:366::-;12469:3;12490:67;12554:2;12549:3;12490:67;:::i;:::-;12483:74;;12566:93;12655:3;12566:93;:::i;:::-;12684:2;12679:3;12675:12;12668:19;;12473:220;;;:::o;12699:366::-;12841:3;12862:67;12926:2;12921:3;12862:67;:::i;:::-;12855:74;;12938:93;13027:3;12938:93;:::i;:::-;13056:2;13051:3;13047:12;13040:19;;12845:220;;;:::o;13071:366::-;13213:3;13234:67;13298:2;13293:3;13234:67;:::i;:::-;13227:74;;13310:93;13399:3;13310:93;:::i;:::-;13428:2;13423:3;13419:12;13412:19;;13217:220;;;:::o;13443:366::-;13585:3;13606:67;13670:2;13665:3;13606:67;:::i;:::-;13599:74;;13682:93;13771:3;13682:93;:::i;:::-;13800:2;13795:3;13791:12;13784:19;;13589:220;;;:::o;13815:366::-;13957:3;13978:67;14042:2;14037:3;13978:67;:::i;:::-;13971:74;;14054:93;14143:3;14054:93;:::i;:::-;14172:2;14167:3;14163:12;14156:19;;13961:220;;;:::o;14187:366::-;14329:3;14350:67;14414:2;14409:3;14350:67;:::i;:::-;14343:74;;14426:93;14515:3;14426:93;:::i;:::-;14544:2;14539:3;14535:12;14528:19;;14333:220;;;:::o;14559:366::-;14701:3;14722:67;14786:2;14781:3;14722:67;:::i;:::-;14715:74;;14798:93;14887:3;14798:93;:::i;:::-;14916:2;14911:3;14907:12;14900:19;;14705:220;;;:::o;14931:366::-;15073:3;15094:67;15158:2;15153:3;15094:67;:::i;:::-;15087:74;;15170:93;15259:3;15170:93;:::i;:::-;15288:2;15283:3;15279:12;15272:19;;15077:220;;;:::o;15303:400::-;15463:3;15484:84;15566:1;15561:3;15484:84;:::i;:::-;15477:91;;15577:93;15666:3;15577:93;:::i;:::-;15695:1;15690:3;15686:11;15679:18;;15467:236;;;:::o;15709:366::-;15851:3;15872:67;15936:2;15931:3;15872:67;:::i;:::-;15865:74;;15948:93;16037:3;15948:93;:::i;:::-;16066:2;16061:3;16057:12;16050:19;;15855:220;;;:::o;16081:366::-;16223:3;16244:67;16308:2;16303:3;16244:67;:::i;:::-;16237:74;;16320:93;16409:3;16320:93;:::i;:::-;16438:2;16433:3;16429:12;16422:19;;16227:220;;;:::o;16453:366::-;16595:3;16616:67;16680:2;16675:3;16616:67;:::i;:::-;16609:74;;16692:93;16781:3;16692:93;:::i;:::-;16810:2;16805:3;16801:12;16794:19;;16599:220;;;:::o;16825:366::-;16967:3;16988:67;17052:2;17047:3;16988:67;:::i;:::-;16981:74;;17064:93;17153:3;17064:93;:::i;:::-;17182:2;17177:3;17173:12;17166:19;;16971:220;;;:::o;17197:366::-;17339:3;17360:67;17424:2;17419:3;17360:67;:::i;:::-;17353:74;;17436:93;17525:3;17436:93;:::i;:::-;17554:2;17549:3;17545:12;17538:19;;17343:220;;;:::o;17569:366::-;17711:3;17732:67;17796:2;17791:3;17732:67;:::i;:::-;17725:74;;17808:93;17897:3;17808:93;:::i;:::-;17926:2;17921:3;17917:12;17910:19;;17715:220;;;:::o;17941:366::-;18083:3;18104:67;18168:2;18163:3;18104:67;:::i;:::-;18097:74;;18180:93;18269:3;18180:93;:::i;:::-;18298:2;18293:3;18289:12;18282:19;;18087:220;;;:::o;18313:366::-;18455:3;18476:67;18540:2;18535:3;18476:67;:::i;:::-;18469:74;;18552:93;18641:3;18552:93;:::i;:::-;18670:2;18665:3;18661:12;18654:19;;18459:220;;;:::o;18685:366::-;18827:3;18848:67;18912:2;18907:3;18848:67;:::i;:::-;18841:74;;18924:93;19013:3;18924:93;:::i;:::-;19042:2;19037:3;19033:12;19026:19;;18831:220;;;:::o;19057:366::-;19199:3;19220:67;19284:2;19279:3;19220:67;:::i;:::-;19213:74;;19296:93;19385:3;19296:93;:::i;:::-;19414:2;19409:3;19405:12;19398:19;;19203:220;;;:::o;19429:366::-;19571:3;19592:67;19656:2;19651:3;19592:67;:::i;:::-;19585:74;;19668:93;19757:3;19668:93;:::i;:::-;19786:2;19781:3;19777:12;19770:19;;19575:220;;;:::o;19801:366::-;19943:3;19964:67;20028:2;20023:3;19964:67;:::i;:::-;19957:74;;20040:93;20129:3;20040:93;:::i;:::-;20158:2;20153:3;20149:12;20142:19;;19947:220;;;:::o;20173:366::-;20315:3;20336:67;20400:2;20395:3;20336:67;:::i;:::-;20329:74;;20412:93;20501:3;20412:93;:::i;:::-;20530:2;20525:3;20521:12;20514:19;;20319:220;;;:::o;20545:366::-;20687:3;20708:67;20772:2;20767:3;20708:67;:::i;:::-;20701:74;;20784:93;20873:3;20784:93;:::i;:::-;20902:2;20897:3;20893:12;20886:19;;20691:220;;;:::o;20917:366::-;21059:3;21080:67;21144:2;21139:3;21080:67;:::i;:::-;21073:74;;21156:93;21245:3;21156:93;:::i;:::-;21274:2;21269:3;21265:12;21258:19;;21063:220;;;:::o;21289:366::-;21431:3;21452:67;21516:2;21511:3;21452:67;:::i;:::-;21445:74;;21528:93;21617:3;21528:93;:::i;:::-;21646:2;21641:3;21637:12;21630:19;;21435:220;;;:::o;21731:527::-;21890:4;21885:3;21881:14;21977:4;21970:5;21966:16;21960:23;21996:63;22053:4;22048:3;22044:14;22030:12;21996:63;:::i;:::-;21905:164;22161:4;22154:5;22150:16;22144:23;22180:61;22235:4;22230:3;22226:14;22212:12;22180:61;:::i;:::-;22079:172;21859:399;;;:::o;22264:118::-;22351:24;22369:5;22351:24;:::i;:::-;22346:3;22339:37;22329:53;;:::o;22388:105::-;22463:23;22480:5;22463:23;:::i;:::-;22458:3;22451:36;22441:52;;:::o;22499:256::-;22611:3;22626:75;22697:3;22688:6;22626:75;:::i;:::-;22726:2;22721:3;22717:12;22710:19;;22746:3;22739:10;;22615:140;;;;:::o;22761:435::-;22941:3;22963:95;23054:3;23045:6;22963:95;:::i;:::-;22956:102;;23075:95;23166:3;23157:6;23075:95;:::i;:::-;23068:102;;23187:3;23180:10;;22945:251;;;;;:::o;23202:541::-;23435:3;23457:95;23548:3;23539:6;23457:95;:::i;:::-;23450:102;;23569:148;23713:3;23569:148;:::i;:::-;23562:155;;23734:3;23727:10;;23439:304;;;;:::o;23749:222::-;23842:4;23880:2;23869:9;23865:18;23857:26;;23893:71;23961:1;23950:9;23946:17;23937:6;23893:71;:::i;:::-;23847:124;;;;:::o;23977:640::-;24172:4;24210:3;24199:9;24195:19;24187:27;;24224:71;24292:1;24281:9;24277:17;24268:6;24224:71;:::i;:::-;24305:72;24373:2;24362:9;24358:18;24349:6;24305:72;:::i;:::-;24387;24455:2;24444:9;24440:18;24431:6;24387:72;:::i;:::-;24506:9;24500:4;24496:20;24491:2;24480:9;24476:18;24469:48;24534:76;24605:4;24596:6;24534:76;:::i;:::-;24526:84;;24177:440;;;;;;;:::o;24623:210::-;24710:4;24748:2;24737:9;24733:18;24725:26;;24761:65;24823:1;24812:9;24808:17;24799:6;24761:65;:::i;:::-;24715:118;;;;:::o;24839:313::-;24952:4;24990:2;24979:9;24975:18;24967:26;;25039:9;25033:4;25029:20;25025:1;25014:9;25010:17;25003:47;25067:78;25140:4;25131:6;25067:78;:::i;:::-;25059:86;;24957:195;;;;:::o;25158:419::-;25324:4;25362:2;25351:9;25347:18;25339:26;;25411:9;25405:4;25401:20;25397:1;25386:9;25382:17;25375:47;25439:131;25565:4;25439:131;:::i;:::-;25431:139;;25329:248;;;:::o;25583:419::-;25749:4;25787:2;25776:9;25772:18;25764:26;;25836:9;25830:4;25826:20;25822:1;25811:9;25807:17;25800:47;25864:131;25990:4;25864:131;:::i;:::-;25856:139;;25754:248;;;:::o;26008:419::-;26174:4;26212:2;26201:9;26197:18;26189:26;;26261:9;26255:4;26251:20;26247:1;26236:9;26232:17;26225:47;26289:131;26415:4;26289:131;:::i;:::-;26281:139;;26179:248;;;:::o;26433:419::-;26599:4;26637:2;26626:9;26622:18;26614:26;;26686:9;26680:4;26676:20;26672:1;26661:9;26657:17;26650:47;26714:131;26840:4;26714:131;:::i;:::-;26706:139;;26604:248;;;:::o;26858:419::-;27024:4;27062:2;27051:9;27047:18;27039:26;;27111:9;27105:4;27101:20;27097:1;27086:9;27082:17;27075:47;27139:131;27265:4;27139:131;:::i;:::-;27131:139;;27029:248;;;:::o;27283:419::-;27449:4;27487:2;27476:9;27472:18;27464:26;;27536:9;27530:4;27526:20;27522:1;27511:9;27507:17;27500:47;27564:131;27690:4;27564:131;:::i;:::-;27556:139;;27454:248;;;:::o;27708:419::-;27874:4;27912:2;27901:9;27897:18;27889:26;;27961:9;27955:4;27951:20;27947:1;27936:9;27932:17;27925:47;27989:131;28115:4;27989:131;:::i;:::-;27981:139;;27879:248;;;:::o;28133:419::-;28299:4;28337:2;28326:9;28322:18;28314:26;;28386:9;28380:4;28376:20;28372:1;28361:9;28357:17;28350:47;28414:131;28540:4;28414:131;:::i;:::-;28406:139;;28304:248;;;:::o;28558:419::-;28724:4;28762:2;28751:9;28747:18;28739:26;;28811:9;28805:4;28801:20;28797:1;28786:9;28782:17;28775:47;28839:131;28965:4;28839:131;:::i;:::-;28831:139;;28729:248;;;:::o;28983:419::-;29149:4;29187:2;29176:9;29172:18;29164:26;;29236:9;29230:4;29226:20;29222:1;29211:9;29207:17;29200:47;29264:131;29390:4;29264:131;:::i;:::-;29256:139;;29154:248;;;:::o;29408:419::-;29574:4;29612:2;29601:9;29597:18;29589:26;;29661:9;29655:4;29651:20;29647:1;29636:9;29632:17;29625:47;29689:131;29815:4;29689:131;:::i;:::-;29681:139;;29579:248;;;:::o;29833:419::-;29999:4;30037:2;30026:9;30022:18;30014:26;;30086:9;30080:4;30076:20;30072:1;30061:9;30057:17;30050:47;30114:131;30240:4;30114:131;:::i;:::-;30106:139;;30004:248;;;:::o;30258:419::-;30424:4;30462:2;30451:9;30447:18;30439:26;;30511:9;30505:4;30501:20;30497:1;30486:9;30482:17;30475:47;30539:131;30665:4;30539:131;:::i;:::-;30531:139;;30429:248;;;:::o;30683:419::-;30849:4;30887:2;30876:9;30872:18;30864:26;;30936:9;30930:4;30926:20;30922:1;30911:9;30907:17;30900:47;30964:131;31090:4;30964:131;:::i;:::-;30956:139;;30854:248;;;:::o;31108:419::-;31274:4;31312:2;31301:9;31297:18;31289:26;;31361:9;31355:4;31351:20;31347:1;31336:9;31332:17;31325:47;31389:131;31515:4;31389:131;:::i;:::-;31381:139;;31279:248;;;:::o;31533:419::-;31699:4;31737:2;31726:9;31722:18;31714:26;;31786:9;31780:4;31776:20;31772:1;31761:9;31757:17;31750:47;31814:131;31940:4;31814:131;:::i;:::-;31806:139;;31704:248;;;:::o;31958:419::-;32124:4;32162:2;32151:9;32147:18;32139:26;;32211:9;32205:4;32201:20;32197:1;32186:9;32182:17;32175:47;32239:131;32365:4;32239:131;:::i;:::-;32231:139;;32129:248;;;:::o;32383:419::-;32549:4;32587:2;32576:9;32572:18;32564:26;;32636:9;32630:4;32626:20;32622:1;32611:9;32607:17;32600:47;32664:131;32790:4;32664:131;:::i;:::-;32656:139;;32554:248;;;:::o;32808:419::-;32974:4;33012:2;33001:9;32997:18;32989:26;;33061:9;33055:4;33051:20;33047:1;33036:9;33032:17;33025:47;33089:131;33215:4;33089:131;:::i;:::-;33081:139;;32979:248;;;:::o;33233:419::-;33399:4;33437:2;33426:9;33422:18;33414:26;;33486:9;33480:4;33476:20;33472:1;33461:9;33457:17;33450:47;33514:131;33640:4;33514:131;:::i;:::-;33506:139;;33404:248;;;:::o;33658:419::-;33824:4;33862:2;33851:9;33847:18;33839:26;;33911:9;33905:4;33901:20;33897:1;33886:9;33882:17;33875:47;33939:131;34065:4;33939:131;:::i;:::-;33931:139;;33829:248;;;:::o;34083:419::-;34249:4;34287:2;34276:9;34272:18;34264:26;;34336:9;34330:4;34326:20;34322:1;34311:9;34307:17;34300:47;34364:131;34490:4;34364:131;:::i;:::-;34356:139;;34254:248;;;:::o;34508:419::-;34674:4;34712:2;34701:9;34697:18;34689:26;;34761:9;34755:4;34751:20;34747:1;34736:9;34732:17;34725:47;34789:131;34915:4;34789:131;:::i;:::-;34781:139;;34679:248;;;:::o;34933:419::-;35099:4;35137:2;35126:9;35122:18;35114:26;;35186:9;35180:4;35176:20;35172:1;35161:9;35157:17;35150:47;35214:131;35340:4;35214:131;:::i;:::-;35206:139;;35104:248;;;:::o;35358:419::-;35524:4;35562:2;35551:9;35547:18;35539:26;;35611:9;35605:4;35601:20;35597:1;35586:9;35582:17;35575:47;35639:131;35765:4;35639:131;:::i;:::-;35631:139;;35529:248;;;:::o;35783:419::-;35949:4;35987:2;35976:9;35972:18;35964:26;;36036:9;36030:4;36026:20;36022:1;36011:9;36007:17;36000:47;36064:131;36190:4;36064:131;:::i;:::-;36056:139;;35954:248;;;:::o;36208:419::-;36374:4;36412:2;36401:9;36397:18;36389:26;;36461:9;36455:4;36451:20;36447:1;36436:9;36432:17;36425:47;36489:131;36615:4;36489:131;:::i;:::-;36481:139;;36379:248;;;:::o;36633:419::-;36799:4;36837:2;36826:9;36822:18;36814:26;;36886:9;36880:4;36876:20;36872:1;36861:9;36857:17;36850:47;36914:131;37040:4;36914:131;:::i;:::-;36906:139;;36804:248;;;:::o;37058:419::-;37224:4;37262:2;37251:9;37247:18;37239:26;;37311:9;37305:4;37301:20;37297:1;37286:9;37282:17;37275:47;37339:131;37465:4;37339:131;:::i;:::-;37331:139;;37229:248;;;:::o;37483:346::-;37638:4;37676:2;37665:9;37661:18;37653:26;;37689:133;37819:1;37808:9;37804:17;37795:6;37689:133;:::i;:::-;37643:186;;;;:::o;37835:222::-;37928:4;37966:2;37955:9;37951:18;37943:26;;37979:71;38047:1;38036:9;38032:17;38023:6;37979:71;:::i;:::-;37933:124;;;;:::o;38063:129::-;38097:6;38124:20;;:::i;:::-;38114:30;;38153:33;38181:4;38173:6;38153:33;:::i;:::-;38104:88;;;:::o;38198:75::-;38231:6;38264:2;38258:9;38248:19;;38238:35;:::o;38279:311::-;38356:4;38446:18;38438:6;38435:30;38432:2;;;38468:18;;:::i;:::-;38432:2;38518:4;38510:6;38506:17;38498:25;;38578:4;38572;38568:15;38560:23;;38361:229;;;:::o;38596:307::-;38657:4;38747:18;38739:6;38736:30;38733:2;;;38769:18;;:::i;:::-;38733:2;38807:29;38829:6;38807:29;:::i;:::-;38799:37;;38891:4;38885;38881:15;38873:23;;38662:241;;;:::o;38909:308::-;38971:4;39061:18;39053:6;39050:30;39047:2;;;39083:18;;:::i;:::-;39047:2;39121:29;39143:6;39121:29;:::i;:::-;39113:37;;39205:4;39199;39195:15;39187:23;;38976:241;;;:::o;39223:98::-;39274:6;39308:5;39302:12;39292:22;;39281:40;;;:::o;39327:99::-;39379:6;39413:5;39407:12;39397:22;;39386:40;;;:::o;39432:168::-;39515:11;39549:6;39544:3;39537:19;39589:4;39584:3;39580:14;39565:29;;39527:73;;;;:::o;39606:169::-;39690:11;39724:6;39719:3;39712:19;39764:4;39759:3;39755:14;39740:29;;39702:73;;;;:::o;39781:148::-;39883:11;39920:3;39905:18;;39895:34;;;;:::o;39935:273::-;39975:3;39994:20;40012:1;39994:20;:::i;:::-;39989:25;;40028:20;40046:1;40028:20;:::i;:::-;40023:25;;40150:1;40114:34;40110:42;40107:1;40104:49;40101:2;;;40156:18;;:::i;:::-;40101:2;40200:1;40197;40193:9;40186:16;;39979:229;;;;:::o;40214:305::-;40254:3;40273:20;40291:1;40273:20;:::i;:::-;40268:25;;40307:20;40325:1;40307:20;:::i;:::-;40302:25;;40461:1;40393:66;40389:74;40386:1;40383:81;40380:2;;;40467:18;;:::i;:::-;40380:2;40511:1;40508;40504:9;40497:16;;40258:261;;;;:::o;40525:185::-;40565:1;40582:20;40600:1;40582:20;:::i;:::-;40577:25;;40616:20;40634:1;40616:20;:::i;:::-;40611:25;;40655:1;40645:2;;40660:18;;:::i;:::-;40645:2;40702:1;40699;40695:9;40690:14;;40567:143;;;;:::o;40716:348::-;40756:7;40779:20;40797:1;40779:20;:::i;:::-;40774:25;;40813:20;40831:1;40813:20;:::i;:::-;40808:25;;41001:1;40933:66;40929:74;40926:1;40923:81;40918:1;40911:9;40904:17;40900:105;40897:2;;;41008:18;;:::i;:::-;40897:2;41056:1;41053;41049:9;41038:20;;40764:300;;;;:::o;41070:191::-;41110:4;41130:20;41148:1;41130:20;:::i;:::-;41125:25;;41164:20;41182:1;41164:20;:::i;:::-;41159:25;;41203:1;41200;41197:8;41194:2;;;41208:18;;:::i;:::-;41194:2;41253:1;41250;41246:9;41238:17;;41115:146;;;;:::o;41267:191::-;41307:4;41327:20;41345:1;41327:20;:::i;:::-;41322:25;;41361:20;41379:1;41361:20;:::i;:::-;41356:25;;41400:1;41397;41394:8;41391:2;;;41405:18;;:::i;:::-;41391:2;41450:1;41447;41443:9;41435:17;;41312:146;;;;:::o;41464:96::-;41501:7;41530:24;41548:5;41530:24;:::i;:::-;41519:35;;41509:51;;;:::o;41566:90::-;41600:7;41643:5;41636:13;41629:21;41618:32;;41608:48;;;:::o;41662:77::-;41699:7;41728:5;41717:16;;41707:32;;;:::o;41745:149::-;41781:7;41821:66;41814:5;41810:78;41799:89;;41789:105;;;:::o;41900:118::-;41937:7;41977:34;41970:5;41966:46;41955:57;;41945:73;;;:::o;42024:126::-;42061:7;42101:42;42094:5;42090:54;42079:65;;42069:81;;;:::o;42156:77::-;42193:7;42222:5;42211:16;;42201:32;;;:::o;42239:101::-;42275:7;42315:18;42308:5;42304:30;42293:41;;42283:57;;;:::o;42346:154::-;42430:6;42425:3;42420;42407:30;42492:1;42483:6;42478:3;42474:16;42467:27;42397:103;;;:::o;42506:307::-;42574:1;42584:113;42598:6;42595:1;42592:13;42584:113;;;42683:1;42678:3;42674:11;42668:18;42664:1;42659:3;42655:11;42648:39;42620:2;42617:1;42613:10;42608:15;;42584:113;;;42715:6;42712:1;42709:13;42706:2;;;42795:1;42786:6;42781:3;42777:16;42770:27;42706:2;42555:258;;;;:::o;42819:171::-;42858:3;42881:24;42899:5;42881:24;:::i;:::-;42872:33;;42927:4;42920:5;42917:15;42914:2;;;42935:18;;:::i;:::-;42914:2;42982:1;42975:5;42971:13;42964:20;;42862:128;;;:::o;42996:320::-;43040:6;43077:1;43071:4;43067:12;43057:22;;43124:1;43118:4;43114:12;43145:18;43135:2;;43201:4;43193:6;43189:17;43179:27;;43135:2;43263;43255:6;43252:14;43232:18;43229:38;43226:2;;;43282:18;;:::i;:::-;43226:2;43047:269;;;;:::o;43322:281::-;43405:27;43427:4;43405:27;:::i;:::-;43397:6;43393:40;43535:6;43523:10;43520:22;43499:18;43487:10;43484:34;43481:62;43478:2;;;43546:18;;:::i;:::-;43478:2;43586:10;43582:2;43575:22;43365:238;;;:::o;43609:233::-;43648:3;43671:24;43689:5;43671:24;:::i;:::-;43662:33;;43717:66;43710:5;43707:77;43704:2;;;43787:18;;:::i;:::-;43704:2;43834:1;43827:5;43823:13;43816:20;;43652:190;;;:::o;43848:100::-;43887:7;43916:26;43936:5;43916:26;:::i;:::-;43905:37;;43895:53;;;:::o;43954:94::-;43993:7;44022:20;44036:5;44022:20;:::i;:::-;44011:31;;44001:47;;;:::o;44054:176::-;44086:1;44103:20;44121:1;44103:20;:::i;:::-;44098:25;;44137:20;44155:1;44137:20;:::i;:::-;44132:25;;44176:1;44166:2;;44181:18;;:::i;:::-;44166:2;44222:1;44219;44215:9;44210:14;;44088:142;;;;:::o;44236:180::-;44284:77;44281:1;44274:88;44381:4;44378:1;44371:15;44405:4;44402:1;44395:15;44422:180;44470:77;44467:1;44460:88;44567:4;44564:1;44557:15;44591:4;44588:1;44581:15;44608:180;44656:77;44653:1;44646:88;44753:4;44750:1;44743:15;44777:4;44774:1;44767:15;44794:180;44842:77;44839:1;44832:88;44939:4;44936:1;44929:15;44963:4;44960:1;44953:15;44980:102;45021:6;45072:2;45068:7;45063:2;45056:5;45052:14;45048:28;45038:38;;45028:54;;;:::o;45088:94::-;45121:8;45169:5;45165:2;45161:14;45140:35;;45130:52;;;:::o;45188:221::-;45328:34;45324:1;45316:6;45312:14;45305:58;45397:4;45392:2;45384:6;45380:15;45373:29;45294:115;:::o;45415:225::-;45555:34;45551:1;45543:6;45539:14;45532:58;45624:8;45619:2;45611:6;45607:15;45600:33;45521:119;:::o;45646:161::-;45786:13;45782:1;45774:6;45770:14;45763:37;45752:55;:::o;45813:229::-;45953:34;45949:1;45941:6;45937:14;45930:58;46022:12;46017:2;46009:6;46005:15;45998:37;45919:123;:::o;46048:173::-;46188:25;46184:1;46176:6;46172:14;46165:49;46154:67;:::o;46227:222::-;46367:34;46363:1;46355:6;46351:14;46344:58;46436:5;46431:2;46423:6;46419:15;46412:30;46333:116;:::o;46455:224::-;46595:34;46591:1;46583:6;46579:14;46572:58;46664:7;46659:2;46651:6;46647:15;46640:32;46561:118;:::o;46685:236::-;46825:34;46821:1;46813:6;46809:14;46802:58;46894:19;46889:2;46881:6;46877:15;46870:44;46791:130;:::o;46927:180::-;47067:32;47063:1;47055:6;47051:14;47044:56;47033:74;:::o;47113:174::-;47253:26;47249:1;47241:6;47237:14;47230:50;47219:68;:::o;47293:244::-;47433:34;47429:1;47421:6;47417:14;47410:58;47502:27;47497:2;47489:6;47485:15;47478:52;47399:138;:::o;47543:230::-;47683:34;47679:1;47671:6;47667:14;47660:58;47752:13;47747:2;47739:6;47735:15;47728:38;47649:124;:::o;47779:225::-;47919:34;47915:1;47907:6;47903:14;47896:58;47988:8;47983:2;47975:6;47971:15;47964:33;47885:119;:::o;48010:155::-;48150:7;48146:1;48138:6;48134:14;48127:31;48116:49;:::o;48171:182::-;48311:34;48307:1;48299:6;48295:14;48288:58;48277:76;:::o;48359:234::-;48499:34;48495:1;48487:6;48483:14;48476:58;48568:17;48563:2;48555:6;48551:15;48544:42;48465:128;:::o;48599:176::-;48739:28;48735:1;48727:6;48723:14;48716:52;48705:70;:::o;48781:237::-;48921:34;48917:1;48909:6;48905:14;48898:58;48990:20;48985:2;48977:6;48973:15;48966:45;48887:131;:::o;49024:227::-;49164:34;49160:1;49152:6;49148:14;49141:58;49233:10;49228:2;49220:6;49216:15;49209:35;49130:121;:::o;49257:221::-;49397:34;49393:1;49385:6;49381:14;49374:58;49466:4;49461:2;49453:6;49449:15;49442:29;49363:115;:::o;49484:174::-;49624:26;49620:1;49612:6;49608:14;49601:50;49590:68;:::o;49664:238::-;49804:34;49800:1;49792:6;49788:14;49781:58;49873:21;49868:2;49860:6;49856:15;49849:46;49770:132;:::o;49908:179::-;50048:31;50044:1;50036:6;50032:14;50025:55;50014:73;:::o;50093:220::-;50233:34;50229:1;50221:6;50217:14;50210:58;50302:3;50297:2;50289:6;50285:15;50278:28;50199:114;:::o;50319:231::-;50459:34;50455:1;50447:6;50443:14;50436:58;50528:14;50523:2;50515:6;50511:15;50504:39;50425:125;:::o;50556:166::-;50696:18;50692:1;50684:6;50680:14;50673:42;50662:60;:::o;50728:233::-;50868:34;50864:1;50856:6;50852:14;50845:58;50937:16;50932:2;50924:6;50920:15;50913:41;50834:127;:::o;50967:234::-;51107:34;51103:1;51095:6;51091:14;51084:58;51176:17;51171:2;51163:6;51159:15;51152:42;51073:128;:::o;51207:232::-;51347:34;51343:1;51335:6;51331:14;51324:58;51416:15;51411:2;51403:6;51399:15;51392:40;51313:126;:::o;51445:221::-;51585:34;51581:1;51573:6;51569:14;51562:58;51654:4;51649:2;51641:6;51637:15;51630:29;51551:115;:::o;51672:122::-;51745:24;51763:5;51745:24;:::i;:::-;51738:5;51735:35;51725:2;;51784:1;51781;51774:12;51725:2;51715:79;:::o;51800:116::-;51870:21;51885:5;51870:21;:::i;:::-;51863:5;51860:32;51850:2;;51906:1;51903;51896:12;51850:2;51840:76;:::o;51922:122::-;51995:24;52013:5;51995:24;:::i;:::-;51988:5;51985:35;51975:2;;52034:1;52031;52024:12;51975:2;51965:79;:::o;52050:120::-;52122:23;52139:5;52122:23;:::i;:::-;52115:5;52112:34;52102:2;;52160:1;52157;52150:12;52102:2;52092:78;:::o;52176:122::-;52249:24;52267:5;52249:24;:::i;:::-;52242:5;52239:35;52229:2;;52288:1;52285;52278:12;52229:2;52219:79;:::o

Swarm Source

ipfs://91e48946d4ce9b9cd6491225725f4485bd6e256e4942e44ce9f5b0d36559c1e7
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.