Commit Graph

3424 Commits

Author SHA1 Message Date
Daniel Marmier 7832562ee6 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-21 23:57:25 +00:00
Steven Edwards f508a78509 - Win16/32 cleanup.
- Fixes for building with the PSDK.
2003-10-21 23:45:43 +00:00
Daniel Marmier c33e4c4723 RegCreateKeyEx{A,W}: state that class string is constant. 2003-10-21 23:44:37 +00:00
Jon Griffiths bf1df18292 Added string folding support. 2003-10-15 20:52:28 +00:00
Alexandre Julliard 49a0224fb3 Get rid of the drive codepages and use CP_UNIXCP instead. 2003-10-15 03:47:53 +00:00
Daniel Marmier f95be92d24 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-15 03:35:54 +00:00
Alex Pasadyn 8f174bc654 Check for Xrandr extension. 2003-10-15 03:28:04 +00:00
Alexandre Julliard d004059538 Moved the 16-bit storage interfaces out of the exported headers. 2003-10-14 20:23:01 +00:00
Maxime Bellengé 5b99b3df29 - Implemented HEADER_SetBitmapMargin and HEADER_GetBitmapMargin.
- Get rid of some magic numbers in HEADER_DrawItem.
- Fixed the drawing of images from imagelist when the
  HDF_BITMAP_ON_RIGHT flag is set.
