interface IERC721 is IERC165 {
    /**
     * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to
     * another (`to`).
     *
     *
     *
     * Requirements:
     * - `from`, `to` cannot be zero.
     * - `tokenId` must be owned by `from`.
     * - `tokenId` must be owned by `from`.
     * - If the caller is not `from`, it must be have been allowed to move this
     * NFT by either {approve} or {setApprovalForAll}.
     */

    function safeTransferFrom(address from, address to, uint256 tokenId) external;

}
/**
 * @dev Required interface of an ERC721 compliant contract.
 */
function safeTransferFrom(address from, address to, uint256 tokenId) external;
/**
 * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to
 * another (`to`).
 *
 *
 *
 * Requirements:
 * - `from`, `to` cannot be zero.
 * - `tokenId` must be owned by `from`.
 * - `tokenId` must be owned by `from`.
 * - If the caller is not `from`, it must be have been allowed to move this
 * NFT by either {approve} or {setApprovalForAll}.
 */