ETH Price: $3,332.92 (-2.71%)

Token

CompanionWolfClub (CoWC)
 

Overview

Max Total Supply

0 CoWC

Holders

758

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 CoWC
0xf6b5e67f6aefe192e844b3ae74f499c917714e1a
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:
CompanionWolfClub

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}


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


interface IERC721Receiver {
   
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}


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


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


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

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


library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    function toString(uint256 value) internal pure returns (string memory) {

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


abstract contract ERC165 is IERC165 {
  
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}


contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;

    string private _name;
    string private _symbol;

    mapping(uint256 => address) private _owners;
    mapping(address => uint256) private _balances;
    mapping(uint256 => address) private _tokenApprovals;

    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    function balanceOf(address owner) public view virtual override returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }

    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }

    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 virtual override {
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

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

        _approve(to, tokenId);
    }

    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(_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 virtual override {
        //solhint-disable-next-line max-line-length
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }

    function _safeTransfer(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }

    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, "");
    }

    function _safeMint(
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _mint(to, tokenId);
        require(
            _checkOnERC721Received(address(0), to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

        _beforeTokenTransfer(address(0), to, tokenId);

        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(address(0), to, tokenId);

        _afterTokenTransfer(address(0), to, tokenId);
    }

    function _burn(uint256 tokenId) internal virtual {
        address owner = ERC721.ownerOf(tokenId);

        _beforeTokenTransfer(owner, address(0), tokenId);

        // Clear approvals
        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

        emit Transfer(owner, address(0), tokenId);

        _afterTokenTransfer(owner, address(0), tokenId);
    }

    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner");
        require(to != address(0), "ERC721: transfer to the zero address");

        _beforeTokenTransfer(from, to, tokenId);

        // Clear approvals from the previous owner
        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);

        _afterTokenTransfer(from, to, tokenId);
    }

    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC721: approve to caller");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    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.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}
}


library Counters {
    struct Counter {
        
        uint256 _value; // default: 0
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }

    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counter: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }

    function reset(Counter storage counter) internal {
        counter._value = 0;
    }
}


abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

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


interface ICryptoWolvesClub {
    function ownerOf(uint256 _id) external returns(address);
}


