Commit Graph

7356 Commits

Author SHA1 Message Date
Larry Knox
4e5bdb8c4e Update versions for hdf5_1_14 develop branch after creation of (#2294)
hdf5_1-14_0 branch for 1.14.0 release.
2022-12-13 14:06:44 -06:00
Scot Breitenfeld
b9f4c001ad added doc. warning for H5Oflush in parallel (#2289) 2022-12-09 21:31:13 -06:00
Neil Fortner
ef4f1f2bd4 Check for size==0 for all datatypes read from disk, not just compound (#2287)
members
2022-12-08 10:30:29 -06:00
Egbert Eich
0b4e9cf976 Compound datatypes may not have members of size 0 (#2243)
* Compound datatypes may not have members of size 0

A member size of 0 may lead to an FPE later on as reported in
CVE-2021-46244. To avoid this, check for this as soon as the
member is decoded.
This should probably be done in H5O_dtype_decode_helper() already,
however it is not clear whether all sizes are expected to be != 0.

This fixes CVE-2021-46244 / Bug #2242.

Signed-off-by: Egbert Eich <eich@suse.com>

* Rework error recovery code in H5O__dtype_decode_helper() and
H5O__dtype_decode().

* Format changes for src/H5Odtype.c.

Signed-off-by: Egbert Eich <eich@suse.com>
Co-authored-by: Neil Fortner <nfortne2@hdfgroup.org>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2022-12-07 16:14:40 -06:00
Dana Robinson
64514392fb Fixes warnings in H5Opline.c error messages (#2281)
* Fixes warnings in H5Opline.c error messages

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-12-06 11:32:39 -08:00
V. Armando Solé
281984b3e3 H5E_ERR_CLS_g symbol missing when compiling C++ plugins (#2269)
C++ HDF5 filter plugin SZ3 fails to build under windows with failure at linking time unless that extern "C" block is added.
2022-12-05 19:19:53 -06:00
Scot Breitenfeld
c1c131260a return error message related to calling API (#2276) 2022-12-02 14:24:43 -06:00
Egbert Eich
24700e8f06 CVE 2021 46242 develop (#2255)
* When evicting driver info block, NULL the corresponding entry

Since H5C_expunge_entry() called (from H5AC_expunge_entry()) sets the  flag
H5C__FLUSH_INVALIDATE_FLAG, the driver info block will be freed. NULLing the
pointer in  f->shared->drvinfo will prevent use-after-free  when it is used in other
functions (like  H5F__dest()) - as other places will check whether the pointer is
initialized before using its value.

This fixes CVE-2021-46242 / Bug #2254

Signed-off-by: Egbert Eich <eich@suse.com>

* When evicting the superblock, NULL the corresponding entry

The call to H5AC_expunge_entry() will free the corresonding structure,
to avoid a use-after-free, the corrsponding pointer entry will be NULLed.

Signed-off-by: Egbert Eich <eich@suse.com>

Signed-off-by: Egbert Eich <eich@suse.com>
2022-12-02 14:24:14 -06:00
Egbert Eich
4e0277c35a Report error if dimensions of chunked storage in data layout < 2 (#2241)
For Data Layout Messages version 1 & 2 the specification state
that the value stored in the data field is 1 greater than the
number of dimensions in the dataspace. For version 3 this is
not explicitly stated but the implementation suggests it to be
the case.
Thus the set value needs to be at least 2. For dimensionality
< 2 an out-of-bounds access occurs as in CVE-2021-45833.

This fixes CVE-2021-45833 / Bug #2240.

Signed-off-by: Egbert Eich <eich@suse.com>

Signed-off-by: Egbert Eich <eich@suse.com>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2022-12-01 23:04:42 -06:00
raylu-hdf
ee4d92e01b Bug Fix: Segfault in H5CX_get_vol_wrap_ctx when H5VLwrap_register is called from an application (#2248)
* Jira HDFFV-10881: Segfault in H5CX_get_vol_wrap_ctx when H5VLwrap_register is called from an application.  A quick and simple fix to make it fail with a relevant error message.

* Format changes.

* Committing clang-format changes

* Minor change: split one condition check into two for clarity.

* Adding doxygen comment for H5VLwrap_register.

* Minor change: adding a little more detail to the Doxygen comment for H5VLwrap_register.
2022-11-17 16:29:21 -06:00
Egbert Eich
0f94940f1a H5O_dtype_decode_helper: Parent of enum needs to have same size as enum itself (#2237)
The size of the enumeration values is determined by the size of the parent.
Functions accessing the enumeration values use the size of the enumeration
to determine the size of each element and how much data to copy. Thus the
size of the enumeration and its parent need to match.
Check here to avoid unpleasant surprises later.

This fixes CVE-2018-14031 / Bug #2236.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-11-11 00:05:00 -06:00
Egbert Eich
34ec3bb7bc Make sure info block for external links has at least 3 bytes (#2234)
According to the specification, the information block for external links
contains 1 byte of version/flag information and two 0 terminated strings
for the object linked to and the full path.
Although not very useful, the minimum string length for each (with
terminating 0) would be one byte.
Checking this will help to avoid SEGVs triggered by bogus files.

This fixes CVE-2018-16438 / Bug #2233.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-11-10 23:41:53 -06:00
Egbert Eich
1750b4b0af Validate location (offset) of the accumulated metadata when comparing (#2231)
Initially, the accumulated metadata location is initialized to HADDR_UNDEF
- the highest available address. Bogus input files may provide a location
or size matching this value. Comparing this address against such bogus
values may provide false positives. This make sure, the value has been
initilized or fail the comparison early and let other parts of the
code deal with the bogus address/size.
Note: To avoid unnecessary checks, we have assumed that if the 'dirty'
member in the same structure is true the location is valid.

This fixes CVE-2018-13867 / Bug #2230.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-11-10 23:24:56 -06:00
Egbert Eich
659bc99fd1 Make H5O__fsinfo_decode() more resilient to out-of-bound reads. (#2229)
When decoding a file space info message in H5O__fsinfo_decode() make
sure each element to be decoded is still within the message. Malformed
hdf5 files may have trunkated content which does not match the
expected size. Checking this will prevent attempting to decode
unrelated data and heap overflows. So far, only free space manager
address data was checked before decoding.

This fixes CVE-2021-45830 / Bug #2228.

Signed-off-by: Egbert Eich <eich@suse.com>

Additions

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2022-11-10 23:20:09 -06:00
Dana Robinson
d93c6fae43 Removes MPE instrumentation support. (#2245)
* Removes MPE instrumentation support.

The Autotools will no longer accept --with-mpe= and the logging commands
have been removed from the FUNC_ENTER macros. CMake has never supported
instrumenting for MPE.

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-11-09 11:06:26 -08:00
Egbert Eich
18c438bdf0 H5O__pline_decode() Make more resilient to out-of-bounds read (#2210)
Malformed hdf5 files may have trunkated content which does not match
the expected size. When this function attempts to decode these it may
read past the end of the allocated space leading to heap overflows
as bounds checking is incomplete.
Make sure each element is within bounds before reading.

This fixes CVE-2019-8396 / HDFFV-10712 / github bug #2209.

Signed-off-by: Egbert Eich <eich@suse.com>

Signed-off-by: Egbert Eich <eich@suse.com>
2022-11-09 10:25:11 -08:00
Dana Robinson
0f30852242 Removes dmalloc support (#2239)
This has not been used to debug the library in a very long time. Most
developers use valgrind, -fsanitize=address, or some other memory checker
instead of this library.

This removes:
    * dmalloc.h include from H5private.h
    * --with-dmalloc= Autotools configure option
    * HDF5_ENABLE_USING_DMALLOC CMake option
2022-11-09 09:22:14 -08:00
Dana Robinson
018f093c09 Removes the memory allocation sanity checks feature (#2218)
* Removes the memory allocation sanity checks feature

* Committing clang-format changes

* Removes zero size checks for H5MM_(c|m)alloc()

* Explicitly return NULL when size == 0 in H5allocate_memory()

* Committing clang-format changes

* Format fix

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-11-03 16:30:08 -07:00
Scot Breitenfeld
40a0e3c7b5 correct H5Ropen_object_reference (#2212) 2022-11-03 09:56:53 -07:00
Dana Robinson
55e3f667d4 Fixed a Doxygen param in H5EScancel (#2213) 2022-11-03 09:55:59 -07:00
Larry Knox
6924d590cc Use ctest_test and APPEND to correctly report passed and failed test numbers in CDash (#2208)
* Change how HPC tests are executed

* Move ctest_test commands for serial and parallel tests into cmake files.

* Update checks for uploading Test.xml to CDash.

* Correct cmake scripots.

* Remove extraneous characters.

* Add ctest_start (APPEND).

* Add binary directories to scripts running ctest_test.

* Correct parameters for appending Test.xml.

* Set CTEST_SITE and CTEST_BUILD_NAME.

* Try to pass site and build_name to ctest_test sripts.

* Add site name and build name for ctest_test commands vi environment.

* Revert "Try to pass site and build_name to ctest_test sripts."

This reverts commit d364aaf0fa.

* Correct typo in src/CMakeLists.txt.

* Update batch scripts to run ctest_test scripts.

Co-authored-by: Allen Byrne <byrn@hdfgroup.org>
2022-11-02 09:02:47 -07:00
Allen Byrne
94119211a7 Correct the CMake link for MPI (#2198) 2022-11-01 16:03:13 -05:00
Larry Knox
11dfa25910 Update copyright headers (#2184)
* Updated source file copyright headers to remove "Copyright by the Board of Trustees
of the University of Illinois", which is kept in the top-level COPYING file.
2022-11-01 16:02:27 -05:00
Allen Byrne
4d0501f48c Fix for documentation misunderstanding on m1 Intel builds (#2188) 2022-10-26 09:24:51 -07:00
Larry Knox
0173706826 Update develop branch version to 1.13.4-1 (#2189)
* Updated version to 1.13.4-1 after creating hdf5_1_13_3 branch for 1.13.3
release.
Added new version to exceptions in lines 74-5 of src/H5.c
2022-10-26 11:07:17 -05:00
Scot Breitenfeld
7d1997ff7b Removed the file, func, line args in the _async APIs fpr doxygen (#2179)
* Removed the: file, func, line args in the _async APIs from the doxygen arguments. Documented H5ESclean.

* format fixes

* fixed DOXYGEN_PREDEFINED

* Fixed the #ifdet logic for doxygen, added missing multi-dataset va_args

* format fixes

* Use H5_DOXYGEN instead of H5_DOXYGEN_FORTRAN

* reordered multidataset declarations

* alt. for H5Aclose_async and H5Acreate_async

* made doxgyen API into seperate blocks

* updated codespell

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-25 10:41:38 -07:00
Allen Byrne
23e237e728 Port VOL User Guide to doxygen (#2165)
* Port VOL User Guide to doxygen

* Fix spelling

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-25 08:51:08 -07:00
Allen Byrne
ea902f9ace Implement option for using CMake GNUInstallDirs (#2175)
* Implement option for using CMake GNUInstallDirs

* Add release notes
2022-10-25 08:50:43 -07:00
Scot Breitenfeld
4e4c7cf66d fixed error code returned for H5Aexits (#2180) 2022-10-25 07:58:23 -05:00
Neil Fortner
7997b53589 Fix problem with variable length attributes being accessed through multiple file handles (#2181)
* Fix bug with variable length attributes being accessed through multiple
file handles.

* Committing clang-format changes

Co-authored-by: Neil Fortner <nfortne2@localhost.localdomain>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-25 07:46:15 -05:00
Neil Fortner
93754cae33 Multi Dataset (#2120)
* Fix bug with cross platform compatibility of references within vlens.
No testing yet.

* Merge from multi_rd_wd_coll_io to a more recent branch from develop.
Untested, probably does not work yet.

* Committing clang-format changes

* Committing clang-format changes

* Fix many bugs in multi dataset branch.  Mostly works, some issues in
SWMR tests.

* Committing clang-format changes

* Disable test in swmr.c that was failing due to bug in HDF5 unrelated to
multi dataset.

* Committing clang-format changes

* Fixed fortran multi-dataset tests

* Fixed xlf errors

* Added benchmark code for multi-datasets

* loops over datasets

* added missing error arg.

* Added gnuplot formatting

* Jonathan Kim original MD benchmarking code

* updated MD benchmarking code

* code clean-up

* Only make files in feature test mode

* misc clean-up

* removed TEST_MDSET_NO_LAST_DSET_2ND_PROC option

* Committing clang-format changes

* Change multi dataset API to use arrays of individual parameters instead
of the parameter struct.

* Committing clang-format changes

* Update to new multi dataset Fortran API and tests. (#1724)

* Update to new multi dataset Fortran API and tests.
* Sync Fortran with develop.
* skipping h5pget_mpio_actual_io_mode_f for now

* Fixed issue with dxpl_id, changed to variable size dim. (#1770)

* Remove "is_coll_broken" field from H5D_io_info_t struct

* Committing clang-format changes

* Minor cleanup in multi dataset code.

* Committing clang-format changes

* Clean up in multi dataset code.

* Committing clang-format changes

* Committing clang-format changes

* Fix speeling

* Fix bug in parallel compression. Switch base_maddr in io_info to be a
union.

* Committing clang-format changes

* Implement selection I/O support with multi dataset.  Will be broken in
parallel until PR 1803 is merged to develop then the MDS branch.

* Committing clang-format changes

* Spelling

* Fix bug in multi dataset that could cause errors when only some of the
datasets in the multi dataset I/O used type conversion.

* Committing clang-format changes

* Integrate multi dataset APIs with VOL layer.  Add async versions of
multi dataset APIs.

* Committing clang-format changes

* Spelling fixes

* Fix bug in non-parallel HDF5 compilation.

* Committing clang-format changes

* Fix potential memory/free list error. Minor performance fix. Other minor
changes.

* Committing clang-format changes

* Fix memory leak with memory dataspace for I/O.

* Committing clang-format changes

* Fix stack variables too large.  Rename H5D_dset_info_t to
H5D_dset_io_info_t.

* Committing clang-format changes

* Remove mem_space_alloc field from H5D_dset_io_info_t.  Each function is
now responsible for freeing any spaces it adds to dset_info.

* Committing clang-format changes

* fixed _multi Fortran declaration

* Refactor various things in (mostly) the serial I/O code path to make
things more maintainable.

* Committing clang-format changes

* updated to array based, doxygen, and examples

* Reinstate H5D_chunk_map_t, stored (via pointer) inside
H5D_dset_io_info_t.

* Change from calloc to malloc for H5D_dset_io_info_t and H5D_chunk_map_t.
Switch temporary dset_infos to be local stack variables.

* Committing clang-format changes

* format cleanup

* format cleanup

* added coll and ind

* Modify all parallel I/O paths to take dset_info instead of assuming
dset_info[0].

* Committing clang-format changes

* fixed output

* Rework parallel I/O code to work properly with multi dataset in more
cases.  Fix bug in parallel compression.

* Committing clang-format changes

* Prevent H5D__multi_chunk_collective_io() from messing up collective opt
property for other datasets in I/O.  Other minor cleanup.  Add new test
case to t_pmulti_dset.c for H5FD_MPIO_INDIVIDUAL_IO, disabled for now
due to failures apparently unrelated to multi dataset code.

* Fix spelling

* Committing clang-format changes

* Replace N log N algorithm for finding chunk in
H5D__multi_chunk_collective_io() with O(N) algorithm, and remove use of
io_info->sel_pieces in that function.

* Committing clang-format changes

* Replace sel_pieces skiplist in io_info with flat array of pointers, use
qsort in I/O routine only when necessary.

* Committing clang-format changes

* Add new test case to mdset.c

* Committing clang-format changes

* Fix spelling

* Very minor fix in H5VL__native_dataset_read()

* Fix bug that could affect filtered parallel multi-dataset I/O.

* Add RM entries for H5Dread_multi(), H5Dread_multi_async(),
H5Dwrite_multi(), and H5Dwrite_multi_async()

* Unskip test in swmr.c

* Committing clang-format changes

* Eliminate H5D__pre_read and H5D__pre_write

* Remove examples/ph5mdsettest.c. Will fix and re-add as a test.

* Enable hyperslab combinations in mdset test

* Committing clang-format changes

* Clarify H5Dread/write_multi documentation.

* Fix bugs in multi-dataset I/O.  Expand serial multi dataset test.
Update macro in parallel multi dataset test.

* Committing clang-format changes

* Spelling

* Remove obsolete entry in bin/trace

* Rework type conversion buffer allocation. Only one buffer is shared
between datasets in mdset mode, and it is malloced instead of calloced.

* Committing clang-format changes

* Fix bug in error handling in H5D__read/write

* added multi-dataset fortran check with optional dataset creation id (#2150)

* removed dup. dll entry

* Address comments from code review.

* Remove spurious changes in H5Fmpi.c

* Fix issue with reading unallocated datasets in multi-dataset mode.
Address other comments from code review.

* Committing clang-format changes

* Delay chunk index lookup from io_init to mdio_init so it doesn't add
overhead to single dataset I/O.

* Committing clang-format changes

* Fix inappropriate use of piece_count

* updated copyright on new file, removed benchmark from testing dir.

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: M. Scot Breitenfeld <brtnfld@hdfgroup.org>
Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
2022-10-19 09:13:15 -07:00
vchoi-hdfgroup
5021fd9d4d Fix for HDFFV-10840: Instead of using fill->buf for datatype conversion (#2153)
* Fix for HDFFV-10840: Instead of using fill->buf for datatype conversion
if it is large enough, a buffer is allocated regardless so that the element
in fill->buf can later be reclaimed.
Valgrind is run on test/set_extent.c and there is no memory leak.

* Add information of this fix to release notes.

Co-authored-by: vchoi <vchoi@jelly.ad.hdfgroup.org>
2022-10-14 11:05:14 -07:00
Dana Robinson
80f80d61db Cleans final production mode warnings from H5Shyper.c (#2163)
* H5S__hyper_free_span_info() returns herr_t (not checked)

* Set up H5S__hyper_free_span_info() error handling

* Set up H5S__hyper_free_span() error handling

* Added error handling to H5S_HYPER_ADVANCE_SPAN

* Handled errors in H5S__hyper_iter_get_seq_list_gen()

* Added a production mode build target for -Werror

* Committing clang-format changes

* Updated names for -Werror checks

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-14 06:15:33 -07:00
Scot Breitenfeld
e80079fd21 Subfiling Fortran wrapper work. (#2143)
* added C ref. for Fortran constants

* added C ref. for Fortran constants

* move constant paramters to H5* module listing

* added back comment

* Fortran subfiling and ioc FD with tests. H5Pset/get_mpi_params wrappers with tests, misc.. parallel test clean-up.

* misc. fixes

* fixed CMake testpar issues, formatted, misc. updates

* updated tests
2022-10-06 09:08:56 -07:00
jhendersonHDF
79bdc6183e Subfiling testing fix and documentation (#2132)
* Fix a sporadic failure in Subfiling VFD tests

* Subfiling VFD - add note to H5Pget_fapl_subfiling documentation

Adds note about how H5Pget_fapl_subfiling only returns the original
settings on a FAPL and those settings could have been modified by the
Subfiling VFD's environment variables
2022-09-29 21:06:17 -05:00
Neil Fortner
4184bac2ec Fixed an issue that could occur when combining hyperslab selections (#2122) 2022-09-26 22:51:52 -05:00
Allen Byrne
dcd332d231 Restructure ref manual presentation (#2123) 2022-09-26 22:49:29 -05:00
Frank Berghaus
100b22e6c2 Use case-insensitive comparison for headers fix #2100 (#2101)
* Use case-inseneitive comparison for headers

HTTP headers should be case-insensitive. Use case-insensitive string
comparisons when working with HTTP header responses to ensure
compatibility.

* Revert "Use case-inseneitive comparison for headers"

This reverts commit a02f591723506b62b7208449be6eef7122120398

* Ignore case when searching HTTP header responses

Looking up the Content-Length in the header returned by S3 storage
endpoints should ignore case. To guarantee portability implement a
function for case-insensitive string search, because it is non-standard.

* Add an _ after H5 for the strcasestr implementation

It is a private function and should sport that underscore.

* Remove author comment from the doc comment

* Use search function defined by system if available

Check whether the system provides a function implementing case
insensitive string searches. Only use the custom implementation if the
system does not provide the functionality.

* Add tests for case-insensitive search

Basic tests:
  - Search for empty string
  - Search with exact match
  - Search with case-insensitive match
  - search with no match

* Enforce clang-format style

Some variable definitions in the th5_system tests did not conform to
clang-format's expectations. Updated the offending lines.

* Correct comment describing test case

* Added some spaces to please clang-format

* Ignore discarding const

Ask the compiler to ignore discarding the const when retunring a match from H5_strcasestr

Co-authored-by: Frank Berghaus <frank.berghaus@mpcdf.mpg.de>
2022-09-21 11:50:17 -05:00
Dana Robinson
6d89634445 Updates VOL capabilities flags (#2105)
* Added feature/vol_cap_flags branch to GitHub actions

* Convert unsigned cap flag field to uint64_t and add flags

* Committing clang-format changes

* Convert unsigned cap flag field to uint64_t and add flags

* Committing clang-format changes

* Updates the VOL struct version number

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-17 09:49:38 -07:00
Allen Byrne
a9d8b469f4 Use doxygen snippets for common tables (#2104) 2022-09-16 12:45:06 -05:00
jhendersonHDF
16aa2dbaa0 Subfiling VFD updates (#2106) 2022-09-16 11:17:30 -05:00
Allen Byrne
45178c87a3 develop Merge doxygen from 1.12 branch (#2095) 2022-09-14 15:44:24 -05:00
Neil Fortner
b5598575bb Fix memory bug in selection I/O (#2096)
* Fix memory bug in selection I/O

* Change error messages for calls to H5I_remove() in
H5FD_read/write_selection()
2022-09-14 11:10:05 -05:00
Allen Byrne
c8fdd92cd4 Update CMake code to 3.18 minimum version (#2080)
* Update CMake code to 3.18 minimum version

* Updated release note
2022-09-02 17:31:29 -07:00
Dana Robinson
ccdcec273a Updates onion VFD major error codes (#2076) 2022-08-31 11:01:52 -05:00
Neil Fortner
5de9d63ff4 Address review comments from downstream merge of #2016 (#2073) 2022-08-31 11:01:05 -05:00
Dana Robinson
ee55dd777b Fortran module directory improvements (#2060)
* Removes the module directory from the Automake flags as this
  generated a large number of "missing include directory" warnings
  and is unecessary
* Adds the module path to libhdf5.settings
2022-08-23 12:25:07 -07:00
Neil Fortner
21ec337855 Fix inappropriate use of HGOTO_ERROR (#2055) 2022-08-22 11:39:49 -05:00
Dana Robinson
3015e3d7ab Quiets Automake rules in src directory (#2051)
* Quiets Automake rules in src directory

* Fix whitespace
2022-08-22 06:25:17 -07:00
jhendersonHDF
2b786ffe5a [WIP] Add Developer build mode to CMake (#1659)
* Add Developer build mode to CMake

* Set a few CMake variables for Developer build modes

* Refactor enabling of debug and developer-level compile definitions

* Convert cache debugging macros to normal ifdef style

Normal ifdef-style instead of if-style allows build system to define macros
without warning about redefining macros with different values (0 vs. 1)

* Add HDF5 Developer compile definitions to testing files

* Temporarily disable -fanalyzer flag for GCC 12+ Developer builds
2022-08-19 17:18:30 -07:00