Commit graph

50 commits

Author SHA1 Message Date
nobu
75c1cac7f3 * {ext,lib,test}/**/*.rb: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-16 21:51:01 +00:00
xibbar
f6d905c022 * lib/cgi/session.rb: ignore session_id options fixed.[Bug #605]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@20884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-19 11:46:48 +00:00
matz
6a7b828892 * lib/rdoc.rb: massive spelling correction patch from Evan Farrar
<evanfarrar at gmail.com> in [ruby-doc:1382] applied.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-04 09:39:55 +00:00
matz
2d1ccd3826 * lib/cgi/session.rb (CGI::Session::FileStore::restore): use
lockfile for exclusive locks.  a patch from <tommy AT tmtm.org>.
  [ruby-dev:32296]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-15 09:17:58 +00:00
akr
f1a422e837 * lib/securerandom.rb: new file.
* lib/cgi/session.rb (create_new_id): use securerandom if available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-10 14:37:42 +00:00
nobu
7639df765e * lib/cgi/session.rb, lib/cgi/session/pstore.rb: suppress warnings.
fixed: [ruby-talk:204896]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-30 14:06:50 +00:00
matz
cde930a4a4 * string.c (rb_str_cmp_m): should not return false but nil.
fixed: [ruby-dev:25811]

* lib/cgi-lib.rb: add deprecation warning. [ruby-dev:25499]
  getopts.rb, parsearg.rb, importenv.rb as well.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-07 00:20:16 +00:00
matz
a63326b345 * lib/cgi/session.rb: [ruby-list:40444]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-22 08:06:12 +00:00
nobu
fbd922da76 * lib/cgi/session.rb (CGI::Session#initialize): empty session id was
used if request had no session key.  fixed: [ruby-core:03981]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-19 18:31:04 +00:00
nobu
ac619b9205 * lib/cgi/session.rb (CGI::Session#initialize): control adding
session_id hidden fields.  fixed: [ruby-talk:123850]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-17 04:34:39 +00:00
matz
d89b8333c5 * ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]
* lib/cgi/session.rb (CGI::Session::initialize): generate new
  session if given session_id does not exist.  [ruby-list:40368]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-15 01:54:40 +00:00
matz
f6348ca0ea * object.c (convert_type): [ruby-core:03845]
* eval.c (rb_funcall_rescue): new function.

* object.c (rb_Array): avoid using rb_respond_to().

* object.c (rb_Integer): ditto.

* eval.c (get_backtrace): no conversion for nil.

* parse.y (reduce_nodes): empty body should return nil.

* lib/cgi/session.rb (CGI::Session::initialize): [ruby-core:03832]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-29 06:13:52 +00:00
matz
39080991ab * file.c (rb_file_chown): integer conversion should be prior to
GetOpenFile().  [ruby-dev:24947]

* file.c (rb_file_truncate): ditto.

* file.c (rb_file_s_truncate): ditto.

* dir.c (dir_seek): use NUM2OFFT().

* misc/ruby-mode.el (ruby-non-block-do-re): [ruby-core:03719]

* dir.c (dir_seek): should retrieve dir_data after NUM2INT().
  [ruby-dev:24941]

* string.c (rb_str_splice): should place index wrapping after
  possible modification.  [ruby-dev:24940]

* eval.c (error_print): nicer traceback at interrupt.
  [ruby-core:03774]

* string.c (str_gsub): internal buffer should not be listed by
  ObjectSpace.each_object() by String#gsub.  [ruby-dev:24931]

* lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise
  exception if data corresponding to session specified from the
  client does not exist.

* string.c (str_gsub): internal buffer should not be listed by
  ObjectSpace.each_object().  [ruby-dev:24919]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-22 15:29:52 +00:00
matz
73deb73392 * numeric.c (flo_divmod): protect float values from GC by
assignment to local variables.  [ruby-dev:24873]

* string.c (str_mod_check): frozen check should be separated.
  [ruby-core:3742]

* array.c (rb_ary_update): pedantic check to detect
  rb_ary_to_ary() to modify the receiver.  [ruby-dev:24861]

* string.c (rb_str_justify): typo fixed.  [ruby-dev:24851]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-16 14:54:49 +00:00
matz
860bdc3b61 * io.c (read_all): block string buffer modification during
rb_io_fread() by freezing it temporarily. [ruby-dev:24479]

* dir.c (rb_push_glob): block call at once the end of method.
  [ruby-dev:24487]

* ext/enumerator/enumerator.c (enum_each_slice): remove
  rb_gc_force_recycle() to prevent potential SEGV.
  [ruby-dev:24499]

* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string
  buffer by clearing klass.  [ruby-dev:24510]

* ext/socket/socket.c (sock_s_getservbyaname): protocol string
  might be altered.  [ruby-dev:24503]

* string.c (rb_str_upto): check if return value from succ is a
  string.  [ruby-dev:24504]

* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to
  avoid mode string modification.  [ruby-dev:24454]

* io.c (rb_io_getline_fast): should take delim as unsigned char to
  distinguish EOF and '\377'.  [ruby-dev:24460]

* io.c (rb_io_getline): add check for RS modification.
  [ruby-dev:24461]

* enum.c (enum_sort_by): use qsort() directly instead using
  rb_iterate().  [ruby-dev:24462]

* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to
  prevent access to recycled object (via continuation for
  example).  [ruby-dev:24463]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-19 10:25:23 +00:00
matz
a9191c44ca * bignum.c (rb_big_and): protect parameters from GC.
[ruby-talk:110664]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-28 14:20:44 +00:00
shugo
8dfe79afce * lib/cgi/session.rb (CGI::Session::FileStore#initialize): do not
use a session id as a filename. (backported from HEAD)
* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): ditto.
* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): use
  Dir::tmpdir. (backported from HEAD)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-24 08:31:22 +00:00
shugo
62276d5c1d * lib/cgi/session.rb (CGI::Session::FileStore#initialize): untaint
session id after check. (backported from HEAD)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-24 05:41:07 +00:00
matz
23341b7a4c * lib/cgi/session.rb (CGI::Session::FileStore#update): sets the
permission of the session data file to 0600.

* lib/cgi/session/pstore.rb (CGI::Session::Pstore#initialize):
  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-23 00:11:34 +00:00
matz
6e918be6b1 * gc.c, parse.y, lib/cgi.rb, lib/date.rb: last minute backports from HEAD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-14 14:22:11 +00:00
matz
4c36359dea * numeric.c (flo_eq): alway check if operands are NaN.
[ruby-list:39685]

* lib/cgi/session.rb: use LOCK_SH to read, and a few other
  improvements.  [ruby-core:02328]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-20 04:28:36 +00:00
dave
fb18f7c5f6 Doug Kearns's doc. patch
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-26 13:50:41 +00:00
(no author)
62d7212d3d This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-26 13:50:41 +00:00
matz
c96f53e1aa * eval.c (rb_mod_modfunc): should break if m has no super class.
[ruby-dev:22498]

* backport changes from 1.9


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-06 14:00:54 +00:00
matz
8ef5da3be1 consistent parentheses in assignment RHS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-16 17:47:19 +00:00
wew
1ea6c0aa9b Add documentation in RDoc format.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-29 13:27:20 +00:00
wew
22a5aec4b3 Add documentation in RDoc format.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-29 03:52:24 +00:00
eban
02f036ddbc * lib/tmpdir.rb (tmpdir): new method. remove TMPDIR.
use GetSystemWindowsDirectory(GetSystemDirectory), not GetTempPath.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 16:37:35 +00:00
matz
2416271405 * lib/tmpdir.rb: new library to get temporary directory path,
using GetTempPath on Win32 environment.

* lib/tempfile.rb: now uses tmpdir.rb.

* lib/cgi/session.rb, ib/drb/unix.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-21 15:34:18 +00:00
matz
9ef8a2a5db * lib/matrix.rb: remove elements conversion to_f, to_i, to_r.
* lib/cgi/session/pstore.rb: add new file.

* process.c (proc_getgroups, proc_setmaxgroups): fix typo.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-15 07:35:14 +00:00
matz
c9356d82bc * lib/cgi/session.rb (CGI::Session::initialize): updated to
support 2003-04-23 change in cgi.rb [ruby-core:1002]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-05-02 08:42:00 +00:00
knu
d9fbdddb59 Delete final.rb, which was obsoleted long ago.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-19 18:55:32 +00:00
matz
ae23000c0e * array.c (sort_2): *a - *b may overflow.
* array.c (ary_new): len*sizeof(VALUE) may be a positive value.

* array.c (rb_ary_initialize): ditto.

* object.c (rb_class_allocate_instance): move singleton class
  check from rb_obj_alloc().

* re.c (rb_reg_initialize): should not modify frozen Regexp.

* ext/tcltklib/tcltklib.c (ip_init): allocation framework.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-19 05:56:09 +00:00
wakou
bd074c1f03 * lib/cgi/session.rb: support for multipart form.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-10 17:02:47 +00:00
matz
19c42c0740 * variable.c (rb_obj_remove_instance_variable): raise NameError if
specified instance variable is not defined.

* variable.c (generic_ivar_remove): modified to check ivar
  existence.

* file.c (rb_file_s_extname): new method based on the proposal
  (and patch) from Mike Hall. [new]

* eval.c (error_handle): default to 1 unless status is set.

* eval.c (ruby_options): guard error_handle() with PROT_NONE.

* eval.c (ruby_stop): ditto.

* math.c (math_acosh): added. [new]

* math.c (math_asinh): ditto.

* math.c (math_atanh): ditto.

* struct.c (rb_struct_each_pair): method added. [new]

* class.c (rb_singleton_class): wrong condition; was creating
  unnecessary singleton class.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-10 08:45:26 +00:00
knu
31e15f7606 Reflect the update of the MD5 module which is now Digest::MD5.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-01 14:07:01 +00:00
matz
948ff2456b * signal.c (sighandle): should not re-register sighandler if
POSIX_SIGNAL is defined.

* eval.c (error_print): errat array may be empty.

* eval.c (rb_eval_cmd): should not upgrade safe level unless
  explicitly specified by argument newly added.

* signal.c (sig_trap): should not allow tainted trap closure.

* variable.c (rb_f_trace_var): should not allow trace_var on safe
  level higher than 3.

* variable.c (rb_f_trace_var): should not allow tainted trace
  closure.

* gc.c: do not use static stack until system stack overflows.

* eval.c (eval): should call Exception#exception instead of
  calling rb_exc_new3() directly.

* error.c (exc_exception): set "mesg" directly to the clone.  it
  might be better to set mesg via some method for flexibility.

* variable.c (cvar_override_check): should print original module
  name, if 'a' is T_ICLASS.

* parse.y (yylex): float '1_.0' should not be allowed.

* variable.c (var_getter): should care about var as Qfalse
  (ruby-bugs#PR199).

* array.c (cmpint): <=> or block for {min,max} may return bignum.

* array.c (sort_1): use rb_compint.

* array.c (sort_2): ditto.

* enum.c (min_ii): ditto.

* enum.c (min_ii): ditto.

* enum.c (max_i): ditto.

* enum.c (max_ii): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 08:14:27 +00:00
matz
f33a61c28d * string.c (rb_str_lstrip_bang): new method.
* string.c (rb_str_rstrip_bang): new method.

* string.c (rb_str_associate): should consider STR_ASSOC too.

* eval.c (rb_undefined): do not recurse if method_missing is
  undefined.

* process.c (proc_waitpid): now all arguments are optional.

* process.c (Init_process): waitpid is now alias to wait.

* process.c (Init_process): waitpid2 is now alias to wait2.

* process.c (rb_waitpid): made public.

* ext/pty/pty.c (pty_getpty): avoid disturbing SIGCHLD using
  thread and rb_waitpid.

* process.c (proc_getpgrp): now takes no argument on all
  platforms.

* process.c (proc_setpgrp): ditto.

* ext/socket/socket.c (sock_s_pack_sockaddr_in): added
  Socket::pack_sockaddr_in(). [new]

* ext/socket/socket.c (sock_s_pack_sockaddr_un): added
  Socket::pack_sockaddr_un(). [new]

* ext/socket/socket.c (sock_s_pack_sockaddr_in): added
  Socket::unpack_sockaddr_in(). [new]

* ext/socket/socket.c (sock_s_pack_sockaddr_un): added
  Socket::unpack_sockaddr_un(). [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-08-06 03:05:23 +00:00
shugo
7dc25230be * lib/cgi/session.rb: don't use module_function for Class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-06-02 14:19:37 +00:00
matz
1d3d27b42d forgot some checkins.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-06 15:06:00 +00:00
shugo
756dcb0034 * lib/cgi/session.rb (close): fixed reversed condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-15 02:45:09 +00:00
matz
8be410f065 * io.c (rb_io_ctl): do not call ioctl/fcntl for f2, if f and f2
have same fileno.

* eval.c (rb_load): raise LocaJumpError if unexpected local jumps
  appear during load.

* ext/socket/socket.c (bsock_close_read): don't call rb_thread_fd_close();
  it's supposed to be called by io_io_close().

* ext/socket/socket.c (bsock_close_read): do not modify f and f2.

* ext/socket/socket.c (bsock_close_write): ditto.

* ext/socket/socket.c (sock_new): avoid dup(2) on sockets.

* parse.y (primary): preserve and clear in_single and in_def using
  stack to prevent nested method errors in singleton class bodies.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-13 05:09:11 +00:00
matz
87beea4496 * enum.c (enum_inject): new method.
* gc.c (rb_gc_call_finalizer_at_exit): clear klass member of
  terminating object.

* eval.c (rb_call): raise exception for terminated object.

* bignum.c (bigdivrem): t2 might be too big for signed long; do
  not use rb_int2big(), but rb_uint2big().

* error.c (rb_load_fail): new func to report LoadError.

* ruby.c (load_file): use rb_load_fail.

* eval.c (ruby_finalize): should enclosed by PUSH_TAG/POP_TAG.

* gc.c (rb_gc_mark): link 2 of NODE_IFUNC should not be explicitly
  marked.  it may contain non object pointer.

* re.c (reg_s_last_match): Regexp::last_match(nth) returns nth
  substring of the match  (alternative for $& and $<digit>).

* eval.c (rb_mod_define_method): wrong comparison for blocks.

* gc.c (id2ref): should handle Symbol too.

* gc.c (id2ref): should print original ptr value

* eval.c (rb_iterate): NODE_CFUNC does not protect its data
  (nd_tval), so create new node NODE_IFUNC for iteration C
  function.

* eval.c (rb_yield_0): use NODE_IFUNC.

* gc.c (rb_gc_mark): support NODE_IFUNC.

* gc.c (mem_error): prohibit recursive mem_error().
  (ruby-bugs-ja:PR#36)

* eval.c (rb_thread_fd_writable): should not switch context if
  rb_thread_critical is set.

* eval.c (rb_thread_wait_fd): ditto.

* eval.c (rb_thread_wait_for): ditto.

* eval.c (rb_thread_select): ditto.

* eval.c (rb_thread_join): join during critical section causes
  deadlock.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-01-09 07:26:21 +00:00
matz
08ec02b92b changes from personal modifies -- matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-12-28 05:00:47 +00:00
matz
1b2d3f81ee 1.6.2 (to be)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-10-17 18:14:05 +00:00
matz
6fc752bf7d matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-09-07 06:59:46 +00:00
matz
655e96fa59 2000-05-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-05-09 04:53:16 +00:00
matz
fedf48986d 2000-05-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-05-01 09:42:38 +00:00
matz
4263bb432a 19991292
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1999-12-02 06:58:52 +00:00
matz
ebab487fcd 19991125
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1999-11-25 09:03:08 +00:00