2003-10-14 20:13:42 +00:00
Dmitry Timoshkov 2581db8f6a Fixed some problems found while compiling and linking Wine under
Cygwin.
2003-10-14 05:27:43 +00:00
Alexandre Julliard e55d5937ac Set or clear the BeingDebugged flag in the PEB when a debugger is
attached to or detached from a process.
Don't send exception events to the server unless a debugger is
present.
2003-10-14 01:30:42 +00:00
Alexandre Julliard 0b1a82aa5e Added check for pthread.h (reported by Steven Edwards).
Removed init_done check, the process heap is now created before kernel
is loaded anyway.
2003-10-14 01:27:31 +00:00
Alexandre Julliard a6ed49ade3 Don't reference the environ global variable from kernel32, it may fail
to link (reported by Gerald Pfeifer).
2003-10-10 23:33:21 +00:00
Alexandre Julliard 410e6b7b39 Changed the init code to make libwine load only ntdll and transfer
control to it, and then have ntdll load kernel32 using the normal
loader mechanisms.
Get rid of BUILTIN32_LoadExeModule.
2003-10-10 00:12:17 +00:00
Alexandre Julliard 5cb5aa6346 Use the Rtl bitmap functions to implement Tls allocation.
Get rid of the PDB structure.
2003-10-09 19:58:56 +00:00
Steven Edwards ad4a2b9064 Bring imagehlp (mostly) inline with the PSDK and Mingw. 2003-10-09 19:45:07 +00:00
Alexandre Julliard 20e73d739a Moved the constructor for the initial TEB to ntdll so that it runs as
early as possible on startup.
2003-10-09 04:59:03 +00:00
Mike McCormack 8365577125 Don't share some protected mode interrupts in winedos. 2003-10-08 19:07:45 +00:00
Alexandre Julliard 953849f2fc Added hack to call CreateFileW through a pointer so that we don't need
to link to kernel functions.
Commented out SMB support in NtReadFile for now.
2003-10-08 03:51:31 +00:00
Warren Baird 7f77f0f15d Changed InternetSetStatusCallback declaration to
InternetSetStatusCallbackA/W.
2003-10-08 02:57:07 +00:00
Alexandre Julliard 87ae825bf8 Get rid of the argv0 and full_argv0 global variables. 2003-10-08 00:45:01 +00:00
Alexandre Julliard 5986e3a724 Added wine_get_argv0_path() to retrieve the path of the wine binary. 2003-10-08 00:36:09 +00:00
Alexandre Julliard af192f83b6 Store a "removable" flag instead of the full drive type in the server
file object; this way we don't need to use GetDriveTypeW in the loader
code.
Make sure we always have a valid builtin_load_info pointer.
2003-10-08 00:25:32 +00:00
Warren Baird 1f5d1beb0d Added extern "C". 2003-10-07 22:52:20 +00:00
Steven Edwards c48c16471c Remove a few unneeded include statements in internal headers.
Started bringing setupapi in line with PSDK.
2003-10-07 22:51:09 +00:00
Rein Klazes c6c404dcd6 Added a check for <scsi/scsi.h> and include it in dlls/ntdll/cdrom.c. 2003-10-07 22:49:22 +00:00
Alexandre Julliard 8d174d3f47 Store the global shell, progman and taskman windows in the server
(based on a patch by Martin Fuchs).
2003-10-07 03:40:23 +00:00
Alexandre Julliard 632676b17e Moved the final process init and dependency loading to
dlls/ntdll/loader.c, (ab)using the LdrInitializeThunk entry point.
2003-10-06 21:18:51 +00:00
Kevin Koltzau d658fa4688 Added missing defines and fixed a few typos. 2003-10-06 21:04:27 +00:00
Alexandre Julliard 841f898663 Converted process creation to Unicode. 2003-10-04 04:09:41 +00:00
Kevin Koltzau 0af4fb9e6d Initial implementation of uxtheme.dll, mostly stubbed out for now. 2003-10-04 03:48:11 +00:00
Alexandre Julliard 5e3549bf3b Implemented RtlCreateProcessParameters and related functions. 2003-10-04 03:11:57 +00:00
Dave Belanger 325f646fdc Implemented the SetArcDirection metarecord in EMF driver. 2003-10-04 03:08:25 +00:00
Pavel Roskin 6ce0569ada Added check for scsi/scsi_ioctl.h. 2003-10-03 04:31:49 +00:00
Kevin Koltzau 7ee18df7c0 Added tmschema.h and some other theme defines. 2003-10-03 03:33:15 +00:00
Pavel Roskin d65071963e Added check for st_blocks in struct stat. 2003-10-03 03:28:40 +00:00
Alexandre Julliard 4137aecaa5 Changed LdrLoadDll to only search for the dll in the specified path,
using ntdll functions.
Moved LOAD_WITH_ALTERED_SEARCH_PATH functionality to LoadLibraryEx
where it belongs.
2003-10-02 04:58:49 +00:00
Rolf Kalbermatter 4202112e2d Moved definition of newly documented API SHRestricted() and the
according policy definitions to shlobj.h.
Replace the policy numeric values with the new official defines and
change SHRestricted() to match the new documented prototype.
2003-10-02 04:30:46 +00:00
Robert Reif 2f9302a738 Added some missing defines.
Moved Wine only defines to not conflict.
2003-10-02 04:24:58 +00:00
Alexandre Julliard c30cefb2d5 Store module names in Unicode in the server. 2003-09-30 01:04:19 +00:00
Daniel Marmier a613de2a22 Use #ifdef instead of #if for all feature tests.
Check that _MSC_VER is defined before using it.
2003-09-30 00:33:47 +00:00
Alexandre Julliard f80b869939 Converted most of the loader code to Unicode. 2003-09-29 20:42:24 +00:00
Alexandre Julliard 1cb92bbeec Converted the load order code to use Unicode throughout. 2003-09-27 03:50:40 +00:00
Alexandre Julliard 30784603ee Added strspnW and strcspnW. 2003-09-27 03:48:40 +00:00
Dmitry Timoshkov 2999165c83 Implemented RealGetWindowClass. 2003-09-27 03:47:07 +00:00
Mike McCormack f6125ad33e Added AW defines to msi.h and msiquery.h. 2003-09-27 02:19:48 +00:00
Alexandre Julliard 74c5efeb76 Moved WINE_MODREF definition to loader.c.
Removed short module name from WINE_MODREF, Windows doesn't have it.
Rewrote LdrGetDllHandle to only use Unicode.
2003-09-25 23:55:35 +00:00
Alexandre Julliard 2052538a47 Moved loadorder support to dlls/ntdll.
Removed the --dll option and replaced it by the WINEDLLOVERRIDES
environment variable.
2003-09-25 20:33:41 +00:00
Alexandre Julliard 16cd86197a Moved DLLFLAGS to a separate variable instead of including it in
DEFS.
2003-09-24 19:01:44 +00:00
Pavel Roskin 7add08a303 Added configure check for spawnvp(). 2003-09-24 18:54:40 +00:00
Alexandre Julliard 240b0a9b48 Moved the Windows version code to dlls/ntdll, and implemented
RtlGetVersion and RtlVerifyVersionInfo.
Moved the 16-bit and DOS version support to dlls/kernel.
2003-09-24 05:26:00 +00:00
Alexandre Julliard 3bff2b3c9c Authors: Juraj Hercek <juraj@syncad.com>, Eric Frias <efrias@syncad.com>
Implemented pthread conditions.
2003-09-23 22:59:44 +00:00
Juraj Hercek 9d481e32a0 Added SS_ENDELLIPSIS. 2003-09-23 22:57:20 +00:00
Jon Griffiths fc049ecdd5 Added StrFormatKBSizeA/W. 2003-09-23 22:49:56 +00:00
Felix Nawothnig 25c0a1d5bb Added definitions for ListView_GetColumnWidth, ListView_SetColumnWidth
and ListView_RedrawItems.
2003-09-23 22:48:49 +00:00
Maxime Bellengé 4dc75a5d82 Added LVKF_* defines. 2003-09-22 19:47:42 +00:00
Rolf Kalbermatter 58c0561bad Added declarations for newly documented SHChangeNotify API and fixed
some prototypes.
2003-09-22 19:24:13 +00:00
Rolf Kalbermatter f42bc61b86 Don't redefine declspec under MSVC. 2003-09-22 19:22:14 +00:00
Alexandre Julliard a37e7608c7 Moved 32-bit relay and snoop support to dlls/ntdll. 2003-09-19 04:32:39 +00:00
Alexandre Julliard 97ad311e71 Moved the 32-bit builtin loader and the remaining bits of the PE
loader into dlls/ntdll/loader.c.
2003-09-19 04:04:57 +00:00
Eric Pouech c3e6c095e1 Implemented kernel32.GetIoProcessCounters and stubbed
ntdll.NtQueryProcessInformation(ProcessIoCounters).
2003-09-19 00:06:45 +00:00
Alexandre Julliard 52f692fb9b Moved the wine server client-side support to dlls/ntdll. Removed a
couple of unnecessary functions.
2003-09-18 23:27:19 +00:00
Alexandre Julliard bff860c4b1 Moved synchronization and syslevel routines to dlls/kernel. 2003-09-18 04:39:13 +00:00
Alexandre Julliard 8db8368ee7 Keep the file handle of 16-bit modules open while the module is
loaded. This makes it possible to remove the InstallShield hack in
OpenFile16.
Moved LoadLibrary32_16 to kernel.
2003-09-18 04:35:34 +00:00
Alexandre Julliard 9eb1d2c7fa Moved I/O port handling to dlls/winedos. 2003-09-17 22:45:46 +00:00
Alexandre Julliard add0c5850b Use WOWCallback16Ex to switch to vm86 mode so that we can setup a
proper exception handler and handle instruction emulation.
2003-09-17 20:23:33 +00:00
Alexandre Julliard f5cb3dde17 Moved undocumented functions out of the exported commctrl.h. 2003-09-17 20:15:21 +00:00
Alexandre Julliard 1084a8ba93 Moved out of windef.h a few definitions that don't belong there
(reported by Filip Navara).
2003-09-17 04:31:27 +00:00
Mike McCormack 2b2a6f31a9 Added mailslot defines. 2003-09-16 20:26:28 +00:00
Filip Navara 2773106058 Fixed definitions of TTTOOLINFOA/W_V1_SIZE and
REBARBANDINFOA/W_V3_SIZE.
2003-09-16 01:17:25 +00:00
Eric Pouech 9fd54b2838 - Implemented a few information classes in NtQuerySystemInformation.
- Added handle information to (wineserver) process snapshot.
2003-09-16 01:07:21 +00:00
Rolf Kalbermatter 6f9336dd31 Added IFileSystemBindData implementation. 2003-09-15 22:10:48 +00:00
Eric Pouech 78b50f23e3 - Moved Wine extension to get DSound interface from a wave device from
include/mmsystem.h to include/mmddk.h.
- Removed all dependencies on heap.h.
- Fixed a few prototypes (mmioRename[AW], mciSendStringW, *Message).
2003-09-15 20:13:30 +00:00
Mike McCormack e66069d94e Declare mailslot functions. 2003-09-15 20:01:56 +00:00
Kevin Groeneveld 8be51c92e4 Add missing wReserved1 member to DCB structure definition.
Fix several bugs in BuildCommDCBAndTimeouts:
- make sure LPCSTR parameter is really treated as constant
- fix possible buffer overflow if passed in string is too long
- if the device control string is invalid, do not modify DCB
- do not clear entire DCB, only modify appropriate members
- fix parsing of stop bits parameter so it works for 1 and 1.5
- populate COMMTIMEOUTS when to=xxx parameter is specified
- added support for xon, odsr, octs, dtr, rts, and idsr parameters
- fix several other parsing errors
2003-09-12 00:26:15 +00:00
Eric Pouech 766ef669eb Moved some MM internal definition to internal include files. 2003-09-12 00:24:16 +00:00
Dimitrie O. Paun 41d7518a62 Remove checks from {pop,psh}pack[1248].h that were causing the
standalone processor to fail.
2003-09-11 23:08:58 +00:00
Alexandre Julliard ef5f6c7fad Moved list.h to include/wine so that it can be used everywhere. 2003-09-11 20:45:17 +00:00
Dimitrie O. Paun 643b7c97ac The Get[RGB]Value() macros should return a BYTE, not the same type as
the one passed in.
2003-09-11 20:40:57 +00:00
Geoff Thorpe 23609d22d6 Added a stub for NetStatisticsGet. 2003-09-11 03:09:19 +00:00
Geoff Thorpe 7701dea1cd Added a stub for Heap32ListFirst. 2003-09-11 03:00:11 +00:00
Francois Gouget 68ea3623b8 Modify winetest_ok to only add a trailing '\n' if there is none.
Modify macros in the kernel, oleaut32 and user tests to print a '\n'.
2003-09-11 01:07:19 +00:00
Alexandre Julliard cf52644a1c Removed the A/W constants for builtin cursors, icons and resource
types since they don't exist on Windows, and added typecasts
everywhere instead.
2003-09-10 03:56:47 +00:00
Alexandre Julliard 20c169e0a4 Fixed a few more headers dependency issues. 2003-09-09 19:39:31 +00:00
Alexandre Julliard 69c90c2a9f Converted the rest of the obj_*.h headers to IDL into shobjidl.idl. 2003-09-09 19:32:36 +00:00
Alexandre Julliard cc392b95cf Some STATUS_* defines have to be duplicated in winnt.h. 2003-09-09 19:26:40 +00:00
Alexandre Julliard 2eb5d8b9b1 On TlsFree, clear the released TLS index in all threads. 2003-09-08 19:02:01 +00:00
Rolf Kalbermatter 7ffcb0ea98 Change parameter in SHGetSpecialFolderPathA/W to int as documented in
MSDN.
Add some more definitions and move SHGetDesktopFolder() from
wine/obj_shellfolder.h to here.
2003-09-08 18:47:10 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard d937dc2963 Implemented shtypes.idl and shobjidl.idl and removed a few more
wine/obj_* headers.
2003-09-04 19:43:39 +00:00
Dimitrie O. Paun 837e357d8e Removed non-standard header includes. 2003-09-04 19:39:08 +00:00
Alexandre Julliard 96b0b34282 Converted obj_webbrowser.h to IDL and moved the definitions to
exdisp.idl where they belong.
2003-09-04 02:00:46 +00:00
Alexandre Julliard b90d6118f8 Converted docobj.h to IDL. 2003-09-04 01:51:43 +00:00
Alexandre Julliard e4ce323d30 Removed no longer needed include protections. 2003-09-04 00:05:15 +00:00
Alexandre Julliard 8da94c9830 Converted ocidl.h to IDL. 2003-09-04 00:03:48 +00:00
Alexandre Julliard b7c6280e95 Converted urlmon.h to IDL. 2003-09-03 23:52:07 +00:00
Alexandre Julliard 1843cd3560 Converted servprov.h to IDL. 2003-09-03 20:20:49 +00:00
Alexandre Julliard 802ebc1168 Converted oleidl.h to IDL. 2003-09-03 20:17:39 +00:00
Alexandre Julliard 3e1c5afdba Converted comcat.h to IDL. 2003-09-03 19:31:57 +00:00
Alexandre Julliard 0bde2bbe01 Use <> format in generated #include statements.
Integer constants should be unsigned.
2003-09-03 19:31:14 +00:00
Alexandre Julliard 80e34dbb66 Moved the implementation of the pthread wrappers to dlls/kernel. 2003-09-03 00:26:08 +00:00
Alexandre Julliard 81c31701d2 Avoid including wine/obj_*.h files directly from C files.
Removed no longer used obj_serviceprovider.h.
2003-09-03 00:16:28 +00:00
Alexandre Julliard 7ecf0e3e1d shlobj.h must include wine/obj_dragdrophelper.h (reported by Martin
Fuchs).
2003-09-03 00:14:12 +00:00
Eric Pouech da8b582cda Added a few missing definitions. 2003-09-02 18:16:22 +00:00
Martin Fuchs 63fecde98b Declare LPCITEMIDLIST as 'const' pointer and adjust shell32
implementation to the corrected type.
2003-09-02 01:01:06 +00:00
Vincent Béron dc7c2e464e Added msvcrt headers limits.h and math.h. 2003-09-02 00:58:21 +00:00
Michael Günnewig 1b5c4135e2 - Implemented AVIStreamBeginStreaming and AVIStreamEndStreaming.
- Fixed loading of empty AVI files.
- Fixed bug in IGetFrame interface with uncompressed streams.
- Fixed missing ICOM_DEFINE for IAVIStreaming.
2003-09-02 00:54:30 +00:00
Martin Fuchs 48ff7d1e23 Define ICON_SMALL2 and ShowWindowAsync(). 2003-09-01 23:54:55 +00:00
Martin Fuchs d7b2c8a13b Define TBIF_BYINDEX. 2003-09-01 23:54:28 +00:00
Alexandre Julliard ca3bfd8318 Export SYSDEPS_SwitchToThreadStack() functionality from libwine as
wine_switch_to_stack().
2003-08-29 22:23:42 +00:00
Dimitrie O. Paun 53f9c21fb7 Use angle brackets (<>) rather than quotes ("") for the include
directives in our .h files. This should avoid some potentially nasty
surprises for Winelib apps.
2003-08-28 21:43:34 +00:00
Alexandre Julliard 7df1b9e03a Start using the exported TEB structure from winternl.h where
possible.
2003-08-28 19:57:35 +00:00
Dave Belanger 46f0d60a9c Added CoDisconnectObject and CoRegisterMessageFilter prototypes. 2003-08-28 19:42:24 +00:00
Robert Reif 76a5e0a29c Added speaker config macros. 2003-08-28 19:38:29 +00:00
Mike McCormack 9382aed1a9 Add CLSID_HTMLDocument. 2003-08-28 19:37:00 +00:00
Mike McCormack bdde3a0999 Define the IPersistMoniker interface. 2003-08-28 19:36:36 +00:00
Alexandre Julliard b91e9cb3e6 Renamed a few more TEB fields. 2003-08-28 03:44:41 +00:00
Alexandre Julliard ee106783d0 Renamed EXCEPTION_FRAME to EXCEPTION_REGISTRATION_RECORD since that
seems to be the official name.
2003-08-28 03:07:56 +00:00
Alexandre Julliard 02f2813968 Renamed a few TEB fields to use the "official" names. 2003-08-27 23:14:29 +00:00
Gregory M. Turner fca4a8f877 Implement (most of) SetupIterateCabinet. 2003-08-27 23:12:36 +00:00
Alexandre Julliard 01634c5686 Removed some no longer needed definitions from stackframe.h. 2003-08-27 03:16:56 +00:00
Alexandre Julliard 617839d522 Added varargs support for 16-bit entry points.
Added -ret16 entry point flag to allow 16-bit cdecl and varargs
function to return 16-bit values too.
2003-08-27 02:20:44 +00:00
Dimitrie O. Paun 4ff79add63 Remove some unneeded __WINESRC__ tests from the headers.
Miscellaneous cleanups and fixes.
2003-08-27 02:07:02 +00:00
Alexandre Julliard 94463d7bbe Moved profile functions to dlls/kernel. 2003-08-26 02:54:37 +00:00
Alexandre Julliard a203421581 Don't build memcpy_unaligned on 386 to avoid MSVC breakage (reported
by Jon Griffiths).
2003-08-25 23:45:34 +00:00
Alexandre Julliard 3be5d62b29 Moved 16-bit calls initialization and exception handling to kernel32.
Store the call_to_16 return address on the stack from the C code so
that we don't need two variants of call_to_16_regs.
2003-08-25 00:56:37 +00:00
Alexandre Julliard 3a5b7cf105 Extended WOWCallback16Ex to support register functions too. This
allows simplifying the wine_call_to_16 assembly code by moving part of
it to C code, and getting rid of the extra kernel exports.
2003-08-23 23:30:51 +00:00
Alexandre Julliard 9ca159b61a Moved 16-bit builtin module handling to dlls/kernel/ne_module.c. 2003-08-23 23:07:10 +00:00
Alexandre Julliard 5fbb446cfc Moved most of the 16-bit task support and NE module loader to
dlls/kernel.
2003-08-23 00:03:40 +00:00
Filip Navara 1ccaaa1a82 Fixed prototypes of CreateStatusWindowA/W, ImageList_Copy,
ImageList_EndDrag, ImageList_SetImageCount.
2003-08-22 23:51:15 +00:00
Alexandre Julliard dba8550ea1 Removed obsolete WIN32_LastError definition. 2003-08-22 05:30:11 +00:00
Alexandre Julliard 1e3042e26a Removed no longer used internal definitions. 2003-08-22 05:04:56 +00:00
Alexandre Julliard 04600949a8 Removed reference to the WINE_UNICODE_TEXT macro that no longer
exists.
2003-08-22 05:04:23 +00:00
Alexandre Julliard aee989a7ed Store the debug info structure on the thread stack.
Moved thread initialization code from sysdeps.c to thread.c to avoid
an indirection.
2003-08-21 21:34:33 +00:00
Alexandre Julliard 6677ac4bc0 Removed a few remaining WINVER checks. 2003-08-21 21:32:48 +00:00
Alexandre Julliard 864ca06832 winnls.h must not include winbase.h. 2003-08-20 18:22:31 +00:00
Steven Edwards 5498cc517b Fix building libwine_unicode with w32api headers. 2003-08-20 18:16:44 +00:00
Mike McCormack 9557d1bfae Dlopen libncurses.so in wineconsole. 2003-08-20 04:19:01 +00:00
Alexandre Julliard dd0242de6d Remove the dummy pthread functions and use -lpthread instead to
resolve missing symbols in GL libs.
2003-08-20 03:44:25 +00:00
Eric Pouech f3d2a8d42d Removed the DOSFS_ specific time related conversion routine, and make
use of the ntdll equivalents.
2003-08-20 03:40:21 +00:00
Alexandre Julliard e0deb0c627 Replaced remaining calls to PROFILE_GetWineIniString/Bool by direct
registry accesses.
2003-08-19 03:21:04 +00:00
Mike McCormack 5ac945c021 Implement registry key unloading. 2003-08-19 03:08:17 +00:00
Eric Pouech 449d10fd79 Fixed regression in process creation (std handle inheritance). 2003-08-19 01:05:17 +00:00
Erwin Wolff e3869d56b7 Removed VERSION typedef. 2003-08-19 00:59:02 +00:00
Jon Griffiths 08922859c6 Make RtlTimeToSecondsSince1970 consistent with other time calls.
Documentation fixes.
2003-08-19 00:56:34 +00:00
Jon Griffiths 81d19be889 Make I1 fields explicitly signed.
Add support for I8 fields in variants.
Add a missing undocumented FADF_ flag.
2003-08-18 19:59:47 +00:00
Jon Griffiths 228f22e967 Add some new types and functions.
Remove ITU_IMPLEMENTED_TESTS, its not part of the Win32 Api.
2003-08-18 19:54:13 +00:00
Jon Griffiths 69229e7c8c Cast hresult error codes to HRESULT. 2003-08-18 19:47:18 +00:00
Alexandre Julliard 03d7998970 Moved __errno_location() handling to pthread.c, and added similar
handling for __res_state().
2003-08-15 03:55:06 +00:00
Dimitrie O. Paun 2703584b15 Alias _vsnprintf as vsnprintf. 2003-08-13 22:01:12 +00:00