文件 1 的 1:Orcs.sol
interface IERC165 {
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
pragma solidity ^0.8.0;
interface IERC721 is IERC165 {
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
function balanceOf(address owner) external view returns (uint256 balance);
function ownerOf(uint256 tokenId) external view returns (address owner);
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external;
function transferFrom(
address from,
address to,
uint256 tokenId
) external;
function approve(address to, uint256 tokenId) external;
function getApproved(uint256 tokenId) external view returns (address operator);
function setApprovalForAll(address operator, bool _approved) external;
function isApprovedForAll(address owner, address operator) external view returns (bool);
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes calldata data
) external;
}
pragma solidity ^0.8.0;
interface IERC721Enumerable is IERC721 {
function totalSupply() external view returns (uint256);
function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);
function tokenByIndex(uint256 index) external view returns (uint256);
}
pragma solidity ^0.8.0;
abstract contract ERC165 is IERC165 {
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
pragma solidity ^0.8.0;
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);
}
}
pragma solidity ^0.8.0;
library Address {
function isContract(address account) internal view returns (bool) {
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
pragma solidity ^0.8.0;
interface IERC721Metadata is IERC721 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function tokenURI(uint256 tokenId) external view returns (string memory);
}
pragma solidity ^0.8.0;
interface IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
pragma solidity ^0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
pragma solidity ^0.8.0;
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 {
require(operator != _msgSender(), "ERC721: approve to caller");
_operatorApprovals[_msgSender()][operator] = approved;
emit ApprovalForAll(_msgSender(), operator, approved);
}
function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {
return _operatorApprovals[owner][operator];
}
function transferFrom(
address from,
address to,
uint256 tokenId
) public 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 = 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);
}
function _burn(uint256 tokenId) internal virtual {
address owner = ERC721.ownerOf(tokenId);
_beforeTokenTransfer(owner, address(0), tokenId);
_approve(address(0), tokenId);
_balances[owner] -= 1;
delete _owners[tokenId];
emit Transfer(owner, address(0), tokenId);
}
function _transfer(
address from,
address to,
uint256 tokenId
) internal virtual {
require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
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);
}
function _approve(address to, uint256 tokenId) internal virtual {
_tokenApprovals[tokenId] = to;
emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
}
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 {}
}
pragma solidity ^0.8.0;
abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
mapping(address => mapping(uint256 => uint256)) private _ownedTokens;
mapping(uint256 => uint256) private _ownedTokensIndex;
uint256[] private _allTokens;
mapping(uint256 => uint256) private _allTokensIndex;
function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {
return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);
}
function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {
require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
return _ownedTokens[owner][index];
}
function totalSupply() public view virtual override returns (uint256) {
return _allTokens.length;
}
function tokenByIndex(uint256 index) public view virtual override returns (uint256) {
require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds");
return _allTokens[index];
}
function _beforeTokenTransfer(
address from,
address to,
uint256 tokenId
) internal virtual override {
super._beforeTokenTransfer(from, to, tokenId);
if (from == address(0)) {
_addTokenToAllTokensEnumeration(tokenId);
} else if (from != to) {
_removeTokenFromOwnerEnumeration(from, tokenId);
}
if (to == address(0)) {
_removeTokenFromAllTokensEnumeration(tokenId);
} else if (to != from) {
_addTokenToOwnerEnumeration(to, tokenId);
}
}
function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
uint256 length = ERC721.balanceOf(to);
_ownedTokens[to][length] = tokenId;
_ownedTokensIndex[tokenId] = length;
}
function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
_allTokensIndex[tokenId] = _allTokens.length;
_allTokens.push(tokenId);
}
function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
uint256 tokenIndex = _ownedTokensIndex[tokenId];
if (tokenIndex != lastTokenIndex) {
uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];
_ownedTokens[from][tokenIndex] = lastTokenId;
_ownedTokensIndex[lastTokenId] = tokenIndex;
}
delete _ownedTokensIndex[tokenId];
delete _ownedTokens[from][lastTokenIndex];
}
function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
uint256 lastTokenIndex = _allTokens.length - 1;
uint256 tokenIndex = _allTokensIndex[tokenId];
uint256 lastTokenId = _allTokens[lastTokenIndex];
_allTokens[tokenIndex] = lastTokenId;
_allTokensIndex[lastTokenId] = tokenIndex;
delete _allTokensIndex[tokenId];
_allTokens.pop();
}
}
pragma solidity ^0.8.0;
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_setOwner(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
pragma solidity >=0.7.0 <0.9.0;
contract OrcsOfOrakion is ERC721Enumerable, Ownable {
using Strings for uint256;
string public baseURI;
string public baseExtension = ".json";
string public notRevealedUri;
uint256 public cost = .036 ether;
uint256 public maxSupply = 10101;
uint256 public maxMintAmount = 20;
uint256 public nftPerAddressLimit = 12;
bool public paused = true;
bool public revealed = false;
bool public onlyWhitelisted = true;
mapping(address => bool) public whitelistedAddresses;
mapping(address => uint256) public addressPresaleMinted;
constructor(
string memory _name,
string memory _symbol,
string memory _initBaseURI,
string memory _initNotRevealedUri
) ERC721(_name, _symbol) {
setBaseURI(_initBaseURI);
setNotRevealedURI(_initNotRevealedUri);
whitelistedAddresses[0x4758ebEd66Bba81058efD08d1ea5a471fE31e1B7] = true;
whitelistedAddresses[0xbE264cC36eb3cfAd71fa269f6b4960586393135F] = true;
whitelistedAddresses[0x2fDB18E9FFDFCa350B0Aeb7CC799E1321664EDf7] = true;
whitelistedAddresses[0xb50e6eD73323262E1750Ede06213C44CC09063D4] = true;
whitelistedAddresses[0xDFe459eEF79721E5551c7778B54f459E2A113d31] = true;
whitelistedAddresses[0x4A79D7D3E5C0C554323D4134425ebFEA473536EB] = true;
whitelistedAddresses[0x974b20E3c2682a3dd37A01645aC5165bbcA623F2] = true;
whitelistedAddresses[0x775A3B8AF62A53c5241c2375480521d444aE1309] = true;
whitelistedAddresses[0x29e01eC68521FA1c3bd685aA4aDa59FAe1e7C048] = true;
whitelistedAddresses[0x0Be12a0fE70F24f054a5565956D71047eb976dB0] = true;
whitelistedAddresses[0x602b6f59F56a1008D76cB556a974ffe84266B5C6] = true;
whitelistedAddresses[0xF29438cB61ac85564329F0e470e90a7247945a0D] = true;
whitelistedAddresses[0x42175856652185ddDBD5477fBb1f7f4FC446847D] = true;
whitelistedAddresses[0xC76B852AFaD99eEf4338561246f8a2C327AFab0d] = true;
whitelistedAddresses[0x4b41AA10bf309aa7b5eB30e18263fd9963434F2d] = true;
whitelistedAddresses[0x1Edaa6011c0187B0Af5516ec35BC0a22e2994C31] = true;
whitelistedAddresses[0xcf5931a325d0FF94ecfF3f946c283F05634aD106] = true;
whitelistedAddresses[0x608350082bA3766aFeFE84771fD0bE95210D220A] = true;
whitelistedAddresses[0x3BF2fE6BFB2c713fd82ca4b93f1Fbb507A389671] = true;
whitelistedAddresses[0xf85Df24BEBBf98758164cd24831704cF1707c656] = true;
whitelistedAddresses[0xd6BB082d1167aCFC4bd856f75cACd9aEd634C724] = true;
whitelistedAddresses[0x1d008783A469Cf5D017f467fe139695040d9B465] = true;
whitelistedAddresses[0x0565c501640ccF3E1cc37AA3E4241bDea98010c4] = true;
whitelistedAddresses[0x2Af8fEc81FF8822170E3263E9D07F88D2F5f05c8] = true;
whitelistedAddresses[0x8f0f3FFDfa8D418Ccd8F2c7659efb25980Fb736d] = true;
whitelistedAddresses[0x200eBF3C9cAa6c762cbD0f1f420830e793C8FA88] = true;
whitelistedAddresses[0x7DC78F088d1ddd30d75aD6205893Ea2Ff5B0a8E4] = true;
whitelistedAddresses[0x98005bF51B93Ee31309c7Dc68783EfbB47B63D1c] = true;
whitelistedAddresses[0x7140ff1BC29d56e2ef0a32C078f4f0acbF7aB0Bd] = true;
whitelistedAddresses[0x88b4C088830a6cfed3bE2d5A6aaAcf0482ACf561] = true;
whitelistedAddresses[0x0063146925Da753F393bBce6522e87dc524e9Bd2] = true;
whitelistedAddresses[0xf95699b2c0bBe33195fe1aBcD97171d64F817c35] = true;
whitelistedAddresses[0x3aebF17C58C425a4Cb3789cdaf22eBb0CcC9073E] = true;
whitelistedAddresses[0x89bAF7A6516BE419bAc84ae10e7857BC33B25f8a] = true;
whitelistedAddresses[0x23D5EEC14AFc9d642c41109b0C7e0eC782990411] = true;
whitelistedAddresses[0x672CBFF03eF5A6D0B4AD736EA181CB6c0b467c88] = true;
whitelistedAddresses[0x791C67718E70eEeDA196B1C5219f9892551fbC9A] = true;
whitelistedAddresses[0x26057502EbBE02dDD5D0F0878b1490B3ee00D9eb] = true;
whitelistedAddresses[0xe1E97e9554e3C1269b82c702F69D98da8e49f0a9] = true;
whitelistedAddresses[0x945A4cbae4eF06C0114F53457404A49a6765d9a6] = true;
whitelistedAddresses[0x7e15893ed2ccFcB8a34C0b6557e7107322C32e59] = true;
whitelistedAddresses[0x40d6F4B4d5Ef496682c7C3fCC0dBfa113E5B0336] = true;
whitelistedAddresses[0x9fF09099a9126d131aDcc594857405380c6FA3b3] = true;
whitelistedAddresses[0x8616cA1705A3a3B70cF53638012d44857A40CD78] = true;
whitelistedAddresses[0x1EB4E259EAc3d97ceD2d88923eB3CCa5139019F7] = true;
whitelistedAddresses[0xBfB4848894e6C30d9121B6460e13287d96881391] = true;
whitelistedAddresses[0x3302545161633a3B55D11496fB38f0aa7b10ab3d] = true;
whitelistedAddresses[0x9bE87B0edeac66d8b8d262Ee970F6F241bA5c2C0] = true;
whitelistedAddresses[0x09f7365d1ecE51Ae2821D8647Fea73477AA9E705] = true;
whitelistedAddresses[0x6fFfb61Eac20041F442A56D10A5CdB24deeabA0e] = true;
whitelistedAddresses[0x1b46D512E2D22cD4c5186d34525EE2bfAE70ecbE] = true;
whitelistedAddresses[0xB69Ce5c5a14DafbF476F16f2918ac3c860242fbe] = true;
whitelistedAddresses[0x5609A3944FE052fecbf0a362E305C8c72531B5d4] = true;
whitelistedAddresses[0x1Ff5a5c5eAFBF880b092ED07aDa724169b81148F] = true;
whitelistedAddresses[0xA345710c3C720f20d571Bf6F03eCbA434E9FC92B] = true;
whitelistedAddresses[0x883405eBD164aBE509CFE0e2E14D3D7C80d3BeF6] = true;
whitelistedAddresses[0x895D4CEE80523f8e52777d5fb87B2297495d41e3] = true;
whitelistedAddresses[0x69Ae4a613A0aBf6fBb2bF2AafF91AE2c113B49d3] = true;
whitelistedAddresses[0x1E87fee9DE0C6453c0a405eb87BaD0d3c5Ecec0f] = true;
whitelistedAddresses[0x25A18C68aF97eE250980Db306B68E9D3Bc0A184d] = true;
whitelistedAddresses[0x11E17Cdc4C298f3B2b5530b6beCf95c02954aE51] = true;
whitelistedAddresses[0x5b7Cb6CE6Dc5ab6b3bA89483De86e8E403f22e7e] = true;
whitelistedAddresses[0x5012805693dDd6a5B13F7B103a0F17781cfF6Fe4] = true;
whitelistedAddresses[0x7aAF6A9d9d48b52530acad957deA3Fe05abA6313] = true;
whitelistedAddresses[0x56b229Ca304507A17abB26A80d7a723d8D8513e0] = true;
whitelistedAddresses[0x3fB840c9F362407Eeb62b221f712D78fECCfC80B] = true;
whitelistedAddresses[0x570A4aDF9Ce7Ad402b2BA7615909Bbd45532A8De] = true;
whitelistedAddresses[0x2B6F5ee4d2275DcC1CF08EC01baa5B4D5b967d0E] = true;
whitelistedAddresses[0x9a951FF7D6b1d00216B4242696C57A3232BdA1E6] = true;
whitelistedAddresses[0x6405af00280152866500E4ED91ee462E7f7588bC] = true;
whitelistedAddresses[0xE85DBB09A699c0543C363c3f6E51ef0049e3edC5] = true;
whitelistedAddresses[0x3B16B077aA86baE7eD45c41906Adc4fFAcccFf0E] = true;
whitelistedAddresses[0x643B34C9d7C851bf69Bb766615F860A70f4C9C86] = true;
whitelistedAddresses[0x77fb9C7D16BE80744E29E8F7De6Fe82ae6c9d11D] = true;
whitelistedAddresses[0xb84d84019Af5EeBf81b378E98567068dCB9B622b] = true;
whitelistedAddresses[0x4Cd919427f745B40096EaBdF38110b42695c41cb] = true;
whitelistedAddresses[0x62a8cA10762DFa01475B7c5C232362DF28861C08] = true;
whitelistedAddresses[0xc7322ee2d0E4EBD824adbee58F38FB51352ca8C9] = true;
whitelistedAddresses[0x6Db9C794d95e63FB9Bf4D12151A7e5315BDC4871] = true;
whitelistedAddresses[0xC72F857434F0a0ca9bf08FC2750A2B874e201550] = true;
whitelistedAddresses[0xA959735A1aF98eB7596FaBFe6E135E9f0ABd7E4d] = true;
whitelistedAddresses[0xEC1acA289F794473277aeb09a073f7e610aFB1Ff] = true;
whitelistedAddresses[0x2B167CA199E6EBDeF5008CbAd7a21A9Ccb15c46d] = true;
whitelistedAddresses[0x4769Aab421dE170f1f5781B9b0d3c1415645293E] = true;
whitelistedAddresses[0xd4e0269F31c5E0ecc3fF9fd47cfF282f51101767] = true;
whitelistedAddresses[0xA2cA851525d76e7D1Ab2154292a614E0f59CA67D] = true;
whitelistedAddresses[0x47D0DD1c5A0125F6e52fBAc3e202bfec60eCBDc2] = true;
whitelistedAddresses[0x88AaA2027Abb20a9180ae051Fd0662226C148E57] = true;
whitelistedAddresses[0x5b26888b2fD5C617e95Df5bB7b22644Bf2Aa5930] = true;
whitelistedAddresses[0xb604F3b93882dFaEDc878154cea9892f78e0Ea45] = true;
whitelistedAddresses[0x7438319E0784612dE7804e303baA52Cb3c8dB5F5] = true;
whitelistedAddresses[0x3A87081794fE7506ae0F7cc30a64ad5FE82dC47e] = true;
whitelistedAddresses[0xA95c8435846F82F4D35d57f9973A4e0D96E69a22] = true;
whitelistedAddresses[0x0D3Ef24cCd12827CcE51bcA43Cf9EfB78380429c] = true;
whitelistedAddresses[0xE51341E05699Ed92C4d0402F4E955862423d3aa8] = true;
whitelistedAddresses[0x3d57e3C0fe386F57766995F84BB4eefFAee72bA6] = true;
whitelistedAddresses[0xbdfb224D5e089d85366D535eEFEE5810F23e08BE] = true;
whitelistedAddresses[0x3f0749EE9a009EDE06A95d1e19986B9bB8D3b0A8] = true;
whitelistedAddresses[0xb0086CEd87CeD727E01c3b15E54D7Ef04301aC31] = true;
whitelistedAddresses[0x58C48A54a36D346cB71D63ACa5599166bAd21851] = true;
whitelistedAddresses[0x0E36299e2b2CA72a777567dDaB019bc0Ebd92965] = true;
whitelistedAddresses[0x8F6a7A97f3b6CEE0E374b38292Eb87723679C882] = true;
whitelistedAddresses[0x68710ea91627232d3b7D4083c7aeec912cCDc2A6] = true;
whitelistedAddresses[0x8A029549B53b04B1003f25e6E3c830E5Ed477509] = true;
whitelistedAddresses[0x96F91e3eB4840140eeDC51126A4DF1b51B6bc746] = true;
whitelistedAddresses[0xB3D264380FFcf9E764A16Ee9Addd08bdCF46093f] = true;
whitelistedAddresses[0x41cf769131D4F75C662c53D592c91d56fFD45a76] = true;
whitelistedAddresses[0x12ADc0CFB830f71D52ee600d952976054557E5C2] = true;
whitelistedAddresses[0xeD947a0F9170DE48e347F657762199F7E2992110] = true;
whitelistedAddresses[0x3f109fca5C317Ec9Ce06a6E5D8e9C7792737bC7b] = true;
whitelistedAddresses[0x3B1fc9653f03789BC399fC343d8D5B8fC1520EA0] = true;
whitelistedAddresses[0xB98C60Fe6736454999af07D642c21Cc0Dc443f25] = true;
whitelistedAddresses[0x6d6Fb3FAf9432AcE1900A3B9F66ba40Ca5cd7C0e] = true;
whitelistedAddresses[0x14378456B32f2Dc8f41D44b3613b4D6fF9eA2b83] = true;
whitelistedAddresses[0x12AcD4607393F5cf772bfF4138107325d7c4Ca09] = true;
whitelistedAddresses[0xF4151e12614478c94Db8Df53F1E1Ad12c778c4cD] = true;
whitelistedAddresses[0x662195b64795a74f0e4b32A64f0B220010dd5562] = true;
whitelistedAddresses[0x959786a8128F5FAB24b86871266a36bb0DecD495] = true;
whitelistedAddresses[0x6BA167a348DA1d17C34DDa4f94CaD7C6155C5702] = true;
whitelistedAddresses[0xc5c0E639EE5d59F40f14BC4110bb0BE99C06988e] = true;
whitelistedAddresses[0xcF991E3f8414A8949967D51550683852D47F88F2] = true;
whitelistedAddresses[0x63294F76dD7E0Dd78fb3c430281B2DAE494EC926] = true;
whitelistedAddresses[0x445a368791A20735860d42a88987F29BF9d22E01] = true;
whitelistedAddresses[0x4DB6cDd13653736044C2ce25751FC5656ca4763F] = true;
whitelistedAddresses[0xe576b9C06Ff11869127e7CD97CcDE7141ee004BF] = true;
whitelistedAddresses[0x9d45Aa7D07d9945bD011E59Ad3Fc9aCD380a4258] = true;
whitelistedAddresses[0x0715C3329e38790C853F6fFD824f2771a02D37bf] = true;
whitelistedAddresses[0x8d160063E641252F4B424A9Af89E88B24e04e444] = true;
whitelistedAddresses[0xd6957Ce22991b02e352EE11E94FBc7800d5918e0] = true;
whitelistedAddresses[0x4cec1074e2A72E6943a13CE16dA7589388bf94C7] = true;
whitelistedAddresses[0x2A4E9CeE0b1c25f026A0E77Ca5931ce7BAb20a23] = true;
whitelistedAddresses[0xCd6d1513C6ebB784661Faff7a4b3CD595C555cc6] = true;
whitelistedAddresses[0x3eb8F88422dFd2AeCd1969E24443281cdA239aCD] = true;
whitelistedAddresses[0xa43589Fc8f89f02AB33f3a96De1601624f7Ee06c] = true;
whitelistedAddresses[0x84096Bd010Fee8F97C307bBDAa57bDd98EFA93B5] = true;
whitelistedAddresses[0x3f8ADbe12456188433d0CF09E0472084c4F29671] = true;
whitelistedAddresses[0x4fDA56C38fE5f6752106D4bAD20D50D1331744c5] = true;
whitelistedAddresses[0x5c9E61218b86c3a698F5F2B9802eEAADe1a09fe2] = true;
whitelistedAddresses[0x46d3318E8E669a311A8535798213Cb6E3f321cDc] = true;
whitelistedAddresses[0xca04b727f8b776c1F62616448aa2A0bE25C82ab9] = true;
whitelistedAddresses[0xb94872bc787343e194c069FFeB7621cBea41FF73] = true;
whitelistedAddresses[0xF35341818A13B783664053B1B0f834e658Dcba87] = true;
whitelistedAddresses[0x1cD09116Fc412247f09f4E3CA562D24d1866BBe2] = true;
whitelistedAddresses[0x66e31A557cAac68d3c218ffD0ebE6146D57F66DE] = true;
whitelistedAddresses[0x9eb5b3414B197F7ee1fA7C036931741f081897D4] = true;
whitelistedAddresses[0x02Cd407BD1216C4b227e20dDaB1837f5A74233E4] = true;
whitelistedAddresses[0xDd6969dC2ed9256cE3c399315a685cE4D4E5F720] = true;
whitelistedAddresses[0x52D3e1E323C1c99E049Ab2639B5D0F4d4fe612B7] = true;
whitelistedAddresses[0xcc747443a483a0559F666F5d3D4B6F7b6d2280E9] = true;
whitelistedAddresses[0xDb4eaEC2bE282909E46aCEbD57ff89D8dFecC13d] = true;
whitelistedAddresses[0x5A884D400df60D92391185D39BF169700A049539] = true;
whitelistedAddresses[0xAa74BE7b5Df3891fA88e383Db17A0D39965ABAf9] = true;
whitelistedAddresses[0x31e4a3EF430A729A133483AC783963CE41ceDa3E] = true;
whitelistedAddresses[0x7b207d27FF26069E48EA631518a2E784a1460cB0] = true;
whitelistedAddresses[0xf329D15E72a6AbeD9F9290F1065312819f43727a] = true;
whitelistedAddresses[0xC9d60143128cbAc15037cF555dEdd23CCA7e4393] = true;
whitelistedAddresses[0x29d6aB0E6316F90766c0A158eb204A2Bf60AC23d] = true;
whitelistedAddresses[0xCB0835D01fd2c20f68fA3B918d86343fE4EC1A25] = true;
whitelistedAddresses[0xabb893748F86B289E67D01231fda5015BE02Ab83] = true;
whitelistedAddresses[0x9c4b443632B7d511379fe3AcA3DDcfA8F197b302] = true;
whitelistedAddresses[0x37C86E28548ddA9267Ead1CA363D6441c0bbCd6e] = true;
whitelistedAddresses[0x5D3b8520dac5b0CCA62Df147528f04Dc39BA23aa] = true;
whitelistedAddresses[0x0a06C890438F84e9848AF76102341C7A7E2133AD] = true;
whitelistedAddresses[0xbAC1b29acB014AFab23Dca3B7Be6Fbe90256AB53] = true;
whitelistedAddresses[0x637ef5aA5CaeF174a2b45EcDC560a1AfB16668bd] = true;
whitelistedAddresses[0x2C434867d28Da51549Dff76fB127cE22B9aA46c6] = true;
whitelistedAddresses[0x15af8DF7541d8d1264dd14aC6baddB04b98A89aa] = true;
whitelistedAddresses[0x4E0A88B2bEC15a8c1cD87d79DF5D145323c5EcB7] = true;
whitelistedAddresses[0x2749Af4bef7c7042D37DEeFA7978Dc325f461eb0] = true;
whitelistedAddresses[0x0E1606f50626D92aBBc39E6fbEEbbC3DC76E7b3b] = true;
whitelistedAddresses[0xB4C574334615cC5155639038b67208063cc278b8] = true;
whitelistedAddresses[0x60b1659C8b848bdBCb85F4E4792F69C90AAa3648] = true;
whitelistedAddresses[0x06e669e9E19D4FAE54171326A11105F4FD12BeDe] = true;
whitelistedAddresses[0xEDa4c9B9E79011852A1D7c2105122b0c637B5b05] = true;
whitelistedAddresses[0x9CEc27472De184D84d9872377241Cbe4009F3709] = true;
whitelistedAddresses[0x2398c7Cb91A3E929B222C045e0A5A5Cd80826b93] = true;
whitelistedAddresses[0x0E1b6F1b4697C885cCCC9C31d076947522F7CAed] = true;
whitelistedAddresses[0xDb5e9f11d0161780cd1C2be5A1C949eaA7557352] = true;
whitelistedAddresses[0x505438B4211D596D7B2A1f0ED47579cE474e5605] = true;
whitelistedAddresses[0xff4c0AD1A5c616eB96b96DABF5F39C56948BF83F] = true;
whitelistedAddresses[0x3aE6690d3b1b27A3D1aa0d399EF78edF13bFd610] = true;
whitelistedAddresses[0xd5323d893D721954B2d7bE195279cB2e08f48342] = true;
whitelistedAddresses[0x58491C8138e41101bFEC260466EBD3DF053868e0] = true;
whitelistedAddresses[0x82Bf6D61b2cB35f9bb08Ec99d02f80D6833271Da] = true;
whitelistedAddresses[0xD9587b5851cfD9917D358721Bf56C31DD285CeE1] = true;
whitelistedAddresses[0xF3c84E5cc17E59a78F2fdd5500BABD61023aC830] = true;
whitelistedAddresses[0x7636A5878FD870421D3e546a4b3076BaD870Ec8E] = true;
whitelistedAddresses[0x1Dc1615b4f3a7ad3e5E340e8002bA34Ad0B773Ad] = true;
whitelistedAddresses[0xce25Fc8a802eF77AD244429387CD8eb0cA2557A9] = true;
whitelistedAddresses[0x48302b76c0Ff2fd1cD1b698Be2a8cA5be4De0daF] = true;
whitelistedAddresses[0xbd891dF7b6a7C2eBF4da7f3EE10e6B4642AbA2c9] = true;
whitelistedAddresses[0xB20B5e7Dd0525dC442649C7Dee450Feda2E43C9d] = true;
whitelistedAddresses[0xD6d57d174BE03101c29C1EB3a335559014896BC7] = true;
whitelistedAddresses[0x9352421E3163a85Fe32CE6aaA116F3C64b3e6aD9] = true;
whitelistedAddresses[0x380fEEA870DB5EDd638A8fe78A271FA6E707826f] = true;
whitelistedAddresses[0xBBf17d93A2307dF43F7cC1098EFcf0985e995C65] = true;
whitelistedAddresses[0x0C4938ec23887D1384dA8c0E611042905a366f0E] = true;
whitelistedAddresses[0xc8b506B8150Ea6Ee0cbd7dC71034B12d902141d7] = true;
whitelistedAddresses[0x19E34146D1719bb7ceC1cA0896ED5fA88DCEc5C7] = true;
whitelistedAddresses[0xAe04e4AeFe095D6591c0d5774A226Bc7098D5fA7] = true;
whitelistedAddresses[0xeE97cbF18Fc41C068eb8AFE67025353346c5fA02] = true;
whitelistedAddresses[0x4986ac8522E8831e71439C529E514022596c301B] = true;
whitelistedAddresses[0xc40b73C6356c98de9a32680a6466d0dAbba04C37] = true;
whitelistedAddresses[0x94705A9d675daa924F9190Eca4c05ED6B12d5345] = true;
whitelistedAddresses[0x92451CCf65d681ECB2294114795873e63a4a6883] = true;
whitelistedAddresses[0x74A8bbe4329024ce3D4920474Fb58ca72bfAF42D] = true;
whitelistedAddresses[0x95c59B9ac2c6F2eD1BFC218CB38f87Ff9d3Bf047] = true;
whitelistedAddresses[0x338bEF2AF24EcC89261c81d3fD23F012f0ABcC4E] = true;
whitelistedAddresses[0x1ba7852b19994145bceC6b4F94A0BBc95BcFa94a] = true;
whitelistedAddresses[0x80b759F0A9391e64351e6b94E32c384A40D96b7D] = true;
whitelistedAddresses[0x664E2D99df6747ef42E8a767c0BF8B8CEfd6F373] = true;
whitelistedAddresses[0xb8ff1c4Bf352e5D2986a7c7d1196759602A4abFd] = true;
whitelistedAddresses[0xb3244abE943ff149fc98096c8fe024cf7146A4ad] = true;
whitelistedAddresses[0xBC82a96210555A04bdaDb29cd442F18687F1Fb9A] = true;
whitelistedAddresses[0x3aa003558fA236B3beB9B935B85e04D150ABa9bc] = true;
whitelistedAddresses[0x8c1D80bD49374d7d3f6cE123df2d8A13121486eb] = true;
whitelistedAddresses[0xD3CE769b8EDda71B86CADb0d4BdBd252897F1753] = true;
whitelistedAddresses[0xa4A0eE63Ac185Df4E2CAB3583F21a48C6d80b919] = true;
whitelistedAddresses[0x13119eA6B582302Eeb3fe78931CD3aE9b7A7532F] = true;
whitelistedAddresses[0x81f927795b64Eb3867Cb55D4eb47a06ffceB5daA] = true;
whitelistedAddresses[0xdb8c009F29F8A376e7aE2Fc75D55e8C12F109aB4] = true;
whitelistedAddresses[0x98d80eD82a3e68157139E2d9Ea6b137e9a358f7D] = true;
whitelistedAddresses[0xE934837666854c8B81FB85F93c2ba110602b77Ea] = true;
whitelistedAddresses[0x929B8AEC1084FaC2b6cA1239c82E5Fe78Dc79d2B] = true;
whitelistedAddresses[0x1fCca6CcB88AFBc361f0e2a7BFd0AF7d737548c3] = true;
whitelistedAddresses[0x2D3178af3Dfbb679716cc14E245Be0A9E5945500] = true;
whitelistedAddresses[0xecbd13e77b74F9Fb052C8dc30Cc0E989BF3dD0A6] = true;
whitelistedAddresses[0x940E6267bbaC505d6b902472e8D2f367b4Ac0997] = true;
whitelistedAddresses[0x7Ac9385A9E821BDF5eEfDf0393F06aa844C5a061] = true;
whitelistedAddresses[0x23330e0A0fd8c954DD377bC7435C8BB409031D23] = true;
whitelistedAddresses[0x861a085492476E06077B18DD62176fbCDa663425] = true;
whitelistedAddresses[0xc26e0041a142D8A77aba79D73b76fbFD8e627dA0] = true;
whitelistedAddresses[0xf26C285B4AdAb350e7E46144CdEF01D4Ad2E46Ae] = true;
whitelistedAddresses[0x699dD336AC982AF000d2171275f1DD0Ec5668C2B] = true;
whitelistedAddresses[0xFb74ad209eB3B114C05e02c45a761aF03334E184] = true;
whitelistedAddresses[0x727AaB0c8f805395444D069408492AC7b8065525] = true;
whitelistedAddresses[0x2AA2DeA1cD1dEB2a67C055C5daE974EFD347d5cB] = true;
whitelistedAddresses[0xABfe6Aa0284c548f891c5942DB2743D2dfE4D9E1] = true;
whitelistedAddresses[0xcf800e8080C3B7F508ec90CF16e3529849CeAB8F] = true;
whitelistedAddresses[0x80f30d26fe2c61B56ACF51f0C12eF74d09d41F26] = true;
whitelistedAddresses[0x639638a0879e5b4151aff8a643A58B2931c2336A] = true;
whitelistedAddresses[0x18EB2e1f8eFcFcb092B700aeA3324f00FdBa08Ee] = true;
whitelistedAddresses[0xB49E25DfF20B4393379F7D54f0106E0bb7c7b28D] = true;
whitelistedAddresses[0x33bF863e0DC4001ac96c80f4aE8B449B8aD48F88] = true;
whitelistedAddresses[0x126B9489FB9c9BA88DcBEa78AB476b8F910F6D6e] = true;
whitelistedAddresses[0xdbc898A01c6B6b9E5F73aa321BE32FC5F136C69e] = true;
whitelistedAddresses[0x70Ddc7ba0c36CB41EAe05EA86221C9b5f5709db3] = true;
whitelistedAddresses[0xA78153D70acFdD2cbf32Ffea9D84074D9d6a5DE9] = true;
whitelistedAddresses[0x742B5F5FD0c3D32cA23D0bcE4095Ca652723A549] = true;
whitelistedAddresses[0x55a05dedcF2344758F6022D9648494DF8F61C9f1] = true;
whitelistedAddresses[0xF3bb575269D16DC7a11De9A6A34175bFB90acC3e] = true;
whitelistedAddresses[0x70cDC5CED681EA2D965D72C71d668dBe6235B24c] = true;
whitelistedAddresses[0xFECc5C778B6634A9A173D8dB932181666dD95ec6] = true;
whitelistedAddresses[0x3828330e1a4DD3b97E976e249C7Bc8979eDA6B32] = true;
whitelistedAddresses[0x7b01D04faE0aB2479344Be8dAaEdd0Ae1b04486F] = true;
whitelistedAddresses[0xF9663df170979Ac64F5806b101C894a1A8F683BD] = true;
whitelistedAddresses[0xb57c0b622A5a5FCdeb22E49953210fd4c1DE2194] = true;
whitelistedAddresses[0x9De4E4cc181d9d1966ab58E07378EF225425ccF0] = true;
whitelistedAddresses[0xc36E7E0f9A102308C52a53004c171B42AC6A7160] = true;
whitelistedAddresses[0x75EC2e2976decAe6303b7C6AE6C453C3A98b4D72] = true;
whitelistedAddresses[0x07F9046B8f8F3b93ba688F97D1a85bfd4b08d9A7] = true;
whitelistedAddresses[0x016D4412299A7B77b61078E73BAC9d6de4821000] = true;
whitelistedAddresses[0x53B581f0F916e09ba07B6204e8720a1d9323521A] = true;
whitelistedAddresses[0x9D2a6Dc7aff9950CF725241441584540B2ac1ca5] = true;
whitelistedAddresses[0xCA7080A463706725E1632145cfcc7dB53eD25f96] = true;
whitelistedAddresses[0x5fbfe8dAB81A39A04B9590dFcEac9a93e7aa3302] = true;
whitelistedAddresses[0x6dF01b9e66d3267F1f8949A9e35f89043FE9822c] = true;
whitelistedAddresses[0xE876B553741a879967f8c502b757E919Db1a8b5e] = true;
whitelistedAddresses[0xe05006Dc1369ef6BBcFd696A38a573C8C28A8E7C] = true;
whitelistedAddresses[0xd9718542D7832B322e92Fa03F408D02a4d47C2c5] = true;
whitelistedAddresses[0xC6b62b1688C2B3B1a12E3d222DdaD43BE379c1B6] = true;
whitelistedAddresses[0x0e93545Edad0Ba8884bCEe70618c3D8D4D73d5B4] = true;
whitelistedAddresses[0x4Db180f14A91d3e01776DB3cA2993676543C2A06] = true;
whitelistedAddresses[0x4f4FCA10d1863FF5fea61b8dD3E7a7F8a6bC77EE] = true;
whitelistedAddresses[0x2f8e0f91Df5A26783633910bA9Ed4B3b7b7883E3] = true;
whitelistedAddresses[0x9713222695378e27511779Ba00b7cBF178120371] = true;
whitelistedAddresses[0x0475fFc635B0F1cd52c7DAEa24e7aF02A575551B] = true;
whitelistedAddresses[0xA8f6Af28BFab672859AcF31EcA54C81a9CbBeB66] = true;
whitelistedAddresses[0x466C40b45Fd199282EF116406DE3Ba7e548426e5] = true;
whitelistedAddresses[0x2657344889F180A85a845fA2b04ECD5637508038] = true;
whitelistedAddresses[0x17A985095BD612A9B6278f8dd8A6D91Ec79dD81e] = true;
whitelistedAddresses[0x17136144999C10439D90A2aC22386595BfEf0527] = true;
whitelistedAddresses[0xE7CCfF5De5D5bbc638394D917EBFA6a60Cf38C08] = true;
whitelistedAddresses[0x01DaC505E000d4B87e427271Eac85B4a46B5141D] = true;
whitelistedAddresses[0xb63ea4865cDfedF3A7bCa5Df5BD49F04D59ea348] = true;
whitelistedAddresses[0xc3A8b0eE40098E32C1d749EBcDc6C144ada911CD] = true;
whitelistedAddresses[0xc58374eA34717411FcE751B29498ea234FabE17a] = true;
whitelistedAddresses[0x1c7bc5daaF0A913d922839196c08CF1d7b74fb12] = true;
whitelistedAddresses[0x04f23CD6624A3a1E205A59DAAe3F7b589bBb56CE] = true;
whitelistedAddresses[0xBEA8e78462246F7Ea4B531B4cB2425B329846208] = true;
whitelistedAddresses[0x291B104D72Be6a1eff9cAcA557E4745c4b10b064] = true;
whitelistedAddresses[0xD89863049aABCd4626590fdebD00aF11D8233173] = true;
whitelistedAddresses[0xE83370D402504Ba36F0866068F0c2afA5243A969] = true;
whitelistedAddresses[0x5475647b2393328eCd47B0256782365c7F42fb15] = true;
whitelistedAddresses[0x59a9bB69dd15f8E932Fbd1982389f62CfefB68f4] = true;
whitelistedAddresses[0x4F3c114735101EF8Edd81760A05bf269d2F04889] = true;
whitelistedAddresses[0x8B1dD48344de9922AC1f24B7563fC07EBaA00b20] = true;
whitelistedAddresses[0x0D492E61C9f4C90f144aa479892d0c25Aa934425] = true;
whitelistedAddresses[0x98A282dF175c7720E8439e6129F7A557746A3D03] = true;
whitelistedAddresses[0xEBaB7d355f15a21fa37F4a0E0B303f07e1a320De] = true;
whitelistedAddresses[0x45C14654CF2eAC6a7904e80Bd3F4B58ad24E0235] = true;
whitelistedAddresses[0x42C70946962DEd7fb4489D8dd543d1857eDD3291] = true;
whitelistedAddresses[0x60a26961E4cCb7DE430C8357695Dc6022417165b] = true;
whitelistedAddresses[0xe9B7092940B4631c87e406EB2d292EF9a039e4Ea] = true;
whitelistedAddresses[0x3863B7d72aE4E36B170FfFf900E5A61637011953] = true;
whitelistedAddresses[0xa78b19c5683363dE380d56CE0A164360B59E711A] = true;
whitelistedAddresses[0x9D2158f50307A971345F9bC38441FA60688BAA1E] = true;
whitelistedAddresses[0xE68c542363A74369Cc41d1490C870c41c3Da6E2A] = true;
whitelistedAddresses[0x96a603254e66AcffF3b641c461270e2b37DA67Ee] = true;
whitelistedAddresses[0x9Edb768e329d4F6F60eADAA16bb8549d52120819] = true;
whitelistedAddresses[0x4f186d24C29a02e633092e655d27ced9439f4967] = true;
whitelistedAddresses[0x1BDE23313c081512e10dfac770f23f6C99685122] = true;
whitelistedAddresses[0xea9FeBaEcDDAE02967f70F5cF79688786c851463] = true;
whitelistedAddresses[0x25A411f95aD3b558a783f6730e7C7d8E297b0fEE] = true;
whitelistedAddresses[0x404CC659ec36E3e84B6578FBf874Dcba7bc2bF3d] = true;
whitelistedAddresses[0x08254C88e28363BB1135f884f5B616dAEc79d7EE] = true;
whitelistedAddresses[0x0b13f13c0E99F24b96A835B787D1347B33d87776] = true;
whitelistedAddresses[0xAA1E92dDd28C835fe66689771d35f38947950FD4] = true;
whitelistedAddresses[0xC3D067D6C8A5803882DFAC2dce6E2CAd0225E6e1] = true;
whitelistedAddresses[0x0A7Dd6591271b5dd1E73Ccf5aF6895B6A370D297] = true;
whitelistedAddresses[0x07B0b1121aF252B5e2AC3e0899350656b9900eDF] = true;
whitelistedAddresses[0x6A660c35A38D7c23d28F8f37e2eA8Db0D9133518] = true;
whitelistedAddresses[0xD82f3ea3c688D6ba92A9F22e5DD2E78230940cc3] = true;
whitelistedAddresses[0x5B1700e3F1C6433Ce6317A82BB40F22276E6e0d1] = true;
whitelistedAddresses[0x860164830c7d3Ce6758FceB7Be95701175cb2e6A] = true;
whitelistedAddresses[0x45328d856Fa2E3694De5896157214E6a418fA217] = true;
whitelistedAddresses[0xF72781976cb2fA2c81E43D23392Daa313FaB6B21] = true;
whitelistedAddresses[0x153AA1106140DB47120065819644E753Ca7F8854] = true;
whitelistedAddresses[0x23928DE1688a7B9Fb6fF143f881fB03A70c187FE] = true;
whitelistedAddresses[0xDaE6B3Ea322EA51D18A766F269CC86a13592c082] = true;
whitelistedAddresses[0x86A09A23688c19258416876B7157fE11F354c3f1] = true;
whitelistedAddresses[0x850db8b32D5dD815F1E3eaec65D9898D56C1C185] = true;
whitelistedAddresses[0xA476fa671F7e5ce0d7C5bEFd7Cac8042608e15DF] = true;
whitelistedAddresses[0xFb7F0808000C30d28aBA61Cdb8b4eE03c11653a7] = true;
whitelistedAddresses[0x9Ad2Bce03c45E1463a4f76864436A3048086546e] = true;
whitelistedAddresses[0x3f2c0f1c8Df862289c0bE08a8D1003449a968492] = true;
whitelistedAddresses[0x8924e4185aD0317f0C9A8d3F92E9076AD220D4e1] = true;
whitelistedAddresses[0x97b28492da285dAFF9153fE89F354E7547e4206E] = true;
whitelistedAddresses[0xB9E60A72a70B94bC74d4de1a89d5001Be6579cb9] = true;
whitelistedAddresses[0xB4600da0048D2C5002f8785A4Bf3fa8C5B41F412] = true;
whitelistedAddresses[0xDD36ecb4840432EACAC61301Bc234f917Aba84A0] = true;
whitelistedAddresses[0x292B1116753C7aFf68111D35227621e591441A6e] = true;
whitelistedAddresses[0x8F867e50b06f0Cc88B7b34C35f85BA9e567A280d] = true;
whitelistedAddresses[0xeE78f64E1613DB75A4625C4A18095BC269c9379B] = true;
whitelistedAddresses[0x0764dc400C280FF2B6D1F0582969C0c668271340] = true;
whitelistedAddresses[0x79b505e246b66B1B800C20B6fb47b835053C971F] = true;
whitelistedAddresses[0xDF0DD57Acc0509C70665C6Be25263179E9aeEdfa] = true;
whitelistedAddresses[0xa43de1705b141fb211D52cF41B5edB76eE2502c3] = true;
whitelistedAddresses[0x9F0F6B0Eefe8Fd3594688d55BACd2a876F25eF36] = true;
whitelistedAddresses[0x1A4394ad3d5B6A40D0528d586f2eDb282a847399] = true;
whitelistedAddresses[0xbbE094AC19A523176Ea73924Ca18C7906e23d954] = true;
whitelistedAddresses[0x56c945311362B2Ad79BF7764c1b7111538BB58F9] = true;
whitelistedAddresses[0xcb9C3b903Eec023E39Ef6c719C9C6D0C4F65A154] = true;
whitelistedAddresses[0xA33453aF2EAe9EDF9DA96A54fB0401C86E240D69] = true;
whitelistedAddresses[0x4985bB31cc6B9309F616Cf0250dA8172aD744363] = true;
whitelistedAddresses[0xE79e09ffa6ac702D15c8bb71B136df55997C4A69] = true;
whitelistedAddresses[0x282f9E0a7A135B6b2812ec5842A57e6C129bAbf5] = true;
whitelistedAddresses[0x5B956De9d2B82f50C8F4ee54DA478a7fE8E21A22] = true;
whitelistedAddresses[0x661A49476C0821Dc790972000ea941C3e851e7Af] = true;
whitelistedAddresses[0x584CF1A8825990c69b7c02A8e2669a551A1692F7] = true;
whitelistedAddresses[0x877adF7A6d29A4678Dc86cBa270A2C5257B6ECc9] = true;
whitelistedAddresses[0x1225a95CE4f6E9e27987A36FF5939aD9Fb2C967b] = true;
whitelistedAddresses[0x57aF013384d969E4A838FdCeCf6deEe1D56172DF] = true;
whitelistedAddresses[0x551Cfb7D44B0b84B9608B3480FE727f6aBA2dE02] = true;
whitelistedAddresses[0x31270810b7A0A76CC4664c76D9CBc48d85bd6505] = true;
whitelistedAddresses[0x82e129173f19Ae25f8D4AA2e6e710E60bA55ED96] = true;
whitelistedAddresses[0xDC61B2b6918ea88a977D2F8701b029b25496ba97] = true;
whitelistedAddresses[0x0a35EfF316b5F24b4b85a0252f1Bb09c416953F9] = true;
whitelistedAddresses[0xe4D441ffAFEB5A3f9FB804DE42d4c80579010B3a] = true;
whitelistedAddresses[0x5EC90Cca6069bc4C5ABf5D5AeD68111B2cDA47fA] = true;
whitelistedAddresses[0x6E69BB2c41f78186DD05d1e03c7EA458E88A2211] = true;
whitelistedAddresses[0xd26e712EAA4d47b89E740cD1A65322f3331C3EaF] = true;
whitelistedAddresses[0x58879266350Cc134D1073B5F4E1ADF42B4420c3E] = true;
whitelistedAddresses[0x5F42B1CEE8226A2AA674E937E9E69fEA26060D2F] = true;
whitelistedAddresses[0xf822C406f9c8F92C3C17F6c470B69faa82D3c26a] = true;
whitelistedAddresses[0x7d4aCBE69448fb96E517eFC9d203aeAAdBbC3057] = true;
whitelistedAddresses[0x577Be827A11Ec1E2f5dE2A6A05D92AC297bF56e8] = true;
whitelistedAddresses[0x031F30ea86262EC24091fCCC0CF628d381c23Dd0] = true;
whitelistedAddresses[0x716E9eda68773330809149934F3d1B0aAd766d72] = true;
whitelistedAddresses[0xd5b8b95fD69934dfDDCD3c3755931F755bb8E0b7] = true;
whitelistedAddresses[0xC75479EdEa49A0e4a12D7bFe467d7ADE156D252e] = true;
whitelistedAddresses[0xD79A5d91b4510cd26103591F83Ccb2268715F664] = true;
whitelistedAddresses[0x2fD932137355F5D04d7D84E13a9637739E1f2909] = true;
whitelistedAddresses[0xE484a9d4E2b4Ecd2375EE77872241801dfC2aB4e] = true;
whitelistedAddresses[0x7704B95D00e01016bE164a32ad37a20Ae8234b89] = true;
whitelistedAddresses[0x018f190e3e63900348b9F13e37a951888C4a5a22] = true;
whitelistedAddresses[0xA862A247b17797B74148219c66aa11f8B05ce9AA] = true;
whitelistedAddresses[0x057C550456375Ac5eBECE93310E0a4bB0F8c973b] = true;
whitelistedAddresses[0xB9E212C037D29A4afc0de955c01820Af62A18DF4] = true;
whitelistedAddresses[0xee183D9E1e2D133648829b37f5a0aB6436628C55] = true;
whitelistedAddresses[0xCb4E359afEdE075aA70578B34bbcCe39EdB47B3e] = true;
whitelistedAddresses[0xdDe8aD73BD6BcB7194445476228444B46De05a55] = true;
whitelistedAddresses[0x46D61d15C2c574163f2ec16382275A6835Dc640F] = true;
whitelistedAddresses[0xe1d59D7edcE98Aa7444b7383f8C27d4ab3e19eB5] = true;
whitelistedAddresses[0xE340015c155051A4362c8F8930030b9Fe0CB5950] = true;
whitelistedAddresses[0x01b70d6C0b99B5374542a709B852739c00190Be8] = true;
whitelistedAddresses[0xf9e4d2291c965Dbf3CE1E7d66c564CC96D0F9Cf5] = true;
whitelistedAddresses[0x61BFb853794c1E7d7CfaE6374230AE4763df7247] = true;
whitelistedAddresses[0xD0F061A500B0eBbfC60f563a53710013Ef0470F2] = true;
whitelistedAddresses[0xAd8802f42E855E49E09503bb8bd2c43478273Ab7] = true;
whitelistedAddresses[0xE5AE91c6267f22D1F5AA50aC953025a7A36ed36B] = true;
whitelistedAddresses[0xfF47e41188Ed3B6598BD30730EccaCeF47985e7D] = true;
whitelistedAddresses[0xcf89bdEF66A5C070691D2666855DBb5bd3aC6680] = true;
whitelistedAddresses[0x5221dc2c8a9bE3e2c417de0Ecc78326bD5E3c34a] = true;
whitelistedAddresses[0xF25b91D0773ee199810ea4A5899F8Ac795cFd849] = true;
whitelistedAddresses[0x41E5D23dfdbf3AB6563E69B63BC74CB330f426c7] = true;
whitelistedAddresses[0x9bC5536b6EDD37fCF15f5E44e0a56C68397f5CEf] = true;
whitelistedAddresses[0xE6A9eb7aB060f459461F0F1D472c3350cE07Cb79] = true;
whitelistedAddresses[0x648d7BF538b204c160c15733aBDB915d4D7fC822] = true;
whitelistedAddresses[0x9eC51c8C70409783ce306B3bdFDa0D7E7Eede08c] = true;
whitelistedAddresses[0x83b0B5266f5dB6e6C8ac226774FF41F90bb629b5] = true;
whitelistedAddresses[0x368B6f9930B2306D1BA596A3aA96997bEbbFA3a8] = true;
whitelistedAddresses[0x3dF9d238f6E583508c3Af0e5bB84f4308EC0D245] = true;
whitelistedAddresses[0xb006168ae893A26A91c909BD09cdDD6a3135Bc99] = true;
whitelistedAddresses[0x4E5DC8CaA8BD8E8aB3E5cd64623CF7432231DE2b] = true;
whitelistedAddresses[0x7A3fA094a13fc9Ce247f6c4369Fca88b26954856] = true;
whitelistedAddresses[0x1C00E5AECB22744Bb5968e3307C2B76Cb221fF66] = true;
whitelistedAddresses[0x967604E4B0CA0A9F5F26728e0cECcca52fb173F7] = true;
whitelistedAddresses[0xdCA1080f5f82ED39d8CFF736A3a48B842Db8A371] = true;
whitelistedAddresses[0xfb2B667A8EB1dbB68fd2fC45a43AbB5092de42fd] = true;
whitelistedAddresses[0x396D404D6Aa15D858A490cb2b2861dfD030872d9] = true;
whitelistedAddresses[0x670B69e85d96c85D00DE19222c4963898d685Beb] = true;
whitelistedAddresses[0x97280268dbA80f2d32683b7c0662F26Eb27DD175] = true;
whitelistedAddresses[0x2F08EA7Bb0f4b13AF7ce135f73CbfA3eDA567B13] = true;
whitelistedAddresses[0x54f3deaBC915EB00320a3d81A37540b3a313D5F3] = true;
whitelistedAddresses[0x74b98236595Dbdd71E0CE6D628Ad20EA2300D3dE] = true;
whitelistedAddresses[0x56c7a4bFDbDC57C0545413D12a30125FA651Db25] = true;
whitelistedAddresses[0xD358b2131c5da0071612eFb171bbA94bf22c559b] = true;
whitelistedAddresses[0x63d301648c7227C8F39DA41Cc3941FFDBb3aB08f] = true;
whitelistedAddresses[0x0B6A5465f3f2D686d9A263c222a99F4AEfDe8b03] = true;
whitelistedAddresses[0xb604ADF39e054243aa08840f66226a78fEeDd4B0] = true;
whitelistedAddresses[0xdFb9131B0B8Bf0ADdf74104695d222c9f5E663e1] = true;
whitelistedAddresses[0xFa22e911123610eFC78456e888cc682d601f6b54] = true;
whitelistedAddresses[0x848a2480cD4c03dfD2217fDE2d157aCea03553Fe] = true;
whitelistedAddresses[0xcab88eB7a2Db56Df92E0C117Fe516dAD872061B1] = true;
whitelistedAddresses[0xa3975ebd0417283Fb9aCf2b733995B0dF9570447] = true;
whitelistedAddresses[0xEadC6305572e8b396551d40E0cfeCf0B8fF8eBF3] = true;
whitelistedAddresses[0x37cc6965B968bd9798C300e6086eEEca2b3B905D] = true;
whitelistedAddresses[0x56D3f3a73C48391F413E1D9353165FdB0C7dda3C] = true;
whitelistedAddresses[0xc83b44f273225F9438cBac3Bd0454b43851938e4] = true;
whitelistedAddresses[0x6ff7af175B38973731019B5031BbC0b56755D9BE] = true;
whitelistedAddresses[0xc886dB8b8CD260f5ee38Ba3d8f8E9324EE27EA33] = true;
whitelistedAddresses[0x573D92340A8cA8A7D402f0eb1DD35D9077dd07E1] = true;
whitelistedAddresses[0xF5CCAf60e2c9C15C7c91BDc8768657Ac0688C8Db] = true;
whitelistedAddresses[0x4AA781b19597aF4f9b1f623c6c02e4124E007592] = true;
whitelistedAddresses[0x7F4AAa75F03d1598B092aE0e323Bc430C015CCa9] = true;
whitelistedAddresses[0xbD14b609C33c8e5A1f09a266b2AAe1096be9DdBb] = true;
whitelistedAddresses[0xEB522A22dd782ddD8167E020e107292300490618] = true;
whitelistedAddresses[0xF3fcE30d685BBC7a40Afa2c1C1296256B70a1477] = true;
whitelistedAddresses[0xBA21f7FFfFbA579ad685f95631f09ceC7f331f03] = true;
whitelistedAddresses[0xaf32e3A19A551487D0191E07C939B0ED18eDA1f0] = true;
whitelistedAddresses[0x2C4e3C9FaD9c396F470655A6bb0916381d07Cbdd] = true;
whitelistedAddresses[0xfaeFD394BFE03e61AbDa9e295d7c64687eE73B28] = true;
whitelistedAddresses[0x52A11d57D740A0D7cEceBc53ab16440E8fD6B2B2] = true;
whitelistedAddresses[0x7Af047Dc65917aCD86D24F3F2033a002473bCcCe] = true;
whitelistedAddresses[0x14F64b652948Ed2FEBde2517858644d5C15a6d7f] = true;
whitelistedAddresses[0x867a5a7E70457AF6C8250820589c4E4B928b1bA9] = true;
whitelistedAddresses[0x3b9e1E348fF80fE79c18439103c5c53A0fEbbF43] = true;
whitelistedAddresses[0x2F8FA4fb6dE5a697c3a8344Ef62A6A168a31D66a] = true;
whitelistedAddresses[0xf558be7A985abc32b0b2bA8b0ed6562151000e41] = true;
whitelistedAddresses[0x5FE20ab75F748c887B1875231E4A510e77Bc5910] = true;
whitelistedAddresses[0x48327499E4D71ED983DC7E024DdEd4EBB19BDb28] = true;
whitelistedAddresses[0xbDf7EcD3938bC86373D15709fE09DcF9Bb677ca7] = true;
whitelistedAddresses[0x37b3FD2E17232d28b2b53e345e441951Ca887280] = true;
whitelistedAddresses[0x9B26F0F8a259873922d57169C542306DC078782a] = true;
whitelistedAddresses[0xE4eFC361F134D07634a3275ec2A585985050e1b0] = true;
whitelistedAddresses[0xEDcF12b46f57207Ec537Eb73C4E2C103A32B233A] = true;
whitelistedAddresses[0xA79De3041754FE0a82bF6106279B29De1F6A03Ab] = true;
whitelistedAddresses[0x0C04a6db771fd8A4ae71BBdb3209c2FA9d016a9c] = true;
whitelistedAddresses[0xFfc979bf6ed9785c57A262296Fe57eE666f66B01] = true;
whitelistedAddresses[0x2464E1127b89257011Fa6cA06FC51b3ec0B093d5] = true;
whitelistedAddresses[0x6f50bDa124024Ce6837cb73A20c8B96b7Ff69880] = true;
whitelistedAddresses[0xe0ABe059bF26b130F861F3c9fe48a21A57300390] = true;
whitelistedAddresses[0x2C50b665c3aCC7ecca9Cd9634C9afF5e8Ab37815] = true;
whitelistedAddresses[0xb15e19ED53f82574f99CfE575Be454db09b876eD] = true;
whitelistedAddresses[0xbd2c152256f33805c8581c7DD6F68DbdE150994A] = true;
whitelistedAddresses[0xe3F42af201Ec36992a6B89E0AD6f814B901d1128] = true;
whitelistedAddresses[0x78e55c6a3B60A903eB0D57104706B5D69fBDf4FC] = true;
whitelistedAddresses[0x032Ab8112Eb491A3e56D48B836b89b1F0c78717f] = true;
whitelistedAddresses[0x9788D64c39E2B104265c89CbbCa2a2350e62701d] = true;
whitelistedAddresses[0xC9fE451251398F7Ba82296DD6eC2E3f43ee8d93F] = true;
whitelistedAddresses[0xd532962FD7976880FDff92DB9Cbe48a7369b1fc0] = true;
whitelistedAddresses[0x0da4d20e6b7Bd947419d821BfDa3D8ca079b86f1] = true;
whitelistedAddresses[0x84fF759Ee0B6057506f36E5e908ab73877C9263c] = true;
whitelistedAddresses[0x5C9Ce53738967e4D422f0f6914d5bE496F9EdD2b] = true;
whitelistedAddresses[0xB09Cb3EC75DdbBd0bC9A715D703ea84a27a99D38] = true;
whitelistedAddresses[0xB71E4596686608aA05581660187281A00efb81Ff] = true;
whitelistedAddresses[0xCfD780ded0b05f508B98dBA7E27E11F4fb82837f] = true;
whitelistedAddresses[0x3996A7E38fa56e0A10416430e28cc28182d4B21C] = true;
whitelistedAddresses[0xdA38AFF9D34fF382F12a1De111A10491566B9876] = true;
whitelistedAddresses[0x778530DEFcFe3E28C4AC55C6ca7FC69Bf7776AbE] = true;
whitelistedAddresses[0xc34ED3F6677f694797AdCE1767aa3e73Cf48e1F3] = true;
whitelistedAddresses[0xe37D4eA5C27017C227B6bf5a9CeDA2E02c58637f] = true;
whitelistedAddresses[0xd71e4AfEDAA844E493fD612F7e9C32Cc534FAE61] = true;
whitelistedAddresses[0x747A70e778985799b11a536FC716BaF3E290bB10] = true;
whitelistedAddresses[0x642B15A995980eCcB49E6475f44975Ff1F50Dab8] = true;
whitelistedAddresses[0x186f3481dbEBA09639e1EAd65aF3457f7EFACB9e] = true;
whitelistedAddresses[0x068e9989EFF6ee3746DE4498e5Bbc0Ecc7f968Fb] = true;
whitelistedAddresses[0x03F7f1aB10e8bA1f6c3B7ea588087Ee12d44Dcc8] = true;
whitelistedAddresses[0xFEF87cbfd1F377A962a0EF8adDa5d407c5F14f1C] = true;
whitelistedAddresses[0xD909A1e32e24E806c6206CAf07A8cB3e02858149] = true;
whitelistedAddresses[0x84dDddBe34C36c894347fA3649B0E25550dEb4d6] = true;
whitelistedAddresses[0x8eda5967E823C48665C797d1E35b59B5e05162Ed] = true;
whitelistedAddresses[0xA386542F9144fEAFB0f035397E16Bf6D02bB999F] = true;
whitelistedAddresses[0x6A4406F5be648B406c0c20334E8a5DE6B4999516] = true;
whitelistedAddresses[0xD4fe5b08a436C93d076d1b0a3752C8f9b6a4abfe] = true;
whitelistedAddresses[0xe5a81738DCB83CBC73440F331659F362294Bb7f1] = true;
whitelistedAddresses[0xBA6b5E38eeE62aB0711DD020D9873316846566B9] = true;
whitelistedAddresses[0x4891baed23E9B2490dEe4bfD09c4f98579Fc08C5] = true;
whitelistedAddresses[0x764965E051b54F6695d48899506E2f26cA765edf] = true;
whitelistedAddresses[0x0d917a622ed9a5773e52cCb1fAc82A75a8a6d9D9] = true;
whitelistedAddresses[0x838AA6360Bd87c7d0A96b8b84ac107E0a49dc114] = true;
whitelistedAddresses[0xa5B0C665E95545604f0A1DD0e3ecD857a9C2D2C9] = true;
whitelistedAddresses[0x4f28E099459F200e2C6cD6cdE11d23700c208359] = true;
whitelistedAddresses[0x330331eA6b3d10aaB69b87D86478D6aB643A981B] = true;
whitelistedAddresses[0x32d40ef4928EfBcdc135B3359dFc4Ec66Ee4ceCC] = true;
whitelistedAddresses[0x51EC15594230DDf21A7EA5A4aC392BB8Dbda527E] = true;
whitelistedAddresses[0xf6A51B6c793133460B279a5E6B7ea6867FD5bd7C] = true;
whitelistedAddresses[0xCdc921690f110d077dA220121D26FD198D39eeF1] = true;
whitelistedAddresses[0xCE9D39958681fE1385FB7A3E23bFF730d90a9729] = true;
whitelistedAddresses[0xE36F023f4d7D29D51B67986089EA0d41b643Ad4a] = true;
whitelistedAddresses[0x103c887d44D81C5584053AF523002925Cc18814D] = true;
whitelistedAddresses[0x490790Ddfb169857CE80248306DB24105eb55936] = true;
whitelistedAddresses[0xd3e38c017d441558135549719f9f9C398A64FDab] = true;
whitelistedAddresses[0xCC86c675Ac9F00E440F4F80B6D27b881de0f128A] = true;
whitelistedAddresses[0xc9E7A3937CF24Ed932B69C4545a20A5966a73fB5] = true;
whitelistedAddresses[0x1Ac1Edb70367f3e9C0602dcEd488a465565F256E] = true;
whitelistedAddresses[0x3E2b71BF37cEfe64B9cde8Bd19b2c70113eB2785] = true;
whitelistedAddresses[0x0a49De8E4f369c82b5315a40Ad0AC67d529a895F] = true;
whitelistedAddresses[0xAb3034c66c30a11371E7BC05d2f2b16f8BECC110] = true;
whitelistedAddresses[0x5B8F1DaaD43D779577AC05061a6B1546a29B47d1] = true;
whitelistedAddresses[0xB16B708Fe3F85A99A253Ffe2Fe556ec4C4f8Eda3] = true;
whitelistedAddresses[0x1EF0982991493c8F3B82c7f08A047F2ceb31EAA5] = true;
whitelistedAddresses[0x0cb7a1134F45f084A060743908C468F916dA9F07] = true;
whitelistedAddresses[0xE156c1d096FEc864FF641960a262b2D8929d4195] = true;
whitelistedAddresses[0xDaEAdE1BceBF6C9cFB5f8bdcCC79C838FEFe6832] = true;
whitelistedAddresses[0x80DDf3efe08cf6A29eB917dbd326F0D6DAd85c43] = true;
whitelistedAddresses[0xAE58AA169CF8cE4Ff8FA6C24a1F434ff75c9b012] = true;
whitelistedAddresses[0x5B908066aE4cDD15778796894f4a177c6FDD8509] = true;
whitelistedAddresses[0x6d155C454C03909443f3Ab06Cc690900Bed6298B] = true;
whitelistedAddresses[0xA9B60f88a82d7f8Af85F53379AaC4D7B34759f12] = true;
whitelistedAddresses[0x9Fc48dC9e0Acc7073EAdd4F37f161EBEE41F1E99] = true;
whitelistedAddresses[0x7D8EbEdDCccDBa1b070c455073aF153450C7d697] = true;
whitelistedAddresses[0xB8262145c487B328fAf14127682643ce2D1DFdcC] = true;
whitelistedAddresses[0x533950ab7F1E5BBEaF6100F2d823e23E0b4AeF0f] = true;
whitelistedAddresses[0x20B2273561D13b4e29a0F442F3430B3D226EE289] = true;
whitelistedAddresses[0x85908b2605BcF86A0d869173dF448C3afd0FE547] = true;
whitelistedAddresses[0xcE970ae1ddc10C37D079C1330fD455b6654017fC] = true;
whitelistedAddresses[0xce915E4a0Dbe5D8dFd054384C7d3a8f692d0428d] = true;
whitelistedAddresses[0xc0b7f18839091fd334315C594ccB08D26c471Fc7] = true;
whitelistedAddresses[0xba96162a8bF02b68b64e4a154617e19E4028efC4] = true;
whitelistedAddresses[0xeff59EA7b39d67cb57C606E21Ed9a4a348F8A78a] = true;
whitelistedAddresses[0xC458e1a4eC03C5039fBF38221C54Be4e63731E2A] = true;
whitelistedAddresses[0xfD08849489f0a0E665885878EAddbE28738a38F9] = true;
whitelistedAddresses[0xe54fe76a02B05d450852c49CB06427e02ac5d8B8] = true;
whitelistedAddresses[0x04f47435cb9cDF59c19C9d5E5982E073900F7De3] = true;
whitelistedAddresses[0xCdC4e5A89cc23f4e7f673a3a18c1Ed84abEC88b4] = true;
whitelistedAddresses[0x54AE40076387A68EFa483cAfBADb053123Ac7685] = true;
whitelistedAddresses[0xbf47a917254e4eFd8973a2dc270004e4e82aAA89] = true;
whitelistedAddresses[0x89d5Ac566d4d0BF14daD8B0531dd4B3de47F9424] = true;
whitelistedAddresses[0x74fa1bE357bC182c88BA77E771a5502e2b271F1B] = true;
whitelistedAddresses[0x3ec3991c0aeFd1F5De287Ac8fCDb9eDDD0DF2f72] = true;
whitelistedAddresses[0xb643c924632f71ac70a982Ebc7E4099620f076C1] = true;
whitelistedAddresses[0x46234FccD57237F421070E23C509c8d7f5c97022] = true;
whitelistedAddresses[0xA8a308eaff92640a33c6a075e6869e0588BE5128] = true;
whitelistedAddresses[0x7F1a4E5644E1340Db15194104eF8f5A64DF1Cf78] = true;
whitelistedAddresses[0xDDcB509Fe6E15ec45a35492686947afF08BF58E1] = true;
whitelistedAddresses[0x22586A535b975D77f2f6Af443207215eACeA6eA4] = true;
whitelistedAddresses[0x69973B44C3AE36a6803cB2D77585B8db50220Cc7] = true;
whitelistedAddresses[0x31267188D920140e3015fe285F81bA163262042F] = true;
whitelistedAddresses[0x1187d312074f9c017d6BeD1dF9754D03bA7B2Fd2] = true;
whitelistedAddresses[0x2fe50DeaCdb83Eb8beabAbC73AC8D78cf478675f] = true;
whitelistedAddresses[0x738025f325e6aB76686cC15dF07291062907092C] = true;
whitelistedAddresses[0xe68c0650A819d1c4c9f541a0dADBB457CC793419] = true;
whitelistedAddresses[0x1afe95013b5e4A017AC5B45A2649BC76b47B5f68] = true;
whitelistedAddresses[0xd2055E892FAA32cF4ba2B5a33A8dBb4Fd64a506b] = true;
whitelistedAddresses[0xe70D161C7ffF90c1127dD0A03C341d429E79D211] = true;
whitelistedAddresses[0x965D5CE02c082A51A51b990b0De39857053d1F57] = true;
whitelistedAddresses[0x2FA3479F42f38078943587f45D33a9BCe36b23a7] = true;
whitelistedAddresses[0x9B03891a8251c448B6C5D55556c43c3E0C64b924] = true;
whitelistedAddresses[0xb8D781c15858688387A594B4A34f8463b56AF8bA] = true;
whitelistedAddresses[0x66ed00d2df9ee54911A90AAda0c8dfF4c169b6B1] = true;
whitelistedAddresses[0x3Dadf855b9E30e63Bee10ec4D92cbFE789E5F8A8] = true;
whitelistedAddresses[0x4820189e0C6Ae798186cA9ac48e70a7fc630Bb6e] = true;
whitelistedAddresses[0x31249c9aD60B319EaA6FdA00A84327FfBB74aC72] = true;
whitelistedAddresses[0x60670dB0663eEEa0E022ee2250aa37c6Ae427Eca] = true;
whitelistedAddresses[0x8aA69753ED549De82B82F5B1B268e6c8f96d5C07] = true;
whitelistedAddresses[0x20E44FcCFefC2215e8FFa6cD9cBDdD6EAaFdB999] = true;
whitelistedAddresses[0xAE29BEF6Fb6B2974ce79C9914889dB65E67B7aFF] = true;
whitelistedAddresses[0xECc314d8CC41438F90acAbd9A5D0c1899d143689] = true;
whitelistedAddresses[0x139932823E72Fd90543547dA33854fBC39dD1A44] = true;
whitelistedAddresses[0x3D139eB16d79944a98EC3Db0A862f9CE98c576F5] = true;
whitelistedAddresses[0xD31DFc43E584b546C10a8B66a363c7752086D84D] = true;
whitelistedAddresses[0x0aF0CC88182856aFD7f0d5D953c76673395fe85D] = true;
whitelistedAddresses[0xf2A38bd2A11C743c0368DDEE1cF7E155FBf41F4B] = true;
whitelistedAddresses[0x9BF89364B34A60A7935eBdb29B8Ad88Dd95C8680] = true;
whitelistedAddresses[0x4E1c94F0eE40df053B190EF6Fa8709982c10F748] = true;
whitelistedAddresses[0xDdA0eaC66073397f222DbA518c5231aE716F129B] = true;
whitelistedAddresses[0xA77AeBFa19dD12c88E7F49a09d35290025Ff25F1] = true;
whitelistedAddresses[0xf48B4C067b4816dbC0A65333E9E81CA6D8a17002] = true;
whitelistedAddresses[0x7ecEf266ED9aDa13D97A18E1E4f630E3060c652F] = true;
whitelistedAddresses[0x158c72c9fCaBf584C6324C732345b9e5080Fb725] = true;
whitelistedAddresses[0xE36a124CaA7Ee0b75A96A934499CE68DaC6D9562] = true;
whitelistedAddresses[0x0d13A9e6eA1Fcb66993C71b1ca214f350247007E] = true;
whitelistedAddresses[0xB5D4187BcF2Df95b336D59d399687A101735959d] = true;
whitelistedAddresses[0x6cC4A1044A6fB92b8e0338363728dFB9644879b4] = true;
whitelistedAddresses[0x050EF81B1cC32f1d3EC9b175Ef9e39053c156B9E] = true;
whitelistedAddresses[0x564820A33AFFF3513b28E2fA6Ca1346deE342cE1] = true;
whitelistedAddresses[0x07eD493a169956c953b1704E3e27368895A57C96] = true;
whitelistedAddresses[0xdf09092bAe5C265e404e0a8Ce01eBF341481F531] = true;
whitelistedAddresses[0xF5fd651C3193F5fe165eeB828Fc52Ceb720c5E34] = true;
whitelistedAddresses[0x156D9d0fF226B6f08D253FDcDD28A0a69e301607] = true;
whitelistedAddresses[0x7464932Bd227B88cA5A5aA4903dC60Bfe2D77C5F] = true;
whitelistedAddresses[0xF325Ede0886B9784FB8CdDf0a1aDD21318da126A] = true;
whitelistedAddresses[0xb11dE9dbd61A5A54ef2B23A4Cb713Df85DF08E70] = true;
whitelistedAddresses[0x5f419F4Fa688069e8175888045c2C51aB7A35825] = true;
whitelistedAddresses[0x8b59ED2CE3731a3D4e7990CC4FA12f59a1Fa7300] = true;
whitelistedAddresses[0x489F40552a9a2bc3d2718Db5417f0955675e6cF7] = true;
whitelistedAddresses[0xE6e2731FD3479F5BC76F72C78b368C805abAAa1a] = true;
whitelistedAddresses[0x83448a9cdCb456Bb58577C141Cd77e311244A156] = true;
whitelistedAddresses[0x97341010d9DF19727f458128639Ddd81F2b6E5dE] = true;
whitelistedAddresses[0xa02d34e0f2235661F4b46b8A7BEDB42c4cce104b] = true;
whitelistedAddresses[0x4577Ae2d53ed0D340dff17fefa824eCbcFa2cE6A] = true;
whitelistedAddresses[0x55E5C1d069Fdc0489fcfCeB0564D29acdBfAF386] = true;
whitelistedAddresses[0xf3415D76F984cE7296Ca9cef0F83511388D62a30] = true;
whitelistedAddresses[0xCb5A84C0fbd65B8F00E5c9ccdFD0f14813b3e6c2] = true;
whitelistedAddresses[0xD7dEA37aDBF6888ef7a9a4035B0EdF36932cf0eD] = true;
whitelistedAddresses[0x42F30aA6D2237248638D1c74ddfCF80F4ecd340a] = true;
whitelistedAddresses[0x51384E26aabACeBb2e770cfe0E0F04f2feCB25cc] = true;
whitelistedAddresses[0x43568F65705bDEEd4082153E94205e40a393b844] = true;
whitelistedAddresses[0xDb5D099a6d2f2BC090Fcd258CC564861d552C387] = true;
whitelistedAddresses[0x698Fa8dFa821489CF4B69225347F28A56E3c3129] = true;
whitelistedAddresses[0xe9099FfeecA205007e5E34269093496723f51931] = true;
whitelistedAddresses[0x7215b80FbA9c774d629Aa930baEf35E562e0Cd57] = true;
whitelistedAddresses[0x0A611456392C14b0C6588712Da0955583A6d72d0] = true;
whitelistedAddresses[0x22B6DCA30218E92bDcAaF33b3CeA154E850438B7] = true;
whitelistedAddresses[0xBd0C1c09e3243335E9853a1892f5c6616E8A5202] = true;
whitelistedAddresses[0xC2d376420b64B18328D324eE9655fED855dD87BC] = true;
whitelistedAddresses[0x4476ab2c11b74576aa3abfAb19dde0aaDcFCA238] = true;
whitelistedAddresses[0xb338Df12860e66EADc54Fa043302b7bC4BA3D255] = true;
whitelistedAddresses[0x58828c7be7490bFcdAB241538F88C959dd7e2B12] = true;
whitelistedAddresses[0x404D1938e66607D08aE9a14FA3055c66Ba814b48] = true;
whitelistedAddresses[0x12B0f9a42B891ef7484557856874Bb1FbD144fE6] = true;
whitelistedAddresses[0xf0a6E33Fd47F88FBA7E4fD5b05caBeF214A5A3Bf] = true;
whitelistedAddresses[0xa6881ace63b4c011EC4a3EBA2ce9959e02F2a7e5] = true;
whitelistedAddresses[0x060ab3B83b591a6b2615a0C3587FB8E9d684E3A5] = true;
whitelistedAddresses[0xED7261A8616d6A55a3647cF71E21F8146832aEa6] = true;
whitelistedAddresses[0x91F743f6752e32599aB5dE8991C0aC4C33b3cCf4] = true;
whitelistedAddresses[0xb294600c5Affb4B939f3F07693ee8a8DFE1f2B0B] = true;
whitelistedAddresses[0xa11435b21e0Eff08A6c2c5b8316ACC94054e8bAB] = true;
whitelistedAddresses[0x1D0AE0A25b1b41d918eA2e7c519fD369678f2390] = true;
whitelistedAddresses[0x3b66aaD7bf50c3De4DaEcaedEcb8425CaE897518] = true;
whitelistedAddresses[0xf23c17100f4Ba7b38F4950A84A5a06b6bF851D06] = true;
whitelistedAddresses[0x321A6EEbf6C0B86f9CAf123c61247327373D1144] = true;
whitelistedAddresses[0x05C7Dc96Db7fE24De28690460718720B4994b497] = true;
whitelistedAddresses[0x9b4cf900888549E2B75991bc1335940f1e8fe924] = true;
whitelistedAddresses[0x5bC3390C8b611d4D7a3A4E89C7ce275B3054FB13] = true;
whitelistedAddresses[0xE648b85C095A8A494E55E1b498A27e6d9C0aFa81] = true;
whitelistedAddresses[0x567E5880fc9e3F448a5E57c4493959622b9BFe41] = true;
whitelistedAddresses[0x5ACb16Ea16F180b1955112eA34F75202e388441F] = true;
whitelistedAddresses[0x3C61007492d0712F22E88ea155BbB5a6bED7605a] = true;
whitelistedAddresses[0x2AD858A2D668aFeC72d66b409dA1E81cd4A7Ce98] = true;
whitelistedAddresses[0x0cCA1e8Db144d2E4a8F2A80828E780a1DC9C5112] = true;
whitelistedAddresses[0x3B95143B53aA2Bcfa6BcC0AA2448e426F6D06Ba9] = true;
whitelistedAddresses[0x6146532844c99a7c8576D1C6B42Ec88712e0CC4f] = true;
whitelistedAddresses[0x3eC99927b3673E718BbbbDe1df19eeFcd0E03272] = true;
whitelistedAddresses[0xEbB7Eb5046Fa95590233688a61f5A8ca0B092DA3] = true;
whitelistedAddresses[0x9Ce1Ad8a58339e6696C43326C106ef7241f437E7] = true;
whitelistedAddresses[0x22034f2e96953e23ab11cfC41Dc6f8C61F712cD2] = true;
whitelistedAddresses[0x4394eA17D0B24F966f50c1C31bc08fFF2C8d9f1E] = true;
whitelistedAddresses[0x797c7B11f619dfE9665b8e9f17F6666d3142f378] = true;
whitelistedAddresses[0x13e1525b09648d8C37Fa3af38e00fb79Fd08d65E] = true;
whitelistedAddresses[0x964b354D6e46326140b7EaDb6d1D21Dd96aaB2D6] = true;
whitelistedAddresses[0xeE0201E07db325a5D732AeB9b9Fba7b5B8E92c2A] = true;
whitelistedAddresses[0x51651b1710021A0c0F77B4889Bf6b411d88d093B] = true;
whitelistedAddresses[0x06840B0Baf92D91725F77C0b44166479b7F75674] = true;
whitelistedAddresses[0x8d6D26ed2C7BF4F6432934a305eF423DD5A4b0AD] = true;
whitelistedAddresses[0x1799863e819999410B9B25087A79f3dEbCC69Bb1] = true;
whitelistedAddresses[0xd0dB617CE892dbf6D0BD1e559AF9d06a6030642B] = true;
whitelistedAddresses[0x0DB187086b2EDf7a967d62bA4d929a63aeCBF8Fa] = true;
whitelistedAddresses[0x0ADf71b966e6b3640FDc2274b68743eaF06AD0FA] = true;
whitelistedAddresses[0xe0B0e53a70A597eAd45D1EA0E7b873E80A9bEe08] = true;
whitelistedAddresses[0x2912C69Bb58aD095d87707c30d16B585A1BC76b3] = true;
whitelistedAddresses[0xeD0EEDAA8b0825d35fDeaa752e7AaD02B3ae2557] = true;
whitelistedAddresses[0xd054952345f497F7A9461a202E8f1284b885eE2F] = true;
whitelistedAddresses[0x64F822bd5F15f9fEf824376C192B353d425143d6] = true;
whitelistedAddresses[0x2b0aa2a737A60e3c53142d4185BDBDB68f6a16D5] = true;
whitelistedAddresses[0xb88E0f52cdC7791477d2878A0898989d69F4D03C] = true;
whitelistedAddresses[0x94e0adDB171983acBA7b0592C0E4fB3FD68f0f90] = true;
whitelistedAddresses[0x8341Cde26693629D0A9AFF24CA3F894494Ec3157] = true;
whitelistedAddresses[0xeB1534b4De07C718A00a89A2dfEdAe06fab6267d] = true;
whitelistedAddresses[0xbE0e177b32C751e122af49b257aDE900114AD53e] = true;
whitelistedAddresses[0x9932B4975e21c0C0e4215915A03728045CFDd539] = true;
whitelistedAddresses[0x7b0b49EEA48E2A2303E357Ef57850639BfA1A9c6] = true;
whitelistedAddresses[0x5d40ED7197cCf53748a15D9E268080d364611E35] = true;
whitelistedAddresses[0xd262EA3D4ef23e523F3343FF49C45c53E0Ec8FbE] = true;
whitelistedAddresses[0xCaC229C4511CbEB6F7d3a32D35B54B39467963cd] = true;
whitelistedAddresses[0x29A83f03204E68958fFABFF239cCFE771feE9D10] = true;
whitelistedAddresses[0x8F538507f91445Ab5c933e1B6356b18B2bC5A4E9] = true;
whitelistedAddresses[0x86995F4a229b5a6512BF46b0A65DF450F37de109] = true;
whitelistedAddresses[0x8Fa0631aAE58D8751D2CE417d21187f41EF23AC6] = true;
whitelistedAddresses[0x5501e4D8918a8218B3073efFDF1CcB6C078523b8] = true;
whitelistedAddresses[0xac26137B0D5d12aa65154AF7cA341d92de74409f] = true;
whitelistedAddresses[0x29787D68CaB5348042fBDeDD099C3BE5F84911D3] = true;
whitelistedAddresses[0x1c3c5305Eeaf72B3d6D20D1c20bcbC894FFeafeE] = true;
whitelistedAddresses[0x51D2c4abdf244Bc9EED0F0CA792009c5De636Fb9] = true;
whitelistedAddresses[0x628995c10E7ad0983DB7c1e36835b2253cbCC534] = true;
whitelistedAddresses[0x5eeC4aDaCb4E81D58B19f25bcF03f376b73567d4] = true;
whitelistedAddresses[0x1Cf60c90dABbC43D1aADD0B02D5DAe44726f16cB] = true;
whitelistedAddresses[0x82e45bDC0C1Bd8072FB367683F68356CD76D4cc5] = true;
whitelistedAddresses[0x6E7Bc7DE434d62c2AC755c02C695c214dFB30B29] = true;
whitelistedAddresses[0x9caF0b277a7568f8f0246895bedC96E62b0CF34F] = true;
whitelistedAddresses[0x7C413F11A35ee3B2AF8a8592Eebfe1b38d59A632] = true;
whitelistedAddresses[0x6D0502FeffC708f39F2F449d2b60cD7e72eB8d1F] = true;
whitelistedAddresses[0x69F3F8085666F3b524CBb9170dcb03E7eCc4118D] = true;
whitelistedAddresses[0x78F51f44Ea3ac2Ee542aEC3b1532adC823aF899E] = true;
whitelistedAddresses[0xA4f96A54aEC6022308751d788e3F6782Ba897090] = true;
whitelistedAddresses[0x6bca7e1EC8595B2f0F4D7Ff578F1D25643004825] = true;
whitelistedAddresses[0x8DE238a576D539A7fba59a8d180203135A035d18] = true;
whitelistedAddresses[0xe7E8131190636dF7f0f21e91676870c9830a262e] = true;
whitelistedAddresses[0x8E0FD5f1374DAc8BfF9Ac48320aaC43DcD0678A6] = true;
whitelistedAddresses[0x7f4EA72AFcCBa8401424A65Dfc9DB4d3701Be536] = true;
whitelistedAddresses[0xC66A54E60A2672cF9232Ff75E98F78e68A0e16F1] = true;
whitelistedAddresses[0x151eCC8423EFC2DA8AC3eE70AbFf248D617E3100] = true;
whitelistedAddresses[0xcE684e3a006e16Ad5d32f6c500DD05b747a7ad3B] = true;
whitelistedAddresses[0x2E3177053006AFA4205fCE9b77781aCe7399a5F7] = true;
whitelistedAddresses[0xd8e46c84a4cd5F32005A99f481C3b3b36e1D68FE] = true;
whitelistedAddresses[0x25D12cD8af29F7c565349C4a6c678238e04cB21e] = true;
whitelistedAddresses[0x240889d7055bB22DedD8c102B6c45F5f99B8BEf8] = true;
whitelistedAddresses[0x16F2bACF87654067e6b0559bC8fFC09f3Cf1C5D1] = true;
whitelistedAddresses[0xCab90BB2b3a2f57f40326093de037C655c7fA8AE] = true;
whitelistedAddresses[0x17D411787433fB4064326c5Dc6274991720a7571] = true;
whitelistedAddresses[0xF628CDB6AFdc2f5B775BD85164164589bD53be58] = true;
whitelistedAddresses[0x21A07CC609e481Ba8F243eef3ff407Be855a3Deb] = true;
whitelistedAddresses[0x0f59C60A22B244aC53360c4Ed4B4A4c504Ae91b5] = true;
whitelistedAddresses[0xf5b6F869D96164c323C12b7ba8739B2fb20e8EDc] = true;
}
function _baseURI() internal view virtual override returns (string memory) {
return baseURI;
}
function mint(uint256 _mintAmount) public payable {
require(!paused, "the contract is paused");
uint256 supply = totalSupply();
require(_mintAmount > 0, "need to mint at least 1 NFT");
require(_mintAmount <= maxMintAmount, "max mint amount per session exceeded");
require(supply + _mintAmount <= maxSupply, "max NFT limit exceeded");
if(onlyWhitelisted == true) {
require(isWhitelisted(msg.sender), "user is not whitelisted");
uint256 ownerTokenCount = addressPresaleMinted[msg.sender];
require(ownerTokenCount + _mintAmount <= nftPerAddressLimit, "max NFT per address exceeded");
}
require(msg.value >= cost * _mintAmount, "insufficient funds");
for (uint256 i = 1; i <= _mintAmount; i++) {
addressPresaleMinted[msg.sender]++;
_safeMint(msg.sender, supply + i);
}
}
function mintOnlyOwner(uint256 _mintAmount, address receiver) public onlyOwner {
uint256 supply = totalSupply();
require(supply + _mintAmount <= maxSupply, "max NFT limit exceeded");
for (uint256 i = 1; i <= _mintAmount; i++) {
_safeMint(receiver, supply + i);
}
}
function isWhitelisted(address _user) public view returns (bool) {
return whitelistedAddresses[_user];
}
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"
);
if(revealed == false) {
return notRevealedUri;
}
string memory currentBaseURI = _baseURI();
return bytes(currentBaseURI).length > 0
? string(abi.encodePacked(currentBaseURI, tokenId.toString(), baseExtension))
: "";
}
function reveal() public onlyOwner {
revealed = true;
}
function setNftPerAddressLimit(uint256 _limit) public onlyOwner {
nftPerAddressLimit = _limit;
}
function setCost(uint256 _newCost) public onlyOwner {
cost = _newCost;
}
function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner {
maxMintAmount = _newmaxMintAmount;
}
function setBaseURI(string memory _newBaseURI) public onlyOwner {
baseURI = _newBaseURI;
}
function setBaseExtension(string memory _newBaseExtension) public onlyOwner {
baseExtension = _newBaseExtension;
}
function setNotRevealedURI(string memory _notRevealedURI) public onlyOwner {
notRevealedUri = _notRevealedURI;
}
function pause(bool _state) public onlyOwner {
paused = _state;
}
function setOnlyWhitelisted(bool _state) public onlyOwner {
onlyWhitelisted = _state;
}
function whitelistUsers(address[] calldata _users) public onlyOwner {
for (uint i = 0; i < _users.length; i++) {
whitelistedAddresses[_users[i]] = true;
}
}
function withdraw() public payable onlyOwner {
(bool success, ) = payable(msg.sender).call{value: address(this).balance}("");
require(success);
}
}