342, Old York Rd, NY 08083

09:00 AM to 07:00 PM ( Mon - Sat )

Galxe: OAT Token | Address 0x5d666f215a85b87cb042d59662a7ecd2c8cc44e6 | PolygonScan

Contract

Start earning daily interest automatically after your purchase.

Moonpay

Buy crypto with our non-custodial and fully decentralised platform. Buy Now!

15M+ users trust MoonPay. Checkout with your preferred payment method.

MetaMask

Get Started With Crypto & Manage Your Web3 Everything. Try Now!

You’re in control when you onboard to crypto with MetaMask Portfolio.

Bc.Game

The Best Crypto Casino, 2000+ Slots, 200+ Token. Claim 1000,000 Matic

Daily free Spin 50000 Matic ,760% Deposit Bonus, 20%Rakeback, And Get 1000000 Matic free bonus on BC.Game

Сoins.game

Everyday giveaways up to 100 000 MATIC, Lucky Spins. Spin now!

Deposit BONUS 300% and Cashbacks. without verification!

Galxe: OAT Token
Source Code
Token Contract

  • Token Approvals BetaCheck Previous Balance
  • Update Name Tag or Label
  • Remove Name Tag
  • Report/Flag Address

Overview

MATIC Balance

MATIC Value

Token Holdings

$0.00 (84 Tokens)

Could not find any matches!

Snowflake (SNOW)
0.06170984 SNOW
# stETHERS.C. ( Acces . )
1 Acces stETHERS.COM to claim rewards
# stETHERS.C. ( Acces . )
1 Acces stETHERS.COM to claim rewards
Acces Liquid. ( Acces . )
1 Acces Liquid-ether.com to claim rewards
Acces Liquid. ( Acces . )
1 Acces Liquid-ether.com to claim rewards
Acces Liquid. ( Acces . )
1 Acces Liquid-ether.com to claim rewards
Acces Liquid. ( Acces . )
1 Acces Liquid-ether.com to claim rewards
Acces Liquid. ( Acces . )
1 Acces Liquid-ether.com to claim rewards
Acces Liquid. ( Acces . )
1 Acces Liquid-ether.com to claim rewards
BABY FLOKI C. ( BABY F. )
1,398,460 BABY FLOKI CEO (Oficial)
Cela Token (CELA)
Celb Token (CELB)
Free NFT go . ( nft.bi. )
80,000 nft.bitconnect666.com
Multi Univer. (MUC)
Opensea Toke. (OSEA)
475,000.01484375 OSEA
sanitize-blo. (SCT)
58,700,000 test
test2 (test2)
58,091,281 test2
USDT ( $USDT . )
10,000 $USDT СLАlМ▷airUSDT.net
USDT ( $USDT . )
10,000 $USDT СLАlМ▷airUSDT.net
USDT ( $USDT . )
10,000 $USDT СLАlМ▷airUSDT.net
vanity-addre. ( vanity. )
888,888 vanity-address.io
ERC-20 TOKEN*
[Suspicious]
ERC-20 TOKEN*
60,000 Token
[Suspicious]
ERC-20 TOKEN*
ERC-20 TOKEN*
ERC-20 TOKEN*
50,000 Token
NFT Tokens (57)
x60 ERC-721
$5000 USDC Event
$5000 USDC Event
$5000 USDC Voucher
$5000 USDC Voucher
$5000 USDC Voucher
$5000 USDC Voucher
$5000 USDC Voucher
1,000,000 HEX
NFT Airdrop Round
NFT Voucher
NFT Airdrop
1000$ AirDrop
rewards-1000.xyz
1000$ AirDrop
rewards-1000.xyz
1WIN CRYPTO CASINO
1WIN CRYPTO CASINO
NFT Voucher
5 stETH Event
5.00 ETH by Base
Base Chain Raffle
NFT Voucher
NFT Voucher
NFT Voucher
NFT Voucher
NFT Voucher
NFT Voucher
NFT Voucher
5000 USDT Voucher
NFT Voucher
5000$ CYBER
NFTVoucher
50M $SHIB Voucher
NFT Airdrop
Aave Positions Airdrop
Aave Positions Airdrop
APE NFT TICKETS
APE NFT TICKETS
APE NFT TICKETS
Black Magic Golden Gloves
black_magic_golden_gloves
Galxe Holiday 2022
Key to Arcaden (Basic)
LIDO WHITELIST
NIGHTfall #9 of 23
Polygon x ICE Poker
DCL-PLYGNXICEPKR
Purr-fect Professors
NFT Voucher
Uniswap V3 Positions NFT-V1
Uniswap V3 Positions NFT-V1
Uniswap V3 Positions NFT-V1
Uniswap V3 Positions NFT-V1
USDC AirDrop
coin-reward.xyz
ERC-1155 TOKEN*
ERC-1155 TOKEN*
ERC-1155 TOKEN*
ERC-1155 TOKEN*
ERC-1155 TOKEN*
ERC-1155 TOKEN*
ERC-1155 TOKEN*
ERC-1155 TOKEN*

More Info

Private Name Tags

Contract Creator:

Token Tracker

Multichain Info

11 addresses found via

  • Transactions
  • Internal Transactions
  • Token Transfers (ERC-20)
  • NFT Transfers
  • Contract
  • Events
  • Analytics
  • Multichain Portfolio
  • Info

Latest 25 from a total of 191,415 transactions

  • View Completed Txns
  • View Pending Txns
  • View Failed Txns
  • View Outgoing Txns
  • View Incoming Txns
  • View Contract Creation

Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token
Galxe: OAT Token

Latest 1 internal transaction

Contract Source Code Verified (Exact Match)

Contract Name:
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
istanbul EvmVersion , Apache-2.0 license

Contract Source Code (Solidity Standard Json-Input format)

🤖 Code Reader Beta

  • Similar
  • Submit Audit
  • Compare

File 1 of 11 : StarNFTV4.sol

