Commit Graph

918 Commits (50e1e87f71e9436de17050f61058a657842bcb2f)

Author SHA1 Message Date
rey4 1dc358fc1d Move get_file_data and get_file_data_svn functions into vclib.
* lib/viewcvs.py
  (DirEntry, get_file_data_svn, get_file_data):
    removed

  (view_directory_cvs, view_directory_svn, generate_tarball_cvs):
    call repos.listdir instead of get_file_data

* lib/vclib/bincvs/__init__.py
  (BinCVSRepository.listdir):
    added, cut and paste of get_file_data

* lib/vclib/svn/__init__.py
  (SubversionRepository.listdir)
    added, cut and paste of get_file_data_svn

* lib/vclib/__init__.py
  (DirEntry)
    added, cut and paste

  (Repository.listdir)
    added abstract member function


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@732 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-21 14:35:47 +00:00
rey4 f2cadab08a Store directory listing entries in objects instead of tuples
* lib/viewcvs.py
  (_UNREADABLE_MARKER):
    removed

  (DirEntry):
    new class to replace directory entry tuples

  (get_file_data_svn, get_file_data):
    take repository object and directory path as arguments instead of
    taking the entire Request object. And return DirEntry instances
    instead of tuples

  (get_file_tests):
    removed, code moved into get_file_data

  (get_last_modified, sort_file_data, view_directory_cvs,
   view_directory_svn, search_files, generate_tarball_cvs):
    work with DirEntry instances instead of tuples

  (search_files):
    change the way this is called and remove cvs-specific code so
    subversion listings could potentially have regular expression
    searching

  (download_tarball, generate_tarball_cvs, generate_tarball_svn):
    change the way two recursive parameters are used to make it
    easier to call vclib-style functions


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@731 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-21 05:42:12 +00:00
rey4 cfbf622b27 Move the process_checkout function into vclib.
* lib/viewcvs.py
  (process_checkout):
    removed, functionality moved into vclib

  (view_markup, view_checkout, search_files):
    call vclib.Repository.openfile instead of process_checkout

  (Request.run_viewcvs):
    pass rcs path option values to CVS repository constructor

* lib/vclib/__init__.py
  (Repository.openfile):
    new abstract function

* lib/vclib/bincvs/__init__.py
  (BinCVSRepository.openfile):
    added

  (BinCVSRepository.__init__):
    added rcs_paths member to hold rcs config values

* lib/vclib/svn/__init__.py
  (SubversionRepository.openfile):
    added

  (get_file_contents):
    removed


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@730 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-20 03:53:23 +00:00
rey4 131904872c Stop looking up "action" values for subversion log entries. C. Mike
pointed out that will ultimately allow us to get rid of an inefficient
call to svn_fs_paths_changed().

* lib/vclib/svn/__init__.py
  (LogEntry.__init__, log_helper, get_logs):
    no longer set LogEntry.action member

* templates/log.ezt
* templates/log_table.ezt
    stop trying to read LogEntry.action member


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@729 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-17 17:56:44 +00:00
cmpilato 4e5303978a Expose the actions for "other changed paths".
* viewcvs/lib/vclib/svn/__init__.py
  (ChangedPathEntry.__init__): Add 'action' parameter.
  (_unparse_action): New helper (with code previously in log_helper()).
  (log_helper): Now call _unparse_action() to get the action string
    for the path.  But now also call it for the other paths, passing
    the result to the updated ChangedPathEntry.__init__() function.

* viewcvs/templates/log.ezt
* viewcvs/templates/log_table.ezt
  Now show the type of change that happened for "the other paths", and
  don't make paths that were deleted into hyperlinks.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@728 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-16 14:41:10 +00:00
cmpilato 751b031192 Some pool usage fixes suggested by Greg Stein.
* viewcvs/lib/vclib/svn/__init__.py
  (get_last_history_rev): Add 'pool' argument; use it instead of the
    repository object's pool.
  (get_logs): Make this sucker us an iteration subpool.  Update call
    to get_last_history_rev().


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@727 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-16 06:34:52 +00:00
rey4 c7c9807517 Removed show_changed_paths option. It was originally added as a way to
to disable a buggy and inefficient subversion feature. But it's no
longer neccessary with C. Mike's recent improvements to the subversion
module.

* viewcvs.conf.dist
  (show_changed_paths):
    removed option

* lib/config.py
  (Config.set_defaults)
    removed default assignment

* lib/viewcvs.py
  (run_viewcvs):
    stop passing option value to repository object

