Felix Zielcke
b2f1e32746
2009-11-19 Felix Zielcke <fzielcke@z-51.de>
...
* include/grub/x86_64/io.h: New file.
2009-11-19 09:33:56 +01:00
Robert Millan
f577f7a09d
2009-11-19 Robert Millan <rmh.grub@aybabtu.com>
...
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `gnulib/progname.c'.
* util/i386/pc/grub-setup.c: Include `<grub/i18n.h>'.
Include `"progname.h"'.
(main): Initialize gettext.
* util/i386/pc/grub-setup.c: Gettexttize.
* util/i386/pc/grub-mkimage.c: Likewise.
* Makefile.in (po/*.po): Redefine as ...
($(foreach lang, $(LINGUAS), po/$(lang).po)): ... this.
* po/POTFILES: Add `util/i386/pc/grub-setup.c'.
2009-11-18 23:20:22 +00:00
Robert Millan
6323f70508
Document util/mkisofs/mkisofs.h change properly in previous ChangeLog entry ...
2009-11-18 23:11:03 +00:00
Robert Millan
c37943b642
Forgot to commit ChangeLog...
2009-11-18 23:07:24 +00:00
Robert Millan
5ce77c6e7e
2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
...
* util/mkisofs/eltorito.c: Fix minor mistake in license text.
* util/mkisofs/iso9660.h: Likewise.
* util/mkisofs/joliet.c: Likewise.
* util/mkisofs/mkisofs.c: Likewise.
* util/mkisofs/mkisofs.h: Likewise.
* util/mkisofs/rock.c: Likewise.
* util/mkisofs/tree.c: Likewise.
* util/mkisofs/write.c: Likewise.
* util/mkisofs/eltorito.c (rcsid): Remove.
* util/mkisofs/hash.c: Likewise.
* util/mkisofs/joliet.c: Likewise.
* util/mkisofs/name.c: Likewise.
* util/mkisofs/rock.c: Likewise.
* util/mkisofs/tree.c: Likewise.
* util/mkisofs/write.c: Likewise.
2009-11-18 22:59:40 +00:00
Robert Millan
1dabbc77cf
2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
...
* util/mkisofs/match.c: Rewrite from scratch, using a linked list
instead of static allocation.
* util/mkisofs/match.h: Likewise.
2009-11-18 22:49:59 +00:00
Robert Millan
633877cbb1
2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
...
* po/POTFILES-shell: New file. List `util/grub.d/10_kfreebsd.in'
and `util/grub.d/10_linux.in'.
* Makefile.in (po/$(PACKAGE).pot): Process `po/POTFILES-shell' for
translatable Shell files.
2009-11-18 21:03:09 +00:00
Robert Millan
af1c0c85a7
2009-11-18 Robert Millan <rmh.grub@aybabtu.com>
...
* Makefile.in ($(srcdir)/aclocal.m4): New target.
2009-11-18 20:57:57 +00:00
Robert Millan
769ae37bfd
Merge my gettext branch (gettext support in build system for GRUB utilities)
2009-11-17 20:23:06 +00:00
Robert Millan
02c0a6ad1d
Merge libgcrypt branch.
...
2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
* import_gcry.py: New file (written by Vladimir with minor
adjustments).
* autogen.sh: Use import_gcry.py to auto-generate GRUB-ified
ciphers.
* INSTALL: Document that Python is required for bootstrap.
2009-11-17 Robert Millan <rmh.grub@aybabtu.com>
Import ciphers from libgcrypt 1.4.4.
* lib/libgcrypt/cipher/ChangeLog
* lib/libgcrypt/cipher/ac.c
* lib/libgcrypt/cipher/arcfour.c
* lib/libgcrypt/cipher/bithelp.h
* lib/libgcrypt/cipher/blowfish.c
* lib/libgcrypt/cipher/camellia-glue.c
* lib/libgcrypt/cipher/camellia.c
* lib/libgcrypt/cipher/camellia.h
* lib/libgcrypt/cipher/cast5.c
* lib/libgcrypt/cipher/cipher.c
* lib/libgcrypt/cipher/crc.c
* lib/libgcrypt/cipher/des.c
* lib/libgcrypt/cipher/dsa.c
* lib/libgcrypt/cipher/ecc.c
* lib/libgcrypt/cipher/elgamal.c
* lib/libgcrypt/cipher/hash-common.c
* lib/libgcrypt/cipher/hash-common.h
* lib/libgcrypt/cipher/hmac-tests.c
* lib/libgcrypt/cipher/md.c
* lib/libgcrypt/cipher/md4.c
* lib/libgcrypt/cipher/md5.c
* lib/libgcrypt/cipher/primegen.c
* lib/libgcrypt/cipher/pubkey.c
* lib/libgcrypt/cipher/rfc2268.c
* lib/libgcrypt/cipher/rijndael-tables.h
* lib/libgcrypt/cipher/rijndael.c
* lib/libgcrypt/cipher/rmd.h
* lib/libgcrypt/cipher/rmd160.c
* lib/libgcrypt/cipher/rsa.c
* lib/libgcrypt/cipher/seed.c
* lib/libgcrypt/cipher/serpent.c
* lib/libgcrypt/cipher/sha1.c
* lib/libgcrypt/cipher/sha256.c
* lib/libgcrypt/cipher/sha512.c
* lib/libgcrypt/cipher/tiger.c
* lib/libgcrypt/cipher/twofish.c
* lib/libgcrypt/cipher/whirlpool.c
2009-11-17 11:03:00 +00:00
Felix Zielcke
814f5e9698
Use real function name in ChangeLog entry for r1837
2009-11-16 19:54:23 +01:00
Robert Millan
af2f93ac47
2009-11-16 Robert Millan <rmh.grub@aybabtu.com>
...
Fix build for systems without error().
* gnulib/error.c: New file (imported from Gnulib).
* gnulib/error.h: Likewise.
* conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/error.c'.
* util/mkisofs/mkisofs.c (program_name): Remove `static' qualifier
(this variable is now used by error()).
2009-11-16 18:49:44 +00:00
Felix Zielcke
73fb3dd5f0
2009-11-16 Felix Zielcke <fzielcke@z-51.de>
...
* util/mkisofs/name.c (FDECL3): Use isascii macro instead of
relying that char is signed.
2009-11-16 19:47:10 +01:00
Vladimir 'phcoder' Serbinenko
a691ca3348
2009-11-16 Vladimir Serbinenko <phcoder@gmail.com>
...
* fs/i386/pc/pxe.c (grub_pxefs_open): Correctly handle PXE choosing
blocksize different from specified.
(grub_pxefs_read): Likewise.
2009-11-16 19:13:02 +01:00
Felix Zielcke
2af8f0f4fc
2009-11-16 Felix Zielcke <fzielcke@z-51.de>
...
Enable ata.mod on x86_64-efi, i386-efi and i386-ieee1275.
* disk/ata.c (grub_ata_dumpinfo): Add a cast.
(grub_ata_readwrite): Likewise. Update 2 format strings.
(grub_atapi_read): Likewise.
* conf/i386-coreboot.rmk (pkglib_MODULES): Move `ata.mod' from here ...
* conf/i386.rmk (pkglib_MODULES): ... to here ...
* conf/x86_64-efi.rmk (pkglib_MODULES): ... and here.
* conf/i386-coreboot.rmk (ata_mod_SOURCES, ata_mod_CFLAGS)
(ata_mod_LDFLAGS): Move from here ...
* conf/i386.rmk: ... to here ...
* conf/x86_64-efi.rmk: ... and here.
* conf/i386-pc.rmk (pkglib_MODULES): Remove `ata.mod'
(ata_mod_SOURCES, ata_mod_CFLAGS, ata_mod_LDFLAGS): Remove.
2009-11-16 16:01:15 +01:00
Robert Millan
83bdecaf2a
2009-11-16 Robert Millan <rmh.grub@aybabtu.com>
...
Relicense multiboot.h, with RMS' blessing.
* include/multiboot.h: Change to X11 license.
2009-11-15 23:22:45 +00:00
Robert Millan
fd6fd3d770
2009-11-15 Robert Millan <rmh.grub@aybabtu.com>
...
Support --version in grub-mkisofs.
* util/mkisofs/mkisofs.c (rcsid): Remove variable.
(OPTION_VERSION): New macro.
(ld_options): Recognize --version.
(usage): Move `program_name' from here ...
(program_name): ... to here. Add `static' qualifier.
(main): Recognize `OPTION_VERSION'.
2009-11-15 14:02:33 +00:00
Felix Zielcke
16a88c491c
2009-11-15 Felix Zielcke <fzielcke@z-51.de>
...
* Makefile.in (TARGET_CPPFLAGS): Replace `-isystem=$(srcdir)/include'
with `-nostdinc -isystem $(shell $(TARGET_CC) -print-file-name=include)'.
2009-11-15 13:41:25 +01:00
Robert Millan
a415847694
2009-11-14 Robert Millan <rmh.grub@aybabtu.com>
...
Fix help2man generation for mkisofs.
* util/mkisofs/mkisofs.c (ld_options): Recognize --help.
(usage): Send output to stdout (rather than stderr).
2009-11-14 21:20:02 +00:00
Robert Millan
fc2208b0ef
2009-11-14 Robert Millan <rmh.grub@aybabtu.com>
...
* conf/i386-coreboot.rmk (grub_mkrescue_SOURCES): Replace
`util/i386/coreboot/grub-mkrescue.in' with `util/grub-mkrescue.in'.
* conf/i386-pc.rmk (grub_mkrescue_SOURCES): Replace
`util/i386/pc/grub-mkrescue.in' with `util/grub-mkrescue.in'.
(bin_SCRIPTS): Add `grub-mkfloppy'.
(grub_mkfloppy_SOURCES): New variable.
* util/grub-mkrescue.in: New file.
* util/i386/pc/grub-mkfloppy.in: New file.
* util/i386/coreboot/grub-mkrescue.in: Remove.
* util/i386/pc/grub-mkrescue.in: Remove.
2009-11-14 18:38:11 +00:00
Robert Millan
8d0edf4abd
2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
...
* include/grub/multiboot.h (struct grub_multiboot_header): Move
from here ...
* include/multiboot.h (struct multiboot_header): ... to here. Update
all users.
* include/grub/multiboot.h (struct grub_multiboot_info): Move
from here ...
* include/multiboot.h (struct multiboot_info): ... to here. Update
all users.
* include/grub/multiboot.h (struct grub_multiboot_mmap_entry): Move
from here ...
* include/multiboot.h (struct multiboot_mmap_entry): ... to here.
Update all users.
* include/grub/multiboot.h (struct grub_mod_list): Move
from here ...
* include/multiboot.h (struct multiboot_mod_list): ... to here.
Update all users.
2009-11-13 13:34:51 +00:00
Robert Millan
a73f596946
Forgot to commit ChangeLog ...
2009-11-13 13:32:22 +00:00
Robert Millan
1c8927f083
2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
...
Disable Multiboot2 in i386-ieee1275. It didn't actually work, and on
this platform we should support Multiboot1 first.
* conf/i386-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'.
(multiboot_mod_SOURCES, multiboot_mod_CFLAGS)
(multiboot_mod_LDFLAGS, multiboot_mod_ASFLAGS): Remove.
2009-11-13 13:03:47 +00:00
Robert Millan
6e1e0d8954
2009-11-12 Robert Millan <rmh.grub@aybabtu.com>
...
* util/mkisofs/eltorito.c (init_boot_catalog): Handle return code
of write calls (converting them to fwrite() if they aren't already).
(get_torito_desc): Likewise.
* util/mkisofs/rock.c (generate_rock_ridge_attributes): Likewise.
2009-11-12 21:32:47 +00:00
Robert Millan
7f2b34d84e
2009-11-12 Robert Millan <rmh.grub@aybabtu.com>
...
* util/i386/pc/grub-install.in: Move from here ...
* util/grub-install.in: ... to here. Update all users.
2009-11-12 12:23:11 +00:00
Colin Watson
c0ef331155
2009-11-11 Colin Watson <cjwatson@ubuntu.com>
...
* util/powerpc/ieee1275/grub-mkrescue.in: Fix --version output.
2009-11-11 23:21:13 +00:00
Robert Millan
e1f240ff44
2009-11-11 Robert Millan <rmh.grub@aybabtu.com>
...
Support for El Torito without floppy emulation.
* util/mkisofs/eltorito.c: Include `<errno.h>'.
(init_boot_catalog): Improve error handling.
(get_torito_desc): Don't use floppy emulation unless requested by
user. Patch boot information table when requested via
`-boot-info-table'.
* util/mkisofs/iso9660.h (struct eltorito_boot_info): New struct.
* util/mkisofs/mkisofs.c (use_eltorito_emul_floppy)
(use_boot_info_table): New variables.
(OPTION_BOOT_INFO_TABLE, OPTION_NO_EMUL_BOOT)
(OPTION_ELTORITO_EMUL_FLOPPY): New macros.
(ld_options): Handle `-boot-info-table', `-no-emul-boot' and
`--eltorito-emul-floppy'.
(main): Handle `OPTION_BOOT_INFO_TABLE', `OPTION_NO_EMUL_BOOT'
and `OPTION_ELTORITO_EMUL_FLOPPY'.
* util/mkisofs/mkisofs.h (use_eltorito_emul_floppy)
(use_boot_info_table, get_731): New prototypes.
* util/mkisofs/write.c (get_731): New function.
2009-11-11 20:52:04 +00:00
Felix Zielcke
af7d4de5c2
2009-11-11 Felix Zielcke <fzielcke@z-51.de>
...
Fix the generation of the man page.
* util/pc/i386/grub-install.in: Source
`${libdir}/grub/grub-mkconfig_lib' after options have been parsed.
2009-11-11 17:00:27 +01:00
Robert Millan
2c55dbc0d5
2009-11-11 Robert Millan <rmh.grub@aybabtu.com>
...
Large file support for grub-mkisofs.
* conf/common.rmk (grub_mkisofs_CFLAGS): Add `-D_FILE_OFFSET_BITS=64'.
* util/mkisofs/mkisofs.c (next_extent, last_extent)
(session_start): Upgrade type to `uint64_t'. Update all users.
* util/mkisofs/mkisofs.h: Include `<stdint.h>'.
(struct directory_entry): Upgrade type of `starting_block' and
`size' to `uint64_t'. Update all users.
(struct deferred): Remove unused structure.
(xfwrite): Upgrade type of `count' and `size' to `uint64_t'.
Update all users.
* util/mkisofs/tree.c (stat_filter, lstat_filter): Return -1 when
file is larger than `UINT32_MAX'.
* util/mkisofs/write.c (xfwrite): Upgrade type of `count' and
`size' to `uint64_t'. Update all users. Fix handling of fwrite()
return value.
(struct deferred_write): Upgrade type of `extent' and `size' to
`uint64_t'. Update all users.
(last_extent_written): Upgrade type to `uint64_t'. Update all
users.
(write_one_file): Upgrade type of `count' and `size' to `uint64_t'.
Update all users. Upgrade type of `remain' to `int64_t' and
`use' to `size_t'. Use error() to handle fread() errors.
(write_files): Rely on write_one_file() rather than calling
xfwrite() directly.
2009-11-11 00:23:29 +00:00
Felix Zielcke
6a9cead5cf
2009-11-09 Felix Zielcke <fzielcke@z-51.de>
...
* util/mkisofs/mkisofs.c (ld_options): Fix a spelling mistake.
2009-11-09 21:36:09 +01:00
Robert Millan
4825d7908c
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* util/mkisofs/fnmatch.c: Remove.
* util/mkisofs/getopt1.c: Likewise.
* util/mkisofs/getopt.c: Likewise.
* conf/common.rmk (grub_mkisofs_SOURCES): Replace
`util/mkisofs/fnmatch.c', `util/mkisofs/getopt1.c' and
`util/mkisofs/getopt.c' with `gnulib/fnmatch.c',
`gnulib/getopt1.c' and `gnulib/getopt.c'.
(grub_mkisofs_CFLAGS): Add `-I$(srcdir)/gnulib'.
* configure.ac: Detect `mingw32msvc' host_os.
Check for lstat(), getuid() and getgid().
* util/mkisofs/joliet.c: Include `<stdint.h>'. Replace all
instances of `u_char' with `uint8_t'.
* util/mkisofs/mkisofs.h: Include `<sys/stat.h>'.
[!HAVE_GETUID] (getuid): New function (stub).
[!HAVE_GETGID] (getgid): Likewise.
[!HAVE_LSTAT] (lstat): Likewise.
[!S_IROTH] (S_IROTH): New macro (dummy).
[!S_IRGRP] (S_IRGRP): Likewise.
2009-11-09 19:58:24 +00:00
Robert Millan
84b860d827
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* gnulib/fnmatch_loop.c (EXT): Fix warning (signed and unsigned type in
conditional expression).
2009-11-09 19:20:33 +00:00
Robert Millan
66e9b71250
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
Import from Gnulib.
* gnulib/fnmatch.c: New file.
* gnulib/fnmatch.h: Likewise.
* gnulib/fnmatch_loop.c: Likewise.
* gnulib/getopt.c: Likewise.
* gnulib/getopt.h: Likewise.
* gnulib/getopt1.c: Likewise.
* gnulib/getopt_int.h: Likewise.
* gnulib/gettext.h: Likewise.
2009-11-09 19:16:09 +00:00
Robert Millan
34f4a5b005
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* normal/dyncmd.c (read_command_list): Replace `0' with `NULL'.
* normal/handler.c (read_handler_list): Likewise.
2009-11-09 14:50:20 +00:00
Robert Millan
ac451143b2
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
Misc cleanup.
* kern/command.c (grub_register_command_prio): Use
grub_zalloc() instead of explicitly zeroing data.
* kern/list.c: Include `<grub/mm.h>'.
(grub_named_list_find): Replace `0' with `NULL'.
* normal/autofs.c (struct grub_fs_module_list): Remove ad-hoc type.
(fs_module_list): Change type to `grub_named_list_t'. Update all
users.
* normal/dyncmd.c (read_command_list): Add space between function
call and parenthesis.
* normal/handler.c (read_handler_list): Likewise.
2009-11-09 14:45:28 +00:00
Robert Millan
4089b167cd
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* normal/auth.c (punishment_delay): Moved from here ...
(grub_auth_strcmp): ... to here (inside function).
2009-11-09 14:30:47 +00:00
Robert Millan
325f503783
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* include/grub/list.h (struct grub_named_list): Remove `const'
qualifier from `name'.
(struct grub_prio_list): Likewise.
2009-11-09 14:25:03 +00:00
Robert Millan
7aea29a388
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* normal/auth.c: Include `<grub/time.h>'.
(grub_auth_strcmp): Replace `strcmp' with `grub_strcmp'.
2009-11-09 08:05:27 +00:00
Robert Millan
3fd6f044f1
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* normal/auth.c (punishment_delay): New variable.
(grub_auth_strcmp): Rewrite using grub_get_time_ms ().
(grub_auth_check_authentication): Punish failed login attempts with
an incremental (2^N) delay.
2009-11-09 00:37:56 +00:00
Robert Millan
a4cd68e41d
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* conf/common.rmk (grub_mkisofs_CFLAGS): Prefix include
path with $(srcdir).
2009-11-08 23:59:24 +00:00
Vladimir 'phcoder' Serbinenko
7ad12f433d
2009-11-09 Vladimir Serbinenko <phcoder@gmail.com>
...
* normal/auth.c (grub_auth_strcmp): Fixed incorrect variable usage.
2009-11-09 00:28:10 +01:00
Robert Millan
c1129f0392
2009-11-09 Robert Millan <rmh.grub@aybabtu.com>
...
* util/i386/coreboot/grub-mkrescue.in: New file.
* conf/i386-coreboot.rmk (bin_SCRIPTS, grub_mkrescue_SOURCES): New
variables.
* conf/common.rmk (bin_UTILITIES): Add `grub-mkisofs'.
(grub_mkisofs_SOURCES, grub_mkisofs_CFLAGS): New variables.
* configure.ac: Add header and function checks to satisfy grub-mkisofs
requirements.
* util/mkisofs/defaults.h: New file.
* util/mkisofs/eltorito.c: Likewise.
* util/mkisofs/exclude.h: Likewise.
* util/mkisofs/fnmatch.c: Likewise.
* util/mkisofs/getopt.c: Likewise.
* util/mkisofs/getopt1.c: Likewise.
* util/mkisofs/hash.c: Likewise.
* util/mkisofs/include/fctldefs.h: Likewise.
* util/mkisofs/include/mconfig.h: Likewise.
* util/mkisofs/include/prototyp.h: Likewise.
* util/mkisofs/include/statdefs.h: Likewise.
* util/mkisofs/iso9660.h: Likewise.
* util/mkisofs/joliet.c: Likewise.
* util/mkisofs/match.c: Likewise.
* util/mkisofs/match.h: Likewise.
* util/mkisofs/mkisofs.c: Likewise.
* util/mkisofs/mkisofs.h: Likewise.
* util/mkisofs/multi.c: Likewise.
* util/mkisofs/name.c: Likewise.
* util/mkisofs/rock.c: Likewise.
* util/mkisofs/tree.c: Likewise.
* util/mkisofs/write.c: Likewise.
2009-11-08 23:21:21 +00:00
Vladimir 'phcoder' Serbinenko
ec8bb77de9
2009-11-09 Vladimir Serbinenko <phcoder@gmail.com>
...
* normal/auth.c (grub_auth_strcmp): Fix bug which resulted in function
being insecure.
2009-11-09 00:16:17 +01:00
Robert Millan
3716b12ce2
2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
...
* util/i386/pc/grub-mkrescue.in: Fix miss-identification as
`grub-mkimage' (and use $0 when possible).
2009-11-08 21:55:25 +00:00
Robert Millan
b97b7b914b
2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
...
* kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve
error message for excessively large memory map.
2009-11-08 20:02:16 +00:00
Robert Millan
0411481297
2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
...
* autogen.sh: Use `sh gendistlist.sh' to avoid reliing on
executable bit.
2009-11-08 16:43:36 +00:00
Robert Millan
e4eb23732d
2009-11-08 Robert Millan <rmh.grub@aybabtu.com>
...
* kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve error
message for coreboot users.
2009-11-08 16:23:23 +00:00
robertmh
c926e1d585
2009-11-07 Robert Millan <rmh.grub@aybabtu.com>
...
Fix build with GNU gold.
* conf/i386-pc.rmk (boot_img_LDFLAGS, pxeboot_img_LDFLAGS)
(diskboot_img_LDFLAGS, lnxboot_img_LDFLAGS)
(cdboot_img_LDFLAGS): Prepend `0x' qualifier to hexadecimal
link addresses.
* aclocal.m4: Likewise.
2009-11-07 21:06:30 +00:00
fzielcke
86e5b1dbb7
2009-11-04 Felix Zielcke <fzielcke@z-51.de>
...
* configure.ac (AC_PREREQ): Bump to 2.59d.
* INSTALL: Make it more clear when Autoconf and Ruby are
needed and when to run `./autogen.sh'.
2009-11-04 08:20:53 +00:00
fzielcke
246cd78f70
2009-11-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
...
* util/grub.d/30_os-prober.in: Restore default behavior for unsupported
OSes.
2009-11-03 14:25:34 +00:00