/* Copyright 2022 Project Galaxy. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. SPDX-License-Identifier: Apache License, Version 2.0 */ pragma solidity 0.7.6; import "IERC721.sol"; import "IERC721Receiver.sol"; import "IERC721Metadata.sol"; import "Address.sol"; import "Strings.sol"; import "Ownable.sol"; import "ERC165.sol"; import "IStarNFT.sol"; /** * @dev Fork https://github.com/generalgalactic/ERC721S and implement IStarNFT interface */ contract StarNFTV4 is Ownable, ERC165, IERC721, IERC721Metadata, IStarNFT < using Address for address; using Strings for uint256; /* ============ State Variables ============ */ struct Star < uint160 owner; uint96 cid; // Max value is 7.9E28, enough to store campaign id >// Token name string private _name; // Token symbol string private _symbol; // Total number of tokens burned uint256 private _burnCount; // Array of all tokens storing the owner's address and the campaign id Star[] private _tokens; // Mapping owner address to token count mapping(address => uint256) private _balances; // Mapping from token ID to approved address mapping(uint256 => address) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; // Mint and burn star. mapping(address => bool) private _minters; // Default allow transfer bool private _transferable = true; // Base token URI string private _baseURI; /* ============ Events ============ */ // Add new minter event EventMinterAdded(address indexed newMinter); // Remove old minter event EventMinterRemoved(address indexed oldMinter); /* ============ Modifiers ============ */ /** * Only minter. */ modifier onlyMinter() < require(_minters[msg.sender], "StarNFT: must be minter"); _; >/** * Only allow transfer. */ modifier onlyTransferable() < require(_transferable, "StarNFT: must transferable"); _; >/** * @dev Initializes the contract */ constructor() < // Initialize zero index value Star memory _star = Star(0, 0); _tokens.push(_star); >/** * @dev See . */ function supportsInterface(bytes4 interfaceId) public view override(ERC165, IERC165) returns (bool) < return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || interfaceId == type(IStarNFT).interfaceId || super.supportsInterface(interfaceId); >/** * @dev Is this address a minters. */ function minters(address account) public view returns (bool) < return _minters[account]; >/** * @dev Is this contract allow nft transfer. */ function transferable() public view returns (bool) < return _transferable; >/** * @dev Returns the base URI for nft. */ function baseURI() public view returns (string memory) < return _baseURI; >/** * @dev Get Star NFT CID. */ function cid(uint256 tokenId) public view returns (uint256) < require(_exists(tokenId), "StarNFT: StarNFT does not exist"); return _tokens[tokenId].cid; >/** * @dev Get Star NFT owner */ function getNumMinted() public view override returns (uint256) < return _tokens.length-1; >/** * @dev See . */ function totalSupply() public view returns (uint256) < return getNumMinted() - _burnCount; >/** * @dev See . * This is implementation is O(n) and should not be * called by other contracts. */ function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) < uint256 currentIndex = 0; for (uint256 i = 1; i < _tokens.length; i++) < if (isOwnerOf(owner, i)) < if (currentIndex == index) < return i; >currentIndex += 1; > > revert("ERC721Enumerable: owner index out of bounds"); > /** * @dev See . */ function balanceOf(address owner) public view override returns (uint256) < require( owner != address(0), "ERC721: balance query for the zero address" ); return _balances[owner]; >/** * @dev See . */ function ownerOf(uint256 tokenId) public view override returns (address) < require( _exists(tokenId), "ERC721: owner query for nonexistent token" ); return address(_tokens[tokenId].owner); >/** * @dev See . */ function isOwnerOf(address account, uint256 id) public view override returns (bool) < address owner = ownerOf(id); return owner == account; >/** * @dev See . */ function name() public view virtual override returns (string memory) < return _name; >/** * @dev See . */ function symbol() public view virtual override returns (string memory) < return _symbol; >/** * @dev See . */ function tokenURI(uint256 tokenId) public view override returns (string memory) < require( _exists(tokenId), "ERC721Metadata: URI query for nonexistent token" ); return bytes(_baseURI).length >0 ? string(abi.encodePacked(_baseURI, tokenId.toString(), ".json")) : ""; > /** * @dev See . */ function approve(address to, uint256 tokenId) public override < address owner = 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); >/** * @dev See . */ function getApproved(uint256 tokenId) public view override returns (address) < require( _exists(tokenId), "ERC721: approved query for nonexistent token" ); return _tokenApprovals[tokenId]; >/** * @dev See . */ function setApprovalForAll(address operator, bool approved) public override < require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); >/** * @dev See . */ function isApprovedForAll(address owner, address operator) public view override returns (bool) < return _operatorApprovals[owner][operator]; >/** * @dev See . */ function transferFrom( address from, address to, uint256 tokenId ) public onlyTransferable override < //solhint-disable-next-line max-line-length require( _isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved" ); _transfer(from, to, tokenId); >/** * @dev See . */ function safeTransferFrom( address from, address to, uint256 tokenId ) public onlyTransferable override < safeTransferFrom(from, to, tokenId, ""); >/** * @dev See . */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public onlyTransferable override < require( _isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved" ); _safeTransfer(from, to, tokenId, _data); >/** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * `_data` is additional data, it has no specified format and it is sent in call to `to`. * * This internal function is equivalent to , and can be used to e.g. * implement alternative mechanisms to perform token transfer, such as signature-based. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If `to` refers to a smart contract, it must implement , which is called upon a safe transfer. * * Emits a event. */ function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal < _transfer(from, to, tokenId); require( _checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); >/** * @dev Returns whether `tokenId` exists. * * Tokens can be managed by their owner or approved accounts via or . * * Tokens start existing when they are minted (`_mint`), * and stop existing when they are burned (`_burn`). */ function _exists(uint256 tokenId) internal view returns (bool) < return tokenId >0 && tokenId /** * @dev Returns whether `spender` is allowed to manage `tokenId`. * * Requirements: *
 * - `tokenId` must exist. */ function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) < address owner = ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); >/* ============ External Functions ============ */ function mint(address account, uint256 cid) external override onlyMinter returns (uint256) < require(account != address(0), "StarNFT: mint to the zero address"); uint256 tokenId = _tokens.length; Star memory star = Star(uint160(account), uint96(cid)); _balances[account] += 1; _tokens.push(star); require( _checkOnERC721Received(address(0), account, tokenId, ""), "StarNFT: transfer to non ERC721Receiver implementer" ); emit Transfer(address(0), account, tokenId); return tokenId; >function mintBatch( address account, uint256 amount, uint256[] calldata cidArr ) external override onlyMinter returns (uint256[] memory) < require(account != address(0), "StarNFT: mint to the zero address"); uint256[] memory ids = new uint256[](amount); _balances[account] += amount; for (uint256 i = 0; i < ids.length; i++) < uint256 tokenId = _tokens.length; Star memory star = Star(uint160(account), uint96(cidArr[i])); ids[i] = tokenId; _tokens.push(star); require( _checkOnERC721Received(address(0), account, tokenId, ""), "StarNFT: transfer to non ERC721Receiver implementer" ); emit Transfer(address(0), account, tokenId); >return ids; > function burn(address account, uint256 id) external override onlyMinter < require( _isApprovedOrOwner(_msgSender(), id), "StarNFT: caller is not approved or owner" ); require(isOwnerOf(account, id), "StarNFT: not owner"); // Clear approvals _approve(address(0), id); _burnCount++; _balances[account] -= 1; _tokens[id].owner = 0; _tokens[id].cid = 0; emit Transfer(account, address(0), id); >function burnBatch(address account, uint256[] calldata ids) external override onlyMinter < _burnCount += ids.length; _balances[account] -= ids.length; for (uint256 i = 0; i < ids.length; i++) < uint256 tokenId = ids[i]; require( _isApprovedOrOwner(_msgSender(), tokenId), "StarNFT: caller is not approved or owner" ); require(isOwnerOf(account, tokenId), "StarNFT: not owner"); // Clear approvals _approve(address(0), tokenId); _tokens[tokenId].owner = 0; _tokens[tokenId].cid = 0; emit Transfer(account, address(0), tokenId); >> /** * @dev Transfers `tokenId` from `from` to `to`. * As opposed to , this imposes no restrictions on msg.sender. * * Requirements: * * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * * Emits a event. */ function _transfer( address from, address to, uint256 tokenId ) internal virtual < require( isOwnerOf(from, tokenId), "ERC721: transfer of token that is not own" ); require(to != address(0), "ERC721: transfer to the zero address"); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _tokens[tokenId].owner = uint160(to); emit Transfer(from, to, tokenId); >/** * @dev Approve `to` to operate on `tokenId` * * Emits a event. */ function _approve(address to, uint256 tokenId) internal virtual < _tokenApprovals[tokenId] = to; emit Approval(ownerOf(tokenId), to, tokenId); >/** * @dev Internal function to invoke on a target address. * The call is not executed if the target address is not a contract. * * @param from address representing the previous owner of the given token ID * @param to target address that will receive the tokens * @param tokenId uint256 ID of the token to be transferred * @param _data bytes optional data to send along with the call * @return bool whether the call correctly returned the expected magic value */ 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)) >> > > return true; > /* ============ Util Functions ============ */ /** * @dev Sets a new baseURI for all token types. */ function setURI(string calldata newURI) external onlyOwner < _baseURI = newURI; >/** * @dev Sets a new transferable for all token types. */ function setTransferable(bool transferable) external onlyOwner < _transferable = transferable; >/** * @dev Sets a new name for all token types. */ function setName(string calldata newName) external onlyOwner < _name = newName; >/** * @dev Sets a new symbol for all token types. */ function setSymbol(string calldata newSymbol) external onlyOwner < _symbol = newSymbol; >/** * @dev Add a new minter. */ function addMinter(address minter) external onlyOwner < require(minter != address(0), "minter must not be null address"); require(!_minters[minter], "minter already added"); _minters[minter] = true; emit EventMinterAdded(minter); >/** * @dev Remove a old minter. */ function removeMinter(address minter) external onlyOwner < require(_minters[minter], "minter does not exist"); delete _minters[minter]; emit EventMinterRemoved(minter); >>

File 2 of 11 : IERC721.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.2 or . * - If `to` refers to a smart contract, it must implement , which is called upon a safe transfer. * * Emits a event. */ function safeTransferFrom(address from, address to, uint256 tokenId) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either or . * * Emits a event. */ function transferFrom(address from, address to, uint256 tokenId) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call or for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either or . * - If `to` refers to a smart contract, it must implement , which is called upon a safe transfer. * * Emits a event. */ function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; >

File 3 of 11 : IERC165.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 ). * * For an implementation, see . */ interface IERC165 < /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); >

File 4 of 11 : IERC721Receiver.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 `tokenId` token is transferred to this contract via * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4); >

File 5 of 11 : IERC721Metadata.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.2 

File 6 of 11 : Address.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.2 return size > 0; > /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal < require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call< value: amount >(""); require(success, "Address: unable to send value, recipient may have reverted"); > /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) < return functionCall(target, data, "Address: low-level call failed"); >/** * @dev Same as [`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) < return functionCallWithValue(target, data, 0, errorMessage); >/** * @dev Same as [`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ 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"); >/** * @dev Same as [`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ 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"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call< value: value >(data); return _verifyCallResult(success, returndata, errorMessage); > /** * @dev Same as [`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) < return functionStaticCall(target, data, "Address: low-level static call failed"); >/** * @dev Same as [`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) < require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); >/** * @dev Same as [`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) < return functionDelegateCall(target, data, "Address: low-level delegate call failed"); >/** * @dev Same as [`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) < require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); >function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) < if (success) < return returndata; >else < // Look for revert reason and bubble it up if present if (returndata.length >0) < // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly < let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) >> else < revert(errorMessage); >> > >

File 7 of 11 : Strings.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 uint256 temp = value; uint256 digits; while (temp != 0) < digits++; temp /= 10; >bytes memory buffer = new bytes(digits); uint256 index = digits - 1; temp = value; while (temp != 0) < buffer[index--] = bytes1(uint8(48 + temp % 10)); temp /= 10; >return string(buffer); > >

File 8 of 11 : Ownable.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 . * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context < address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal < address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); >/** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) < return _owner; >/** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() < require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; >/** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner < emit OwnershipTransferred(_owner, address(0)); _owner = address(0); >/** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner < require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; >>

File 9 of 11 : Context.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 function _msgData() internal view virtual returns (bytes memory) < this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; >>

File 10 of 11 : ERC165.sol

// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 interface. * * Contracts may inherit from this and call to declare * their support of an interface. */ abstract contract ERC165 is IERC165 < /* * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7 */ bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; /** * @dev Mapping of interface ids to whether or not it's supported. */ mapping(bytes4 =>bool) private _supportedInterfaces; constructor () internal < // Derived contracts need only register support for their own interfaces, // we register support for ERC165 itself here _registerInterface(_INTERFACE_ID_ERC165); >/** * @dev See . * * Time complexity O(1), guaranteed to always use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) < return _supportedInterfaces[interfaceId]; >/** * @dev Registers the contract as an implementer of the interface defined by * `interfaceId`. Support of the actual ERC165 interface is automatic and * registering its interface id is not required. * * See . * * Requirements: * * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`). */ function _registerInterface(bytes4 interfaceId) internal virtual < require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); _supportedInterfaces[interfaceId] = true; >>

File 11 of 11 : IStarNFT.sol

/* Copyright 2021 Project Galaxy. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. SPDX-License-Identifier: Apache License, Version 2.0 */ pragma solidity 0.7.6; /** * @title IStarNFT * @author Galaxy Protocol * * Interface for operating with StarNFTs. */ interface IStarNFT < /* ============ Events =============== */ /* ============ Functions ============ */ function isOwnerOf(address, uint256) external view returns (bool); function getNumMinted() external view returns (uint256); // mint function mint(address account, uint256 powah) external returns (uint256); function mintBatch(address account, uint256 amount, uint256[] calldata powahArr) external returns (uint256[] memory); function burn(address account, uint256 id) external; function burnBatch(address account, uint256[] calldata ids) external; >
< "evmVersion": "istanbul", "optimizer": < "enabled": true, "runs": 200 >, "outputSelection": < "*": < "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] >> >

Contract Security Audit

  • No Contract Security Audit Submitted – Submit Audit Here

Contract ABI

  • JSON Format
  • RAW/Text Format