* lib/vclib/svn/__init__.py
  (log_helper, fetch_log):
    stop passing option value to log_helper function


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@726 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-15 20:33:04 +00:00
rey4 9970242b67 fix some links on log pages
* lib/vclib/svn/__init__.py
  (_trim_path):
    new function to take leading slashes off paths

  (log_helper):
    remove leading slashes from paths that get used by templates


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@725 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-15 20:12:29 +00:00
cmpilato 603181493b * viewcvs/lib/viewcvs.py
(view_markup): Ensure that the 'prev' data member always exists.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@724 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-15 19:29:40 +00:00
rey4 c1f7b71c81 get standalone server to work from development tree
* standalone.py
  (global code):
    remove os.chdir() call and set viewcvs.g_install_dir variable so
    the templates and configuration file can be found


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@723 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-15 17:39:43 +00:00
rey4 e159806814 * lib/viewcvs.py
(handle_config):
    when viewcvs is run without being installed first, look for a
    viewcvs.conf file in the root of tree instead of in the current
    directory


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@722 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-15 17:27:17 +00:00
cmpilato c8bc2d4832 * viewcvs/lib/vclib/svn/__init__.py
(log_helper): Stop skipping over revisions in which the target path
    didn't actually change.  If we decide to re-add this feature, we
    need to do it in viewcvs.py itself (because other code, like
    view_markup(), is depending on getting real values for all
    relevant revisions.
  (get_last_history_rev): New.
  (get_logs): Move this function down in the file, and now call
    get_last_history_rev() instead of fs.node_created_rev().


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@721 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-15 17:24:40 +00:00
cmpilato 9a8d5d115b Whip 'select for diffs', 'diff to previous', and 'diff to selected'
into shape for Subversion.

* viewcvs/lib/viewcvs.py
  (view_log): Grab the path of a version selected for diffs from the
    query data, and stash it in the data dictionary.

* viewcvs/templates/log_table.ezt
* viewcvs/templates/log.ezt
  Fix the 'diff to previous', 'diff to selected', and 'select for
  diff' links for Subversion.  Also, don't display the various "branch
  point" and "next main" diff links for Subversion.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@720 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-15 16:42:02 +00:00
cmpilato 1ab8cfbd92 Purge semi-colons from the ends of statements (in one case, moving it into a
string constant as an HTML entity terminator.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@719 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-14 15:53:42 +00:00
cmpilato e83cf53244 * viewcvs/lib/viewcvs.py
(read_log): Word-capitalize the "Tag Not Found" status line.
  (view_diff): Add 400 status to the exceptions.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@718 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-14 15:35:23 +00:00
cmpilato 078c625f09 * viewcvs/lib/viewcvs.py
(get_file_data_svn): Use request.full_name, not just full_name,
    since the latter doesn't exist in the scope.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@717 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-13 18:56:20 +00:00
cmpilato ad3eade9ac * viewcvs/lib/viewcvs.py
(_validate_param): Return "400 Bad Request" when invalid parameters
    are passed.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@716 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-13 18:18:01 +00:00
cmpilato fec722653e * lib/vclib/svn/__init__.py
(NodeHistory): New collector class.
  (get_history): Use svn_repos_history() now instead of directly using
    the fs.history interface.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@715 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-04 22:13:10 +00:00
rey4 22aeba1b38 * templates/log_table.ezt: sync up with log.ezt 1.26
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@714 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-10-03 22:10:19 +00:00
cmpilato 4f46a705e2 Some fix-em-ups to the new history-using ViewCVS code. Thanks to Greg
Stein and Russell Yanofsky for review and suggestions.

* lib/vclib/svn/__init__.py
  (log_helper): Add 'pool' argument, and use it instead of
    svnrepos.pool for allocations.  Also, calculate the action and
    copy_rev/copy_path fields in the log entries.
  (fetch_log): Use an iteration subpool when looping over history items.

* templates/log.ezt
  Eliminate an unnecessary "if-any" check (since "is" does this work
  for us in this case).


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@713 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-30 13:58:44 +00:00
cmpilato f808704efe * viewcvs/lib/vclib/svn/__init__.py
(log_helper): Populate the 'action' attribute of the LogEntry.

* viewcvs/templates/log.ezt
  Expect human-readable strings for the action type (instead of the
    single-character abbreviations).


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@712 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-26 14:29:07 +00:00
cmpilato 594baf20b8 Mm... Steinian code review is good for the soul. And the project,
too.

* viewcvs/lib/vclib/svn/__init__.py
  (date_from_rev): Remove a semicolon (it's a Python no-no).
  (get_history): Remove an errant space, and take advantage of
    Python's kewl tuple support to avoid a temp variable and simplify
    the read.
  (log_helper): Promote to a "real" function, adding some params and
    returning a real value.
  (fetch_log): Move the sub-function log_helper out.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@711 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-26 14:13:57 +00:00
cmpilato 7eae388966 Make "diff to previous" for across Subversion copies work.
* viewcvs/lib/viewcvs.py
  (_legal_params): Allow 'p1' and 'p2' query args.
  (view_log_svn): Populate prev_path entry members.
  (view_diff): Handle the 'p1' and 'p2' query string items.  Update
    call to vclib.svn.do_diff().

* viewcvs/templates/log.ezt
  Update "diff to previous" links to include prev_path.

* viewcvs/lib/vclib/svn/__init__.py
  (do_diff): Add (and use) 'path2' argument.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@710 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-26 02:58:59 +00:00
cmpilato 9632aa3bfc Teach ViewCVS how to follow copy history in Subversion repositories
(optionally, turned off by default).  No diffs across paths yet, but
that's coming soon(ish)!

* viewcvs/lib/vclib/svn/__init__.py
  (LogReceiver): Buh-bye.
  (get_history): New.
  (fetch_log): Use get_history() instead of the svn_repos_get_logs interface.

* viewcvs/lib/config.py
  (Config.set_defaults): Add default for 'cross_copies' option.

* viewcvs/lib/viewcvs.py
  (Request.run_viewcvs): Set the 'cross_copies' SubversionRepository
    attribute based on the config option of the same name.

* viewcvs/viewcvs.conf.dist
  (cross_copies): New.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@709 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-26 01:34:33 +00:00
gstein 60fbba9322 re-add CGI scripts with exec permission
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@708 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-18 22:18:28 +00:00
gstein d340b5bfc5 remove these CGI scripts temporarily
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@707 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-18 22:17:50 +00:00
gstein 7183660985 Restore ViewCVS' ability to work straight from the development tree.
* lib/viewcvs.py:
  (g_install_dir): from the CGI, the conf is a couple levels up (now)
    rather than just one.
  (view_directory_cvs): row.name must be set for all row types since it
    will be displayed as part of the error lines. move the assignment
    further up in the file.

* www/cgi/viewcvs.cgi:
  (__main__): the lib is a couple levels up from the CGI (now)


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@706 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-09-18 22:16:04 +00:00
cmpilato c77b65be9d * templates/dir_alternate.ezt
* templates/directory.ezt
* templates/markup.ezt
* templates/include/branch.ezt
  s/resizeable/resizable/.  This fixes Bug issue #756811.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@705 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-24 05:20:55 +00:00
cmpilato 5e834c47e7 Fix directory templates to properly handle missing graph_href's (like,
for example, which using Subversion).  This fixes #Bugs item #793866,
reported by Timothee Besset.

* templates/dir_alternate.ezt
* templates/directory.ezt


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@704 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-24 05:06:41 +00:00
rey4 f6b2ba3649 Fixed bug introduced in rcsdiff_date_reformat by previous commit which
was noticed by Greg Stein <gstein@lyra.org>.

* lib/viewcvs.py (rcs_date_reformat): restored call to make_time_string()


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@703 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-22 21:56:31 +00:00
rey4 844a8c1269 fix ValueError exception on diff page
* lib/compat.py (cvs_strptime): make compatibility function throw a
    ValueError when time is not in expected format, so it is more
    like the native function

* lib/viewcvs.py (rcs_date_reformat): catch ValueError exception


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@702 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-22 17:55:39 +00:00
rey4 8e19ed6b2c fix exception when svn root not found
* lib/viewcvs.py: fix misspelled variable


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@701 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-21 01:45:50 +00:00
rey4 bdc40661f6 fixed mod_python bug reported by David Oxley
<David.Oxley@workplace-systems.plc.uk> on Subversion dev list

* lib/sapi.py (ModPythonServer.getenv): derive SCRIPT_NAME from apache
    request instead of using mod_python's value


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@700 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-18 15:01:36 +00:00
rey4 1ce3cc2174 Fixed bug in html form that was reported by John Hall
<john-news1@cambridgetechgroup.com>.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@699 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-10 01:25:44 +00:00
rey4 7296228e72 fixed template variable bug #781130 on query page. reported by Michael
Pechner (mpechner).

* lib/query.py (main): set 'icons' parameter in template data


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@698 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-05 01:02:23 +00:00
rey4 a06053167b fixes for python 1.5 compatibility
* lib/popen.py
    use string functions instead of methods

* lib/viewcvs.py
    use apply() function instead of **arg calling syntax


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@697 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-08-04 17:42:21 +00:00
rey4 1437a7e4fe prevent exception when use_localtime is set and rcsdiff produces wrongly
formatted dates. Bug reported by zindine <zindine at easynet.fr> who
encountered this using cvsnt's rcsdiff.

* lib/compat.py (cvs_strptime): changed to return None when the date
  doesn't match, instead of throwing an exception

* lib/viewcvs.py (rcsdiff_date_reformat, human_readable_diff): changed
  to display unaltered date string returned by rcsdiff when it can't
  be parsed.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@696 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-29 11:09:11 +00:00
rey4 59563e8dfe changed "Running Windows" logo to ViewCVS blimp as suggested by
Bo Berglund <bo.berglund@telia.com>


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@695 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-29 02:59:32 +00:00
rey4 c9fbb0ec71 put cvs_roots and svn_roots on a single line as requested by
Bo Berglund <bo.berglund@telia.com> to help simplify his
windows installer


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@694 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-29 02:57:51 +00:00
rey4 79309e3025 fixed html error
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@693 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-28 23:47:04 +00:00
rey4 66bb812aeb * lib/viewcvs.py (common_template_data): new function to set a few variables
common to all templates

  (Request.__init__): moved icon and docroot initialization into
  common_template_data

  (html_footer, view_directory, view_log, view_markup, view_checkout,
   view_cvsgraph, human_readable_diff): changed to use common_template_data

* templates/dir_alternate.ezt:
  templates/directory.ezt:
  templates/graph.ezt:
  templates/header.ezt:
  templates/log.ezt:
  templates/log_table.ezt:
  templates/query.ezt: renamed docroot and icon variables

* website/upgrading.html: updated description of changed template variables


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@692 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-25 05:34:11 +00:00
rey4 25bb91db25 fix for bug #509705, Directory view of branch skips files
based on patch from Steve Lamm (slamm)

* lib/vclib/bincvs/__init__.py (parse_log_entry): fixed to work with
  versions of RCS that add extra dashed separator lines


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@691 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-24 21:53:20 +00:00
rey4 5d4c447dd4 added "icons" and "docroot" options to control the locations of
static files

* viewcvs.conf.dist, lib/config.py: added new options

* templates/dir_alternate.ezt:
* templates/directory.ezt:
* templates/header.ezt:
* templates/log.ezt:
* templates/log_table.ezt:
* templates/query.ezt:
* lib/viewcvs.py (Request.__init__):
  new "request.docroot" and "request.icons" template variables

* standalone.py (serve): standalone server must use default locations


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@690 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-24 20:37:39 +00:00
rey4 5cf473d5a1 enscript "couldn't open input filter" issue happens on windows xp too
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@689 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-24 19:56:07 +00:00
rey4 cf9aa07cdb fixed docstring
git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@688 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-24 19:53:59 +00:00
rey4 0999369756 changed to exit silently on "cvs import" instead of crashing
* tools/loginfo-handler (HeuristicArgParse, CvsNtArgParse): added tests
  to detect command line parameters ending in "- Imported sources'"

  (debug, warning, error): changed these functions to write to standard out
  instead of standard error


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@687 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-24 08:48:40 +00:00
rey4 c9dbb2c933 fixed bug #488302, missing tag information
* lib/viewcvs.py (read_log, view_log_cvs, class CVSBranch): rewrote code
  that correlates CVS tags with revisions


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@686 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-24 08:03:25 +00:00
rey4 9009ce845a fixed bug #460835, "Too many connections in cvsdbadmin update"
* lib/cvsdb.py (ConnectDatabase): now returns an existing database
  connection instead of always creating a new one.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@685 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-24 00:26:33 +00:00
cmpilato dc2b8063ee * viewcvs/lib/config.py
* viewcvs/viewcvs.conf.dist
  Make the 'show_changed_paths' option default to 0.  We should
  generally avoid a policy of checking in code that, by default,
  SEGFAULTs.  Further, showing changed paths in Subversion is a large
  deviation of the manner in which CVS behaves, and I'd like to keep
  the two displaying as similarly as possible in the default setup.


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@684 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-22 14:17:38 +00:00
rey4 4c281fc21b Fixed log retrieving code to work correctly when get_changed_paths is
true and a directory containing the file being displayed has been copied

* vclib/svn/__init__.py (LogReceiver.__init__): added a new member
  called "node_id" and changed parameters passed to constructor

  (LogReceiver.receive): now compares each changed file in a revision
  with the file being displayed using file revision identifers rather
  than pathnames. Also removed some leftover debugging code

  (fetch_log): adjusted arguments passed to LogReceiver constructor


git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@683 8cb11bc2-c004-0410-86c3-e597b4017df7
2003-07-11 22:05:41 +00:00