contract CompanionWolfClub is ERC721, Ownable {

    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    string public baseURI = "ipfs://QmfGfvKkRTbpnT8qSDEx23vK13mmsxFUxey2y84Q4TYyMZ/";
    uint256 public maxToMint = 10000;
    uint256 public tokenPrice = 0.05 ether;
    address public founderWallet = 0x445bBe77B3c1bEd42711F716c7c5df4771956376;
    address public marketingWallet = 0xC5621863419417493686D02006c118aCaaa29bcb;
    address public devWallet = 0xF5091b9231d3b605F637E3dDcfb92fCc71Df0982;

    bool public isPaused  = true;
    mapping(uint256=>bool) public isCryptoWolvesClubUsed;

    ICryptoWolvesClub public cryptoWolvesClub = ICryptoWolvesClub(0xAb83789d3f152118ebb5AA63190174AE0A6E0e6E);

    constructor() ERC721("CompanionWolfClub", "CoWC")  {
         internalMint(_msgSender());
    }

    function mint(uint256 _amount) external payable  {
                require(!isPaused, "mint: contract paused currently.");
                require(_amount > 0, "mint: amount must be positif");
                require(msg.value >= _amount * tokenPrice, "mint: value not enough");
                for(uint256 i = 0; i < _amount; i++){
                    internalMint(_msgSender());
                }
    }

    function mintWithWolf(uint256[] memory _ids) external {
        require(!isPaused, "mint: contract paused currently.");
        require(_tokenIds.current() + _ids.length <= maxToMint, "mint: too much token to mint");
        require(address(cryptoWolvesClub) != address(0), "mint: please set cryptoWolvesClub address");
        for(uint256 i = 0; i < _ids.length; i++){
            require(!isCryptoWolvesClubUsed[_ids[i]], "mint: cryptoWolvesClub id already minted");
            require(cryptoWolvesClub.ownerOf(_ids[i]) == _msgSender(), "mint: you must be the owner of the nft currently");
            internalMint(_msgSender());
            isCryptoWolvesClubUsed[_ids[i]] = true;
        }
    }

    function _baseURI() internal view override returns (string memory) {
        return baseURI;
    }
    
    function exists(uint256 _tokenId) external view returns(bool){
        return _exists(_tokenId);
    }

    function internalMint(address _address) private {
        _mint(_address, _tokenIds.current());
        _tokenIds.increment();
    }

    function mintOwner(uint256 _amount) external onlyOwner  {
        require(_amount > 0, "mint: amount must be positif");
        for(uint256 i = 0; i < _amount; i++){
            internalMint(_msgSender());
        }
    }

    function setTokenPrice(uint256 _tokenPrice) external onlyOwner {
        tokenPrice = _tokenPrice;
    }
    
    function setCryptoWolvesClub(address _cryptoWolvesClub) external onlyOwner {
        cryptoWolvesClub = ICryptoWolvesClub(_cryptoWolvesClub);
    }

    function setBaseURI(string memory baseURI_) external onlyOwner {
        baseURI = baseURI_;
    }

    function setPause(bool _isPaused) external onlyOwner {
        isPaused = _isPaused; 
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function setFounderWallet(address _founderWallet) external onlyOwner {
        founderWallet = _founderWallet;
    }

    function setDevWallet(address _devWallet) external onlyOwner {
        devWallet = _devWallet;
    }

    function withdraw(uint256 _ethAmount, bool _withdrawAll) external onlyOwner returns(bool){
        uint256 ethBalance = address(this).balance;
        uint256 ethAmount;
        if(_withdrawAll){
            ethAmount = ethBalance;
        } else {
            ethAmount = _ethAmount;
        }
        require(ethAmount <= ethBalance, "withdraw: eth balance must be larger than amount.");
        uint256 ethAmountMarketing = uint256(uint256(ethAmount * 30) / 100);
        uint256 ethAmountFounder = uint256(uint256(ethAmount * 40) / 100);
        uint256 ethAmountDev = uint256(ethAmount - ethAmountMarketing) - ethAmountFounder;
        (bool successMarketing,) = payable(marketingWallet).call{value: ethAmountMarketing}(new bytes(0));
        (bool successFounder,) = payable(founderWallet).call{value: ethAmountFounder}(new bytes(0));
        (bool successDev,) = payable(devWallet).call{value: ethAmountDev}(new bytes(0));
        require(successMarketing && successFounder && successDev, "withdraw: transfer error.");
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"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":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cryptoWolvesClub","outputs":[{"internalType":"contract ICryptoWolvesClub","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"founderWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"isCryptoWolvesClubUsed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxToMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_ids","type":"uint256[]"}],"name":"mintWithWolf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":"address","name":"_cryptoWolvesClub","type":"address"}],"name":"setCryptoWolvesClub","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_founderWallet","type":"address"}],"name":"setFounderWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isPaused","type":"bool"}],"name":"setPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenPrice","type":"uint256"}],"name":"setTokenPrice","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":[],"name":"tokenPrice","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":[{"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":[{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"bool","name":"_withdrawAll","type":"bool"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60e0604052603660808181529062002b1660a039805162000029916008916020909101906200035c565b5061271060095566b1a2bc2ec50000600a55600b80546001600160a01b031990811673445bbe77b3c1bed42711f716c7c5df477195637617909155600c8054821673c5621863419417493686d02006c118acaaa29bcb179055600d80547401f5091b9231d3b605f637e3ddcfb92fcc71df09826001600160a81b0319909116179055600f805490911673ab83789d3f152118ebb5aa63190174ae0a6e0e6e179055348015620000d757600080fd5b50604080518082018252601181527021b7b6b830b734b7b72bb7b63321b63ab160791b602080830191825283518085019094526004845263436f574360e01b9084015281519192916200012d916000916200035c565b508051620001439060019060208401906200035c565b505050620001606200015a6200017160201b60201c565b62000175565b6200016b33620001c7565b62000466565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620001e981620001e360076200020360201b6200171f1760201c565b62000207565b6200020060076200035360201b620017231760201c565b50565b5490565b6001600160a01b038216620002635760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064015b60405180910390fd5b6000818152600260205260409020546001600160a01b031615620002ca5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016200025a565b6001600160a01b0382166000908152600360205260408120805460019290620002f590849062000402565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b80546001019055565b8280546200036a9062000429565b90600052602060002090601f0160209004810192826200038e5760008555620003d9565b82601f10620003a957805160ff1916838001178555620003d9565b82800160010185558215620003d9579182015b82811115620003d9578251825591602001919060010190620003bc565b50620003e7929150620003eb565b5090565b5b80821115620003e75760008155600101620003ec565b600082198211156200042457634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200043e57607f821691505b602082108114156200046057634e487b7160e01b600052602260045260246000fd5b50919050565b6126a080620004766000396000f3fe60806040526004361061021a5760003560e01c8063715018a611610123578063a635edd9116100ab578063c87b56dd1161006f578063c87b56dd1461062b578063cee360531461064b578063e7573d851461066b578063e985e9c51461068b578063f2fde38b146106d457600080fd5b8063a635edd91461058a578063aba6467b146105aa578063b187bd26146105ca578063b88d4fde146105eb578063bedb86fb1461060b57600080fd5b80638ea5220f116100f25780638ea5220f1461050257806395d89b4114610522578063a0712d6814610537578063a22cb4651461054a578063a23d3c351461056a57600080fd5b8063715018a61461049957806375f0a874146104ae5780637ff9b596146104ce5780638da5cb5b146104e457600080fd5b806342842e0e116101a65780636352211e116101755780636352211e146103f45780636690b8ba146104145780636a61e5fc146104445780636c0360eb1461046457806370a082311461047957600080fd5b806342842e0e146103745780634f558e791461039457806355f804b3146103b45780635d098b38146103d457600080fd5b80630ba133c5116101ed5780630ba133c5146102d05780631f53ac02146102f457806323b872dd1461031457806333f88d221461033457806338d074361461035457600080fd5b806301ffc9a71461021f57806306fdde0314610254578063081812fc14610276578063095ea7b3146102ae575b600080fd5b34801561022b57600080fd5b5061023f61023a366004612260565b6106f4565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b50610269610746565b60405161024b91906123d3565b34801561028257600080fd5b506102966102913660046122e3565b6107d8565b6040516001600160a01b03909116815260200161024b565b3480156102ba57600080fd5b506102ce6102c936600461216c565b610872565b005b3480156102dc57600080fd5b506102e660095481565b60405190815260200161024b565b34801561030057600080fd5b506102ce61030f366004612003565b610988565b34801561032057600080fd5b506102ce61032f366004612076565b6109d4565b34801561034057600080fd5b506102ce61034f3660046122e3565b610a05565b34801561036057600080fd5b5061023f61036f3660046122fc565b610aa9565b34801561038057600080fd5b506102ce61038f366004612076565b610d6b565b3480156103a057600080fd5b5061023f6103af3660046122e3565b610d86565b3480156103c057600080fd5b506102ce6103cf36600461229a565b610da5565b3480156103e057600080fd5b506102ce6103ef366004612003565b610de2565b34801561040057600080fd5b5061029661040f3660046122e3565b610e2e565b34801561042057600080fd5b5061023f61042f3660046122e3565b600e6020526000908152604090205460ff1681565b34801561045057600080fd5b506102ce61045f3660046122e3565b610ea5565b34801561047057600080fd5b50610269610ed4565b34801561048557600080fd5b506102e6610494366004612003565b610f62565b3480156104a557600080fd5b506102ce610fe9565b3480156104ba57600080fd5b50600c54610296906001600160a01b031681565b3480156104da57600080fd5b506102e6600a5481565b3480156104f057600080fd5b506006546001600160a01b0316610296565b34801561050e57600080fd5b50600d54610296906001600160a01b031681565b34801561052e57600080fd5b5061026961101f565b6102ce6105453660046122e3565b61102e565b34801561055657600080fd5b506102ce610565366004612137565b611153565b34801561057657600080fd5b50600b54610296906001600160a01b031681565b34801561059657600080fd5b506102ce6105a5366004612198565b61115e565b3480156105b657600080fd5b506102ce6105c5366004612003565b611491565b3480156105d657600080fd5b50600d5461023f90600160a01b900460ff1681565b3480156105f757600080fd5b506102ce6106063660046120b7565b6114dd565b34801561061757600080fd5b506102ce610626366004612245565b611515565b34801561063757600080fd5b506102696106463660046122e3565b61155d565b34801561065757600080fd5b506102ce610666366004612003565b611638565b34801561067757600080fd5b50600f54610296906001600160a01b031681565b34801561069757600080fd5b5061023f6106a636600461203d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156106e057600080fd5b506102ce6106ef366004612003565b611684565b60006001600160e01b031982166380ac58cd60e01b148061072557506001600160e01b03198216635b5e139f60e01b145b8061074057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546107559061257d565b80601f01602080910402602001604051908101604052809291908181526020018280546107819061257d565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166108565760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061087d82610e2e565b9050806001600160a01b0316836001600160a01b031614156108eb5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161084d565b336001600160a01b0382161480610907575061090781336106a6565b6109795760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161084d565b610983838361172c565b505050565b6006546001600160a01b031633146109b25760405162461bcd60e51b815260040161084d90612438565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6109de338261179a565b6109fa5760405162461bcd60e51b815260040161084d9061246d565b610983838383611891565b6006546001600160a01b03163314610a2f5760405162461bcd60e51b815260040161084d90612438565b60008111610a7f5760405162461bcd60e51b815260206004820152601c60248201527f6d696e743a20616d6f756e74206d75737420626520706f736974696600000000604482015260640161084d565b60005b81811015610aa557610a9333611a2d565b80610a9d816125b8565b915050610a82565b5050565b6006546000906001600160a01b03163314610ad65760405162461bcd60e51b815260040161084d90612438565b4760008315610ae6575080610ae9565b50835b81811115610b535760405162461bcd60e51b815260206004820152603160248201527f77697468647261773a206574682062616c616e6365206d757374206265206c616044820152703933b2b9103a3430b71030b6b7bab73a1760791b606482015260840161084d565b60006064610b6283601e61251b565b610b6c9190612507565b905060006064610b7d84602861251b565b610b879190612507565b9050600081610b96848661253a565b610ba0919061253a565b600c5460408051600080825260208201928390529394506001600160a01b03909216918691610bcf919061234b565b60006040518083038185875af1925050503d8060008114610c0c576040519150601f19603f3d011682016040523d82523d6000602084013e610c11565b606091505b5050600b5460408051600080825260208201928390529394506001600160a01b03909216918691610c42919061234b565b60006040518083038185875af1925050503d8060008114610c7f576040519150601f19603f3d011682016040523d82523d6000602084013e610c84565b606091505b5050600d5460408051600080825260208201928390529394506001600160a01b03909216918691610cb5919061234b565b60006040518083038185875af1925050503d8060008114610cf2576040519150601f19603f3d011682016040523d82523d6000602084013e610cf7565b606091505b50509050828015610d055750815b8015610d0e5750805b610d5a5760405162461bcd60e51b815260206004820152601960248201527f77697468647261773a207472616e73666572206572726f722e00000000000000604482015260640161084d565b5060019a9950505050505050505050565b610983838383604051806020016040528060008152506114dd565b6000818152600260205260408120546001600160a01b03161515610740565b6006546001600160a01b03163314610dcf5760405162461bcd60e51b815260040161084d90612438565b8051610aa5906008906020840190611efd565b6006546001600160a01b03163314610e0c5760405162461bcd60e51b815260040161084d90612438565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600260205260408120546001600160a01b0316806107405760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161084d565b6006546001600160a01b03163314610ecf5760405162461bcd60e51b815260040161084d90612438565b600a55565b60088054610ee19061257d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0d9061257d565b8015610f5a5780601f10610f2f57610100808354040283529160200191610f5a565b820191906000526020600020905b815481529060010190602001808311610f3d57829003601f168201915b505050505081565b60006001600160a01b038216610fcd5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161084d565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b031633146110135760405162461bcd60e51b815260040161084d90612438565b61101d6000611a4d565b565b6060600180546107559061257d565b600d54600160a01b900460ff16156110885760405162461bcd60e51b815260206004820181905260248201527f6d696e743a20636f6e7472616374207061757365642063757272656e746c792e604482015260640161084d565b600081116110d85760405162461bcd60e51b815260206004820152601c60248201527f6d696e743a20616d6f756e74206d75737420626520706f736974696600000000604482015260640161084d565b600a546110e5908261251b565b34101561112d5760405162461bcd60e51b81526020600482015260166024820152750dad2dce87440ecc2d8eaca40dcdee840cadcdeeaced60531b604482015260640161084d565b60005b81811015610aa55761114133611a2d565b8061114b816125b8565b915050611130565b610aa5338383611a9f565b600d54600160a01b900460ff16156111b85760405162461bcd60e51b815260206004820181905260248201527f6d696e743a20636f6e7472616374207061757365642063757272656e746c792e604482015260640161084d565b60095481516007546111ca91906124ef565b11156112185760405162461bcd60e51b815260206004820152601c60248201527f6d696e743a20746f6f206d75636820746f6b656e20746f206d696e7400000000604482015260640161084d565b600f546001600160a01b03166112825760405162461bcd60e51b815260206004820152602960248201527f6d696e743a20706c65617365207365742063727970746f576f6c766573436c7560448201526862206164647265737360b81b606482015260840161084d565b60005b8151811015610aa557600e60008383815181106112a4576112a4612613565b60209081029190910181015182528101919091526040016000205460ff16156113205760405162461bcd60e51b815260206004820152602860248201527f6d696e743a2063727970746f576f6c766573436c756220696420616c726561646044820152671e481b5a5b9d195960c21b606482015260840161084d565b600f54825133916001600160a01b031690636352211e9085908590811061134957611349612613565b60200260200101516040518263ffffffff1660e01b815260040161136f91815260200190565b602060405180830381600087803b15801561138957600080fd5b505af115801561139d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c19190612020565b6001600160a01b0316146114305760405162461bcd60e51b815260206004820152603060248201527f6d696e743a20796f75206d75737420626520746865206f776e6572206f66207460448201526f6865206e66742063757272656e746c7960801b606482015260840161084d565b61143933611a2d565b6001600e600084848151811061145157611451612613565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611489906125b8565b915050611285565b6006546001600160a01b031633146114bb5760405162461bcd60e51b815260040161084d90612438565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6114e7338361179a565b6115035760405162461bcd60e51b815260040161084d9061246d565b61150f84848484611b6e565b50505050565b6006546001600160a01b0316331461153f5760405162461bcd60e51b815260040161084d90612438565b600d8054911515600160a01b0260ff60a01b19909216919091179055565b6000818152600260205260409020546060906001600160a01b03166115dc5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161084d565b60006115e6611ba1565b905060008151116116065760405180602001604052806000815250611631565b8061161084611bb0565b604051602001611621929190612367565b6040516020818303038152906040525b9392505050565b6006546001600160a01b031633146116625760405162461bcd60e51b815260040161084d90612438565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146116ae5760405162461bcd60e51b815260040161084d90612438565b6001600160a01b0381166117135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084d565b61171c81611a4d565b50565b5490565b80546001019055565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061176182610e2e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166118135760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161084d565b600061181e83610e2e565b9050806001600160a01b0316846001600160a01b031614806118595750836001600160a01b031661184e846107d8565b6001600160a01b0316145b8061188957506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166118a482610e2e565b6001600160a01b0316146119085760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161084d565b6001600160a01b03821661196a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161084d565b61197560008261172c565b6001600160a01b038316600090815260036020526040812080546001929061199e90849061253a565b90915550506001600160a01b03821660009081526003602052604081208054600192906119cc9084906124ef565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611a3f81611a3a60075490565b611cae565b61171c600780546001019055565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415611b015760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161084d565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611b79848484611891565b611b8584848484611df0565b61150f5760405162461bcd60e51b815260040161084d906123e6565b6060600880546107559061257d565b606081611bd45750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611bfe5780611be8816125b8565b9150611bf79050600a83612507565b9150611bd8565b60008167ffffffffffffffff811115611c1957611c19612629565b6040519080825280601f01601f191660200182016040528015611c43576020820181803683370190505b5090505b841561188957611c5860018361253a565b9150611c65600a866125d3565b611c709060306124ef565b60f81b818381518110611c8557611c85612613565b60200101906001600160f81b031916908160001a905350611ca7600a86612507565b9450611c47565b6001600160a01b038216611d045760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161084d565b6000818152600260205260409020546001600160a01b031615611d695760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161084d565b6001600160a01b0382166000908152600360205260408120805460019290611d929084906124ef565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b15611ef257604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e34903390899088908890600401612396565b602060405180830381600087803b158015611e4e57600080fd5b505af1925050508015611e7e575060408051601f3d908101601f19168201909252611e7b9181019061227d565b60015b611ed8573d808015611eac576040519150601f19603f3d011682016040523d82523d6000602084013e611eb1565b606091505b508051611ed05760405162461bcd60e51b815260040161084d906123e6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611889565b506001949350505050565b828054611f099061257d565b90600052602060002090601f016020900481019282611f2b5760008555611f71565b82601f10611f4457805160ff1916838001178555611f71565b82800160010185558215611f71579182015b82811115611f71578251825591602001919060010190611f56565b50611f7d929150611f81565b5090565b5b80821115611f7d5760008155600101611f82565b600067ffffffffffffffff831115611fb057611fb0612629565b611fc3601f8401601f19166020016124be565b9050828152838383011115611fd757600080fd5b828260208301376000602084830101529392505050565b80358015158114611ffe57600080fd5b919050565b60006020828403121561201557600080fd5b81356116318161263f565b60006020828403121561203257600080fd5b81516116318161263f565b6000806040838503121561205057600080fd5b823561205b8161263f565b9150602083013561206b8161263f565b809150509250929050565b60008060006060848603121561208b57600080fd5b83356120968161263f565b925060208401356120a68161263f565b929592945050506040919091013590565b600080600080608085870312156120cd57600080fd5b84356120d88161263f565b935060208501356120e88161263f565b925060408501359150606085013567ffffffffffffffff81111561210b57600080fd5b8501601f8101871361211c57600080fd5b61212b87823560208401611f96565b91505092959194509250565b6000806040838503121561214a57600080fd5b82356121558161263f565b915061216360208401611fee565b90509250929050565b6000806040838503121561217f57600080fd5b823561218a8161263f565b946020939093013593505050565b600060208083850312156121ab57600080fd5b823567ffffffffffffffff808211156121c357600080fd5b818501915085601f8301126121d757600080fd5b8135818111156121e9576121e9612629565b8060051b91506121fa8483016124be565b8181528481019084860184860187018a101561221557600080fd5b600095505b8386101561223857803583526001959095019491860191860161221a565b5098975050505050505050565b60006020828403121561225757600080fd5b61163182611fee565b60006020828403121561227257600080fd5b813561163181612654565b60006020828403121561228f57600080fd5b815161163181612654565b6000602082840312156122ac57600080fd5b813567ffffffffffffffff8111156122c357600080fd5b8201601f810184136122d457600080fd5b61188984823560208401611f96565b6000602082840312156122f557600080fd5b5035919050565b6000806040838503121561230f57600080fd5b8235915061216360208401611fee565b60008151808452612337816020860160208601612551565b601f01601f19169290920160200192915050565b6000825161235d818460208701612551565b9190910192915050565b60008351612379818460208801612551565b83519083019061238d818360208801612551565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906123c99083018461231f565b9695505050505050565b602081526000611631602083018461231f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff811182821017156124e7576124e7612629565b604052919050565b60008219821115612502576125026125e7565b500190565b600082612516576125166125fd565b500490565b6000816000190483118215151615612535576125356125e7565b500290565b60008282101561254c5761254c6125e7565b500390565b60005b8381101561256c578181015183820152602001612554565b8381111561150f5750506000910152565b600181811c9082168061259157607f821691505b602082108114156125b257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156125cc576125cc6125e7565b5060010190565b6000826125e2576125e26125fd565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461171c57600080fd5b6001600160e01b03198116811461171c57600080fdfea2646970667358221220068a1c0d5fdd79e4187ae607081cf520b70b6918b6f46a834bc68cc0d62310ea64736f6c63430008070033697066733a2f2f516d664766764b6b525462706e543871534445783233764b31336d6d737846557865793279383451345459794d5a2f

Deployed Bytecode

0x60806040526004361061021a5760003560e01c8063715018a611610123578063a635edd9116100ab578063c87b56dd1161006f578063c87b56dd1461062b578063cee360531461064b578063e7573d851461066b578063e985e9c51461068b578063f2fde38b146106d457600080fd5b8063a635edd91461058a578063aba6467b146105aa578063b187bd26146105ca578063b88d4fde146105eb578063bedb86fb1461060b57600080fd5b80638ea5220f116100f25780638ea5220f1461050257806395d89b4114610522578063a0712d6814610537578063a22cb4651461054a578063a23d3c351461056a57600080fd5b8063715018a61461049957806375f0a874146104ae5780637ff9b596146104ce5780638da5cb5b146104e457600080fd5b806342842e0e116101a65780636352211e116101755780636352211e146103f45780636690b8ba146104145780636a61e5fc146104445780636c0360eb1461046457806370a082311461047957600080fd5b806342842e0e146103745780634f558e791461039457806355f804b3146103b45780635d098b38146103d457600080fd5b80630ba133c5116101ed5780630ba133c5146102d05780631f53ac02146102f457806323b872dd1461031457806333f88d221461033457806338d074361461035457600080fd5b806301ffc9a71461021f57806306fdde0314610254578063081812fc14610276578063095ea7b3146102ae575b600080fd5b34801561022b57600080fd5b5061023f61023a366004612260565b6106f4565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b50610269610746565b60405161024b91906123d3565b34801561028257600080fd5b506102966102913660046122e3565b6107d8565b6040516001600160a01b03909116815260200161024b565b3480156102ba57600080fd5b506102ce6102c936600461216c565b610872565b005b3480156102dc57600080fd5b506102e660095481565b60405190815260200161024b565b34801561030057600080fd5b506102ce61030f366004612003565b610988565b34801561032057600080fd5b506102ce61032f366004612076565b6109d4565b34801561034057600080fd5b506102ce61034f3660046122e3565b610a05565b34801561036057600080fd5b5061023f61036f3660046122fc565b610aa9565b34801561038057600080fd5b506102ce61038f366004612076565b610d6b565b3480156103a057600080fd5b5061023f6103af3660046122e3565b610d86565b3480156103c057600080fd5b506102ce6103cf36600461229a565b610da5565b3480156103e057600080fd5b506102ce6103ef366004612003565b610de2565b34801561040057600080fd5b5061029661040f3660046122e3565b610e2e565b34801561042057600080fd5b5061023f61042f3660046122e3565b600e6020526000908152604090205460ff1681565b34801561045057600080fd5b506102ce61045f3660046122e3565b610ea5565b34801561047057600080fd5b50610269610ed4565b34801561048557600080fd5b506102e6610494366004612003565b610f62565b3480156104a557600080fd5b506102ce610fe9565b3480156104ba57600080fd5b50600c54610296906001600160a01b031681565b3480156104da57600080fd5b506102e6600a5481565b3480156104f057600080fd5b506006546001600160a01b0316610296565b34801561050e57600080fd5b50600d54610296906001600160a01b031681565b34801561052e57600080fd5b5061026961101f565b6102ce6105453660046122e3565b61102e565b34801561055657600080fd5b506102ce610565366004612137565b611153565b34801561057657600080fd5b50600b54610296906001600160a01b031681565b34801561059657600080fd5b506102ce6105a5366004612198565b61115e565b3480156105b657600080fd5b506102ce6105c5366004612003565b611491565b3480156105d657600080fd5b50600d5461023f90600160a01b900460ff1681565b3480156105f757600080fd5b506102ce6106063660046120b7565b6114dd565b34801561061757600080fd5b506102ce610626366004612245565b611515565b34801561063757600080fd5b506102696106463660046122e3565b61155d565b34801561065757600080fd5b506102ce610666366004612003565b611638565b34801561067757600080fd5b50600f54610296906001600160a01b031681565b34801561069757600080fd5b5061023f6106a636600461203d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156106e057600080fd5b506102ce6106ef366004612003565b611684565b60006001600160e01b031982166380ac58cd60e01b148061072557506001600160e01b03198216635b5e139f60e01b145b8061074057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546107559061257d565b80601f01602080910402602001604051908101604052809291908181526020018280546107819061257d565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166108565760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061087d82610e2e565b9050806001600160a01b0316836001600160a01b031614156108eb5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161084d565b336001600160a01b0382161480610907575061090781336106a6565b6109795760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161084d565b610983838361172c565b505050565b6006546001600160a01b031633146109b25760405162461bcd60e51b815260040161084d90612438565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6109de338261179a565b6109fa5760405162461bcd60e51b815260040161084d9061246d565b610983838383611891565b6006546001600160a01b03163314610a2f5760405162461bcd60e51b815260040161084d90612438565b60008111610a7f5760405162461bcd60e51b815260206004820152601c60248201527f6d696e743a20616d6f756e74206d75737420626520706f736974696600000000604482015260640161084d565b60005b81811015610aa557610a9333611a2d565b80610a9d816125b8565b915050610a82565b5050565b6006546000906001600160a01b03163314610ad65760405162461bcd60e51b815260040161084d90612438565b4760008315610ae6575080610ae9565b50835b81811115610b535760405162461bcd60e51b815260206004820152603160248201527f77697468647261773a206574682062616c616e6365206d757374206265206c616044820152703933b2b9103a3430b71030b6b7bab73a1760791b606482015260840161084d565b60006064610b6283601e61251b565b610b6c9190612507565b905060006064610b7d84602861251b565b610b879190612507565b9050600081610b96848661253a565b610ba0919061253a565b600c5460408051600080825260208201928390529394506001600160a01b03909216918691610bcf919061234b565b60006040518083038185875af1925050503d8060008114610c0c576040519150601f19603f3d011682016040523d82523d6000602084013e610c11565b606091505b5050600b5460408051600080825260208201928390529394506001600160a01b03909216918691610c42919061234b565b60006040518083038185875af1925050503d8060008114610c7f576040519150601f19603f3d011682016040523d82523d6000602084013e610c84565b606091505b5050600d5460408051600080825260208201928390529394506001600160a01b03909216918691610cb5919061234b565b60006040518083038185875af1925050503d8060008114610cf2576040519150601f19603f3d011682016040523d82523d6000602084013e610cf7565b606091505b50509050828015610d055750815b8015610d0e5750805b610d5a5760405162461bcd60e51b815260206004820152601960248201527f77697468647261773a207472616e73666572206572726f722e00000000000000604482015260640161084d565b5060019a9950505050505050505050565b610983838383604051806020016040528060008152506114dd565b6000818152600260205260408120546001600160a01b03161515610740565b6006546001600160a01b03163314610dcf5760405162461bcd60e51b815260040161084d90612438565b8051610aa5906008906020840190611efd565b6006546001600160a01b03163314610e0c5760405162461bcd60e51b815260040161084d90612438565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600260205260408120546001600160a01b0316806107405760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161084d565b6006546001600160a01b03163314610ecf5760405162461bcd60e51b815260040161084d90612438565b600a55565b60088054610ee19061257d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0d9061257d565b8015610f5a5780601f10610f2f57610100808354040283529160200191610f5a565b820191906000526020600020905b815481529060010190602001808311610f3d57829003601f168201915b505050505081565b60006001600160a01b038216610fcd5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161084d565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b031633146110135760405162461bcd60e51b815260040161084d90612438565b61101d6000611a4d565b565b6060600180546107559061257d565b600d54600160a01b900460ff16156110885760405162461bcd60e51b815260206004820181905260248201527f6d696e743a20636f6e7472616374207061757365642063757272656e746c792e604482015260640161084d565b600081116110d85760405162461bcd60e51b815260206004820152601c60248201527f6d696e743a20616d6f756e74206d75737420626520706f736974696600000000604482015260640161084d565b600a546110e5908261251b565b34101561112d5760405162461bcd60e51b81526020600482015260166024820152750dad2dce87440ecc2d8eaca40dcdee840cadcdeeaced60531b604482015260640161084d565b60005b81811015610aa55761114133611a2d565b8061114b816125b8565b915050611130565b610aa5338383611a9f565b600d54600160a01b900460ff16156111b85760405162461bcd60e51b815260206004820181905260248201527f6d696e743a20636f6e7472616374207061757365642063757272656e746c792e604482015260640161084d565b60095481516007546111ca91906124ef565b11156112185760405162461bcd60e51b815260206004820152601c60248201527f6d696e743a20746f6f206d75636820746f6b656e20746f206d696e7400000000604482015260640161084d565b600f546001600160a01b03166112825760405162461bcd60e51b815260206004820152602960248201527f6d696e743a20706c65617365207365742063727970746f576f6c766573436c7560448201526862206164647265737360b81b606482015260840161084d565b60005b8151811015610aa557600e60008383815181106112a4576112a4612613565b60209081029190910181015182528101919091526040016000205460ff16156113205760405162461bcd60e51b815260206004820152602860248201527f6d696e743a2063727970746f576f6c766573436c756220696420616c726561646044820152671e481b5a5b9d195960c21b606482015260840161084d565b600f54825133916001600160a01b031690636352211e9085908590811061134957611349612613565b60200260200101516040518263ffffffff1660e01b815260040161136f91815260200190565b602060405180830381600087803b15801561138957600080fd5b505af115801561139d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c19190612020565b6001600160a01b0316146114305760405162461bcd60e51b815260206004820152603060248201527f6d696e743a20796f75206d75737420626520746865206f776e6572206f66207460448201526f6865206e66742063757272656e746c7960801b606482015260840161084d565b61143933611a2d565b6001600e600084848151811061145157611451612613565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611489906125b8565b915050611285565b6006546001600160a01b031633146114bb5760405162461bcd60e51b815260040161084d90612438565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6114e7338361179a565b6115035760405162461bcd60e51b815260040161084d9061246d565b61150f84848484611b6e565b50505050565b6006546001600160a01b0316331461153f5760405162461bcd60e51b815260040161084d90612438565b600d8054911515600160a01b0260ff60a01b19909216919091179055565b6000818152600260205260409020546060906001600160a01b03166115dc5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161084d565b60006115e6611ba1565b905060008151116116065760405180602001604052806000815250611631565b8061161084611bb0565b604051602001611621929190612367565b6040516020818303038152906040525b9392505050565b6006546001600160a01b031633146116625760405162461bcd60e51b815260040161084d90612438565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146116ae5760405162461bcd60e51b815260040161084d90612438565b6001600160a01b0381166117135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161084d565b61171c81611a4d565b50565b5490565b80546001019055565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061176182610e2e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166118135760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161084d565b600061181e83610e2e565b9050806001600160a01b0316846001600160a01b031614806118595750836001600160a01b031661184e846107d8565b6001600160a01b0316145b8061188957506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166118a482610e2e565b6001600160a01b0316146119085760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161084d565b6001600160a01b03821661196a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161084d565b61197560008261172c565b6001600160a01b038316600090815260036020526040812080546001929061199e90849061253a565b90915550506001600160a01b03821660009081526003602052604081208054600192906119cc9084906124ef565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611a3f81611a3a60075490565b611cae565b61171c600780546001019055565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415611b015760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161084d565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611b79848484611891565b611b8584848484611df0565b61150f5760405162461bcd60e51b815260040161084d906123e6565b6060600880546107559061257d565b606081611bd45750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611bfe5780611be8816125b8565b9150611bf79050600a83612507565b9150611bd8565b60008167ffffffffffffffff811115611c1957611c19612629565b6040519080825280601f01601f191660200182016040528015611c43576020820181803683370190505b5090505b841561188957611c5860018361253a565b9150611c65600a866125d3565b611c709060306124ef565b60f81b818381518110611c8557611c85612613565b60200101906001600160f81b031916908160001a905350611ca7600a86612507565b9450611c47565b6001600160a01b038216611d045760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161084d565b6000818152600260205260409020546001600160a01b031615611d695760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161084d565b6001600160a01b0382166000908152600360205260408120805460019290611d929084906124ef565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b15611ef257604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e34903390899088908890600401612396565b602060405180830381600087803b158015611e4e57600080fd5b505af1925050508015611e7e575060408051601f3d908101601f19168201909252611e7b9181019061227d565b60015b611ed8573d808015611eac576040519150601f19603f3d011682016040523d82523d6000602084013e611eb1565b606091505b508051611ed05760405162461bcd60e51b815260040161084d906123e6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611889565b506001949350505050565b828054611f099061257d565b90600052602060002090601f016020900481019282611f2b5760008555611f71565b82601f10611f4457805160ff1916838001178555611f71565b82800160010185558215611f71579182015b82811115611f71578251825591602001919060010190611f56565b50611f7d929150611f81565b5090565b5b80821115611f7d5760008155600101611f82565b600067ffffffffffffffff831115611fb057611fb0612629565b611fc3601f8401601f19166020016124be565b9050828152838383011115611fd757600080fd5b828260208301376000602084830101529392505050565b80358015158114611ffe57600080fd5b919050565b60006020828403121561201557600080fd5b81356116318161263f565b60006020828403121561203257600080fd5b81516116318161263f565b6000806040838503121561205057600080fd5b823561205b8161263f565b9150602083013561206b8161263f565b809150509250929050565b60008060006060848603121561208b57600080fd5b83356120968161263f565b925060208401356120a68161263f565b929592945050506040919091013590565b600080600080608085870312156120cd57600080fd5b84356120d88161263f565b935060208501356120e88161263f565b925060408501359150606085013567ffffffffffffffff81111561210b57600080fd5b8501601f8101871361211c57600080fd5b61212b87823560208401611f96565b91505092959194509250565b6000806040838503121561214a57600080fd5b82356121558161263f565b915061216360208401611fee565b90509250929050565b6000806040838503121561217f57600080fd5b823561218a8161263f565b946020939093013593505050565b600060208083850312156121ab57600080fd5b823567ffffffffffffffff808211156121c357600080fd5b818501915085601f8301126121d757600080fd5b8135818111156121e9576121e9612629565b8060051b91506121fa8483016124be565b8181528481019084860184860187018a101561221557600080fd5b600095505b8386101561223857803583526001959095019491860191860161221a565b5098975050505050505050565b60006020828403121561225757600080fd5b61163182611fee565b60006020828403121561227257600080fd5b813561163181612654565b60006020828403121561228f57600080fd5b815161163181612654565b6000602082840312156122ac57600080fd5b813567ffffffffffffffff8111156122c357600080fd5b8201601f810184136122d457600080fd5b61188984823560208401611f96565b6000602082840312156122f557600080fd5b5035919050565b6000806040838503121561230f57600080fd5b8235915061216360208401611fee565b60008151808452612337816020860160208601612551565b601f01601f19169290920160200192915050565b6000825161235d818460208701612551565b9190910192915050565b60008351612379818460208801612551565b83519083019061238d818360208801612551565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906123c99083018461231f565b9695505050505050565b602081526000611631602083018461231f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff811182821017156124e7576124e7612629565b604052919050565b60008219821115612502576125026125e7565b500190565b600082612516576125166125fd565b500490565b6000816000190483118215151615612535576125356125e7565b500290565b60008282101561254c5761254c6125e7565b500390565b60005b8381101561256c578181015183820152602001612554565b8381111561150f5750506000910152565b600181811c9082168061259157607f821691505b602082108114156125b257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156125cc576125cc6125e7565b5060010190565b6000826125e2576125e26125fd565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461171c57600080fd5b6001600160e01b03198116811461171c57600080fdfea2646970667358221220068a1c0d5fdd79e4187ae607081cf520b70b6918b6f46a834bc68cc0d62310ea64736f6c63430008070033

Deployed Bytecode Sourcemap

17182:4530:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7748:305;;;;;;;;;;-1:-1:-1;7748:305:0;;;;;:::i;:::-;;:::i;:::-;;;7817:14:1;;7810:22;7792:41;;7780:2;7765:18;7748:305:0;;;;;;;;8524:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9607:221::-;;;;;;;;;;-1:-1:-1;9607:221:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;7115:32:1;;;7097:51;;7085:2;7070:18;9607:221:0;6951:203:1;9188:411:0;;;;;;;;;;-1:-1:-1;9188:411:0;;;;;:::i;:::-;;:::i;:::-;;17409:32;;;;;;;;;;;;;;;;;;;18260:25:1;;;18248:2;18233:18;17409:32:0;18114:177:1;20530:102:0;;;;;;;;;;-1:-1:-1;20530:102:0;;;;;:::i;:::-;;:::i;10171:339::-;;;;;;;;;;-1:-1:-1;10171:339:0;;;;;:::i;:::-;;:::i;19552:226::-;;;;;;;;;;-1:-1:-1;19552:226:0;;;;;:::i;:::-;;:::i;20640:1069::-;;;;;;;;;;-1:-1:-1;20640:1069:0;;;;;:::i;:::-;;:::i;10518:185::-;;;;;;;;;;-1:-1:-1;10518:185:0;;;;;:::i;:::-;;:::i;19297:104::-;;;;;;;;;;-1:-1:-1;19297:104:0;;;;;:::i;:::-;;:::i;20061:100::-;;;;;;;;;;-1:-1:-1;20061:100:0;;;;;:::i;:::-;;:::i;20270:126::-;;;;;;;;;;-1:-1:-1;20270:126:0;;;;;:::i;:::-;;:::i;8277:239::-;;;;;;;;;;-1:-1:-1;8277:239:0;;;;;:::i;:::-;;:::i;17768:52::-;;;;;;;;;;-1:-1:-1;17768:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19786:106;;;;;;;;;;-1:-1:-1;19786:106:0;;;;;:::i;:::-;;:::i;17322:80::-;;;;;;;;;;;;;:::i;8061:208::-;;;;;;;;;;-1:-1:-1;8061:208:0;;;;;:::i;:::-;;:::i;16558:103::-;;;;;;;;;;;;;:::i;17573:75::-;;;;;;;;;;-1:-1:-1;17573:75:0;;;;-1:-1:-1;;;;;17573:75:0;;;17448:38;;;;;;;;;;;;;;;;16335:87;;;;;;;;;;-1:-1:-1;16408:6:0;;-1:-1:-1;;;;;16408:6:0;16335:87;;17655:69;;;;;;;;;;-1:-1:-1;17655:69:0;;;;-1:-1:-1;;;;;17655:69:0;;;8632:104;;;;;;;;;;;;;:::i;18048:411::-;;;;;;:::i;:::-;;:::i;9836:155::-;;;;;;;;;;-1:-1:-1;9836:155:0;;;;;:::i;:::-;;:::i;17493:73::-;;;;;;;;;;-1:-1:-1;17493:73:0;;;;-1:-1:-1;;;;;17493:73:0;;;18467:710;;;;;;;;;;-1:-1:-1;18467:710:0;;;;;:::i;:::-;;:::i;19904:149::-;;;;;;;;;;-1:-1:-1;19904:149:0;;;;;:::i;:::-;;:::i;17733:28::-;;;;;;;;;;-1:-1:-1;17733:28:0;;;;-1:-1:-1;;;17733:28:0;;;;;;10711:328;;;;;;;;;;-1:-1:-1;10711:328:0;;;;;:::i;:::-;;:::i;20169:93::-;;;;;;;;;;-1:-1:-1;20169:93:0;;;;;:::i;:::-;;:::i;8744:334::-;;;;;;;;;;-1:-1:-1;8744:334:0;;;;;:::i;:::-;;:::i;20404:118::-;;;;;;;;;;-1:-1:-1;20404:118:0;;;;;:::i;:::-;;:::i;17829:105::-;;;;;;;;;;-1:-1:-1;17829:105:0;;;;-1:-1:-1;;;;;17829:105:0;;;9999:164;;;;;;;;;;-1:-1:-1;9999:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;10120:25:0;;;10096:4;10120:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;9999:164;16669:201;;;;;;;;;;-1:-1:-1;16669:201:0;;;;;:::i;:::-;;:::i;7748:305::-;7850:4;-1:-1:-1;;;;;;7887:40:0;;-1:-1:-1;;;7887:40:0;;:105;;-1:-1:-1;;;;;;;7944:48:0;;-1:-1:-1;;;7944:48:0;7887:105;:158;;;-1:-1:-1;;;;;;;;;;7133:40:0;;;8009:36;7867:178;7748:305;-1:-1:-1;;7748:305:0:o;8524:100::-;8578:13;8611:5;8604:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8524:100;:::o;9607:221::-;9683:7;11459:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11459:16:0;9703:73;;;;-1:-1:-1;;;9703:73:0;;14826:2:1;9703:73:0;;;14808:21:1;14865:2;14845:18;;;14838:30;14904:34;14884:18;;;14877:62;-1:-1:-1;;;14955:18:1;;;14948:42;15007:19;;9703:73:0;;;;;;;;;-1:-1:-1;9796:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;9796:24:0;;9607:221::o;9188:411::-;9269:13;9285:23;9300:7;9285:14;:23::i;:::-;9269:39;;9333:5;-1:-1:-1;;;;;9327:11:0;:2;-1:-1:-1;;;;;9327:11:0;;;9319:57;;;;-1:-1:-1;;;9319:57:0;;16727:2:1;9319:57:0;;;16709:21:1;16766:2;16746:18;;;16739:30;16805:34;16785:18;;;16778:62;-1:-1:-1;;;16856:18:1;;;16849:31;16897:19;;9319:57:0;16525:397:1;9319:57:0;5403:10;-1:-1:-1;;;;;9411:21:0;;;;:62;;-1:-1:-1;9436:37:0;9453:5;5403:10;9999:164;:::i;9436:37::-;9389:168;;;;-1:-1:-1;;;9389:168:0;;12448:2:1;9389:168:0;;;12430:21:1;12487:2;12467:18;;;12460:30;12526:34;12506:18;;;12499:62;12597:26;12577:18;;;12570:54;12641:19;;9389:168:0;12246:420:1;9389:168:0;9570:21;9579:2;9583:7;9570:8;:21::i;:::-;9258:341;9188:411;;:::o;20530:102::-;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;20602:9:::1;:22:::0;;-1:-1:-1;;;;;;20602:22:0::1;-1:-1:-1::0;;;;;20602:22:0;;;::::1;::::0;;;::::1;::::0;;20530:102::o;10171:339::-;10366:41;5403:10;10399:7;10366:18;:41::i;:::-;10358:103;;;;-1:-1:-1;;;10358:103:0;;;;;;;:::i;:::-;10474:28;10484:4;10490:2;10494:7;10474:9;:28::i;19552:226::-;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;19637:1:::1;19627:7;:11;19619:52;;;::::0;-1:-1:-1;;;19619:52:0;;8504:2:1;19619:52:0::1;::::0;::::1;8486:21:1::0;8543:2;8523:18;;;8516:30;8582;8562:18;;;8555:58;8630:18;;19619:52:0::1;8302:352:1::0;19619:52:0::1;19686:9;19682:89;19705:7;19701:1;:11;19682:89;;;19733:26;5403:10:::0;19733:12:::1;:26::i;:::-;19714:3:::0;::::1;::::0;::::1;:::i;:::-;;;;19682:89;;;;19552:226:::0;:::o;20640:1069::-;16408:6;;20724:4;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;20761:21:::1;20740:18;20821:120:::0;::::1;;;-1:-1:-1::0;20864:10:0;20821:120:::1;;;-1:-1:-1::0;20919:10:0;20821:120:::1;20972:10;20959:9;:23;;20951:85;;;::::0;-1:-1:-1;;;20951:85:0;;17898:2:1;20951:85:0::1;::::0;::::1;17880:21:1::0;17937:2;17917:18;;;17910:30;17976:34;17956:18;;;17949:62;-1:-1:-1;;;18027:18:1;;;18020:47;18084:19;;20951:85:0::1;17696:413:1::0;20951:85:0::1;21047:26;21110:3;21092:14;:9:::0;21104:2:::1;21092:14;:::i;:::-;21084:29;;;;:::i;:::-;21047:67:::0;-1:-1:-1;21125:24:0::1;21186:3;21168:14;:9:::0;21180:2:::1;21168:14;:::i;:::-;21160:29;;;;:::i;:::-;21125:65:::0;-1:-1:-1;21201:20:0::1;21125:65:::0;21232:30:::1;21244:18:::0;21232:9;:30:::1;:::i;:::-;21224:58;;;;:::i;:::-;21328:15;::::0;21377:12:::1;::::0;;21294:21:::1;21377:12:::0;;;::::1;::::0;::::1;::::0;;;;21201:81;;-1:-1:-1;;;;;;21328:15:0;;::::1;::::0;21357:18;;21320:70:::1;::::0;21377:12;21320:70:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;21434:13:0::1;::::0;21479:12:::1;::::0;;21402:19:::1;21479:12:::0;;;::::1;::::0;::::1;::::0;;;;21293:97;;-1:-1:-1;;;;;;21434:13:0;;::::1;::::0;21461:16;;21426:66:::1;::::0;21479:12;21426:66:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;21532:9:0::1;::::0;21569:12:::1;::::0;;21504:15:::1;21569:12:::0;;;::::1;::::0;::::1;::::0;;;;21401:91;;-1:-1:-1;;;;;;21532:9:0;;::::1;::::0;21555:12;;21524:58:::1;::::0;21569:12;21524:58:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21503:79;;;21601:16;:34;;;;;21621:14;21601:34;:48;;;;;21639:10;21601:48;21593:86;;;::::0;-1:-1:-1;;;21593:86:0;;15957:2:1;21593:86:0::1;::::0;::::1;15939:21:1::0;15996:2;15976:18;;;15969:30;16035:27;16015:18;;;16008:55;16080:18;;21593:86:0::1;15755:349:1::0;21593:86:0::1;-1:-1:-1::0;21697:4:0::1;::::0;20640:1069;-1:-1:-1;;;;;;;;;;20640:1069:0:o;10518:185::-;10656:39;10673:4;10679:2;10683:7;10656:39;;;;;;;;;;;;:16;:39::i;19297:104::-;19353:4;11459:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11459:16:0;:30;;19376:17;11370:127;20061:100;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;20135:18;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;20270:126::-:0;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;20354:15:::1;:34:::0;;-1:-1:-1;;;;;;20354:34:0::1;-1:-1:-1::0;;;;;20354:34:0;;;::::1;::::0;;;::::1;::::0;;20270:126::o;8277:239::-;8349:7;8385:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8385:16:0;8420:19;8412:73;;;;-1:-1:-1;;;8412:73:0;;13694:2:1;8412:73:0;;;13676:21:1;13733:2;13713:18;;;13706:30;13772:34;13752:18;;;13745:62;-1:-1:-1;;;13823:18:1;;;13816:39;13872:19;;8412:73:0;13492:405:1;19786:106:0;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;19860:10:::1;:24:::0;19786:106::o;17322:80::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8061:208::-;8133:7;-1:-1:-1;;;;;8161:19:0;;8153:74;;;;-1:-1:-1;;;8153:74:0;;13283:2:1;8153:74:0;;;13265:21:1;13322:2;13302:18;;;13295:30;13361:34;13341:18;;;13334:62;-1:-1:-1;;;13412:18:1;;;13405:40;13462:19;;8153:74:0;13081:406:1;8153:74:0;-1:-1:-1;;;;;;8245:16:0;;;;;:9;:16;;;;;;;8061:208::o;16558:103::-;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;16623:30:::1;16650:1;16623:18;:30::i;:::-;16558:103::o:0;8632:104::-;8688:13;8721:7;8714:14;;;;;:::i;18048:411::-;18125:8;;-1:-1:-1;;;18125:8:0;;;;18124:9;18116:54;;;;-1:-1:-1;;;18116:54:0;;14104:2:1;18116:54:0;;;14086:21:1;;;14123:18;;;14116:30;14182:34;14162:18;;;14155:62;14234:18;;18116:54:0;13902:356:1;18116:54:0;18207:1;18197:7;:11;18189:52;;;;-1:-1:-1;;;18189:52:0;;8504:2:1;18189:52:0;;;8486:21:1;8543:2;8523:18;;;8516:30;8582;8562:18;;;8555:58;8630:18;;18189:52:0;8302:352:1;18189:52:0;18291:10;;18281:20;;:7;:20;:::i;:::-;18268:9;:33;;18260:68;;;;-1:-1:-1;;;18260:68:0;;17129:2:1;18260:68:0;;;17111:21:1;17168:2;17148:18;;;17141:30;-1:-1:-1;;;17187:18:1;;;17180:52;17249:18;;18260:68:0;16927:346:1;18260:68:0;18351:9;18347:105;18370:7;18366:1;:11;18347:105;;;18406:26;5403:10;19733:12:::1;:26::i;18406:::-:0;18379:3;;;;:::i;:::-;;;;18347:105;;9836:155;9931:52;5403:10;9964:8;9974;9931:18;:52::i;18467:710::-;18541:8;;-1:-1:-1;;;18541:8:0;;;;18540:9;18532:54;;;;-1:-1:-1;;;18532:54:0;;14104:2:1;18532:54:0;;;14086:21:1;;;14123:18;;;14116:30;14182:34;14162:18;;;14155:62;14234:18;;18532:54:0;13902:356:1;18532:54:0;18642:9;;18627:11;;18605:9;15592:14;18605:33;;;;:::i;:::-;:46;;18597:87;;;;-1:-1:-1;;;18597:87:0;;15239:2:1;18597:87:0;;;15221:21:1;15278:2;15258:18;;;15251:30;15317;15297:18;;;15290:58;15365:18;;18597:87:0;15037:352:1;18597:87:0;18711:16;;-1:-1:-1;;;;;18711:16:0;18695:93;;;;-1:-1:-1;;;18695:93:0;;12873:2:1;18695:93:0;;;12855:21:1;12912:2;12892:18;;;12885:30;12951:34;12931:18;;;12924:62;-1:-1:-1;;;13002:18:1;;;12995:39;13051:19;;18695:93:0;12671:405:1;18695:93:0;18803:9;18799:371;18822:4;:11;18818:1;:15;18799:371;;;18863:22;:31;18886:4;18891:1;18886:7;;;;;;;;:::i;:::-;;;;;;;;;;;;18863:31;;;;;;;;;;-1:-1:-1;18863:31:0;;;;18862:32;18854:85;;;;-1:-1:-1;;;18854:85:0;;10450:2:1;18854:85:0;;;10432:21:1;10489:2;10469:18;;;10462:30;10528:34;10508:18;;;10501:62;-1:-1:-1;;;10579:18:1;;;10572:38;10627:19;;18854:85:0;10248:404:1;18854:85:0;18962:16;;18987:7;;5403:10;;-1:-1:-1;;;;;18962:16:0;;:24;;18987:4;;18992:1;;18987:7;;;;;;:::i;:::-;;;;;;;18962:33;;;;;;;;;;;;;18260:25:1;;18248:2;18233:18;;18114:177;18962:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18962:49:0;;18954:110;;;;-1:-1:-1;;;18954:110:0;;12031:2:1;18954:110:0;;;12013:21:1;12070:2;12050:18;;;12043:30;12109:34;12089:18;;;12082:62;-1:-1:-1;;;12160:18:1;;;12153:46;12216:19;;18954:110:0;11829:412:1;18954:110:0;19079:26;5403:10;19733:12:::1;:26::i;19079:::-:0;19154:4;19120:22;:31;19143:4;19148:1;19143:7;;;;;;;;:::i;:::-;;;;;;;19120:31;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18835:3;;;;;:::i;:::-;;;;18799:371;;19904:149;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;19990:16:::1;:55:::0;;-1:-1:-1;;;;;;19990:55:0::1;-1:-1:-1::0;;;;;19990:55:0;;;::::1;::::0;;;::::1;::::0;;19904:149::o;10711:328::-;10886:41;5403:10;10919:7;10886:18;:41::i;:::-;10878:103;;;;-1:-1:-1;;;10878:103:0;;;;;;;:::i;:::-;10992:39;11006:4;11012:2;11016:7;11025:5;10992:13;:39::i;:::-;10711:328;;;;:::o;20169:93::-;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;20233:8:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;20233:20:0::1;-1:-1:-1::0;;;;20233:20:0;;::::1;::::0;;;::::1;::::0;;20169:93::o;8744:334::-;11435:4;11459:16;;;:7;:16;;;;;;8817:13;;-1:-1:-1;;;;;11459:16:0;8843:76;;;;-1:-1:-1;;;8843:76:0;;16311:2:1;8843:76:0;;;16293:21:1;16350:2;16330:18;;;16323:30;16389:34;16369:18;;;16362:62;-1:-1:-1;;;16440:18:1;;;16433:45;16495:19;;8843:76:0;16109:411:1;8843:76:0;8932:21;8956:10;:8;:10::i;:::-;8932:34;;9008:1;8990:7;8984:21;:25;:86;;;;;;;;;;;;;;;;;9036:7;9045:18;:7;:16;:18::i;:::-;9019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8984:86;8977:93;8744:334;-1:-1:-1;;;8744:334:0:o;20404:118::-;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;20484:13:::1;:30:::0;;-1:-1:-1;;;;;;20484:30:0::1;-1:-1:-1::0;;;;;20484:30:0;;;::::1;::::0;;;::::1;::::0;;20404:118::o;16669:201::-;16408:6;;-1:-1:-1;;;;;16408:6:0;5403:10;16470:23;16462:68;;;;-1:-1:-1;;;16462:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16758:22:0;::::1;16750:73;;;::::0;-1:-1:-1;;;16750:73:0;;9280:2:1;16750:73:0::1;::::0;::::1;9262:21:1::0;9319:2;9299:18;;;9292:30;9358:34;9338:18;;;9331:62;-1:-1:-1;;;9409:18:1;;;9402:36;9455:19;;16750:73:0::1;9078:402:1::0;16750:73:0::1;16834:28;16853:8;16834:18;:28::i;:::-;16669:201:::0;:::o;15500:114::-;15592:14;;15500:114::o;15622:127::-;15711:19;;15729:1;15711:19;;;15622:127::o;13816:174::-;13891:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;13891:29:0;-1:-1:-1;;;;;13891:29:0;;;;;;;;:24;;13945:23;13891:24;13945:14;:23::i;:::-;-1:-1:-1;;;;;13936:46:0;;;;;;;;;;;13816:174;;:::o;11505:348::-;11598:4;11459:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11459:16:0;11615:73;;;;-1:-1:-1;;;11615:73:0;;11618:2:1;11615:73:0;;;11600:21:1;11657:2;11637:18;;;11630:30;11696:34;11676:18;;;11669:62;-1:-1:-1;;;11747:18:1;;;11740:42;11799:19;;11615:73:0;11416:408:1;11615:73:0;11699:13;11715:23;11730:7;11715:14;:23::i;:::-;11699:39;;11768:5;-1:-1:-1;;;;;11757:16:0;:7;-1:-1:-1;;;;;11757:16:0;;:51;;;;11801:7;-1:-1:-1;;;;;11777:31:0;:20;11789:7;11777:11;:20::i;:::-;-1:-1:-1;;;;;11777:31:0;;11757:51;:87;;;-1:-1:-1;;;;;;10120:25:0;;;10096:4;10120:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;11812:32;11749:96;11505:348;-1:-1:-1;;;;11505:348:0:o;13183:625::-;13342:4;-1:-1:-1;;;;;13315:31:0;:23;13330:7;13315:14;:23::i;:::-;-1:-1:-1;;;;;13315:31:0;;13307:81;;;;-1:-1:-1;;;13307:81:0;;9687:2:1;13307:81:0;;;9669:21:1;9726:2;9706:18;;;9699:30;9765:34;9745:18;;;9738:62;-1:-1:-1;;;9816:18:1;;;9809:35;9861:19;;13307:81:0;9485:401:1;13307:81:0;-1:-1:-1;;;;;13407:16:0;;13399:65;;;;-1:-1:-1;;;13399:65:0;;10859:2:1;13399:65:0;;;10841:21:1;10898:2;10878:18;;;10871:30;10937:34;10917:18;;;10910:62;-1:-1:-1;;;10988:18:1;;;10981:34;11032:19;;13399:65:0;10657:400:1;13399:65:0;13581:29;13598:1;13602:7;13581:8;:29::i;:::-;-1:-1:-1;;;;;13623:15:0;;;;;;:9;:15;;;;;:20;;13642:1;;13623:15;:20;;13642:1;;13623:20;:::i;:::-;;;;-1:-1:-1;;;;;;;13654:13:0;;;;;;:9;:13;;;;;:18;;13671:1;;13654:13;:18;;13671:1;;13654:18;:::i;:::-;;;;-1:-1:-1;;13683:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;13683:21:0;-1:-1:-1;;;;;13683:21:0;;;;;;;;;13722:27;;13683:16;;13722:27;;;;;;;9258:341;9188:411;;:::o;19409:135::-;19468:36;19474:8;19484:19;:9;15592:14;;15500:114;19484:19;19468:5;:36::i;:::-;19515:21;:9;15711:19;;15729:1;15711:19;;;15622:127;16882:191;16975:6;;;-1:-1:-1;;;;;16992:17:0;;;-1:-1:-1;;;;;;16992:17:0;;;;;;;17025:40;;16975:6;;;16992:17;16975:6;;17025:40;;16956:16;;17025:40;16945:128;16882:191;:::o;13998:315::-;14153:8;-1:-1:-1;;;;;14144:17:0;:5;-1:-1:-1;;;;;14144:17:0;;;14136:55;;;;-1:-1:-1;;;14136:55:0;;11264:2:1;14136:55:0;;;11246:21:1;11303:2;11283:18;;;11276:30;11342:27;11322:18;;;11315:55;11387:18;;14136:55:0;11062:349:1;14136:55:0;-1:-1:-1;;;;;14202:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;14202:46:0;;;;;;;;;;14264:41;;7792::1;;;14264::0;;7765:18:1;14264:41:0;;;;;;;13998:315;;;:::o;11047:::-;11204:28;11214:4;11220:2;11224:7;11204:9;:28::i;:::-;11251:48;11274:4;11280:2;11284:7;11293:5;11251:22;:48::i;:::-;11243:111;;;;-1:-1:-1;;;11243:111:0;;;;;;;:::i;19185:100::-;19237:13;19270:7;19263:14;;;;;:::i;5627:534::-;5683:13;5715:10;5711:53;;-1:-1:-1;;5742:10:0;;;;;;;;;;;;-1:-1:-1;;;5742:10:0;;;;;5627:534::o;5711:53::-;5789:5;5774:12;5830:78;5837:9;;5830:78;;5863:8;;;;:::i;:::-;;-1:-1:-1;5886:10:0;;-1:-1:-1;5894:2:0;5886:10;;:::i;:::-;;;5830:78;;;5918:19;5950:6;5940:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5940:17:0;;5918:39;;5968:154;5975:10;;5968:154;;6002:11;6012:1;6002:11;;:::i;:::-;;-1:-1:-1;6071:10:0;6079:2;6071:5;:10;:::i;:::-;6058:24;;:2;:24;:::i;:::-;6045:39;;6028:6;6035;6028:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;6028:56:0;;;;;;;;-1:-1:-1;6099:11:0;6108:2;6099:11;;:::i;:::-;;;5968:154;;12308:439;-1:-1:-1;;;;;12388:16:0;;12380:61;;;;-1:-1:-1;;;12380:61:0;;14465:2:1;12380:61:0;;;14447:21:1;;;14484:18;;;14477:30;14543:34;14523:18;;;14516:62;14595:18;;12380:61:0;14263:356:1;12380:61:0;11435:4;11459:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11459:16:0;:30;12452:58;;;;-1:-1:-1;;;12452:58:0;;10093:2:1;12452:58:0;;;10075:21:1;10132:2;10112:18;;;10105:30;10171;10151:18;;;10144:58;10219:18;;12452:58:0;9891:352:1;12452:58:0;-1:-1:-1;;;;;12581:13:0;;;;;;:9;:13;;;;;:18;;12598:1;;12581:13;:18;;12598:1;;12581:18;:::i;:::-;;;;-1:-1:-1;;12610:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;12610:21:0;-1:-1:-1;;;;;12610:21:0;;;;;;;;12649:33;;12610:16;;;12649:33;;12610:16;;12649:33;19682:89:::1;19552:226:::0;:::o;14321:799::-;14476:4;-1:-1:-1;;;;;14497:13:0;;1939:19;:23;14493:620;;14533:72;;-1:-1:-1;;;14533:72:0;;-1:-1:-1;;;;;14533:36:0;;;;;:72;;5403:10;;14584:4;;14590:7;;14599:5;;14533:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14533:72:0;;;;;;;;-1:-1:-1;;14533:72:0;;;;;;;;;;;;:::i;:::-;;;14529:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14775:13:0;;14771:272;;14818:60;;-1:-1:-1;;;14818:60:0;;;;;;;:::i;14771:272::-;14993:6;14987:13;14978:6;14974:2;14970:15;14963:38;14529:529;-1:-1:-1;;;;;;14656:51:0;-1:-1:-1;;;14656:51:0;;-1:-1:-1;14649:58:0;;14493:620;-1:-1:-1;15097:4:0;14321:799;;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:406:1;78:5;112:18;104:6;101:30;98:56;;;134:18;;:::i;:::-;172:57;217:2;196:15;;-1:-1:-1;;192:29:1;223:4;188:40;172:57;:::i;:::-;163:66;;252:6;245:5;238:21;292:3;283:6;278:3;274:16;271:25;268:45;;;309:1;306;299:12;268:45;358:6;353:3;346:4;339:5;335:16;322:43;412:1;405:4;396:6;389:5;385:18;381:29;374:40;14:406;;;;;:::o;425:160::-;490:20;;546:13;;539:21;529:32;;519:60;;575:1;572;565:12;519:60;425:160;;;:::o;590:247::-;649:6;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;842:251::-;912:6;965:2;953:9;944:7;940:23;936:32;933:52;;;981:1;978;971:12;933:52;1013:9;1007:16;1032:31;1057:5;1032:31;:::i;1098:388::-;1166:6;1174;1227:2;1215:9;1206:7;1202:23;1198:32;1195:52;;;1243:1;1240;1233:12;1195:52;1282:9;1269:23;1301:31;1326:5;1301:31;:::i;:::-;1351:5;-1:-1:-1;1408:2:1;1393:18;;1380:32;1421:33;1380:32;1421:33;:::i;:::-;1473:7;1463:17;;;1098:388;;;;;:::o;1491:456::-;1568:6;1576;1584;1637:2;1625:9;1616:7;1612:23;1608:32;1605:52;;;1653:1;1650;1643:12;1605:52;1692:9;1679:23;1711:31;1736:5;1711:31;:::i;:::-;1761:5;-1:-1:-1;1818:2:1;1803:18;;1790:32;1831:33;1790:32;1831:33;:::i;:::-;1491:456;;1883:7;;-1:-1:-1;;;1937:2:1;1922:18;;;;1909:32;;1491:456::o;1952:794::-;2047:6;2055;2063;2071;2124:3;2112:9;2103:7;2099:23;2095:33;2092:53;;;2141:1;2138;2131:12;2092:53;2180:9;2167:23;2199:31;2224:5;2199:31;:::i;:::-;2249:5;-1:-1:-1;2306:2:1;2291:18;;2278:32;2319:33;2278:32;2319:33;:::i;:::-;2371:7;-1:-1:-1;2425:2:1;2410:18;;2397:32;;-1:-1:-1;2480:2:1;2465:18;;2452:32;2507:18;2496:30;;2493:50;;;2539:1;2536;2529:12;2493:50;2562:22;;2615:4;2607:13;;2603:27;-1:-1:-1;2593:55:1;;2644:1;2641;2634:12;2593:55;2667:73;2732:7;2727:2;2714:16;2709:2;2705;2701:11;2667:73;:::i;:::-;2657:83;;;1952:794;;;;;;;:::o;2751:315::-;2816:6;2824;2877:2;2865:9;2856:7;2852:23;2848:32;2845:52;;;2893:1;2890;2883:12;2845:52;2932:9;2919:23;2951:31;2976:5;2951:31;:::i;:::-;3001:5;-1:-1:-1;3025:35:1;3056:2;3041:18;;3025:35;:::i;:::-;3015:45;;2751:315;;;;;:::o;3071:::-;3139:6;3147;3200:2;3188:9;3179:7;3175:23;3171:32;3168:52;;;3216:1;3213;3206:12;3168:52;3255:9;3242:23;3274:31;3299:5;3274:31;:::i;:::-;3324:5;3376:2;3361:18;;;;3348:32;;-1:-1:-1;;;3071:315:1:o;3391:957::-;3475:6;3506:2;3549;3537:9;3528:7;3524:23;3520:32;3517:52;;;3565:1;3562;3555:12;3517:52;3605:9;3592:23;3634:18;3675:2;3667:6;3664:14;3661:34;;;3691:1;3688;3681:12;3661:34;3729:6;3718:9;3714:22;3704:32;;3774:7;3767:4;3763:2;3759:13;3755:27;3745:55;;3796:1;3793;3786:12;3745:55;3832:2;3819:16;3854:2;3850;3847:10;3844:36;;;3860:18;;:::i;:::-;3906:2;3903:1;3899:10;3889:20;;3929:28;3953:2;3949;3945:11;3929:28;:::i;:::-;3991:15;;;4022:12;;;;4054:11;;;4084;;;4080:20;;4077:33;-1:-1:-1;4074:53:1;;;4123:1;4120;4113:12;4074:53;4145:1;4136:10;;4155:163;4169:2;4166:1;4163:9;4155:163;;;4226:17;;4214:30;;4187:1;4180:9;;;;;4264:12;;;;4296;;4155:163;;;-1:-1:-1;4337:5:1;3391:957;-1:-1:-1;;;;;;;;3391:957:1:o;4353:180::-;4409:6;4462:2;4450:9;4441:7;4437:23;4433:32;4430:52;;;4478:1;4475;4468:12;4430:52;4501:26;4517:9;4501:26;:::i;4538:245::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;4704:9;4691:23;4723:30;4747:5;4723:30;:::i;4788:249::-;4857:6;4910:2;4898:9;4889:7;4885:23;4881:32;4878:52;;;4926:1;4923;4916:12;4878:52;4958:9;4952:16;4977:30;5001:5;4977:30;:::i;5042:450::-;5111:6;5164:2;5152:9;5143:7;5139:23;5135:32;5132:52;;;5180:1;5177;5170:12;5132:52;5220:9;5207:23;5253:18;5245:6;5242:30;5239:50;;;5285:1;5282;5275:12;5239:50;5308:22;;5361:4;5353:13;;5349:27;-1:-1:-1;5339:55:1;;5390:1;5387;5380:12;5339:55;5413:73;5478:7;5473:2;5460:16;5455:2;5451;5447:11;5413:73;:::i;5497:180::-;5556:6;5609:2;5597:9;5588:7;5584:23;5580:32;5577:52;;;5625:1;5622;5615:12;5577:52;-1:-1:-1;5648:23:1;;5497:180;-1:-1:-1;5497:180:1:o;5682:248::-;5747:6;5755;5808:2;5796:9;5787:7;5783:23;5779:32;5776:52;;;5824:1;5821;5814:12;5776:52;5860:9;5847:23;5837:33;;5889:35;5920:2;5909:9;5905:18;5889:35;:::i;5935:257::-;5976:3;6014:5;6008:12;6041:6;6036:3;6029:19;6057:63;6113:6;6106:4;6101:3;6097:14;6090:4;6083:5;6079:16;6057:63;:::i;:::-;6174:2;6153:15;-1:-1:-1;;6149:29:1;6140:39;;;;6181:4;6136:50;;5935:257;-1:-1:-1;;5935:257:1:o;6197:274::-;6326:3;6364:6;6358:13;6380:53;6426:6;6421:3;6414:4;6406:6;6402:17;6380:53;:::i;:::-;6449:16;;;;;6197:274;-1:-1:-1;;6197:274:1:o;6476:470::-;6655:3;6693:6;6687:13;6709:53;6755:6;6750:3;6743:4;6735:6;6731:17;6709:53;:::i;:::-;6825:13;;6784:16;;;;6847:57;6825:13;6784:16;6881:4;6869:17;;6847:57;:::i;:::-;6920:20;;6476:470;-1:-1:-1;;;;6476:470:1:o;7159:488::-;-1:-1:-1;;;;;7428:15:1;;;7410:34;;7480:15;;7475:2;7460:18;;7453:43;7527:2;7512:18;;7505:34;;;7575:3;7570:2;7555:18;;7548:31;;;7353:4;;7596:45;;7621:19;;7613:6;7596:45;:::i;:::-;7588:53;7159:488;-1:-1:-1;;;;;;7159:488:1:o;8078:219::-;8227:2;8216:9;8209:21;8190:4;8247:44;8287:2;8276:9;8272:18;8264:6;8247:44;:::i;8659:414::-;8861:2;8843:21;;;8900:2;8880:18;;;8873:30;8939:34;8934:2;8919:18;;8912:62;-1:-1:-1;;;9005:2:1;8990:18;;8983:48;9063:3;9048:19;;8659:414::o;15394:356::-;15596:2;15578:21;;;15615:18;;;15608:30;15674:34;15669:2;15654:18;;15647:62;15741:2;15726:18;;15394:356::o;17278:413::-;17480:2;17462:21;;;17519:2;17499:18;;;17492:30;17558:34;17553:2;17538:18;;17531:62;-1:-1:-1;;;17624:2:1;17609:18;;17602:47;17681:3;17666:19;;17278:413::o;18296:275::-;18367:2;18361:9;18432:2;18413:13;;-1:-1:-1;;18409:27:1;18397:40;;18467:18;18452:34;;18488:22;;;18449:62;18446:88;;;18514:18;;:::i;:::-;18550:2;18543:22;18296:275;;-1:-1:-1;18296:275:1:o;18576:128::-;18616:3;18647:1;18643:6;18640:1;18637:13;18634:39;;;18653:18;;:::i;:::-;-1:-1:-1;18689:9:1;;18576:128::o;18709:120::-;18749:1;18775;18765:35;;18780:18;;:::i;:::-;-1:-1:-1;18814:9:1;;18709:120::o;18834:168::-;18874:7;18940:1;18936;18932:6;18928:14;18925:1;18922:21;18917:1;18910:9;18903:17;18899:45;18896:71;;;18947:18;;:::i;:::-;-1:-1:-1;18987:9:1;;18834:168::o;19007:125::-;19047:4;19075:1;19072;19069:8;19066:34;;;19080:18;;:::i;:::-;-1:-1:-1;19117:9:1;;19007:125::o;19137:258::-;19209:1;19219:113;19233:6;19230:1;19227:13;19219:113;;;19309:11;;;19303:18;19290:11;;;19283:39;19255:2;19248:10;19219:113;;;19350:6;19347:1;19344:13;19341:48;;;-1:-1:-1;;19385:1:1;19367:16;;19360:27;19137:258::o;19400:380::-;19479:1;19475:12;;;;19522;;;19543:61;;19597:4;19589:6;19585:17;19575:27;;19543:61;19650:2;19642:6;19639:14;19619:18;19616:38;19613:161;;;19696:10;19691:3;19687:20;19684:1;19677:31;19731:4;19728:1;19721:15;19759:4;19756:1;19749:15;19613:161;;19400:380;;;:::o;19785:135::-;19824:3;-1:-1:-1;;19845:17:1;;19842:43;;;19865:18;;:::i;:::-;-1:-1:-1;19912:1:1;19901:13;;19785:135::o;19925:112::-;19957:1;19983;19973:35;;19988:18;;:::i;:::-;-1:-1:-1;20022:9:1;;19925:112::o;20042:127::-;20103:10;20098:3;20094:20;20091:1;20084:31;20134:4;20131:1;20124:15;20158:4;20155:1;20148:15;20174:127;20235:10;20230:3;20226:20;20223:1;20216:31;20266:4;20263:1;20256:15;20290:4;20287:1;20280:15;20306:127;20367:10;20362:3;20358:20;20355:1;20348:31;20398:4;20395:1;20388:15;20422:4;20419:1;20412:15;20438:127;20499:10;20494:3;20490:20;20487:1;20480:31;20530:4;20527:1;20520:15;20554:4;20551:1;20544:15;20570:131;-1:-1:-1;;;;;20645:31:1;;20635:42;;20625:70;;20691:1;20688;20681:12;20706:131;-1:-1:-1;;;;;;20780:32:1;;20770:43;;20760:71;;20827:1;20824;20817:12

Swarm Source

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