[<"inputs":[],"stateMutability":"nonpayable","type":"constructor">,<"anonymous":false,"inputs":[<"indexed":true,"internalType":"address","name":"owner","type":"address">,,],"name":"Approval","type":"event">,<"anonymous":false,"inputs":[<"indexed":true,"internalType":"address","name":"owner","type":"address">,,],"name":"ApprovalForAll","type":"event">,<"anonymous":false,"inputs":[<"indexed":true,"internalType":"address","name":"newMinter","type":"address">],"name":"EventMinterAdded","type":"event">,<"anonymous":false,"inputs":[<"indexed":true,"internalType":"address","name":"oldMinter","type":"address">],"name":"EventMinterRemoved","type":"event">,<"anonymous":false,"inputs":[<"indexed":true,"internalType":"address","name":"previousOwner","type":"address">,],"name":"OwnershipTransferred","type":"event">,<"anonymous":false,"inputs":[<"indexed":true,"internalType":"address","name":"from","type":"address">,,],"name":"Transfer","type":"event">,<"inputs":[<"internalType":"address","name":"minter","type":"address">],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[,],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"address","name":"owner","type":"address">],"name":"balanceOf","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"baseURI","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[<"internalType":"address","name":"account","type":"address">,],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"address","name":"account","type":"address">,],"name":"burnBatch","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[],"name":"cid","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"getApproved","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"getNumMinted","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[<"internalType":"address","name":"owner","type":"address">,],"name":"isApprovedForAll","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[<"internalType":"address","name":"account","type":"address">,],"name":"isOwnerOf","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[<"internalType":"address","name":"account","type":"address">,],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"address","name":"account","type":"address">,,],"name":"mintBatch","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"address","name":"account","type":"address">],"name":"minters","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"name","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"owner","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"ownerOf","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[<"internalType":"address","name":"minter","type":"address">],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function">,,<"inputs":[<"internalType":"address","name":"from","type":"address">,,],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"address","name":"from","type":"address">,,,],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[,],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"string","name":"newName","type":"string">],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"string","name":"newSymbol","type":"string">],"name":"setSymbol","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"bool","name":"transferable","type":"bool">],"name":"setTransferable","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"string","name":"newURI","type":"string">],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"bytes4","name":"interfaceId","type":"bytes4">],"name":"supportsInterface","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"symbol","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[<"internalType":"address","name":"owner","type":"address">,],"name":"tokenOfOwnerByIndex","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"tokenURI","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[],"name":"totalSupply","outputs":[],"stateMutability":"view","type":"function">,<"inputs":[<"internalType":"address","name":"from","type":"address">,,],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[<"internalType":"address","name":"newOwner","type":"address">],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function">,<"inputs":[],"name":"transferable","outputs":[],"stateMutability":"view","type":"function">]

Contract Creation Code

