Token MACcruiser
Overview CRC721
Total Supply:
0 MACnifty (CSupply: 0)
Holders:
41 addresses
Transfers:
-
Contract:
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MACspace
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-11 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; 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); } } 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); } } } } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } pragma solidity ^0.8.0; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } 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, bytes calldata data ) external; 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 setApprovalForAll(address operator, bool _approved) external; function getApproved(uint256 tokenId) external view returns (address operator); function isApprovedForAll(address owner, address operator) external view returns (bool); } 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract ERC721r is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; string private _name; string private _symbol; mapping(uint => uint) private _availableTokens; uint256 private _numAvailableTokens; uint256 immutable _maxSupply; mapping(uint256 => address) private _owners; mapping(address => mapping(uint256 => uint256)) private _ownedTokens; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor(string memory name_, string memory symbol_, uint maxSupply_) { _name = name_; _symbol = symbol_; _maxSupply = maxSupply_; _numAvailableTokens = maxSupply_; } 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 tokenOfOwnerByIndex(address owner, uint256 index) public view virtual returns (uint256) { require(index < ERC721r.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } function totalSupply() public view virtual returns (uint256) { return _maxSupply - _numAvailableTokens; } function maxSupply() public view virtual returns (uint256) { return _maxSupply; } 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 = ERC721r.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 { 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 = ERC721r.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _mintIdWithoutBalanceUpdate(address to, uint256 tokenId) private { _beforeTokenTransfer(address(0), to, tokenId); _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); _afterTokenTransfer(address(0), to, tokenId); } function _mintRandom(address to, uint _numToMint) internal virtual { require(_msgSender() == tx.origin, "Contracts cannot mint"); require(to != address(0), "ERC721: mint to the zero address"); require(_numToMint > 0, "ERC721r: need to mint at least one token"); require(_numAvailableTokens >= _numToMint, "ERC721r: minting more tokens than available"); uint updatedNumAvailableTokens = _numAvailableTokens; for (uint256 i; i < _numToMint; ++i) { uint256 tokenId = getRandomAvailableTokenId(to, updatedNumAvailableTokens); _mintIdWithoutBalanceUpdate(to, tokenId); --updatedNumAvailableTokens; } _numAvailableTokens = updatedNumAvailableTokens; _balances[to] += _numToMint; } function getRandomAvailableTokenId(address to, uint updatedNumAvailableTokens) internal returns (uint256) { uint256 randomNum = uint256( keccak256( abi.encode( to, tx.gasprice, block.number, block.timestamp, block.difficulty, blockhash(block.number - 1), address(this), updatedNumAvailableTokens ) ) ); uint256 randomIndex = randomNum % updatedNumAvailableTokens; return getAvailableTokenAtIndex(randomIndex, updatedNumAvailableTokens); } function getAvailableTokenAtIndex(uint256 indexToUse, uint updatedNumAvailableTokens) internal returns (uint256) { uint256 valAtIndex = _availableTokens[indexToUse]; uint256 result; if (valAtIndex == 0) { result = indexToUse; } else { result = valAtIndex; } uint256 lastIndex = updatedNumAvailableTokens - 1; if (indexToUse != lastIndex) { uint256 lastValInArray = _availableTokens[lastIndex]; if (lastValInArray == 0) { _availableTokens[indexToUse] = lastIndex; _availableTokens[indexToUse] = lastValInArray; delete _availableTokens[lastIndex]; } } return result; } function _mintAtIndex(address to, uint index) internal virtual { require(_msgSender() == tx.origin, "Contracts cannot mint"); require(to != address(0), "ERC721: mint to the zero address"); require(_numAvailableTokens >= 1, "ERC721r: minting more tokens than available"); uint tokenId = getAvailableTokenAtIndex(index, _numAvailableTokens); --_numAvailableTokens; _mintIdWithoutBalanceUpdate(to, tokenId); _balances[to] += 1; } function _burn(uint256 tokenId) internal virtual { address owner = ERC721r.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _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(ERC721r.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _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(ERC721r.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 {} } 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); } } contract MACspace is ERC721r, Ownable { using Strings for uint256; string public baseURI; string public baseExtension = ".json"; uint256 public _mintPrice = 77 ether; uint256 public _maxPerWallet = 500; uint256 public _maxMintPerTX = 100; uint256 public _maxMintable = 7777; bool public paused = false; bool public onlyWhitelisted = false; bool public roundActive = true; address[] public whitelistedAddresses; mapping(address => uint256) public addressMintedBalance; address payable MAC2 = payable(0x81f24EdE59f7A20078B389680d2E89C5ee0FF5c0); address payable M2AC = payable(0x2E946F6A5F0dDBB9406a59dE38CF2EB2Fea357B6); constructor( uint256 _maxSupply ) ERC721r("MACcruiser", "MACnifty", _maxSupply) { setBaseURI("ipfs://Qmc3wfEgReEruebjoigsbBYkCgiQZ7jZNBnv5cGM75gGv7/"); } function _baseURI() internal view virtual override returns (string memory) { return baseURI; } function mint(uint256 amount) public payable { require(!paused, "the contract is paused"); uint256 supply = totalSupply(); uint256 ownerMintedCount = addressMintedBalance[msg.sender]; require(amount > 0, "need to mint at least 1 NFT"); require(amount <= _maxPerWallet, "max mint amount per session exceeded"); if (msg.sender != owner()) { if (onlyWhitelisted == false) { require(msg.value >= _mintPrice * amount, "insufficient funds"); require(ownerMintedCount + amount <= _maxMintPerTX, "max NFT per address exceeded"); } } if (roundActive==true) { require(supply + amount <= _maxMintable, "You cannot mint any more nfts in this stage."); } addressMintedBalance[msg.sender]+=amount; _mintRandom(msg.sender, amount); (bool success, ) = payable(MAC2).call{value: msg.value * 50 / 100}(""); require(success); (bool ps, ) = payable(M2AC).call{value: msg.value * 50 / 100}(""); require(ps); } function isWhitelisted(address _user) public view returns (bool) { for (uint i = 0; i < whitelistedAddresses.length; i++) { if (whitelistedAddresses[i] == _user) { return true; } } return false; } function walletOfOwner(address _owner) public view returns (uint256[] memory) { uint256 ownerTokenCount = balanceOf(_owner); uint256[] memory tokenIds = new uint256[](ownerTokenCount); for (uint256 i; i < ownerTokenCount; i++) { tokenIds[i] = tokenOfOwnerByIndex(_owner, i); } return tokenIds; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require( _exists(tokenId), "ERC721Metadata: URI query for nonexistent token" ); string memory currentBaseURI = _baseURI(); return bytes(currentBaseURI).length > 0 ? string(abi.encodePacked(currentBaseURI, tokenId.toString(), baseExtension)) : ""; } function setMaxMintPerTX(uint256 _limit) public onlyOwner { _maxMintPerTX = _limit; } function setRoundSupply(uint256 _supply) public onlyOwner { _maxMintable = _supply; } function setCost(uint256 _newCost) public onlyOwner { _mintPrice = _newCost; } function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner { _maxPerWallet = _newmaxMintAmount; } function setBaseURI(string memory _newBaseURI) public onlyOwner { baseURI = _newBaseURI; } function setBaseExtension(string memory _newBaseExtension) public onlyOwner { baseExtension = _newBaseExtension; } function pause(bool _state) public onlyOwner { paused = _state; } function setOnlyWhitelisted(bool _state) public onlyOwner { onlyWhitelisted = _state; } function setRoundActive(bool _state) public onlyOwner { roundActive = _state; } function mintToAddress(uint256 amount, address _to) public onlyOwner { require(!paused, "the contract is paused"); uint256 supply = totalSupply(); require(amount > 0, "need to mint at least 1 NFT"); if (roundActive==true) { require(supply + amount <= _maxMintable, "You cannot mint any more nfts in this stage."); } addressMintedBalance[msg.sender]+=amount; _mintRandom(_to, amount); } function burn(uint256 tokenId) public onlyOwner { _burn(tokenId); } function whitelistUsers(address[] calldata _users) public onlyOwner { delete whitelistedAddresses; whitelistedAddresses = _users; } function withdraw() public payable onlyOwner { (bool os, ) = payable(owner()).call{value: address(this).balance}(""); require(os); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"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":[],"name":"_maxMintPerTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxMintable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressMintedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"address","name":"_user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","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"},{"internalType":"address","name":"_to","type":"address"}],"name":"mintToAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onlyWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"roundActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"setMaxMintPerTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setOnlyWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setRoundActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"setRoundSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"whitelistUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"whitelistedAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
60e0604052600560a081905264173539b7b760d91b60c09081526200002891600b919062000247565b5068042c96f40959140000600c556101f4600d556064600e55611e61600f556010805462ffffff191662010000179055601380546001600160a01b03199081167381f24ede59f7a20078b389680d2e89c5ee0ff5c01790915560148054909116732e946f6a5f0ddbb9406a59de38cf2eb2fea357b6179055348015620000ad57600080fd5b5060405162002eed38038062002eed833981016040819052620000d091620002ed565b604080518082018252600a81526926a0a1b1b93ab4b9b2b960b11b6020808301918252835180850190945260088452674d41436e6966747960c01b908401528151919291849162000125916000919062000247565b5081516200013b90600190602085019062000247565b50608081905260035550620001529050336200017d565b6200017660405180606001604052806036815260200162002eb760369139620001cf565b5062000344565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009546001600160a01b031633146200022e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b80516200024390600a90602084019062000247565b5050565b828054620002559062000307565b90600052602060002090601f016020900481019282620002795760008555620002c4565b82601f106200029457805160ff1916838001178555620002c4565b82800160010185558215620002c4579182015b82811115620002c4578251825591602001919060010190620002a7565b50620002d2929150620002d6565b5090565b5b80821115620002d25760008155600101620002d7565b6000602082840312156200030057600080fd5b5051919050565b600181811c908216806200031c57607f821691505b602082108114156200033e57634e487b7160e01b600052602260045260246000fd5b50919050565b608051612b5062000367600039600081816107670152610b260152612b506000f3fe60806040526004361061027d5760003560e01c80636c0360eb1161014f578063aaad9a5c116100c1578063d5abeb011161007a578063d5abeb0114610758578063da3ef23f1461078b578063e80a3558146107ab578063e985e9c5146107c1578063edec5f271461080a578063f2fde38b1461082a57600080fd5b8063aaad9a5c146106ad578063b88d4fde146106cd578063ba4e5c49146106ed578063c66828621461070d578063c87b56dd14610722578063d146a8031461074257600080fd5b80637fa8e5e4116101135780637fa8e5e4146106125780638da5cb5b1461062857806395d89b41146106465780639c70b5121461065b578063a0712d681461067a578063a22cb4651461068d57600080fd5b80636c0360eb1461058857806370a082311461059d578063715018a6146105bd578063751c1516146105d25780637f00c7a6146105f257600080fd5b80633af32abf116101f357806344a0d68a116101ac57806344a0d68a146104ce578063512b658d146104ee578063512dec391461050e57806355f804b31461052e5780635c975abb1461054e5780636352211e1461056857600080fd5b80633af32abf146104195780633c952764146104395780633ccfd60b1461045957806342842e0e1461046157806342966c6814610481578063438b6300146104a157600080fd5b8063081812fc11610245578063081812fc1461033f578063095ea7b31461037757806318160ddd1461039757806318cae269146103ac57806323b872dd146103d95780632f745c59146103f957600080fd5b806301ffc9a71461028257806302329a29146102b7578063027471b0146102d95780630387da42146102f957806306fdde031461031d575b600080fd5b34801561028e57600080fd5b506102a261029d366004612636565b61084a565b60405190151581526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d236600461261b565b61089c565b005b3480156102e557600080fd5b506010546102a29062010000900460ff1681565b34801561030557600080fd5b5061030f600c5481565b6040519081526020016102ae565b34801561032957600080fd5b506103326108e2565b6040516102ae9190612866565b34801561034b57600080fd5b5061035f61035a3660046126b9565b610974565b6040516001600160a01b0390911681526020016102ae565b34801561038357600080fd5b506102d761039236600461257c565b610a09565b3480156103a357600080fd5b5061030f610b1f565b3480156103b857600080fd5b5061030f6103c736600461244c565b60126020526000908152604090205481565b3480156103e557600080fd5b506102d76103f436600461249a565b610b54565b34801561040557600080fd5b5061030f61041436600461257c565b610b85565b34801561042557600080fd5b506102a261043436600461244c565b610c1b565b34801561044557600080fd5b506102d761045436600461261b565b610c85565b6102d7610cc9565b34801561046d57600080fd5b506102d761047c36600461249a565b610d67565b34801561048d57600080fd5b506102d761049c3660046126b9565b610d82565b3480156104ad57600080fd5b506104c16104bc36600461244c565b610db5565b6040516102ae9190612822565b3480156104da57600080fd5b506102d76104e93660046126b9565b610e57565b3480156104fa57600080fd5b506102d76105093660046126d2565b610e86565b34801561051a57600080fd5b506102d761052936600461261b565b610fc8565b34801561053a57600080fd5b506102d7610549366004612670565b61100e565b34801561055a57600080fd5b506010546102a29060ff1681565b34801561057457600080fd5b5061035f6105833660046126b9565b61104f565b34801561059457600080fd5b506103326110c6565b3480156105a957600080fd5b5061030f6105b836600461244c565b611154565b3480156105c957600080fd5b506102d76111db565b3480156105de57600080fd5b506102d76105ed3660046126b9565b611211565b3480156105fe57600080fd5b506102d761060d3660046126b9565b611240565b34801561061e57600080fd5b5061030f600d5481565b34801561063457600080fd5b506009546001600160a01b031661035f565b34801561065257600080fd5b5061033261126f565b34801561066757600080fd5b506010546102a290610100900460ff1681565b6102d76106883660046126b9565b61127e565b34801561069957600080fd5b506102d76106a8366004612552565b6115c1565b3480156106b957600080fd5b506102d76106c83660046126b9565b6115cc565b3480156106d957600080fd5b506102d76106e83660046124d6565b6115fb565b3480156106f957600080fd5b5061035f6107083660046126b9565b611633565b34801561071957600080fd5b5061033261165d565b34801561072e57600080fd5b5061033261073d3660046126b9565b61166a565b34801561074e57600080fd5b5061030f600e5481565b34801561076457600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061030f565b34801561079757600080fd5b506102d76107a6366004612670565b611748565b3480156107b757600080fd5b5061030f600f5481565b3480156107cd57600080fd5b506102a26107dc366004612467565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b34801561081657600080fd5b506102d76108253660046125a6565b611785565b34801561083657600080fd5b506102d761084536600461244c565b6117c7565b60006001600160e01b031982166380ac58cd60e01b148061087b57506001600160e01b03198216635b5e139f60e01b145b8061089657506301ffc9a760e01b6001600160e01b03198316145b92915050565b6009546001600160a01b031633146108cf5760405162461bcd60e51b81526004016108c690612917565b60405180910390fd5b6010805460ff1916911515919091179055565b6060600080546108f190612a42565b80601f016020809104026020016040519081016040528092919081815260200182805461091d90612a42565b801561096a5780601f1061093f5761010080835404028352916020019161096a565b820191906000526020600020905b81548152906001019060200180831161094d57829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b03166109ed5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016108c6565b506000908152600760205260409020546001600160a01b031690565b6000610a148261104f565b9050806001600160a01b0316836001600160a01b03161415610a825760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108c6565b336001600160a01b0382161480610a9e5750610a9e81336107dc565b610b105760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016108c6565b610b1a838361185f565b505050565b60006003547f0000000000000000000000000000000000000000000000000000000000000000610b4f91906129e8565b905090565b610b5e33826118cd565b610b7a5760405162461bcd60e51b81526004016108c69061294c565b610b1a8383836119c4565b6000610b9083611154565b8210610bf25760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016108c6565b506001600160a01b03919091166000908152600560209081526040808320938352929052205490565b6000805b601154811015610c7c57826001600160a01b031660118281548110610c4657610c46612ad8565b6000918252602090912001546001600160a01b03161415610c6a5750600192915050565b80610c7481612a7d565b915050610c1f565b50600092915050565b6009546001600160a01b03163314610caf5760405162461bcd60e51b81526004016108c690612917565b601080549115156101000261ff0019909216919091179055565b6009546001600160a01b03163314610cf35760405162461bcd60e51b81526004016108c690612917565b6000610d076009546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610d51576040519150601f19603f3d011682016040523d82523d6000602084013e610d56565b606091505b5050905080610d6457600080fd5b50565b610b1a838383604051806020016040528060008152506115fb565b6009546001600160a01b03163314610dac5760405162461bcd60e51b81526004016108c690612917565b610d6481611b60565b60606000610dc283611154565b905060008167ffffffffffffffff811115610ddf57610ddf612aee565b604051908082528060200260200182016040528015610e08578160200160208202803683370190505b50905060005b82811015610e4f57610e208582610b85565b828281518110610e3257610e32612ad8565b602090810291909101015280610e4781612a7d565b915050610e0e565b509392505050565b6009546001600160a01b03163314610e815760405162461bcd60e51b81526004016108c690612917565b600c55565b6009546001600160a01b03163314610eb05760405162461bcd60e51b81526004016108c690612917565b60105460ff1615610efc5760405162461bcd60e51b81526020600482015260166024820152751d1a194818dbdb9d1c9858dd081a5cc81c185d5cd95960521b60448201526064016108c6565b6000610f06610b1f565b905060008311610f585760405162461bcd60e51b815260206004820152601b60248201527f6e65656420746f206d696e74206174206c656173742031204e4654000000000060448201526064016108c6565b60105462010000900460ff16151560011415610f9957600f54610f7b848361299d565b1115610f995760405162461bcd60e51b81526004016108c6906128cb565b3360009081526012602052604081208054859290610fb890849061299d565b90915550610b1a90508284611bfb565b6009546001600160a01b03163314610ff25760405162461bcd60e51b81526004016108c690612917565b60108054911515620100000262ff000019909216919091179055565b6009546001600160a01b031633146110385760405162461bcd60e51b81526004016108c690612917565b805161104b90600a9060208401906122a0565b5050565b6000818152600460205260408120546001600160a01b0316806108965760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016108c6565b600a80546110d390612a42565b80601f01602080910402602001604051908101604052809291908181526020018280546110ff90612a42565b801561114c5780601f106111215761010080835404028352916020019161114c565b820191906000526020600020905b81548152906001019060200180831161112f57829003601f168201915b505050505081565b60006001600160a01b0382166111bf5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016108c6565b506001600160a01b031660009081526006602052604090205490565b6009546001600160a01b031633146112055760405162461bcd60e51b81526004016108c690612917565b61120f6000611dda565b565b6009546001600160a01b0316331461123b5760405162461bcd60e51b81526004016108c690612917565b600e55565b6009546001600160a01b0316331461126a5760405162461bcd60e51b81526004016108c690612917565b600d55565b6060600180546108f190612a42565b60105460ff16156112ca5760405162461bcd60e51b81526020600482015260166024820152751d1a194818dbdb9d1c9858dd081a5cc81c185d5cd95960521b60448201526064016108c6565b60006112d4610b1f565b33600090815260126020526040902054909150826113345760405162461bcd60e51b815260206004820152601b60248201527f6e65656420746f206d696e74206174206c656173742031204e4654000000000060448201526064016108c6565b600d548311156113925760405162461bcd60e51b8152602060048201526024808201527f6d6178206d696e7420616d6f756e74207065722073657373696f6e20657863656044820152631959195960e21b60648201526084016108c6565b6009546001600160a01b0316331461146057601054610100900460ff166114605782600c546113c191906129c9565b3410156114055760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b60448201526064016108c6565b600e54611412848361299d565b11156114605760405162461bcd60e51b815260206004820152601c60248201527f6d6178204e46542070657220616464726573732065786365656465640000000060448201526064016108c6565b60105462010000900460ff161515600114156114a157600f54611483848461299d565b11156114a15760405162461bcd60e51b81526004016108c6906128cb565b33600090815260126020526040812080548592906114c090849061299d565b909155506114d090503384611bfb565b6013546000906001600160a01b031660646114ec3460326129c9565b6114f691906129b5565b604051600081818185875af1925050503d8060008114611532576040519150601f19603f3d011682016040523d82523d6000602084013e611537565b606091505b505090508061154557600080fd5b6014546000906001600160a01b031660646115613460326129c9565b61156b91906129b5565b604051600081818185875af1925050503d80600081146115a7576040519150601f19603f3d011682016040523d82523d6000602084013e6115ac565b606091505b50509050806115ba57600080fd5b5050505050565b61104b338383611e2c565b6009546001600160a01b031633146115f65760405162461bcd60e51b81526004016108c690612917565b600f55565b61160533836118cd565b6116215760405162461bcd60e51b81526004016108c69061294c565b61162d84848484611efb565b50505050565b6011818154811061164357600080fd5b6000918252602090912001546001600160a01b0316905081565b600b80546110d390612a42565b6000818152600460205260409020546060906001600160a01b03166116e95760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016108c6565b60006116f3611f2e565b905060008151116117135760405180602001604052806000815250611741565b8061171d84611f3d565b600b60405160200161173193929190612721565b6040516020818303038152906040525b9392505050565b6009546001600160a01b031633146117725760405162461bcd60e51b81526004016108c690612917565b805161104b90600b9060208401906122a0565b6009546001600160a01b031633146117af5760405162461bcd60e51b81526004016108c690612917565b6117bb60116000612324565b610b1a60118383612342565b6009546001600160a01b031633146117f15760405162461bcd60e51b81526004016108c690612917565b6001600160a01b0381166118565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c6565b610d6481611dda565b600081815260076020526040902080546001600160a01b0319166001600160a01b03841690811790915581906118948261104f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b03166119465760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016108c6565b60006119518361104f565b9050806001600160a01b0316846001600160a01b0316148061198c5750836001600160a01b031661198184610974565b6001600160a01b0316145b806119bc57506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166119d78261104f565b6001600160a01b031614611a3b5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016108c6565b6001600160a01b038216611a9d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108c6565b611aa860008261185f565b6001600160a01b0383166000908152600660205260408120805460019290611ad19084906129e8565b90915550506001600160a01b0382166000908152600660205260408120805460019290611aff90849061299d565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611b6b8261104f565b9050611b7860008361185f565b6001600160a01b0381166000908152600660205260408120805460019290611ba19084906129e8565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b333214611c425760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd1cc818d85b9b9bdd081b5a5b9d605a1b60448201526064016108c6565b6001600160a01b038216611c985760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108c6565b60008111611cf95760405162461bcd60e51b815260206004820152602860248201527f455243373231723a206e65656420746f206d696e74206174206c65617374206f6044820152673732903a37b5b2b760c11b60648201526084016108c6565b806003541015611d5f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231723a206d696e74696e67206d6f726520746f6b656e732074686160448201526a6e20617661696c61626c6560a81b60648201526084016108c6565b60035460005b82811015611da2576000611d79858461203b565b9050611d8585826120cd565b611d8e83612a2b565b92505080611d9b90612a7d565b9050611d65565b5060038190556001600160a01b03831660009081526006602052604081208054849290611dd090849061299d565b9091555050505050565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415611e8e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108c6565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611f068484846119c4565b611f1284848484612126565b61162d5760405162461bcd60e51b81526004016108c690612879565b6060600a80546108f190612a42565b606081611f615750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611f8b5780611f7581612a7d565b9150611f849050600a836129b5565b9150611f65565b60008167ffffffffffffffff811115611fa657611fa6612aee565b6040519080825280601f01601f191660200182016040528015611fd0576020820181803683370190505b5090505b84156119bc57611fe56001836129e8565b9150611ff2600a86612a98565b611ffd90603061299d565b60f81b81838151811061201257612012612ad8565b60200101906001600160f81b031916908160001a905350612034600a866129b5565b9450611fd4565b600080833a43424461204e6001846129e8565b604080516001600160a01b0390971660208801528601949094526060850192909252608084015260a08301524060c08201523060e082015261010081018490526101200160408051601f198184030181529190528051602090910120905060006120b88483612a98565b90506120c48185612233565b95945050505050565b60008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b1561222857604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061216a9033908990889088906004016127e5565b602060405180830381600087803b15801561218457600080fd5b505af19250505080156121b4575060408051601f3d908101601f191682019092526121b191810190612653565b60015b61220e573d8080156121e2576040519150601f19603f3d011682016040523d82523d6000602084013e6121e7565b606091505b5080516122065760405162461bcd60e51b81526004016108c690612879565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506119bc565b506001949350505050565b600082815260026020526040812054818161224f575083612252565b50805b600061225f6001866129e8565b90508086146122975760008181526002602052604090205480612295576000878152600260205260408082208390558382528120555b505b50949350505050565b8280546122ac90612a42565b90600052602060002090601f0160209004810192826122ce5760008555612314565b82601f106122e757805160ff1916838001178555612314565b82800160010185558215612314579182015b828111156123145782518255916020019190600101906122f9565b50612320929150612395565b5090565b5080546000825590600052602060002090810190610d649190612395565b828054828255906000526020600020908101928215612314579160200282015b828111156123145781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190612362565b5b808211156123205760008155600101612396565b600067ffffffffffffffff808411156123c5576123c5612aee565b604051601f8501601f19908116603f011681019082821181831017156123ed576123ed612aee565b8160405280935085815286868601111561240657600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b038116811461243757600080fd5b919050565b8035801515811461243757600080fd5b60006020828403121561245e57600080fd5b61174182612420565b6000806040838503121561247a57600080fd5b61248383612420565b915061249160208401612420565b90509250929050565b6000806000606084860312156124af57600080fd5b6124b884612420565b92506124c660208501612420565b9150604084013590509250925092565b600080600080608085870312156124ec57600080fd5b6124f585612420565b935061250360208601612420565b925060408501359150606085013567ffffffffffffffff81111561252657600080fd5b8501601f8101871361253757600080fd5b612546878235602084016123aa565b91505092959194509250565b6000806040838503121561256557600080fd5b61256e83612420565b91506124916020840161243c565b6000806040838503121561258f57600080fd5b61259883612420565b946020939093013593505050565b600080602083850312156125b957600080fd5b823567ffffffffffffffff808211156125d157600080fd5b818501915085601f8301126125e557600080fd5b8135818111156125f457600080fd5b8660208260051b850101111561260957600080fd5b60209290920196919550909350505050565b60006020828403121561262d57600080fd5b6117418261243c565b60006020828403121561264857600080fd5b813561174181612b04565b60006020828403121561266557600080fd5b815161174181612b04565b60006020828403121561268257600080fd5b813567ffffffffffffffff81111561269957600080fd5b8201601f810184136126aa57600080fd5b6119bc848235602084016123aa565b6000602082840312156126cb57600080fd5b5035919050565b600080604083850312156126e557600080fd5b8235915061249160208401612420565b6000815180845261270d8160208601602086016129ff565b601f01601f19169290920160200192915050565b6000845160206127348285838a016129ff565b8551918401916127478184848a016129ff565b8554920191600090600181811c908083168061276457607f831692505b85831081141561278257634e487b7160e01b85526022600452602485fd5b80801561279657600181146127a7576127d4565b60ff198516885283880195506127d4565b60008b81526020902060005b858110156127cc5781548a8201529084019088016127b3565b505083880195505b50939b9a5050505050505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612818908301846126f5565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561285a5783518352928401929184019160010161283e565b50909695505050505050565b60208152600061174160208301846126f5565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602c908201527f596f752063616e6e6f74206d696e7420616e79206d6f7265206e66747320696e60408201526b103a3434b99039ba30b3b29760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156129b0576129b0612aac565b500190565b6000826129c4576129c4612ac2565b500490565b60008160001904831182151516156129e3576129e3612aac565b500290565b6000828210156129fa576129fa612aac565b500390565b60005b83811015612a1a578181015183820152602001612a02565b8381111561162d5750506000910152565b600081612a3a57612a3a612aac565b506000190190565b600181811c90821680612a5657607f821691505b60208210811415612a7757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a9157612a91612aac565b5060010190565b600082612aa757612aa7612ac2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610d6457600080fdfea26469706673582212203d6f2d17871bdea08219932e041a0544fe17c7e54ae2ec6348b5863d4fbf9cbf64736f6c63430008070033697066733a2f2f516d633377664567526545727565626a6f6967736242596b436769515a376a5a4e426e763563474d3735674776372f0000000000000000000000000000000000000000000000000000000000001e61
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000001e61
-----Decoded View---------------
Arg [0] : _maxSupply (uint256): 7777
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000001e61
Deployed ByteCode Sourcemap
19333:4746:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8033:305;;;;;;;;;;-1:-1:-1;8033:305:0;;;;;:::i;:::-;;:::i;:::-;;;9426:14:1;;9419:22;9401:41;;9389:2;9374:18;8033:305:0;;;;;;;;22978:73;;;;;;;;;;-1:-1:-1;22978:73:0;;;;;:::i;:::-;;:::i;:::-;;19705:30;;;;;;;;;;-1:-1:-1;19705:30:0;;;;;;;;;;;19476:36;;;;;;;;;;;;;;;;;;;19656:25:1;;;19644:2;19629:18;19476:36:0;19510:177:1;9303:100:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10387:221::-;;;;;;;;;;-1:-1:-1;10387:221:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;7347:32:1;;;7329:51;;7317:2;7302:18;10387:221:0;7183:203:1;9967:412:0;;;;;;;;;;-1:-1:-1;9967:412:0;;;;;:::i;:::-;;:::i;8606:119::-;;;;;;;;;;;;;:::i;19782:55::-;;;;;;;;;;-1:-1:-1;19782:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;10951:284;;;;;;;;;;-1:-1:-1;10951:284:0;;;;;:::i;:::-;;:::i;8346:248::-;;;;;;;;;;-1:-1:-1;8346:248:0;;;;;:::i;:::-;;:::i;21304:239::-;;;;;;;;;;-1:-1:-1;21304:239:0;;;;;:::i;:::-;;:::i;23059:95::-;;;;;;;;;;-1:-1:-1;23059:95:0;;;;;:::i;:::-;;:::i;23931:145::-;;;:::i;11243:185::-;;;;;;;;;;-1:-1:-1;11243:185:0;;;;;:::i;:::-;;:::i;23697:75::-;;;;;;;;;;-1:-1:-1;23697:75:0;;;;;:::i;:::-;;:::i;21549:348::-;;;;;;;;;;-1:-1:-1;21549:348:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22532:86::-;;;;;;;;;;-1:-1:-1;22532:86:0;;;;;:::i;:::-;;:::i;23255:436::-;;;;;;;;;;-1:-1:-1;23255:436:0;;;;;:::i;:::-;;:::i;23162:87::-;;;;;;;;;;-1:-1:-1;23162:87:0;;;;;:::i;:::-;;:::i;22746:98::-;;;;;;;;;;-1:-1:-1;22746:98:0;;;;;:::i;:::-;;:::i;19634:26::-;;;;;;;;;;-1:-1:-1;19634:26:0;;;;;;;;9056:239;;;;;;;;;;-1:-1:-1;9056:239:0;;;;;:::i;:::-;;:::i;19408:21::-;;;;;;;;;;;;;:::i;8840:208::-;;;;;;;;;;-1:-1:-1;8840:208:0;;;;;:::i;:::-;;:::i;18815:103::-;;;;;;;;;;;;;:::i;22332:93::-;;;;;;;;;;-1:-1:-1;22332:93:0;;;;;:::i;:::-;;:::i;22624:116::-;;;;;;;;;;-1:-1:-1;22624:116:0;;;;;:::i;:::-;;:::i;19517:34::-;;;;;;;;;;;;;;;;18592:87;;;;;;;;;;-1:-1:-1;18665:6:0;;-1:-1:-1;;;;;18665:6:0;18592:87;;9411:104;;;;;;;;;;;;;:::i;19665:35::-;;;;;;;;;;-1:-1:-1;19665:35:0;;;;;;;;;;;20287:1009;;;;;;:::i;:::-;;:::i;10616:155::-;;;;;;;;;;-1:-1:-1;10616:155:0;;;;;:::i;:::-;;:::i;22431:93::-;;;;;;;;;;-1:-1:-1;22431:93:0;;;;;:::i;:::-;;:::i;11436:328::-;;;;;;;;;;-1:-1:-1;11436:328:0;;;;;:::i;:::-;;:::i;19740:37::-;;;;;;;;;;-1:-1:-1;19740:37:0;;;;;:::i;:::-;;:::i;19434:::-;;;;;;;;;;;;;:::i;21903:423::-;;;;;;;;;;-1:-1:-1;21903:423:0;;;;;:::i;:::-;;:::i;19556:34::-;;;;;;;;;;;;;;;;8737:95;;;;;;;;;;-1:-1:-1;8814:10:0;8737:95;;22850:122;;;;;;;;;;-1:-1:-1;22850:122:0;;;;;:::i;:::-;;:::i;19595:34::-;;;;;;;;;;;;;;;;10779:164;;;;;;;;;;-1:-1:-1;10779:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;10900:25:0;;;10876:4;10900:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;10779:164;23780:144;;;;;;;;;;-1:-1:-1;23780:144:0;;;;;:::i;:::-;;:::i;18926:201::-;;;;;;;;;;-1:-1:-1;18926:201:0;;;;;:::i;:::-;;:::i;8033:305::-;8135:4;-1:-1:-1;;;;;;8172:40:0;;-1:-1:-1;;;8172:40:0;;:105;;-1:-1:-1;;;;;;;8229:48:0;;-1:-1:-1;;;8229:48:0;8172:105;:158;;;-1:-1:-1;;;;;;;;;;5448:40:0;;;8294:36;8152:178;8033:305;-1:-1:-1;;8033:305:0:o;22978:73::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;;;;;;;;;23030:6:::1;:15:::0;;-1:-1:-1;;23030:15:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22978:73::o;9303:100::-;9357:13;9390:5;9383:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:100;:::o;10387:221::-;10463:7;12184:16;;;:7;:16;;;;;;-1:-1:-1;;;;;12184:16:0;10483:73;;;;-1:-1:-1;;;10483:73:0;;16239:2:1;10483:73:0;;;16221:21:1;16278:2;16258:18;;;16251:30;16317:34;16297:18;;;16290:62;-1:-1:-1;;;16368:18:1;;;16361:42;16420:19;;10483:73:0;16037:408:1;10483:73:0;-1:-1:-1;10576:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;10576:24:0;;10387:221::o;9967:412::-;10048:13;10064:24;10080:7;10064:15;:24::i;:::-;10048:40;;10113:5;-1:-1:-1;;;;;10107:11:0;:2;-1:-1:-1;;;;;10107:11:0;;;10099:57;;;;-1:-1:-1;;;10099:57:0;;17780:2:1;10099:57:0;;;17762:21:1;17819:2;17799:18;;;17792:30;17858:34;17838:18;;;17831:62;-1:-1:-1;;;17909:18:1;;;17902:31;17950:19;;10099:57:0;17578:397:1;10099:57:0;7039:10;-1:-1:-1;;;;;10191:21:0;;;;:62;;-1:-1:-1;10216:37:0;10233:5;7039:10;10779:164;:::i;10216:37::-;10169:168;;;;-1:-1:-1;;;10169:168:0;;13402:2:1;10169:168:0;;;13384:21:1;13441:2;13421:18;;;13414:30;13480:34;13460:18;;;13453:62;13551:26;13531:18;;;13524:54;13595:19;;10169:168:0;13200:420:1;10169:168:0;10350:21;10359:2;10363:7;10350:8;:21::i;:::-;10037:342;9967:412;;:::o;8606:119::-;8658:7;8698:19;;8685:10;:32;;;;:::i;:::-;8678:39;;8606:119;:::o;10951:284::-;11093:41;7039:10;11126:7;11093:18;:41::i;:::-;11085:103;;;;-1:-1:-1;;;11085:103:0;;;;;;;:::i;:::-;11199:28;11209:4;11215:2;11219:7;11199:9;:28::i;8346:248::-;8434:7;8470:24;8488:5;8470:17;:24::i;:::-;8462:5;:32;8454:88;;;;-1:-1:-1;;;8454:88:0;;9879:2:1;8454:88:0;;;9861:21:1;9918:2;9898:18;;;9891:30;9957:34;9937:18;;;9930:62;-1:-1:-1;;;10008:18:1;;;10001:41;10059:19;;8454:88:0;9677:407:1;8454:88:0;-1:-1:-1;;;;;;8560:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;8346:248::o;21304:239::-;21363:4;;21376:143;21397:20;:27;21393:31;;21376:143;;;21471:5;-1:-1:-1;;;;;21444:32:0;:20;21465:1;21444:23;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;21444:23:0;:32;21440:72;;;-1:-1:-1;21498:4:0;;21304:239;-1:-1:-1;;21304:239:0:o;21440:72::-;21426:3;;;;:::i;:::-;;;;21376:143;;;-1:-1:-1;21532:5:0;;21304:239;-1:-1:-1;;21304:239:0:o;23059:95::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;23124:15:::1;:24:::0;;;::::1;;;;-1:-1:-1::0;;23124:24:0;;::::1;::::0;;;::::1;::::0;;23059:95::o;23931:145::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;23984:7:::1;24005;18665:6:::0;;-1:-1:-1;;;;;18665:6:0;;18592:87;24005:7:::1;-1:-1:-1::0;;;;;23997:21:0::1;24026;23997:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23983:69;;;24067:2;24059:11;;;::::0;::::1;;23976:100;23931:145::o:0;11243:185::-;11381:39;11398:4;11404:2;11408:7;11381:39;;;;;;;;;;;;:16;:39::i;23697:75::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;23752:14:::1;23758:7;23752:5;:14::i;21549:348::-:0;21624:16;21652:23;21678:17;21688:6;21678:9;:17::i;:::-;21652:43;;21702:25;21744:15;21730:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21730:30:0;;21702:58;;21772:9;21767:103;21787:15;21783:1;:19;21767:103;;;21832:30;21852:6;21860:1;21832:19;:30::i;:::-;21818:8;21827:1;21818:11;;;;;;;;:::i;:::-;;;;;;;;;;:44;21804:3;;;;:::i;:::-;;;;21767:103;;;-1:-1:-1;21883:8:0;21549:348;-1:-1:-1;;;21549:348:0:o;22532:86::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;22591:10:::1;:21:::0;22532:86::o;23255:436::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;23340:6:::1;::::0;::::1;;23339:7;23331:42;;;::::0;-1:-1:-1;;;23331:42:0;;17013:2:1;23331:42:0::1;::::0;::::1;16995:21:1::0;17052:2;17032:18;;;17025:30;-1:-1:-1;;;17071:18:1;;;17064:52;17133:18;;23331:42:0::1;16811:346:1::0;23331:42:0::1;23380:14;23397:13;:11;:13::i;:::-;23380:30;;23434:1;23425:6;:10;23417:50;;;::::0;-1:-1:-1;;;23417:50:0;;19356:2:1;23417:50:0::1;::::0;::::1;19338:21:1::0;19395:2;19375:18;;;19368:30;19434:29;19414:18;;;19407:57;19481:18;;23417:50:0::1;19154:351:1::0;23417:50:0::1;23478:11;::::0;;;::::1;;;:17;;23491:4;23478:17;23474:130;;;23535:12;::::0;23516:15:::1;23525:6:::0;23516;:15:::1;:::i;:::-;:31;;23508:88;;;;-1:-1:-1::0;;;23508:88:0::1;;;;;;;:::i;:::-;23633:10;23612:32;::::0;;;:20:::1;:32;::::0;;;;:40;;23646:6;;23612:32;:40:::1;::::0;23646:6;;23612:40:::1;:::i;:::-;::::0;;;-1:-1:-1;23661:24:0::1;::::0;-1:-1:-1;23673:3:0;23678:6;23661:11:::1;:24::i;23162:87::-:0;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;23223:11:::1;:20:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;23223:20:0;;::::1;::::0;;;::::1;::::0;;23162:87::o;22746:98::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;22817:21;;::::1;::::0;:7:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;:::-;;22746:98:::0;:::o;9056:239::-;9128:7;9164:16;;;:7;:16;;;;;;-1:-1:-1;;;;;9164:16:0;9199:19;9191:73;;;;-1:-1:-1;;;9191:73:0;;14238:2:1;9191:73:0;;;14220:21:1;14277:2;14257:18;;;14250:30;14316:34;14296:18;;;14289:62;-1:-1:-1;;;14367:18:1;;;14360:39;14416:19;;9191:73:0;14036:405:1;19408:21:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8840:208::-;8912:7;-1:-1:-1;;;;;8940:19:0;;8932:74;;;;-1:-1:-1;;;8932:74:0;;13827:2:1;8932:74:0;;;13809:21:1;13866:2;13846:18;;;13839:30;13905:34;13885:18;;;13878:62;-1:-1:-1;;;13956:18:1;;;13949:40;14006:19;;8932:74:0;13625:406:1;8932:74:0;-1:-1:-1;;;;;;9024:16:0;;;;;:9;:16;;;;;;;8840:208::o;18815:103::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;18880:30:::1;18907:1;18880:18;:30::i;:::-;18815:103::o:0;22332:93::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;22397:13:::1;:22:::0;22332:93::o;22624:116::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;22701:13:::1;:33:::0;22624:116::o;9411:104::-;9467:13;9500:7;9493:14;;;;;:::i;20287:1009::-;20348:6;;;;20347:7;20339:42;;;;-1:-1:-1;;;20339:42:0;;17013:2:1;20339:42:0;;;16995:21:1;17052:2;17032:18;;;17025:30;-1:-1:-1;;;17071:18:1;;;17064:52;17133:18;;20339:42:0;16811:346:1;20339:42:0;20388:14;20405:13;:11;:13::i;:::-;20473:10;20425:24;20452:32;;;:20;:32;;;;;;20388:30;;-1:-1:-1;20499:10:0;20491:50;;;;-1:-1:-1;;;20491:50:0;;19356:2:1;20491:50:0;;;19338:21:1;19395:2;19375:18;;;19368:30;19434:29;19414:18;;;19407:57;19481:18;;20491:50:0;19154:351:1;20491:50:0;20566:13;;20556:6;:23;;20548:72;;;;-1:-1:-1;;;20548:72:0;;14648:2:1;20548:72:0;;;14630:21:1;14687:2;14667:18;;;14660:30;14726:34;14706:18;;;14699:62;-1:-1:-1;;;14777:18:1;;;14770:34;14821:19;;20548:72:0;14446:400:1;20548:72:0;18665:6;;-1:-1:-1;;;;;18665:6:0;20631:10;:21;20627:247;;20665:15;;;;;;;20661:206;;20736:6;20723:10;;:19;;;;:::i;:::-;20710:9;:32;;20702:63;;;;-1:-1:-1;;;20702:63:0;;18591:2:1;20702:63:0;;;18573:21:1;18630:2;18610:18;;;18603:30;-1:-1:-1;;;18649:18:1;;;18642:48;18707:18;;20702:63:0;18389:342:1;20702:63:0;20813:13;;20784:25;20803:6;20784:16;:25;:::i;:::-;:42;;20776:83;;;;-1:-1:-1;;;20776:83:0;;11873:2:1;20776:83:0;;;11855:21:1;11912:2;11892:18;;;11885:30;11951;11931:18;;;11924:58;11999:18;;20776:83:0;11671:352:1;20776:83:0;20884:11;;;;;;;:17;;20897:4;20884:17;20880:130;;;20941:12;;20922:15;20931:6;20922;:15;:::i;:::-;:31;;20914:88;;;;-1:-1:-1;;;20914:88:0;;;;;;;:::i;:::-;21039:10;21018:32;;;;:20;:32;;;;;:40;;21052:6;;21018:32;:40;;21052:6;;21018:40;:::i;:::-;;;;-1:-1:-1;21067:31:0;;-1:-1:-1;21079:10:0;21091:6;21067:11;:31::i;:::-;21132:4;;21106:12;;-1:-1:-1;;;;;21132:4:0;21167:3;21150:14;:9;21162:2;21150:14;:::i;:::-;:20;;;;:::i;:::-;21124:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21105:70;;;21190:7;21182:16;;;;;;21227:4;;21206:7;;-1:-1:-1;;;;;21227:4:0;21262:3;21245:14;:9;21257:2;21245:14;:::i;:::-;:20;;;;:::i;:::-;21219:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21205:65;;;21285:2;21277:11;;;;;;20332:964;;;;20287:1009;:::o;10616:155::-;10711:52;7039:10;10744:8;10754;10711:18;:52::i;22431:93::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;22496:12:::1;:22:::0;22431:93::o;11436:328::-;11611:41;7039:10;11644:7;11611:18;:41::i;:::-;11603:103;;;;-1:-1:-1;;;11603:103:0;;;;;;;:::i;:::-;11717:39;11731:4;11737:2;11741:7;11750:5;11717:13;:39::i;:::-;11436:328;;;;:::o;19740:37::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19740:37:0;;-1:-1:-1;19740:37:0;:::o;19434:::-;;;;;;;:::i;21903:423::-;12160:4;12184:16;;;:7;:16;;;;;;22001:13;;-1:-1:-1;;;;;12184:16:0;22026:97;;;;-1:-1:-1;;;22026:97:0;;17364:2:1;22026:97:0;;;17346:21:1;17403:2;17383:18;;;17376:30;17442:34;17422:18;;;17415:62;-1:-1:-1;;;17493:18:1;;;17486:45;17548:19;;22026:97:0;17162:411:1;22026:97:0;22132:28;22163:10;:8;:10::i;:::-;22132:41;;22218:1;22193:14;22187:28;:32;:133;;;;;;;;;;;;;;;;;22255:14;22271:18;:7;:16;:18::i;:::-;22291:13;22238:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22187:133;22180:140;21903:423;-1:-1:-1;;;21903:423:0:o;22850:122::-;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;22933:33;;::::1;::::0;:13:::1;::::0;:33:::1;::::0;::::1;::::0;::::1;:::i;23780:144::-:0;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;23855:27:::1;23862:20;;23855:27;:::i;:::-;23889:29;:20;23912:6:::0;;23889:29:::1;:::i;18926:201::-:0;18665:6;;-1:-1:-1;;;;;18665:6:0;7039:10;18727:23;18719:68;;;;-1:-1:-1;;;18719:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19015:22:0;::::1;19007:73;;;::::0;-1:-1:-1;;;19007:73:0;;10710:2:1;19007:73:0::1;::::0;::::1;10692:21:1::0;10749:2;10729:18;;;10722:30;10788:34;10768:18;;;10761:62;-1:-1:-1;;;10839:18:1;;;10832:36;10885:19;;19007:73:0::1;10508:402:1::0;19007:73:0::1;19091:28;19110:8;19091:18;:28::i;16773:175::-:0;16848:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;16848:29:0;-1:-1:-1;;;;;16848:29:0;;;;;;;;:24;;16902;16848;16902:15;:24::i;:::-;-1:-1:-1;;;;;16893:47:0;;;;;;;;;;;16773:175;;:::o;12230:349::-;12323:4;12184:16;;;:7;:16;;;;;;-1:-1:-1;;;;;12184:16:0;12340:73;;;;-1:-1:-1;;;12340:73:0;;12989:2:1;12340:73:0;;;12971:21:1;13028:2;13008:18;;;13001:30;13067:34;13047:18;;;13040:62;-1:-1:-1;;;13118:18:1;;;13111:42;13170:19;;12340:73:0;12787:408:1;12340:73:0;12424:13;12440:24;12456:7;12440:15;:24::i;:::-;12424:40;;12494:5;-1:-1:-1;;;;;12483:16:0;:7;-1:-1:-1;;;;;12483:16:0;;:51;;;;12527:7;-1:-1:-1;;;;;12503:31:0;:20;12515:7;12503:11;:20::i;:::-;-1:-1:-1;;;;;12503:31:0;;12483:51;:87;;;-1:-1:-1;;;;;;10900:25:0;;;10876:4;10900:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;12538:32;12475:96;12230:349;-1:-1:-1;;;;12230:349:0:o;16191:574::-;16351:4;-1:-1:-1;;;;;16323:32:0;:24;16339:7;16323:15;:24::i;:::-;-1:-1:-1;;;;;16323:32:0;;16315:82;;;;-1:-1:-1;;;16315:82:0;;11117:2:1;16315:82:0;;;11099:21:1;11156:2;11136:18;;;11129:30;11195:34;11175:18;;;11168:62;-1:-1:-1;;;11246:18:1;;;11239:35;11291:19;;16315:82:0;10915:401:1;16315:82:0;-1:-1:-1;;;;;16416:16:0;;16408:65;;;;-1:-1:-1;;;16408:65:0;;12230:2:1;16408:65:0;;;12212:21:1;12269:2;12249:18;;;12242:30;12308:34;12288:18;;;12281:62;-1:-1:-1;;;12359:18:1;;;12352:34;12403:19;;16408:65:0;12028:400:1;16408:65:0;16538:29;16555:1;16559:7;16538:8;:29::i;:::-;-1:-1:-1;;;;;16580:15:0;;;;;;:9;:15;;;;;:20;;16599:1;;16580:15;:20;;16599:1;;16580:20;:::i;:::-;;;;-1:-1:-1;;;;;;;16611:13:0;;;;;;:9;:13;;;;;:18;;16628:1;;16611:13;:18;;16628:1;;16611:18;:::i;:::-;;;;-1:-1:-1;;16640:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;16640:21:0;-1:-1:-1;;;;;16640:21:0;;;;;;;;;16679:27;;16640:16;;16679:27;;;;;;;10037:342;9967:412;;:::o;15790:393::-;15850:13;15866:24;15882:7;15866:15;:24::i;:::-;15850:40;;15964:29;15981:1;15985:7;15964:8;:29::i;:::-;-1:-1:-1;;;;;16006:16:0;;;;;;:9;:16;;;;;:21;;16026:1;;16006:16;:21;;16026:1;;16006:21;:::i;:::-;;;;-1:-1:-1;;16045:16:0;;;;:7;:16;;;;;;16038:23;;-1:-1:-1;;;;;;16038:23:0;;;16079:36;16053:7;;16045:16;-1:-1:-1;;;;;16079:36:0;;;;;16045:16;;16079:36;22817:21:::1;22746:98:::0;:::o;12869:820::-;7039:10;12971:9;12955:25;12947:59;;;;-1:-1:-1;;;12947:59:0;;11523:2:1;12947:59:0;;;11505:21:1;11562:2;11542:18;;;11535:30;-1:-1:-1;;;11581:18:1;;;11574:51;11642:18;;12947:59:0;11321:345:1;12947:59:0;-1:-1:-1;;;;;13025:16:0;;13017:61;;;;-1:-1:-1;;;13017:61:0;;15466:2:1;13017:61:0;;;15448:21:1;;;15485:18;;;15478:30;15544:34;15524:18;;;15517:62;15596:18;;13017:61:0;15264:356:1;13017:61:0;13110:1;13097:10;:14;13089:67;;;;-1:-1:-1;;;13089:67:0;;18182:2:1;13089:67:0;;;18164:21:1;18221:2;18201:18;;;18194:30;18260:34;18240:18;;;18233:62;-1:-1:-1;;;18311:18:1;;;18304:38;18359:19;;13089:67:0;17980:404:1;13089:67:0;13198:10;13175:19;;:33;;13167:89;;;;-1:-1:-1;;;13167:89:0;;15827:2:1;13167:89:0;;;15809:21:1;15866:2;15846:18;;;15839:30;15905:34;15885:18;;;15878:62;-1:-1:-1;;;15956:18:1;;;15949:41;16007:19;;13167:89:0;15625:407:1;13167:89:0;13310:19;;13277:30;13340:236;13360:10;13356:1;:14;13340:236;;;13393:15;13411:56;13437:2;13441:25;13411;:56::i;:::-;13393:74;;13482:40;13510:2;13514:7;13482:27;:40::i;:::-;13537:27;;;:::i;:::-;;;13377:199;13372:3;;;;:::i;:::-;;;13340:236;;;-1:-1:-1;13596:19:0;:47;;;-1:-1:-1;;;;;13654:13:0;;;;;;:9;:13;;;;;:27;;13671:10;;13654:13;:27;;13671:10;;13654:27;:::i;:::-;;;;-1:-1:-1;;;;;12869:820:0:o;19135:191::-;19228:6;;;-1:-1:-1;;;;;19245:17:0;;;-1:-1:-1;;;;;;19245:17:0;;;;;;;19278:40;;19228:6;;;19245:17;19228:6;;19278:40;;19209:16;;19278:40;19198:128;19135:191;:::o;16956:315::-;17111:8;-1:-1:-1;;;;;17102:17:0;:5;-1:-1:-1;;;;;17102:17:0;;;17094:55;;;;-1:-1:-1;;;17094:55:0;;12635:2:1;17094:55:0;;;12617:21:1;12674:2;12654:18;;;12647:30;12713:27;12693:18;;;12686:55;12758:18;;17094:55:0;12433:349:1;17094:55:0;-1:-1:-1;;;;;17160:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;17160:46:0;;;;;;;;;;17222:41;;9401::1;;;17222::0;;9374:18:1;17222:41:0;;;;;;;16956:315;;;:::o;11772:::-;11929:28;11939:4;11945:2;11949:7;11929:9;:28::i;:::-;11976:48;11999:4;12005:2;12009:7;12018:5;11976:22;:48::i;:::-;11968:111;;;;-1:-1:-1;;;11968:111:0;;;;;;;:::i;20179:102::-;20239:13;20268:7;20261:14;;;;;:::i;150:532::-;206:13;236:10;232:53;;-1:-1:-1;;263:10:0;;;;;;;;;;;;-1:-1:-1;;;263:10:0;;;;;150:532::o;232:53::-;310:5;295:12;351:78;358:9;;351:78;;384:8;;;;:::i;:::-;;-1:-1:-1;407:10:0;;-1:-1:-1;415:2:0;407:10;;:::i;:::-;;;351:78;;;439:19;471:6;461:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;461:17:0;;439:39;;489:154;496:10;;489:154;;523:11;533:1;523:11;;:::i;:::-;;-1:-1:-1;592:10:0;600:2;592:5;:10;:::i;:::-;579:24;;:2;:24;:::i;:::-;566:39;;549:6;556;549:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;549:56:0;;;;;;;;-1:-1:-1;620:11:0;629:2;620:11;;:::i;:::-;;;489:154;;13705:730;13820:7;;13948:2;13973:11;14007:12;14042:15;14080:16;14129;14144:1;14007:12;14129:16;:::i;:::-;13915:334;;;-1:-1:-1;;;;;8283:15:1;;;13915:334:0;;;8265:34:1;8315:18;;8308:34;;;;8358:18;;;8351:34;;;;8401:18;;;8394:34;8444:19;;;8437:35;14119:27:0;8488:19:1;;;8481:35;14177:4:0;8532:19:1;;;8525:44;8585:19;;;8578:35;;;8199:19;;13915:334:0;;;-1:-1:-1;;13915:334:0;;;;;;;;;13887:377;;13915:334;13887:377;;;;;-1:-1:-1;13865:410:0;14308:37;14320:25;13887:377;14308:37;:::i;:::-;14286:59;;14363:64;14388:11;14401:25;14363:24;:64::i;:::-;14356:71;13705:730;-1:-1:-1;;;;;13705:730:0:o;12587:274::-;12728:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;12728:21:0;-1:-1:-1;;;;;12728:21:0;;;;;;;;12765:33;;12728:16;;;12765:33;;12728:16;;12765:33;22817:21:::1;22746:98:::0;:::o;17279:799::-;17434:4;-1:-1:-1;;;;;17455:13:0;;1605:19;:23;17451:620;;17491:72;;-1:-1:-1;;;17491:72:0;;-1:-1:-1;;;;;17491:36:0;;;;;:72;;7039:10;;17542:4;;17548:7;;17557:5;;17491:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17491:72:0;;;;;;;;-1:-1:-1;;17491:72:0;;;;;;;;;;;;:::i;:::-;;;17487:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17733:13:0;;17729:272;;17776:60;;-1:-1:-1;;;17776:60:0;;;;;;;:::i;17729:272::-;17951:6;17945:13;17936:6;17932:2;17928:15;17921:38;17487:529;-1:-1:-1;;;;;;17614:51:0;-1:-1:-1;;;17614:51:0;;-1:-1:-1;17607:58:0;;17451:620;-1:-1:-1;18055:4:0;17279:799;;;;;;:::o;14443:803::-;14565:7;14611:28;;;:16;:28;;;;;;14565:7;14679:15;14675:119;;-1:-1:-1;14720:10:0;14675:119;;;-1:-1:-1;14772:10:0;14675:119;14806:17;14826:29;14854:1;14826:25;:29;:::i;:::-;14806:49;;14884:9;14870:10;:23;14866:339;;14910:22;14935:27;;;:16;:27;;;;;;14981:19;14977:217;;15021:28;;;;:16;:28;;;;;;15080:45;;;15151:27;;;;;15144:34;14977:217;14895:310;14866:339;-1:-1:-1;15232:6:0;14443:803;-1:-1:-1;;;;14443:803:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:631:1;78:5;108:18;149:2;141:6;138:14;135:40;;;155:18;;:::i;:::-;230:2;224:9;198:2;284:15;;-1:-1:-1;;280:24:1;;;306:2;276:33;272:42;260:55;;;330:18;;;350:22;;;327:46;324:72;;;376:18;;:::i;:::-;416:10;412:2;405:22;445:6;436:15;;475:6;467;460:22;515:3;506:6;501:3;497:16;494:25;491:45;;;532:1;529;522:12;491:45;582:6;577:3;570:4;562:6;558:17;545:44;637:1;630:4;621:6;613;609:19;605:30;598:41;;;;14:631;;;;;:::o;650:173::-;718:20;;-1:-1:-1;;;;;767:31:1;;757:42;;747:70;;813:1;810;803:12;747:70;650:173;;;:::o;828:160::-;893:20;;949:13;;942:21;932:32;;922:60;;978:1;975;968:12;993:186;1052:6;1105:2;1093:9;1084:7;1080:23;1076:32;1073:52;;;1121:1;1118;1111:12;1073:52;1144:29;1163:9;1144:29;:::i;1184:260::-;1252:6;1260;1313:2;1301:9;1292:7;1288:23;1284:32;1281:52;;;1329:1;1326;1319:12;1281:52;1352:29;1371:9;1352:29;:::i;:::-;1342:39;;1400:38;1434:2;1423:9;1419:18;1400:38;:::i;:::-;1390:48;;1184:260;;;;;:::o;1449:328::-;1526:6;1534;1542;1595:2;1583:9;1574:7;1570:23;1566:32;1563:52;;;1611:1;1608;1601:12;1563:52;1634:29;1653:9;1634:29;:::i;:::-;1624:39;;1682:38;1716:2;1705:9;1701:18;1682:38;:::i;:::-;1672:48;;1767:2;1756:9;1752:18;1739:32;1729:42;;1449:328;;;;;:::o;1782:666::-;1877:6;1885;1893;1901;1954:3;1942:9;1933:7;1929:23;1925:33;1922:53;;;1971:1;1968;1961:12;1922:53;1994:29;2013:9;1994:29;:::i;:::-;1984:39;;2042:38;2076:2;2065:9;2061:18;2042:38;:::i;:::-;2032:48;;2127:2;2116:9;2112:18;2099:32;2089:42;;2182:2;2171:9;2167:18;2154:32;2209:18;2201:6;2198:30;2195:50;;;2241:1;2238;2231:12;2195:50;2264:22;;2317:4;2309:13;;2305:27;-1:-1:-1;2295:55:1;;2346:1;2343;2336:12;2295:55;2369:73;2434:7;2429:2;2416:16;2411:2;2407;2403:11;2369:73;:::i;:::-;2359:83;;;1782:666;;;;;;;:::o;2453:254::-;2518:6;2526;2579:2;2567:9;2558:7;2554:23;2550:32;2547:52;;;2595:1;2592;2585:12;2547:52;2618:29;2637:9;2618:29;:::i;:::-;2608:39;;2666:35;2697:2;2686:9;2682:18;2666:35;:::i;2712:254::-;2780:6;2788;2841:2;2829:9;2820:7;2816:23;2812:32;2809:52;;;2857:1;2854;2847:12;2809:52;2880:29;2899:9;2880:29;:::i;:::-;2870:39;2956:2;2941:18;;;;2928:32;;-1:-1:-1;;;2712:254:1:o;2971:615::-;3057:6;3065;3118:2;3106:9;3097:7;3093:23;3089:32;3086:52;;;3134:1;3131;3124:12;3086:52;3174:9;3161:23;3203:18;3244:2;3236:6;3233:14;3230:34;;;3260:1;3257;3250:12;3230:34;3298:6;3287:9;3283:22;3273:32;;3343:7;3336:4;3332:2;3328:13;3324:27;3314:55;;3365:1;3362;3355:12;3314:55;3405:2;3392:16;3431:2;3423:6;3420:14;3417:34;;;3447:1;3444;3437:12;3417:34;3500:7;3495:2;3485:6;3482:1;3478:14;3474:2;3470:23;3466:32;3463:45;3460:65;;;3521:1;3518;3511:12;3460:65;3552:2;3544:11;;;;;3574:6;;-1:-1:-1;2971:615:1;;-1:-1:-1;;;;2971:615:1:o;3591:180::-;3647:6;3700:2;3688:9;3679:7;3675:23;3671:32;3668:52;;;3716:1;3713;3706:12;3668:52;3739:26;3755:9;3739:26;:::i;3776:245::-;3834:6;3887:2;3875:9;3866:7;3862:23;3858:32;3855:52;;;3903:1;3900;3893:12;3855:52;3942:9;3929:23;3961:30;3985:5;3961:30;:::i;4026:249::-;4095:6;4148:2;4136:9;4127:7;4123:23;4119:32;4116:52;;;4164:1;4161;4154:12;4116:52;4196:9;4190:16;4215:30;4239:5;4215:30;:::i;4280:450::-;4349:6;4402:2;4390:9;4381:7;4377:23;4373:32;4370:52;;;4418:1;4415;4408:12;4370:52;4458:9;4445:23;4491:18;4483:6;4480:30;4477:50;;;4523:1;4520;4513:12;4477:50;4546:22;;4599:4;4591:13;;4587:27;-1:-1:-1;4577:55:1;;4628:1;4625;4618:12;4577:55;4651:73;4716:7;4711:2;4698:16;4693:2;4689;4685:11;4651:73;:::i;4735:180::-;4794:6;4847:2;4835:9;4826:7;4822:23;4818:32;4815:52;;;4863:1;4860;4853:12;4815:52;-1:-1:-1;4886:23:1;;4735:180;-1:-1:-1;4735:180:1:o;4920:254::-;4988:6;4996;5049:2;5037:9;5028:7;5024:23;5020:32;5017:52;;;5065:1;5062;5055:12;5017:52;5101:9;5088:23;5078:33;;5130:38;5164:2;5153:9;5149:18;5130:38;:::i;5179:257::-;5220:3;5258:5;5252:12;5285:6;5280:3;5273:19;5301:63;5357:6;5350:4;5345:3;5341:14;5334:4;5327:5;5323:16;5301:63;:::i;:::-;5418:2;5397:15;-1:-1:-1;;5393:29:1;5384:39;;;;5425:4;5380:50;;5179:257;-1:-1:-1;;5179:257:1:o;5441:1527::-;5665:3;5703:6;5697:13;5729:4;5742:51;5786:6;5781:3;5776:2;5768:6;5764:15;5742:51;:::i;:::-;5856:13;;5815:16;;;;5878:55;5856:13;5815:16;5900:15;;;5878:55;:::i;:::-;6022:13;;5955:20;;;5995:1;;6082;6104:18;;;;6157;;;;6184:93;;6262:4;6252:8;6248:19;6236:31;;6184:93;6325:2;6315:8;6312:16;6292:18;6289:40;6286:167;;;-1:-1:-1;;;6352:33:1;;6408:4;6405:1;6398:15;6438:4;6359:3;6426:17;6286:167;6469:18;6496:110;;;;6620:1;6615:328;;;;6462:481;;6496:110;-1:-1:-1;;6531:24:1;;6517:39;;6576:20;;;;-1:-1:-1;6496:110:1;;6615:328;19765:1;19758:14;;;19802:4;19789:18;;6710:1;6724:169;6738:8;6735:1;6732:15;6724:169;;;6820:14;;6805:13;;;6798:37;6863:16;;;;6755:10;;6724:169;;;6728:3;;6924:8;6917:5;6913:20;6906:27;;6462:481;-1:-1:-1;6959:3:1;;5441:1527;-1:-1:-1;;;;;;;;;;;5441:1527:1:o;7391:488::-;-1:-1:-1;;;;;7660:15:1;;;7642:34;;7712:15;;7707:2;7692:18;;7685:43;7759:2;7744:18;;7737:34;;;7807:3;7802:2;7787:18;;7780:31;;;7585:4;;7828:45;;7853:19;;7845:6;7828:45;:::i;:::-;7820:53;7391:488;-1:-1:-1;;;;;;7391:488:1:o;8624:632::-;8795:2;8847:21;;;8917:13;;8820:18;;;8939:22;;;8766:4;;8795:2;9018:15;;;;8992:2;8977:18;;;8766:4;9061:169;9075:6;9072:1;9069:13;9061:169;;;9136:13;;9124:26;;9205:15;;;;9170:12;;;;9097:1;9090:9;9061:169;;;-1:-1:-1;9247:3:1;;8624:632;-1:-1:-1;;;;;;8624:632:1:o;9453:219::-;9602:2;9591:9;9584:21;9565:4;9622:44;9662:2;9651:9;9647:18;9639:6;9622:44;:::i;10089:414::-;10291:2;10273:21;;;10330:2;10310:18;;;10303:30;10369:34;10364:2;10349:18;;10342:62;-1:-1:-1;;;10435:2:1;10420:18;;10413:48;10493:3;10478:19;;10089:414::o;14851:408::-;15053:2;15035:21;;;15092:2;15072:18;;;15065:30;15131:34;15126:2;15111:18;;15104:62;-1:-1:-1;;;15197:2:1;15182:18;;15175:42;15249:3;15234:19;;14851:408::o;16450:356::-;16652:2;16634:21;;;16671:18;;;16664:30;16730:34;16725:2;16710:18;;16703:62;16797:2;16782:18;;16450:356::o;18736:413::-;18938:2;18920:21;;;18977:2;18957:18;;;18950:30;19016:34;19011:2;18996:18;;18989:62;-1:-1:-1;;;19082:2:1;19067:18;;19060:47;19139:3;19124:19;;18736:413::o;19818:128::-;19858:3;19889:1;19885:6;19882:1;19879:13;19876:39;;;19895:18;;:::i;:::-;-1:-1:-1;19931:9:1;;19818:128::o;19951:120::-;19991:1;20017;20007:35;;20022:18;;:::i;:::-;-1:-1:-1;20056:9:1;;19951:120::o;20076:168::-;20116:7;20182:1;20178;20174:6;20170:14;20167:1;20164:21;20159:1;20152:9;20145:17;20141:45;20138:71;;;20189:18;;:::i;:::-;-1:-1:-1;20229:9:1;;20076:168::o;20249:125::-;20289:4;20317:1;20314;20311:8;20308:34;;;20322:18;;:::i;:::-;-1:-1:-1;20359:9:1;;20249:125::o;20379:258::-;20451:1;20461:113;20475:6;20472:1;20469:13;20461:113;;;20551:11;;;20545:18;20532:11;;;20525:39;20497:2;20490:10;20461:113;;;20592:6;20589:1;20586:13;20583:48;;;-1:-1:-1;;20627:1:1;20609:16;;20602:27;20379:258::o;20642:136::-;20681:3;20709:5;20699:39;;20718:18;;:::i;:::-;-1:-1:-1;;;20754:18:1;;20642:136::o;20783:380::-;20862:1;20858:12;;;;20905;;;20926:61;;20980:4;20972:6;20968:17;20958:27;;20926:61;21033:2;21025:6;21022:14;21002:18;20999:38;20996:161;;;21079:10;21074:3;21070:20;21067:1;21060:31;21114:4;21111:1;21104:15;21142:4;21139:1;21132:15;20996:161;;20783:380;;;:::o;21168:135::-;21207:3;-1:-1:-1;;21228:17:1;;21225:43;;;21248:18;;:::i;:::-;-1:-1:-1;21295:1:1;21284:13;;21168:135::o;21308:112::-;21340:1;21366;21356:35;;21371:18;;:::i;:::-;-1:-1:-1;21405:9:1;;21308:112::o;21425:127::-;21486:10;21481:3;21477:20;21474:1;21467:31;21517:4;21514:1;21507:15;21541:4;21538:1;21531:15;21557:127;21618:10;21613:3;21609:20;21606:1;21599:31;21649:4;21646:1;21639:15;21673:4;21670:1;21663:15;21689:127;21750:10;21745:3;21741:20;21738:1;21731:31;21781:4;21778:1;21771:15;21805:4;21802:1;21795:15;21821:127;21882:10;21877:3;21873:20;21870:1;21863:31;21913:4;21910:1;21903:15;21937:4;21934:1;21927:15;21953:131;-1:-1:-1;;;;;;22027:32:1;;22017:43;;22007:71;;22074:1;22071;22064:12
Swarm Source
ipfs://3d6f2d17871bdea08219932e041a0544fe17c7e54ae2ec6348b5863d4fbf9cbf