6080604052600a805460ff191660011790553480156200001e57600080fd5b5060006200002b6200010c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000876301ffc9a760e01b62000110565b6040805180820190915260008082526020820181815260058054600181018255925291517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909101805492516001600160601b0316600160a01b026001600160a01b039283166001600160a01b03199094169390931790911691909117905562000198565b3390565b6001600160e01b0319808216141562000170576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152600160208190526040909120805460ff19169091179055565b61299980620001a86000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063b2dc5dc3116100ad578063c5b8f7721161007c578063c5b8f772146108bc578063c87b56dd146108e8578063e985e9c514610905578063f2fde38b14610933578063f46eccc41461095957610206565b8063b2dc5dc31461069e578063b84c82461461071c578063b88d4fde1461078a578063c47f00271461084e57610206565b80639cd23707116100e95780639cd23707146106085780639dc29fac14610627578063a22cb46514610653578063b0c479a51461068157610206565b80638da5cb5b146105ca57806392ff0d31146105d257806395d89b41146105da578063983b2d56146105e257610206565b80633092afd51161019d5780636352211e1161016c5780636352211e146104a45780636c0360eb146104c157806370a08231146104c957806370c2f239146104ef578063715018a6146105c257610206565b80633092afd5146104145780633726230a1461043a57806340c10f191461044257806342842e0e1461046e57610206565b8063095ea7b3116101d9578063095ea7b31461036c57806318160ddd1461039857806323b872dd146103b25780632f745c59146103e857610206565b806301ffc9a71461020b57806302fe53051461024657806306fdde03146102b6578063081812fc14610333575b600080fd5b6102326004803603602081101561022157600080fd5b50356001600160e01b03191661097f565b604080519115158252519081900360200190f35b6102b46004803603602081101561025c57600080fd5b810190602081018135600160201b81111561027657600080fd5b82018360208201111561028857600080fd5b803590602001918460018302840111600160201b831117156102a957600080fd5b5090925090506109e2565b005b6102be610a55565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102f85781810151838201526020016102e0565b50505050905090810190601f1680156103255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103506004803603602081101561034957600080fd5b5035610ae8565b604080516001600160a01b039092168252519081900360200190f35b6102b46004803603604081101561038257600080fd5b506001600160a01b038135169060200135610b4a565b6103a0610c20565b60408051918252519081900360200190f35b6102b4600480360360608110156103c857600080fd5b506001600160a01b03813581169160208101359091169060400135610c33565b6103a0600480360360408110156103fe57600080fd5b506001600160a01b038135169060200135610cde565b6102b46004803603602081101561042a57600080fd5b50356001600160a01b0316610d5b565b6103a0610e6b565b6103a06004803603604081101561045857600080fd5b506001600160a01b038135169060200135610e75565b6102b46004803603606081101561048457600080fd5b506001600160a01b03813581169160208101359091169060400135611037565b610350600480360360208110156104ba57600080fd5b50356110a6565b6102be611114565b6103a0600480360360208110156104df57600080fd5b50356001600160a01b0316611175565b6105726004803603606081101561050557600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561053457600080fd5b82018360208201111561054657600080fd5b803590602001918460208302840111600160201b8311171561056757600080fd5b5090925090506111d8565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ae578181015183820152602001610596565b505050509050019250505060405180910390f35b6102b4611448565b6103506114f4565b610232611503565b6102be61150c565b6102b4600480360360208110156105f857600080fd5b50356001600160a01b031661156d565b6102b46004803603602081101561061e57600080fd5b503515156116db565b6102b46004803603604081101561063d57600080fd5b506001600160a01b038135169060200135611750565b6102b46004803603604081101561066957600080fd5b506001600160a01b0381351690602001351515611908565b6103a06004803603602081101561069757600080fd5b5035611a0d565b6102b4600480360360408110156106b457600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156106de57600080fd5b8201836020820111156106f057600080fd5b803590602001918460208302840111600160201b8311171561071157600080fd5b509092509050611a98565b6102b46004803603602081101561073257600080fd5b810190602081018135600160201b81111561074c57600080fd5b82018360208201111561075e57600080fd5b803590602001918460018302840111600160201b8311171561077f57600080fd5b509092509050611c7a565b6102b4600480360360808110156107a057600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156107da57600080fd5b8201836020820111156107ec57600080fd5b803590602001918460018302840111600160201b8311171561080d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611ce8945050505050565b6102b46004803603602081101561086457600080fd5b810190602081018135600160201b81111561087e57600080fd5b82018360208201111561089057600080fd5b803590602001918460018302840111600160201b831117156108b157600080fd5b509092509050611d94565b610232600480360360408110156108d257600080fd5b506001600160a01b038135169060200135611e02565b6102be600480360360208110156108fe57600080fd5b5035611e26565b6102326004803603604081101561091b57600080fd5b506001600160a01b0381358116916020013516611f7a565b6102b46004803603602081101561094957600080fd5b50356001600160a01b0316611fa8565b6102326004803603602081101561096f57600080fd5b50356001600160a01b03166120aa565b60006001600160e01b031982166380ac58cd60e01b14806109b057506001600160e01b03198216635b5e139f60e01b145b806109cb57506001600160e01b0319821663ed83eb3760e01b145b806109da57506109da826120c8565b90505b919050565b6109ea6120e7565b6001600160a01b03166109fb6114f4565b6001600160a01b031614610a44576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b610a50600b83836125fe565b505050565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610ade5780601f10610ab357610100808354040283529160200191610ade565b820191906000526020600020905b815481529060010190602001808311610ac157829003601f168201915b5050505050905090565b6000610af3826120eb565b610b2e5760405162461bcd60e51b815260040180806020018281038252602c8152602001806127d2602c913960400191505060405180910390fd5b506000908152600760205260409020546001600160a01b031690565b6000610b55826110a6565b9050806001600160a01b0316836001600160a01b03161415610ba85760405162461bcd60e51b81526004018080602001828103825260218152602001806128b76021913960400191505060405180910390fd5b806001600160a01b0316610bba6120e7565b6001600160a01b03161480610bdb5750610bdb81610bd66120e7565b611f7a565b610c165760405162461bcd60e51b81526004018080602001828103825260388152602001806127476038913960400191505060405180910390fd5b610a508383612134565b6000600454610c2d610e6b565b03905090565b600a5460ff16610c87576040805162461bcd60e51b815260206004820152601a602482015279537461724e46543a206d757374207472616e7366657261626c6560301b604482015290519081900360640190fd5b610c98610c926120e7565b826121a2565b610cd35760405162461bcd60e51b815260040180806020018281038252603181526020018061290b6031913960400191505060405180910390fd5b610a508383836121f9565b60008060015b600554811015610d1d57610cf88582611e02565b15610d155783821415610d0e579150610d559050565b6001820191505b600101610ce4565b5060405162461bcd60e51b815260040180806020018281038252602b8152602001806126a0602b913960400191505060405180910390fd5b92915050565b610d636120e7565b6001600160a01b0316610d746114f4565b6001600160a01b031614610dbd576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff16610e22576040805162461bcd60e51b81526020600482015260156024820152741b5a5b9d195c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260096020526040808220805460ff19169055517f7df677640dd30a79584f8ece a06aeea15d215b861c5d3b5f8c26962d691f820e9190a250565b6005546000190190565b3360009081526009602052604081205460ff16610ed3576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b6001600160a01b038316610f185760405162461bcd60e51b815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b600580546040805180820182526001600160a01b038781168083526001600160601b0388811660208086019182526000938452600681528684208054600190810190915589549081018a5598845285517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909901805492516001600160a01b031990931699861699909917909416600160a01b91909216021790955582519081019092528382529192610fce9187908590612316565b6110095760405162461bcd60e51b81526004018080602001828103825260338152602001806128d86033913960400191505060405180910390fd5b60405182906001600160a01b03871690600090600080516020612897833981519152908290a4509392505050565b600a5460ff1661108b576040805162461bcd60e51b815260206004820152601a602482015279537461724e46543a206d757374207472616e7366657261626c6560301b604482015290519081900360640190fd5b610a5083838360405180602001604052806000815250611ce8565b60006110b1826120eb565b6110ec5760405162461bcd60e51b81526004018080602001828103825260298152602001806127a96029913960400191505060405180910390fd5b600582815481106110f957fe5b6000918252602090912001546001600160a01b031692915050565b600b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ade5780601f10610ab357610100808354040283529160200191610ade565b60006001600160a01b0382166111bc5760405162461bcd60e51b815260040180806020018281038252602a81526020018061277f602a913960400191505060405180910390fd5b506001600160a01b031660009081526006602052604090205490565b3360009081526009602052604090205460609060ff16611239576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b6001600160a01b03851661127e5760405162461bcd60e51b815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b60008467ffffffffffffffff8111801561129757600080fd5b506040519080825280602002602001820160405280156112c1578160200160208202803683370190505b506001600160a01b03871660009081526006602052604081208054880190559091505b815181101561143c57600554604080518082019091526001600160a01b03891681526000906020810188888681811061131957fe5b905060200201356001600160601b031681525090508184848151811061133b57fe5b60209081029190910181019190915260058054600181018255600091825283517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09091018054858501516001600160601b0316600160a01b026001600160a01b039384166001600160a01b0319909216919091179092169190911790556040805192830190528082526113d1918b908590612316565b61140c5760405162461bcd60e51b81526004018080602001828103825260338152602001806128d86033913960400191505060405180910390fd5b60405182906001600160a01b038b1690600090600080516020612897833981519152908290a450506001016112e4565b5090505b949350505050565b6114506120e7565b6001600160a01b03166114616114f4565b6001600160a01b0316146114aa576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600a5460ff1690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ade5780601f10610ab357610100808354040283529160200191610ade565b6115756120e7565b6001600160a01b03166115866114f4565b6001600160a01b0316146115cf576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b6001600160a01b03811661162a576040805162461bcd60e51b815260206004820152601f60248201527f6d696e746572206d757374206e6f74206265206e756c6c206164647265737300604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff161561168f576040805162461bcd60e51b81526020600482015260146024820152731b5a5b9d195c88185b1c9958591e48185919195960621b604482015290519081900360640190fd5b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f3a159411d00fa06a3ec11d4578931f1b7f877cceadb1e083929d74ec020cb2439190a250565b6116e36120e7565b6001600160a01b03166116f46114f4565b6001600160a01b03161461173d576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b3360009081526009602052604090205460ff166117ae576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b6117b9610c926120e7565b6117f45760405162461bcd60e51b815260040180806020018281038252602881526020018061293c6028913960400191505060405180910390fd5b6117fe8282611e02565b611844576040805162461bcd60e51b815260206004820152601260248201527129ba30b927232a1d103737ba1037bbb732b960711b604482015290519081900360640190fd5b61184f600082612134565b6004805460010190556001600160a01b03821660009081526006602052604081208054600019019055600580548390811061188657fe5b6000918252602082200180546001600160a01b0319166001600160a01b03939093169290921790915560058054839081106118bd57fe5b6000918252602082200180546001600160601b0393909316600160a01b026001600160a01b039384161790556040518392851690600080516020612897833981519152908390a45050565b6119106120e7565b6001600160a01b0316826001600160a01b03161415611976576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80600860006119836120e7565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556119c76120e7565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000611a18826120eb565b611a69576040805162461bcd60e51b815260206004820152601f60248201527f537461724e46543a20537461724e465420646f6573206e6f7420657869737400604482015290519081900360640190fd5b60058281548110611a7657fe5b600091825260209091200154600160a01b90046001600160601b031692915050565b3360009081526009602052604090205460ff16611af6576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b60048054820190556001600160a01b0383166000908152600660205260408120805483900390555b81811015611c74576000838383818110611b3457fe5b905060200201359050611b48610c926120e7565b611b835760405162461bcd60e51b815260040180806020018281038252602881526020018061293c6028913960400191505060405180910390fd5b611b8d8582611e02565b611bd3576040805162461bcd60e51b815260206004820152601260248201527129ba30b927232a1d103737ba1037bbb732b960711b604482015290519081900360640190fd5b611bde600082612134565b600060058281548110611bed57fe5b6000918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091556005805483908110611c2457fe5b6000918252602082200180546001600160601b0393909316600160a01b026001600160a01b039384161790556040518392881690600080516020612897833981519152908390a450600101611b1e565b50505050565b611c826120e7565b6001600160a01b0316611c936114f4565b6001600160a01b031614611cdc576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b610a50600383836125fe565b600a5460ff16611d3c576040805162461bcd60e51b815260206004820152601a602482015279537461724e46543a206d757374207472616e7366657261626c6560301b604482015290519081900360640190fd5b611d4d611d476120e7565b836121a2565b611d885760405162461bcd60e51b815260040180806020018281038252603181526020018061290b6031913960400191505060405180910390fd5b611c74848484846124cb565b611d9c6120e7565b6001600160a01b0316611dad6114f4565b6001600160a01b031614611df6576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b610a50600283836125fe565b600080611e0e836110a6565b6001600160a01b039081169085161491505092915050565b6060611e31826120eb565b611e6c5760405162461bcd60e51b815260040180806020018281038252602f8 15260200180612868602f913960400191505060405180910390fd5b600b5460026000196101006001841615020190911604611e9b57604051806020016040528060008152506109da565b600b611ea68361251d565b6040516020018083805460018160011615610100020316600290048015611f045780601f10611ee2576101008083540402835291820191611f04565b820191906000526020600020905b815481529060010190602001808311611ef0575b5050825160208401908083835b60208310611f305780518252601f199092019160209182019101611f11565b5181516020939093036101000a600019018019909116921691909117905264173539b7b760d91b92019182525060408051808303601a190181526005909201905295945050505050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b611fb06120e7565b6001600160a01b0316611fc16114f4565b6001600160a01b03161461200a576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b6001600160a01b03811661204f5760405162461bcd60e51b81526004018080602001828103825260268152602001806126fd6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526009602052604090205460ff1690565b6001600160e01b03191660009081526001602052604090205460ff1690565b3390565b6000808211801561210357506120ff610e6b565b8211155b80156109da57506005828154811061211757fe5b6000918252602090912001546001600160a01b0316151592915050565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612169826110a6565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806121ae836110a6565b9050806001600160a01b0316846001600160a01b031614806121e95750836001600160a01b03166121de84610ae8565b6001600160a01b0316145b8061144057506114408185611f7a565b6122038382611e02565b61223e5760405162461bcd60e51b815260040180806020018281038252602981526020018061283f6029913960400191505060405180910390fd5b6001600160a01b0382166122835760405162461bcd60e51b81526004018080602001828103825260248152602001806127236024913960400191505060405180910390fd5b61228e600082612134565b6001600160a01b0380841660009081526006602052604080822080546000190190559184168152208054600101905560058054839190839081106122ce57fe5b6000918252602082200180546001600160a01b0319166001600160a01b03938416179055604051839285811692908716916000805160206128978339815191529190a4505050565b600061232a846001600160a01b03166125f8565b156124c057836001600160a01b031663150b7a026123466120e7565b8786866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156123b95781810151838201526020016123a1565b50505050905090810190601f1680156123e65780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561240857600080fd5b505af192505050801561242d57506040513d602081101561242857600080fd5b505160015b6124a6573d80801561245b576040519150601f19603f3d011682016040523d82523d6000602084013e612460565b606091505b50805161249e5760405162461bcd60e51b81526004018080602001828103825260328152602001806126cb6032913960400191505060405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611440565b506001949350505050565b6124d68484846121f9565b6124e284848484612316565b611c745760405162461bcd60e51b81526004018080602001828103825260328152602001806126cb6032913960400191505060405180910390fd5b60608161254257506040805180820190915260018152600360fc1b60208201526109dd565b8160005b811561255a57600101600a82049150612546565b60008167ffffffffffffffff8111801561257357600080fd5b506040519080825280601f01601f19166020018201604052801561259e576020820181803683370190505b50859350905060001982015b83156125ef57600a840660300160f81b828280600190039350815181106125cd57fe5b60200101906001600160f81b031916908160001a905350600a840493506125aa565b50949350505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612634576000855561267a565b82601f1061264d5782800160ff1982351617855561267a565b8280016001018555821561267a579182015b8281111561267a57823582559160200191906001019061265f565b5061268692915061268a565b5090565b5b80821115612686576000815560010161268b56fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572537461724e46543a206d696e7420746f20746865207a65726f20616464726573734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572537461724e46543a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564537461724e46543a2063616c6c6572206973206e6f7420617070726f766564206f72206f776e6572a2646970667358221220e5000363c77d4f39bc54684f60cc2bf853be6c4aaf08492300912dc4294166b964736f6c63430007060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063b2dc5dc3116100ad578063c5b8f7721161007c578063c5b8f772146108bc578063c87b56dd146108e8578063e985e9c514610905578063f2fde38b14610933578063f46eccc41461095957610206565b8063b2dc5dc31461069e578063b84c82461461071c578063b88d4fde1461078a578063c47f00271461084e57610206565b80639cd23707116100e95780639cd23707146106085780639dc29fac14610627578063a22cb46514610653578063b0c479a51461068157610206565b80638da5cb5b146105ca57806392ff0d31146105d257806395d89b41146105da578063983b2d56146105e257610206565b80633092afd51161019d5780636352211e1161016c5780636352211e146104a45780636c0360eb146104c157806370a08231146104c957806370c2f239146104ef578063715018a6146105c257610206565b80633092afd5146104145780633726230a1461043a57806340c10f191461044257806342842e0e1461046e57610206565b8063095ea7b3116101d9578063095ea7b31461036c57806318160ddd1461039857806323b872dd146103b25780632f745c59146103e857610206565b806301ffc9a71461020b57806302fe53051461024657806306fdde03146102b6578063081812fc14610333575b600080fd5b6102326004803603602081101561022157600080fd5b50356001600160e01b03191661097f565b604080519115158252519081900360200190f35b6102b46004803603602081101561025c57600080fd5b810190602081018135600160201b81111561027657600080fd5b82018360208201111561028857600080fd5b803590602001918460018302840111600160201b831117156102a957600080fd5b5090925090506109e2565b005b6102be610a55565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102f85781810151838201526020016102e0565b50505050905090810190601f1680156103255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103506004803603602081101561034957600080fd5b5035610ae8565b604080516001600160a01b039092168252519081900360200190f35b6102b46004803603604081101561038257600080fd5b506001600160a01b038135169060200135610b4a565b6103a0610c20565b60408051918252519081900360200190f35b6102b4600480360360608110156103c857600080fd5b506001600160a01b03813581169160208101359091169060400135610c33565b6103a0600480360360408110156103fe57600080fd5b506001600160a01b038135169060200135610cde565b6102b46004803603602081101561042a57600080fd5b50356001600160a01b0316610d5b565b6103a0610e6b565b6103a06004803603604081101561045857600080fd5b506001600160a01b038135169060200135610e75565b6102b46004803603606081101561048457600080fd5b506001600160a01b03813581169160208101359091169060400135611037565b610350600480360360208110156104ba57600080fd5b50356110a6565b6102be611114565b6103a0600480360360208110156104df57600080fd5b50356001600160a01b0316611175565b6105726004803603606081101561050557600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561053457600080fd5b82018360208201111561054657600080fd5b803590602001918460208302840111600160201b8311171561056757600080fd5b5090925090506111d8565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ae578181015183820152602001610596565b505050509050019250505060405180910390f35b6102b4611448565b6103506114f4565b610232611503565b6102be61150c565b6102b4600480360360208110156105f857600080fd5b50356001600160a01b031661156d565b6102b46004803603602081101561061e57600080fd5b503515156116db565b6102b46004803603604081101561063d57600080fd5b506001600160a01b038135169060200135611750565b6102b46004803603604081101561066957600080fd5b506001600160a01b0381351690602001351515611908565b6103a06004803603602081101561069757600080fd5b5035611a0d565b6102b4600480360360408110156106b457600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156106de57600080fd5b8201836020820111156106f057600080fd5b803590602001918460208302840111600160201b8311171561071157600080fd5b509092509050611a98565b6102b46004803603602081101561073257600080fd5b810190602081018135600160201b81111561074c57600080fd5b82018360208201111561075e57600080fd5b803590602001918460018302840111600160201b8311171561077f57600080fd5b509092509050611c7a565b6102b4600480360360808110156107a057600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156107da57600080fd5b8201836020820111156107ec57600080fd5b803590602001918460018302840111600160201b8311171561080d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611ce8945050505050565b6102b46004803603602081101561086457600080fd5b810190602081018135600160201b81111561087e57600080fd5b82018360208201111561089057600080fd5b803590602001918460018302840111600160201b831117156108b157600080fd5b509092509050611d94565b610232600480360360408110156108d257600080fd5b506001600160a01b038135169060200135611e02565b6102be600480360360208110156108fe57600080fd5b5035611e26565b6102326004803603604081101561091b57600080fd5b506001600160a01b0381358116916020013516611f7a565b6102b46004803603602081101561094957600080fd5b50356001600160a01b0316611fa8565b6102326004803603602081101561096f57600080fd5b50356001600160a01b03166120aa565b60006001600160e01b031982166380ac58cd60e01b14806109b057506001600160e01b03198216635b5e139f60e01b145b806109cb57506001600160e01b0319821663ed83eb3760e01b145b806109da57506109da826120c8565b90505b919050565b6109ea6120e7565b6001600160a01b03166109fb6114f4565b6001600160a01b031614610a44576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b610a50600b83836125fe565b505050565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610ade5780601f10610ab357610100808354040283529160200191610ade565b820191906000526020600020905b815481529060010190602001808311610ac157829003601f168201915b5050505050905090565b6000610af3826120eb565b610b2e5760405162461bcd60e51b815260040180806020018281038252602c8152602001806127d2602c913960400191505060405180910390fd5b506000908152600760205260409020546001600160a01b031690565b6000610b55826110a6565b9050806001600160a01b0316836001600160a01b03161415610ba85760405162461bcd60e51b81526004018080602001828103825260218152602001806128b76021913960400191505060405180910390fd5b806001600160a01b0316610bba6120e7565b6001600160a01b03161480610bdb5750610bdb81610bd66120e7565b611f7a565b610c165760405162461bcd60e51b81526004018080602001828103825260388152602001806127476038913960400191505060405180910390fd5b610a508383612134565b6000600454610c2d610e6b565b03905090565b600a5460ff16610c87576040805162461bcd60e51b815260206004820152601a602482015279537461724e46543a206d757374207472616e7366657261626c6560301b604482015290519081900360640190fd5b610c98610c926120e7565b826121a2565b610cd35760405162461bcd60e51b815260040180806020018281038252603181526020018061290b6031913960400191505060405180910390fd5b610a508383836121f9565b60008060015b600554811015610d1d57610cf88582611e02565b15610d155783821415610d0e579150610d559050565b6001820191505b600101610ce4565b5060405162461bcd60e51b815260040180806020018281038252602b8152602001806126a0602b913960400191505060405180910390fd5b92915050565b610d636120e7565b6001600160a01b0316610d746114f4565b6001600160a01b031614610dbd576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff16610e22576040805162461bcd60e51b81526020600482015260156024820152741b5a5b9d195c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038116600081815260096020526040808220805460ff19169055517f7df677640dd30a79584f8ecea06aeea15d215b861c5d3b5f8c26962d691f820e9190a250565b6005546000190190565b3360009081526009602052604081205460ff16610ed3576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b6001600160a01b038316610f185760405162461bcd60e51b815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b600580546040805180820182526001600160a01b038781168083526001600160601b0388811660208086019182526000938452600681528684208054600190810190915589549081018a5598845285517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909901805492516001600160a01b031990931699861699909917909416600160a01b91909216021790955582519081019092528382529192610fce9187908590612316565b6110095760405162461bcd60e51b81526004018080602001828103825260338152602001806128d86033913960
400191505060405180910390fd5b60405182906001600160a01b03871690600090600080516020612897833981519152908290a4509392505050565b600a5460ff1661108b576040805162461bcd60e51b815260206004820152601a602482015279537461724e46543a206d757374207472616e7366657261626c6560301b604482015290519081900360640190fd5b610a5083838360405180602001604052806000815250611ce8565b60006110b1826120eb565b6110ec5760405162461bcd60e51b81526004018080602001828103825260298152602001806127a96029913960400191505060405180910390fd5b600582815481106110f957fe5b6000918252602090912001546001600160a01b031692915050565b600b8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ade5780601f10610ab357610100808354040283529160200191610ade565b60006001600160a01b0382166111bc5760405162461bcd60e51b815260040180806020018281038252602a81526020018061277f602a913960400191505060405180910390fd5b506001600160a01b031660009081526006602052604090205490565b3360009081526009602052604090205460609060ff16611239576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b6001600160a01b03851661127e5760405162461bcd60e51b815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b60008467ffffffffffffffff8111801561129757600080fd5b506040519080825280602002602001820160405280156112c1578160200160208202803683370190505b506001600160a01b03871660009081526006602052604081208054880190559091505b815181101561143c57600554604080518082019091526001600160a01b03891681526000906020810188888681811061131957fe5b905060200201356001600160601b031681525090508184848151811061133b57fe5b60209081029190910181019190915260058054600181018255600091825283517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09091018054858501516001600160601b0316600160a01b026001600160a01b039384166001600160a01b0319909216919091179092169190911790556040805192830190528082526113d1918b908590612316565b61140c5760405162461bcd60e51b81526004018080602001828103825260338152602001806128d86033913960400191505060405180910390fd5b60405182906001600160a01b038b1690600090600080516020612897833981519152908290a450506001016112e4565b5090505b949350505050565b6114506120e7565b6001600160a01b03166114616114f4565b6001600160a01b0316146114aa576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600a5460ff1690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ade5780601f10610ab357610100808354040283529160200191610ade565b6115756120e7565b6001600160a01b03166115866114f4565b6001600160a01b0316146115cf576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b6001600160a01b03811661162a576040805162461bcd60e51b815260206004820152601f60248201527f6d696e746572206d757374206e6f74206265206e756c6c206164647265737300604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff161561168f576040805162461bcd60e51b81526020600482015260146024820152731b5a5b9d195c88185b1c9958591e48185919195960621b604482015290519081900360640190fd5b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f3a159411d00fa06a3ec11d4578931f1b7f877cceadb1e083929d74ec020cb2439190a250565b6116e36120e7565b6001600160a01b03166116f46114f4565b6001600160a01b03161461173d576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b3360009081526009602052604090205460ff166117ae576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b6117b9610c926120e7565b6117f45760405162461bcd60e51b815260040180806020018281038252602881526020018061293c6028913960400191505060405180910390fd5b6117fe8282611e02565b611844576040805162461bcd60e51b815260206004820152601260248201527129ba30b927232a1d103737ba1037bbb732b960711b604482015290519081900360640190fd5b61184f600082612134565b6004805460010190556001600160a01b03821660009081526006602052604081208054600019019055600580548390811061188657fe5b6000918252602082200180546001600160a01b0319166001600160a01b03939093169290921790915560058054839081106118bd57fe5b6000918252602082200180546001600160601b0393909316600160a01b026001600160a01b039384161790556040518392851690600080516020612897833981519152908390a45050565b6119106120e7565b6001600160a01b0316826001600160a01b03161415611976576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80600860006119836120e7565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556119c76120e7565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000611a18826120eb565b611a69576040805162461bcd60e51b815260206004820152601f60248201527f537461724e46543a20537461724e465420646f6573206e6f7420657869737400604482015290519081900360640190fd5b60058281548110611a7657fe5b600091825260209091200154600160a01b90046001600160601b031692915050565b3360009081526009602052604090205460ff16611af6576040805162461bcd60e51b815260206004820152601760248201527629ba30b927232a1d1036bab9ba1031329036b4b73a32b960491b604482015290519081900360640190fd5b60048054820190556001600160a01b0383166000908152600660205260408120805483900390555b81811015611c74576000838383818110611b3457fe5b905060200201359050611b48610c926120e7565b611b835760405162461bcd60e51b815260040180806020018281038252602881526020018061293c6028913960400191505060405180910390fd5b611b8d8582611e02565b611bd3576040805162461bcd60e51b815260206004820152601260248201527129ba30b927232a1d103737ba1037bbb732b960711b604482015290519081900360640190fd5b611bde600082612134565b600060058281548110611bed57fe5b6000918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091556005805483908110611c2457fe5b6000918252602082200180546001600160601b0393909316600160a01b026001600160a01b039384161790556040518392881690600080516020612897833981519152908390a450600101611b1e565b50505050565b611c826120e7565b6001600160a01b0316611c936114f4565b6001600160a01b031614611cdc576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b610a50600383836125fe565b600a5460ff16611d3c576040805162461bcd60e51b815260206004820152601a602482015279537461724e46543a206d757374207472616e7366657261626c6560301b604482015290519081900360640190fd5b611d4d611d476120e7565b836121a2565b611d885760405162461bcd60e51b815260040180806020018281038252603181526020018061290b6031913960400191505060405180910390fd5b611c74848484846124cb565b611d9c6120e7565b6001600160a01b0316611dad6114f4565b6001600160a01b031614611df6576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604482015290519081900360640190fd5b610a50600283836125fe565b600080611e0e836110a6565b6001600160a01b039081169085161491505092915050565b6060611e31826120eb565b611e6c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612868602f913960400191505060405180910390fd5b600b5460026000196101006001841615020190911604611e9b57604051806020016040528060008152506109da565b600b611ea68361251d565b6040516020018083805460018160011615610100020316600290048015611f045780601f10611ee2576101008083540402835291820191611f04565b820191906000526020600020905b815481529060010190602001808311611ef0575b5050825160208401908083835b60208310611f305780518252601f199092019160209182019101611f11565b5181516020939093036101000a600019018019909116921691909117905264173539b7b760d91b92019182525060408051808303601a190181526005909201905295945050505050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b611fb06120e7565b6001600160a01b0316611fc16114f4565b6001600160a01b03161461200a576040805162461bcd60e51b815260206004820181905260248201526000805160206127fe833981519152604
482015290519081900360640190fd5b6001600160a01b03811661204f5760405162461bcd60e51b81526004018080602001828103825260268152602001806126fd6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526009602052604090205460ff1690565b6001600160e01b03191660009081526001602052604090205460ff1690565b3390565b6000808211801561210357506120ff610e6b565b8211155b80156109da57506005828154811061211757fe5b6000918252602090912001546001600160a01b0316151592915050565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612169826110a6565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806121ae836110a6565b9050806001600160a01b0316846001600160a01b031614806121e95750836001600160a01b03166121de84610ae8565b6001600160a01b0316145b8061144057506114408185611f7a565b6122038382611e02565b61223e5760405162461bcd60e51b815260040180806020018281038252602981526020018061283f6029913960400191505060405180910390fd5b6001600160a01b0382166122835760405162461bcd60e51b81526004018080602001828103825260248152602001806127236024913960400191505060405180910390fd5b61228e600082612134565b6001600160a01b0380841660009081526006602052604080822080546000190190559184168152208054600101905560058054839190839081106122ce57fe5b6000918252602082200180546001600160a01b0319166001600160a01b03938416179055604051839285811692908716916000805160206128978339815191529190a4505050565b600061232a846001600160a01b03166125f8565b156124c057836001600160a01b031663150b7a026123466120e7565b8786866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156123b95781810151838201526020016123a1565b50505050905090810190601f1680156123e65780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561240857600080fd5b505af192505050801561242d57506040513d602081101561242857600080fd5b505160015b6124a6573d80801561245b576040519150601f19603f3d011682016040523d82523d6000602084013e612460565b606091505b50805161249e5760405162461bcd60e51b81526004018080602001828103825260328152602001806126cb6032913960400191505060405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611440565b506001949350505050565b6124d68484846121f9565b6124e284848484612316565b611c745760405162461bcd60e51b81526004018080602001828103825260328152602001806126cb6032913960400191505060405180910390fd5b60608161254257506040805180820190915260018152600360fc1b60208201526109dd565b8160005b811561255a57600101600a82049150612546565b60008167ffffffffffffffff8111801561257357600080fd5b506040519080825280601f01601f19166020018201604052801561259e576020820181803683370190505b50859350905060001982015b83156125ef57600a840660300160f81b828280600190039350815181106125cd57fe5b60200101906001600160f81b031916908160001a905350600a840493506125aa565b50949350505050565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612634576000855561267a565b82601f1061264d5782800160ff1982351617855561267a565b8280016001018555821561267a579182015b8281111561267a57823582559160200191906001019061265f565b5061268692915061268a565b5090565b5b80821115612686576000815560010161268b56fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572537461724e46543a206d696e7420746f20746865207a65726f20616464726573734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572537461724e46543a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564537461724e46543a2063616c6c6572206973206e6f7420617070726f766564206f72206f776e6572a2646970667358221220e5000363c77d4f39bc54684f60cc2bf853be6c4aaf08492300912dc4294166b964736f6c63430007060033

Deployed Bytecode Sourcemap

966:16809:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2882:353;;;;;;;;;;;;;;;;-1:-1:-1;2882:353:9;-1:-1:-1;;;;;;2882:353:9;;. i;. -;;;;;;;;;;;;;;;;;;16582:93;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16582:93:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16582:93:9;;;;;;;;;;-1:-1:-1;16582:93:9;;-1:-1:-1;16582:93:9;-1:-1:-1;16582:93:9;. i;. -;;5821:98;;;. i;. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7021:263;;;;;;;;;;;;;;;;-1:-1:-1;7021:263:9;;. i;. -;;;;-1:-1:-1;;;;;7021:263:9;;;;;;;;;;;;;;6574:386;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6574:386:9;;;;;;;;. i;4161:104::-;;;. i;. -;;;;;;;;;;;;;;;;7947:373;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7947:373:9;;;;;;;;;;;;;;;;;. i;4434:455::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4434:455:9;;;;;;;;. i;17574:198::-;;;;;;;;;;;;;;;;-1:-1:-1;17574:198:9;-1:-1:-1;;;;;17574:198:9;;. i;3987:103::-;;;. i;11158:607::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11158:607:9;;;;;;;;. i;8386:188::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8386:188:9;;;;;;;;;;;;;;;;;. i;5256:262::-;;;;;;;;;;;;;;;;-1:-1:-1;5256:262:9;;. i;3621:87::-;;;. i;4948:251::-;;;;;;;;;;;;;;;;-1:-1:-1;4948:251:9;-1:-1:-1;;;;;4948:251:9;;. i;11771:846::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11771:846:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11771:846:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11771:846:9;;;;;;;;;;-1:-1:-1;11771:846:9;;-1:-1:-1;11771:846:9;-1:-1:-1;11771:846:9;. i;. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:145:8;;;. i;1076:85::-;;;. i;3469:88:9:-;;;. i;5983:102::-;;;. i;17252:267::-;;;;;;;;;;;;;;;;-1:-1:-1;17252:267:9;-1:-1:-1;;;;;17252:267:9;;. i;16754:108::-;;;;;;;;;;;;;;;;-1:-1:-1;16754:108:9;;;;. i;12623:501::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12623:501:9;;;;;;;;. i;7351:294::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7351:294:9;;;;;;;;;;. i;3760:174::-;;;;;;;;;;;;;;;;-1:-1:-1;3760:174:9;;. i;13130:723::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13130:723:9;;;;;;;;;;;;;;;-1:-1:-1;;;13130:723:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13130:723:9;;;;;;;;;;-1:-1:-1;13130:723:9;;-1:-1:-1;13130:723:9;-1:-1:-1;13130:723:9;. i;17099:101::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17099:101:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17099:101:9;;;;;;;;;;-1:-1:-1;17099:101:9;;-1:-1:-1;17099:101:9;-1:-1:-1;17099:101:9;. i;8640:363::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8640:363:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8640:363:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8640:363:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8640:363:9;;-1:-1:-1;8640:363:9;;-1:-1:-1;;;;;8640:363:9:i;16933:93::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16933:93:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16933:93:9;;;;;;;;;;-1:-1:-1;16933:93:9;;-1:-1:-1;16933:93:9;-1:-1:-1;16933:93:9;. i;5578:181::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5578:181:9;;;;;;;;. i;6151:366::-;;;;;;;;;;;;;;;;-1:-1:-1;6151:366:9;;. i;7711:174::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7711:174:9;;;;;;;;;;. i;2002:240:8:-;;;;;;;;;;;;;;;;-1:-1:-1;2002:240:8;-1:-1:-1;;;;;2002:240:8;;. i;3296:102:9:-;;;;;;;;;;;;;;;;-1:-1:-1;3296:102:9;-1:-1:-1;;;;;3296:102:9;;. i;2882:353::-;2992:4;-1:-1:-1;;;;;;3027:40:9;;-1:-1:-1;;;3027:40:9;;:100;;-1:-1:-1;;;;;;;3079:48:9;;-1:-1:-1;;;3079:48:9;3027:100;:153;;;-1:-1:-1;;;;;;;3139:41:9;;-1:-1:-1;;;3139:41:9;3027:153;:201;;;;3192:36;3216:11;3192:23;:36::i;. -;3012:216;;2882:353;;;;. o;16582:93::-;1299:12:8;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;16651:17:9::1;:8;16662:6. 0;;16651:17. 1;. i;. -;;16582:93. 0;;. o;5821:98::-;5907:5;5900:12;;;;;;;-1:-1:-1;;5900:12:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5875:13;;5900:12;;5907:5;;5900:12;;5907:5;5900:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:98;. o;7021:263::-;7105:7;7149:16;7157:7;7149;:16::i;. -;7128:107;;;;-1:-1:-1;;;7128:107:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7253:24:9;;;;:15;:24;;;;;;-1:-1:-1;;;;;7253:24:9;;7021:263::o;6574:386::-;6646:13;6662:16;6670:7;6662;:16::i;. -;6646:32;;6702:5;-1:-1:-1;;;;;6696:11:9;:2;-1:-1:-1;;;;;6696:11:9;;;6688:57;;;;-1:-1:-1;;;6688:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6793:5;-1:-1:-1;;;;;6777:21:9;:12;:10;:12::i;. -;-1:-1:-1;;;;;6777:21:9;;:62;;;;6802:37;6819:5;6826:12;:10;:12::i;. -;6802:16;:37::i;. -;6756:165;;;;-1:-1:-1;;;6756:165:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6932:21;6941:2;6945:7;6932:8;:21::i;4161:104::-;4205:7;4248:10;;4231:14;:12;:14::i;. -;:27;4224:34;;4161:104;. o;7947:373::-;2565:13;;;;2557:52;;;;;-1:-1:-1;;;2557:52:9;;;;;;;;;;;;-1:-1:-1;;;2557:52:9;;;;;;;;;;;;;;;8158:41. 1;8177:12;:10;:12::i;. -;8191:7;8158:18;:41::i;. -;8137:137;;;;-1:-1:-1::0;;;8137:137:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8285:28;8295:4;8301:2;8305:7;8285:9;:28::i;4434:455::-:0;4526:7;;4600:1;4583:237;4607:7;:14;4603:18;;4583:237;;;4646:19;4656:5;4663:1;4646:9;:19::i;. -;4642:168;;;4705:5;4689:12;:21;4685:76;;;4741:1;-1:-1:-1;4734:8:9;;-1:-1:-1;4734:8:9;4685:76;4794:1;4778:17;;;;4642:168;4623:3;;4583:237;;;;4829:53;;-1:-1:-1;;;4829:53:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4434:455;;;;;. o;17574:198::-;1299:12:8;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;-1:-1:-1;;;;;17649:16:9;. 1;;. 0;;;:8. 1;:16;. 0;;;;;. 1;;17641:50;;;. 0;;-1:-1:-1;;;17641:50:9;;. 1;;. 0;. 1;. 0;. 1;. 0;;;;-1:-1:-1;;;17641:50:9;;;;;;;;;;;;;. 1;;-1:-1:-1::0;;;;;17708:16:9;. 1;;. 0;;;:8. 1;:16;. 0;;;;;17701:23;;-1:-1:-1;;17701:23:9::1;. 0;;17739:26;. 1;. 0;17708:16;17739:26. 1;17574:198. 0;. o;3987:103::-;4067:7;:14;-1:-1:-1;;4067:16:9;3987:103;. o;11158:607::-;2412:10;11256:7;2403:20;;;:8;:20;;;;;;;;2395:56;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;;;;-1:-1:-1;;;;;11287:21:9;. 1;11279:67;;;;-1:-1:-1::0;;;11279:67:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11375:7;:14. 0;;11418:35. 1;. 0;;;;. 1;. 0;;-1:-1:-1;;;;;11418:35:9;;. 1;. 0;;;-1:-1:-1;;;;;11418:35:9;;. 1;;. 0;;. 1;. 0;;;-1:-1:-1;11464:18:9;;;:9. 1;:18. 0;;;;;:23;;11486:1. 1;11464:23. 0;;. 1;. 0;;;11497:18;;;;. 1;. 0;;;;;;;;;;. 1;. 0;;;;-1:-1:-1;;;;;;11497:18:9;;. 1;. 0;;. 1;. 0;;;. 1;. 0;;. 1;-1:-1:-1::0;;;11497:18:9;;;. 1;;;. 0;;;11547:56;;;;. 1;. 0;;;;;;11375:14;;11547:56. 1;. 0;11418:35;;11375:14;;11547:22. 1;:56::i;. -;11526:154;;;;-1:-1:-1::0;;;11526:154:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11696:38;. 0;11726:7;;-1:-1:-1;;;;;11696:38:9;. 1;. 0;11713:1. 1;. 0;-1:-1:-1;;;;;;;;;;;11696:38:9;11713:1;;11696:38. 1;-1:-1:-1::0;11751:7:9;11158:607;-1:-1:-1;;;11158:607:9:o;8386:188::-;2565:13;;;;2557:52;;;;;-1:-1:-1;;;2557:52:9;;;;;;;;;;;;-1:-1:-1;;;2557:52:9;;;;;;;;;;;;;;;8528:39. 1;8545:4;8551:2;8555:7;8528:39;;;;;;;;;;;. 0;:16. 1;:39::i;5256:262::-:0;5336:7;5380:16;5388:7;5380;:16::i;. -;5359:104;;;;-1:-1:-1;;;5359:104:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5488:7;5496;5488:16;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;;;5488:22:9;;5256:262;-1:-1:-1;;5256:262:9:o;3621:87::-;3693:8;3686:15;;;;;;;;-1:-1:-1;;3686:15:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3661:13;;3686:15;;3693:8;;3686:15;;3693:8;3686:15;;;;;;;;;;;;;;;;;;;;;;;;4948:251;5028:7;-1:-1:-1;;;;;5072:19:9;;5051:108;;;;-1:-1:-1;;;5051:108:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5176:16:9;;;;;:9;:16;;;;;;;4948:251::o;11771:846::-;2412:10;2403:20;;;;:8;:20;;;;;;11918:16;;2403:20;;2395:56;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;;;;-1:-1:-1;;;;;11954:21:9;. 1;11946:67;;;;-1:-1:-1::0;;;11946:67:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12023:20;12060:6;12046:21;;;;;;;;. 0;. 1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;. 0;-1:-1:-1;12046:21:9::1;-1:-1:-1::0;;;;;;12078:18:9;. 1;;. 0;;;:9. 1;:18;. 0;;;;:28;;;. 1;. 0;;12023:44;;-1:-1:-1;12117:473:9::1;12141:3;:10;12137:1;:14;12117:473;;;12190:7;:14. 0;12237:41. 1;. 0;;;;. 1;. 0;;;-1:-1:-1;;;;;12237:41:9;. 1;. 0;;12172:15. 1;. 0;12237:41. 1;. 0;. 1;12267:6. 0;;12274:1;12267:9;;. 1;;;;;;;;;;;-1:-1:-1::0;;;;;12237:41:9::1;;;. 0;12218:60. 1;;1
2301:7;12292:3;12296:1;12292:6;;;;;;;;;. 0;;. 1;. 0;;;;;;:16;;;;12322:7. 1;:18. 0;;. 1;. 0;. 1;. 0;;-1:-1:-1;12322:18:9;;;;;;;;. 1;. 0;;;;. 1;. 0;-1:-1:-1;;;;;12322:18:9::1;-1:-1:-1::0;;;12322:18:9::1;-1:-1:-1::0;;;;;12322:18:9;;. 1;-1:-1:-1::0;;;;;;12322:18:9;;. 1;. 0;;;. 1;. 0;;. 1;. 0;;;. 1;. 0;;12380:56. 1;. 0;;;;. 1;. 0;;;;;. 1;. 0;12415:7;;12424;;12380:22. 1;:56::i;. -;12355:166;;;;-1:-1:-1::0;;;12355:166:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12541:38;. 0;12571:7;;-1:-1:-1;;;;;12541:38:9;. 1;. 0;12558:1. 1;. 0;-1:-1:-1;;;;;;;;;;;12541:38:9;12558:1;;12541:38. 1;-1:-1:-1::0;;12153:3:9::1;;12117:473;;;-1:-1:-1::0;12607:3:9;-1:-1:-1;2461:1:9::1;11771:846. 0;;;;;;. o;1708:145:8:-;1299:12;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;1814:1. 1;1798:6. 0;;1777:40. 1;. 0;-1:-1:-1;;;;;1798:6:8;;. 1;. 0;1777:40. 1;. 0;1814:1;;1777:40. 1;1844:1;1827:19. 0;;-1:-1:-1;;;;;;1827:19:8::1;. 0;;1708:145::o;1076:85::-;1122:7;1148:6;-1:-1:-1;;;;;1148:6:8;1076:85;. o;3469:88:9:-;3537:13;;;;3469:88;. o;5983:102::-;6071:7;6064:14;;;;;;;;-1:-1:-1;;6064:14:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6039:13;;6064:14;;6071:7;;6064:14;;6071:7;6064:14;;;;;;;;;;;;;;;;;;;;;;;;17252:267;1299:12:8;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;-1:-1:-1;;;;;17324:20:9;. 1;17316:64;;;. 0;;-1:-1:-1;;;17316:64:9;;. 1;;. 0;. 1;. 0;. 1;. 0;;;;. 1;. 0;;;;;;;;;;;;;. 1;;-1:-1:-1::0;;;;;17399:16:9;. 1;;. 0;;;:8. 1;:16;. 0;;;;;. 1;;17398:17;17390:50;;;. 0;;-1:-1:-1;;;17390:50:9;;. 1;;. 0;. 1;. 0;. 1;. 0;;;;-1:-1:-1;;;17390:50:9;;;;;;;;;;;;;. 1;;-1:-1:-1::0;;;;;17450:16:9;. 1;;. 0;;;:8. 1;:16;. 0;;;;;:23;;-1:-1:-1;;17450:23:9::1;17469:4;17450:23;. 0;;17488:24;. 1;. 0;17450:16;17488:24. 1;17252:267. 0;. o;16754:108::-;1299:12:8;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;16827:13:9::1;:28. 0;;-1:-1:-1;;16827:28:9::1;. 0;. 1;;. 0;;;. 1;. 0;;16754:108::o;12623:501::-;2412:10;2403:20;;;;:8;:20;;;;;;;;2395:56;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;;;;12726:36. 1;12745:12;:10;:12::i;12726:36::-;12705:123;;;;-1:-1:-1::0;;;12705:123:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12846:22;12856:7;12865:2;12846:9;:22::i;. -;12838:53;;;. 0;;-1:-1:-1;;;12838:53:9;;. 1;;. 0;. 1;. 0;. 1;. 0;;;;-1:-1:-1;;;12838:53:9;;;;;;;;;;;;;. 1;;12929:24;12946:1;12950:2;12929:8;:24::i;. -;12963:10;:12. 0;;. 1;;. 0;;-1:-1:-1;;;;;12985:18:9;. 1;12963:10;12985:18. 0;;;:9. 1;:18;. 0;;;;:23;;-1:-1:-1;;12985:23:9;;;13018:7. 1;:11. 0;;13026:2;;13018:11;. 1;;;;;;. 0;;;. 1;. 0;;. 1;:21. 0;;-1:-1:-1;;;;;;13018:21:9::1;-1:-1:-1::0;;;;;13018:21:9;;;. 1;. 0;;;. 1;. 0;;;13049:7. 1;:11. 0;;13057:2;;13049:11;. 1;;;;;;. 0;;;. 1;. 0;;. 1;:19. 0;;-1:-1:-1;;;;;13049:19:9;;;. 1;-1:-1:-1::0;;;13049:19:9::1;-1:-1:-1::0;;;;;13049:19:9;;. 1;;. 0;;13084:33. 1;. 0;13114:2;;13084:33;. 1;. 0;-1:-1:-1;;;;;;;;;;;13084:33:9;13049:11;;13084:33. 1;12623:501. 0;;. o;7351:294::-;7469:12;:10;:12::i;. -;-1:-1:-1;;;;;7457:24:9;:8;-1:-1:-1;;;;;7457:24:9;;;7449:62;;;;;-1:-1:-1;;;7449:62:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;7567:8;7522:18;:32;7541:12;:10;:12::i;. -;-1:-1:-1;;;;;7522:32:9;;;;;;;;;;;;;;;;;-1:-1:-1;7522:32:9;;;:42;;;;;;;;;;;;:53;;-1:-1:-1;;7522:53:9;;;;;;;;;;;7605:12;:10;:12::i;. -;-1:-1:-1;;;;;7590:48:9;;7629:8;7590:48;;;;;;;;;;;;;;;;;;;;7351:294;;. o;3760:174::-;3811:7;3838:16;3846:7;3838;:16::i;. -;3830:60;;;;;-1:-1:-1;;;3830:60:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3907:7;3915;3907:16;;;;;;;;;;;;;;;;;:20;-1:-1:-1;;;3907:20:9;;-1:-1:-1;;;;;3907:20:9;;3760:174;-1:-1:-1;;3760:174:9:o;13130:723::-;2412:10;2403:20;;;;:8;:20;;;;;;;;2395:56;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;-1:-1:-1;;;2395:56:9;;;;;;;;;;;;;;;13245:10. 1;:24. 0;;;. 1;. 0;;-1:-1:-1;;;;;13279:18:9;. 1;13245:10;13279:18. 0;;;:9. 1;:18;. 0;;;;:32;;;;. 1;. 0;;13321:526. 1;13341:14. 0;;. 1;13321:526;;;13376:15;13394:3;;13398:1;13394:6;;;;;;;;;;;;;13376:24;;13439:41;13458:12;:10;:12::i;13439:41::-;13414:140;;;;-1:-1:-1::0;;;13414:140:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13576:27;13586:7;13595;13576:9;:27::i;. -;13568:58;;;. 0;;-1:-1:-1;;;13568:58:9;;. 1;;. 0;. 1;. 0;. 1;. 0;;;;-1:-1:-1;;;13568:58:9;;;;;;;;;;;;;. 1;;13671:29;13688:1;13692:7;13671:8;:29::i;. -;13739:1;13714:7;13722;13714:16;;;;;;;;;. 0;;;. 1;. 0;;. 1;:26. 0;;-1:-1:-1;;;;;;13714:26:9::1;-1:-1:-1::0;;;;;13714:26:9;;;. 1;. 0;;;. 1;. 0;;;13754:7. 1;:16. 0;;13762:7;;13754:16;. 1;;;;;;. 0;;;. 1;. 0;;. 1;:24. 0;;-1:-1:-1;;;;;13754:24:9;;;. 1;-1:-1:-1::0;;;13754:24:9::1;-1:-1:-1::0;;;;;13754:24:9;;. 1;;. 0;;13798:38. 1;. 0;13828:7;;13798:38;. 1;. 0;-1:-1:-1;;;;;;;;;;;13798:38:9;13754:16;;13798:38. 1;-1:-1:-1::0;13357:3:9::1;;13321:526;;;;13130:723. 0;;;. o;17099:101::-;1299:12:8;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;17174:19:9::1;:7;17184:9. 0;;17174:19. 1;. i;8640:363::-:0;2565:13;;;;2557:52;;;;;-1:-1:-1;;;2557:52:9;;;;;;;;;;;;-1:-1:-1;;;2557:52:9;;;;;;;;;;;;;;;8831:41. 1;8850:12;:10;:12::i;. -;8864:7;8831:18;:41::i;. -;8810:137;;;;-1:-1:-1::0;;;8810:137:9::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8957:39;8971:4;8977:2;8981:7;8990:5;8957:13;:39::i;16933:93::-:0;1299:12:8;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;17004:15:9::1;:5;17012:7. 0;;17004:15. 1;. i;5578:181::-:0;5672:4;5692:13;5708:11;5716:2;5708:7;:11::i;. -;-1:-1:-1;;;;;5736:16:9;;;;;;;;-1:-1:-1;;5578:181:9;;;;. o;6151:366::-;6232:13;6282:16;6290:7;6282;:16::i;. -;6261:110;;;;-1:-1:-1;;;6261:110:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6403:8;6397:22;;-1:-1:-1;;6397:22:9;;;;;;;;;;;:113;;;;;;;;;;;;;;;;;6458:8;6468:18;:7;:16;:18::i;. -;6441:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6441:55:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6441:55:9;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6441:55:9;;;;;;;;;;;;;;-1:-1:-1;;;6441:55:9;;;;;-1:-1:-1;6441:55:9;;;;;;-1:-1:-1;;6441:55:9;;;;;;;;;;;-1:-1:-1;;;;;6151:366:9:o;7711:174::-;-1:-1:-1;;;;;7843:25:9;;;7816:4;7843:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;7711:174::o;2002:240:8:-;1299:12;:10;:12::i;. -;-1:-1:-1;;;;;1288:23:8;:7;:5;:7::i;. -;-1:-1:-1;;;;;1288:23:8;;1280:68;;;;;-1:-1:-1;;;1280:68:8;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1280:68:8;;;;;;;;;;;;;;;-1:-1:-1;;;;;2090:22:8;. 1;2082:73;;;;-1:-1:-1::0;;;2082:73:8::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2191:6;. 0;;2170:38. 1;. 0;-1:-1:-1;;;;;2170:38:8;;. 1;. 0;2191:6;. 1;. 0;2170:38. 1;. 0;. 1;2218:6;:17. 0;;-1:-1:-1;;;;;;2218:17:8::1;-1:-1:-1::0;;;;;2218:17:8;;;. 1;. 0;;;. 1;. 0;;2002:240::o;3296:102:9:-;-1:-1:-1;;;;;3374:17:9;3351:4;3374:17;;;:8;:17;;;;;;;;;3296:102::o;963:148:2:-;-1:-1:-1;;;;;;1071:33:2;1048:4;1071:33;;;:20;:33;;;;;;;;;963:148::o;598:104:1:-;685:10;598:104;. o;10501:160:9:-;10558:4;10591:1;10581:7;:11;:40;;;;;10607:14;:12;:14::i;. -;10596:7;:25;;10581:40;:73;;;;;10625:7;10633;10625:16;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;;;10625:22:9;:29;;;10501:160;-1:-1:-1;;10501:160:9:o;14839:164::-;14913:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;14913:29:9;-1:-1:-1;;;;;14913:29:9;;;;;;;;:24;;14966:16;14913:24;14966:7;:16::i;. -;-1:-1:-1;;;;;14957:39:9;;;;;;;;;;;14839:164;;. o;10819:278::-;10916:4;10936:13;10952:16;10960:7;10952;:16::i;. -;10936:32;;10997:5;-1:-1:-1;;;;;10986:16:9;:7;-1:-1:-1;;;;;10986:16:9;;:59;;;;11038:7;-1:-1:-1;;;;;11014:31:9;:20;11026:7;11014:11;:20::i;. -;-1:-1:-1;;;;;11014:31:9;;10986:59;:103;;;;11057:32;11074:5;11081:7;11057:16;:32::i;14177:551::-;14317:24;14327:4;14333:7;14317:9;:24::i;. -;14296:112;;;;-1:-1:-1;;;14296:112:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14426:16:9;;14418:65;;;;-1:-1:-1;;;14418:65:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14545:29;14562:1;14566:7;14545:8;:29::i;. -;-1:-1:-1;;;;;14584:15:9;;;;;;;:9;:15;;;;;;:20;;-1:-1:-1;;14584:20:9;;;14614:13;;;;;;:18;;14603:1;14614:18;;;14642:7;:16;;14624:2;;14642:7;14650;;14
642:16;;;;;;;;;;;;;;:36;;-1:-1:-1;;;;;;14642:36:9;-1:-1:-1;;;;;14642:36:9;;;;;;14694:27;;14713:7;;14694:27;;;;;;;;-1:-1:-1;;;;;;;;;;;14694:27:9;14642:16;14694:27;14177:551;;;. o;15556:901::-;15706:4;15726:15;:2;-1:-1:-1;;;;;15726:13:9;;:15::i;. -;15722:708;;;15789:2;-1:-1:-1;;;;;15773:36:9;;15827:12;:10;:12::i;. -;15857:4;15879:7;15904:5;15773:150;;;;;;;;;;;;;-1:-1:-1;;;;;15773:150:9;;;;;;-1:-1:-1;;;;;15773:150:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15773:150:9;;;15757:663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16102:13:9;;16098:308;;16144:102;;-1:-1:-1;;;16144:102:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16098:308;16358:6;16352:13;16343:6;16339:2;16335:15;16328:38;15757:663;-1:-1:-1;;;;;;15985:51:9;-1:-1:-1;;;15985:51:9;;-1:-1:-1;15978:58:9;;15757:663;-1:-1:-1;16446:4:9;15556:901;;;;;;. o;9865:333::-;10008:28;10018:4;10024:2;10028:7;10008:9;:28::i;. -;10067:48;10090:4;10096:2;10100:7;10109:5;10067:22;:48::i;. -;10046:145;;;;-1:-1:-1;;;10046:145:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;210:725:10;266:13;483:10;479:51;;-1:-1:-1;509:10:10;;;;;;;;;;;;-1:-1:-1;;;509:10:10;;;;;;479:51;554:5;539:12;593:75;600:9;;593:75;;625:8;;655:2;647:10;;;;593:75;;;677:19;709:6;699:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;699:17:10;-1:-1:-1;769:5:10;;-1:-1:-1;677:39:10;-1:-1:-1;;;742:10:10;;784:114;791:9;;784:114;;859:2;852:4;:9;847:2;:14;834:29;;816:6;823:7;;;;;;;816:15;;;;;;;;;;;:47;-1:-1:-1;;;;;816:47:10;;;;;;;;-1:-1:-1;885:2:10;877:10;;;;784:114;;;-1:-1:-1;921:6:10;210:725;-1:-1:-1;;;;210:725:10:o;726:413:0:-;1086:20;1124:8;;;726:413::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;. i;. -;;;. o;. -;;;;;;;;;;;;;;

Swarm Source

ipfs://e5000363c77d4f39bc54684f60cc2bf853be6c4aaf08492300912dc4294166b9

Leave a Reply

Your email address will not be published. Required fields are marked *